diff options
| -rw-r--r-- | arch/armv7/arch_armv7.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/armv7/arch_armv7.cpp b/arch/armv7/arch_armv7.cpp index e30ecf78..c422d7f0 100644 --- a/arch/armv7/arch_armv7.cpp +++ b/arch/armv7/arch_armv7.cpp @@ -2362,6 +2362,7 @@ public: dest32[0] = (info.implicitAddend ? dest32[0] : (uint32_t)info.addend) + (target & ~1) - (uint32_t)reloc->GetAddress(); break; } + case R_ARM_PC24: case R_ARM_JUMP24: { if (target & 1) @@ -2553,8 +2554,14 @@ public: break; case R_ARM_TLS_DTPOFF32: break; - case R_ARM_SBREL31: case R_ARM_PC24: + reloc.pcRelative = true; + reloc.baseRelative = false; + reloc.hasSign = false; + reloc.size = 3; + reloc.truncateSize = 3; + break; + case R_ARM_SBREL31: case R_ARM_LDR_PC_G0: case R_ARM_ABS16: case R_ARM_ABS12: |
