summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2015-01-09 05:59:12 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2015-01-09 05:59:12 +0000
commit3c0f78a2fc31d0691dd20b8489d35928d87e998b (patch)
treebfbcb298943c20785873e2b0cdfb0ed6152b7eb3 /llvm
parentbaff294c1c0b3ace6c3f95f8118508a6c172fa4a (diff)
downloadbcm5719-llvm-3c0f78a2fc31d0691dd20b8489d35928d87e998b.tar.gz
bcm5719-llvm-3c0f78a2fc31d0691dd20b8489d35928d87e998b.zip
ARM: add support for R_ARM_ABS8 relocations
Add support for R_ARM_ABS8 relocation. Addresses PR22126. llvm-svn: 225507
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp8
-rw-r--r--llvm/test/MC/ARM/reloc-abs8.s10
2 files changed, 18 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
index 45e02338e8d..0489caa69a3 100644
--- a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
+++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
@@ -148,6 +148,14 @@ unsigned ARMELFObjectWriter::GetRelocTypeInner(const MCValue &Target,
} else {
switch ((unsigned)Fixup.getKind()) {
default: llvm_unreachable("invalid fixup kind!");
+ case FK_Data_1:
+ switch (Modifier) {
+ default: llvm_unreachable("unsupported Modifier");
+ case MCSymbolRefExpr::VK_None:
+ Type = ELF::R_ARM_ABS8;
+ break;
+ }
+ break;
case FK_Data_4:
switch (Modifier) {
default: llvm_unreachable("Unsupported Modifier");
diff --git a/llvm/test/MC/ARM/reloc-abs8.s b/llvm/test/MC/ARM/reloc-abs8.s
new file mode 100644
index 00000000000..716f0ff21df
--- /dev/null
+++ b/llvm/test/MC/ARM/reloc-abs8.s
@@ -0,0 +1,10 @@
+@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s | llvm-objdump -r - \
+@ RUN: | FileCheck %s
+
+ .syntax unified
+
+ .byte abs8_0 -128
+ .byte abs8_1 +255
+
+@ CHECK: 0 R_ARM_ABS8 abs8_0
+@ CHECK: 1 R_ARM_ABS8 abs8_1
OpenPOWER on IntegriCloud