45 lines · plain
1// RUN: llvm-mc %s -triple=thumbv7-linux-gnueabi \2// RUN: -filetype=obj -o - | llvm-readobj -S --sd -r --symbols - | \3// RUN: FileCheck %s4 5// We want to test relocatable thumb function call.6 7 .thumb_func8foo:9 .fnstart10 bx lr11 .cantunwind12 .fnend13 14 .align 115bar:16 .fnstart17 push {r7, lr}18 bl foo(PLT)19 pop {r7, pc}20 .cantunwind21 .fnend22 23// make sure that bl 0 <foo> (fff7feff) is correctly encoded24// CHECK: Sections [25// CHECK: SectionData (26// CHECK: 0000: 704780B5 FFF7FEFF 80BD27// CHECK: )28// CHECK: ]29 30// CHECK: Relocations [31// CHECK-NEXT: Section {{.*}} .rel.text {32// CHECK-NEXT: 0x4 R_ARM_THM_CALL foo33// CHECK-NEXT: }34// CHECK-NEXT: Section {{.*}} .rel.ARM.exidx {35// CHECK-NEXT: 0x0 R_ARM_PREL31 .text36// CHECK-NEXT: 0x8 R_ARM_PREL31 .text37// CHECK-NEXT: }38// CHECK-NEXT: ]39 40// make sure foo is thumb function: bit 0 = 141// CHECK: Symbols [42// CHECK: Symbol {43// CHECK: Name: foo44// CHECK-NEXT: Value: 0x145