summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp6
-rw-r--r--llvm/test/MC/ARM/thumb1-branch-reloc.s21
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
OpenPOWER on IntegriCloud