1// REQUIRES: arm
2// RUN: llvm-mc -triple armv7-unknown-gnu -arm-add-build-attributes -filetype=obj -o %t %s
3// RUN: ld.lld %t %S/Inputs/arm-long-thunk-converge.lds -o %t2
4// RUN: llvm-objdump -d --start-address=0x00000000 --stop-address=0x00000010 --triple=armv7a-linux-gnueabihf %t2 | FileCheck --check-prefix=CHECK1 %s
5// RUN: llvm-objdump -d --start-address=0x02000000 --stop-address=0x02000010 --triple=armv7a-linux-gnueabihf %t2 | FileCheck --check-prefix=CHECK2 %s
6// RUN: rm -f %t2
7
8// CHECK1: <__ARMv7ABSLongThunk_bar>:
9// CHECK1-NEXT:        0:       0c c0 00 e3     movw    r12, #12
10// CHECK1-NEXT:        4:       00 c2 40 e3     movt    r12, #512
11// CHECK1-NEXT:        8:       1c ff 2f e1     bx      r12
12// CHECK1: <foo>:
13// CHECK1-NEXT:        c:       fb ff ff eb     bl      #-20
14
15.section .foo,"ax",%progbits,unique,1
16foo:
17bl bar
18
19// CHECK2: <__ARMv7ABSLongThunk_foo>:
20// CHECK2-NEXT:  2000000:       0c c0 00 e3     movw    r12, #12
21// CHECK2-NEXT:  2000004:       00 c0 40 e3     movt    r12, #0
22// CHECK2-NEXT:  2000008:       1c ff 2f e1     bx      r12
23// CHECK2: <bar>:
24// CHECK2-NEXT:  200000c:       fb ff ff eb     bl      #-20 <__ARMv7ABSLongThunk_foo>
25
26.section .bar,"ax",%progbits,unique,1
27bar:
28bl foo
29.zero 0x1000000
30