# REQUIRES: arm # RUN: rm -rf %t && split-file %s %t # RUN: llvm-mc -filetype=obj -arm-add-build-attributes -triple=armv7a-none-linux-gnueabi %t/a.s -o %t1.o # RUN: llvm-mc -filetype=obj -arm-add-build-attributes -triple=armv7a-none-linux-gnueabi %t/b.s -o %t2.o # RUN: ld.lld -shared %t1.o %t2.o -o %t.so # RUN: llvm-objdump -d %t.so | FileCheck %s ## Check that, when the input is a mixture of objects which can and cannot use ## the ARM ISA, we use the default ARM PLT sequences. # CHECK: <.plt>: # CHECK-NEXT: e52de004 str lr, [sp, #-0x4]! # CHECK-NEXT: e28fe600 add lr, pc, #0, #12 # CHECK-NEXT: e28eea20 add lr, lr, #32, #20 # CHECK-NEXT: e5bef084 ldr pc, [lr, #0x84]! # CHECK-NEXT: d4 d4 d4 d4 .word 0xd4d4d4d4 # CHECK-NEXT: d4 d4 d4 d4 .word 0xd4d4d4d4 # CHECK-NEXT: d4 d4 d4 d4 .word 0xd4d4d4d4 # CHECK-NEXT: d4 d4 d4 d4 .word 0xd4d4d4d4 # CHECK-EMPTY: # CHECK-NEXT: : # CHECK-NEXT: e28fc600 add r12, pc, #0, #12 # CHECK-NEXT: e28cca20 add r12, r12, #32, #20 # CHECK-NEXT: e5bcf06c ldr pc, [r12, #0x6c]! # CHECK-NEXT: d4 d4 d4 d4 .word 0xd4d4d4d4 #--- a.s .globl foo .type foo, %function .globl bar .type bar, %function .thumb foo: bl bar bx lr #--- b.s .eabi_attribute Tag_ARM_ISA_use, 0 .arm .globl bar .type bar, %function bar: bx lr