diff options
-rw-r--r-- | llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp | 6 | ||||
-rw-r--r-- | llvm/test/MC/ARM/thumb1-branch-reloc.s | 21 |
2 files changed, 27 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp index fa468ea1501..6f19754b899 100644 --- a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp +++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp @@ -140,6 +140,12 @@ unsigned ARMELFObjectWriter::GetRelocTypeInner(const MCValue &Target, case ARM::fixup_t2_movw_lo16: Type = ELF::R_ARM_THM_MOVW_PREL_NC; break; + case ARM::fixup_arm_thumb_br: + Type = ELF::R_ARM_THM_JUMP11; + break; + case ARM::fixup_arm_thumb_bcc: + Type = ELF::R_ARM_THM_JUMP8; + break; case ARM::fixup_arm_thumb_bl: case ARM::fixup_arm_thumb_blx: switch (Modifier) { diff --git a/llvm/test/MC/ARM/thumb1-branch-reloc.s b/llvm/test/MC/ARM/thumb1-branch-reloc.s new file mode 100644 index 00000000000..c599389d1c2 --- /dev/null +++ b/llvm/test/MC/ARM/thumb1-branch-reloc.s @@ -0,0 +1,21 @@ +@ RUN: llvm-mc -triple thumbv6-eabi -filetype obj -o - %s | llvm-readobj -r - \ +@ RUN: | FileCheck %s + + .syntax unified + + .extern h + .section .text.uncond + + b h + +@CHECK: Section {{.*}} .rel.text.uncond { +@CHECK: 0x0 R_ARM_THM_JUMP11 +@CHECK: } + .section .text.cond + + ble h + +@CHECK: Section {{.*}} .rel.text.cond { +@CHECK: 0x0 R_ARM_THM_JUMP8 +@CHECK: } +
\ No newline at end of file |