summaryrefslogtreecommitdiffstats
path: root/llvm/test/ExecutionEngine
diff options
context:
space:
mode:
authorKeno Fischer <kfischer@college.harvard.edu>2016-10-20 21:15:29 +0000
committerKeno Fischer <kfischer@college.harvard.edu>2016-10-20 21:15:29 +0000
commitc32ffe39168a283d5155cda454776f43048c1f40 (patch)
treec4f5cd8393469c60c1c5842ebe27454e3696820e /llvm/test/ExecutionEngine
parentb2443ed62bcf393693eedb9e789e4198f4e460cd (diff)
downloadbcm5719-llvm-c32ffe39168a283d5155cda454776f43048c1f40.tar.gz
bcm5719-llvm-c32ffe39168a283d5155cda454776f43048c1f40.zip
Fix PREL31 relocation on ARM
Summary: This is a 31bits relative relocation instead of a 32bits absolute relocation. Reviewers: t.p.northover, peter.smith, rengolin Subscribers: aemerson, llvm-commits, samparker Differential Revision: https://reviews.llvm.org/D25069 llvm-svn: 284780
Diffstat (limited to 'llvm/test/ExecutionEngine')
-rw-r--r--llvm/test/ExecutionEngine/RuntimeDyld/ARM/ELF_ARM_EXIDX_relocations.s23
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/test/ExecutionEngine/RuntimeDyld/ARM/ELF_ARM_EXIDX_relocations.s b/llvm/test/ExecutionEngine/RuntimeDyld/ARM/ELF_ARM_EXIDX_relocations.s
new file mode 100644
index 00000000000..eb07b00210e
--- /dev/null
+++ b/llvm/test/ExecutionEngine/RuntimeDyld/ARM/ELF_ARM_EXIDX_relocations.s
@@ -0,0 +1,23 @@
+# RUN: llvm-mc -triple=arm-linux-gnueabihf -filetype=obj -o %T/reloc.o %s
+# RUN: llvm-rtdyld -triple=arm-linux-gnueabihf -verify -map-section reloc.o,.ARM.exidx=0x6000 -map-section reloc.o,.text=0x4000 -dummy-extern __aeabi_unwind_cpp_pr0=0x1234 -check=%s %T/reloc.o
+
+ .text
+ .syntax unified
+ .eabi_attribute 67, "2.09" @ Tag_conformance
+ .cpu cortex-a8
+ .fpu neon
+ .file "reloc.c"
+ .globl g
+ .align 2
+ .type g,%function
+g:
+ .fnstart
+ movw r0, #1
+ bx lr
+ .Lfunc_end0:
+ .size g, .Lfunc_end0-g
+ .fnend
+
+# rtdyld-check: *{4}(section_addr(reloc.o, .ARM.exidx)) = (g - (section_addr(reloc.o, .ARM.exidx))) & 0x7fffffff
+# Compat unwind info: finish(0xb0), finish(0xb0), finish(0xb0)
+# rtdyld-check: *{4}(section_addr(reloc.o, .ARM.exidx) + 0x4) = 0x80b0b0b0
OpenPOWER on IntegriCloud