47 lines · plain
1# REQUIRES: arm2 3# RUN: rm -rf %t && split-file %s %t4# RUN: llvm-mc -filetype=obj -arm-add-build-attributes -triple=armv7a-none-linux-gnueabi %t/a.s -o %t1.o5# RUN: llvm-mc -filetype=obj -arm-add-build-attributes -triple=armv7a-none-linux-gnueabi %t/b.s -o %t2.o6# RUN: ld.lld -shared %t1.o %t2.o -o %t.so7# RUN: llvm-objdump -d %t.so | FileCheck %s8 9## Check that, when the input is a mixture of objects which can and cannot use10## the ARM ISA, we use the default ARM PLT sequences.11 12# CHECK: <.plt>:13# CHECK-NEXT: e52de004 str lr, [sp, #-0x4]!14# CHECK-NEXT: e28fe600 add lr, pc, #0, #1215# CHECK-NEXT: e28eea20 add lr, lr, #32, #2016# CHECK-NEXT: e5bef084 ldr pc, [lr, #0x84]!17# CHECK-NEXT: d4 d4 d4 d4 .word 0xd4d4d4d418# CHECK-NEXT: d4 d4 d4 d4 .word 0xd4d4d4d419# CHECK-NEXT: d4 d4 d4 d4 .word 0xd4d4d4d420# CHECK-NEXT: d4 d4 d4 d4 .word 0xd4d4d4d421# CHECK-EMPTY:22# CHECK-NEXT: <bar@plt>:23# CHECK-NEXT: e28fc600 add r12, pc, #0, #1224# CHECK-NEXT: e28cca20 add r12, r12, #32, #2025# CHECK-NEXT: e5bcf06c ldr pc, [r12, #0x6c]!26# CHECK-NEXT: d4 d4 d4 d4 .word 0xd4d4d4d427 28#--- a.s29 .globl foo30 .type foo, %function31 .globl bar32 .type bar, %function33 34 .thumb35foo:36 bl bar37 bx lr38 39#--- b.s40 .eabi_attribute Tag_ARM_ISA_use, 041 42 .arm43 .globl bar44 .type bar, %function45bar:46 bx lr47