llvm-6502/test/MC/ARM/elf-thumbfunc-reloc2.s
Rafael Espindola f314160e32 Convert a few tests to use llvm-mc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240017 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-18 13:39:07 +00:00

45 lines
1003 B
ArmAsm

// RUN: llvm-mc %s -triple=thumbv7-linux-gnueabi -relocation-model=pic \
// RUN: -filetype=obj -o - | llvm-readobj -s -sd -r -t | \
// RUN: FileCheck %s
// We want to test relocatable thumb function call.
.thumb_func
foo:
.fnstart
bx lr
.cantunwind
.fnend
.align 1
bar:
.fnstart
push {r7, lr}
bl foo(PLT)
pop {r7, pc}
.cantunwind
.fnend
// make sure that bl 0 <foo> (fff7feff) is correctly encoded
// CHECK: Sections [
// CHECK: SectionData (
// CHECK: 0000: 704780B5 FFF7FEFF 80BD
// CHECK: )
// CHECK: ]
// CHECK: Relocations [
// CHECK-NEXT: Section {{.*}} .rel.text {
// CHECK-NEXT: 0x4 R_ARM_THM_CALL foo 0x0
// CHECK-NEXT: }
// CHECK-NEXT: Section {{.*}} .rel.ARM.exidx {
// CHECK-NEXT: 0x0 R_ARM_PREL31 .text 0x0
// CHECK-NEXT: 0x8 R_ARM_PREL31 .text 0x0
// CHECK-NEXT: }
// CHECK-NEXT: ]
// make sure foo is thumb function: bit 0 = 1
// CHECK: Symbols [
// CHECK: Symbol {
// CHECK: Name: foo
// CHECK-NEXT: Value: 0x1