// REQUIRES: arm
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7a-none-linux-gnueabi %s -o %t
// RUN: ld.lld %t --shared --icf=all -o %t.so
// The output file is large, most of it zeroes. We dissassemble only the
// parts we need to speed up the test and avoid a large output file
// RUN: llvm-objdump -d %t.so -start-address=0x2000000 -stop-address=0x2000018 -triple=thumbv7a-linux-gnueabihf | FileCheck -check-prefix=CHECK1 %s
// RUN: llvm-objdump -d %t.so -start-address=0x2800004 -stop-address=0x2800034 -triple=thumbv7a-linux-gnueabihf | FileCheck -check-prefix=CHECK2 %s
// RUN: llvm-objdump -d %t.so -start-address=0x4000000 -stop-address=0x4000010 -triple=thumbv7a-linux-gnueabihf | FileCheck -check-prefix=CHECK3 %s
// RUN: llvm-objdump -d %t.so -start-address=0x4000010 -stop-address=0x4000100 -triple=armv7a-linux-gnueabihf | FileCheck -check-prefix=CHECK4 %s
 .syntax unified
 .thumb

// Make sure that we generate a range extension thunk to a PLT entry
 .section ".text.1", "ax", %progbits
 .global sym1
 .global elsewhere
 .type elsewhere, %function
 .global preemptible
 .type preemptible, %function
 .global far_preemptible
 .type far_preemptible, %function
 .global far_nonpreemptible
 .hidden far_nonpreemptible
 .type far_nonpreemptible, %function
 .global far_nonpreemptible_alias
 .hidden far_nonpreemptible_alias
 .type far_nonpreemptible_alias, %function
sym1:
 bl elsewhere
 bl preemptible
 bx lr
preemptible:
 bl far_preemptible
 bl far_nonpreemptible
 bl far_nonpreemptible_alias
 bx lr
// CHECK1: Disassembly of section .text:
// CHECK1-NEXT: sym1:
// CHECK1-NEXT:  2000000:       00 f0 00 d8     bl      #8388608
// CHECK1-NEXT:  2000004:       00 f0 04 d8     bl      #8388616
// CHECK1-NEXT:  2000008:       70 47   bx      lr
// CHECK1: preemptible:
// CHECK1-NEXT:  200000a:       00 f0 07 d8     bl      #8388622
// CHECK1-NEXT:  200000e:       00 f0 0b d8     bl      #8388630
// CHECK1-NEXT:  2000012:       00 f0 09 d8     bl      #8388626
// CHECK1-NEXT:  2000016:       70 47   bx      lr

 .section .text.2, "ax", %progbits
 .balign 0x0800000
 bx lr
// CHECK2: __ThumbV7PILongThunk_elsewhere:
// CHECK2-NEXT:  2800004:       40 f2 20 0c     movw    r12, #32
// CHECK2-NEXT:  2800008:       c0 f2 80 1c     movt    r12, #384
// CHECK2-NEXT:  280000c:       fc 44   add     r12, pc
// CHECK2-NEXT:  280000e:       60 47   bx      r12
// CHECK2: __ThumbV7PILongThunk_preemptible:
// CHECK2-NEXT:  2800010:       40 f2 24 0c     movw    r12, #36
// CHECK2-NEXT:  2800014:       c0 f2 80 1c     movt    r12, #384
// CHECK2-NEXT:  2800018:       fc 44   add     r12, pc
// CHECK2-NEXT:  280001a:       60 47   bx      r12
// CHECK2: __ThumbV7PILongThunk_far_preemptible:
// CHECK2-NEXT:  280001c:       40 f2 28 0c     movw    r12, #40
// CHECK2-NEXT:  2800020:       c0 f2 80 1c     movt    r12, #384
// CHECK2-NEXT:  2800024:       fc 44   add     r12, pc
// CHECK2-NEXT:  2800026:       60 47   bx      r12
// CHECK2: __ThumbV7PILongThunk_far_nonpreemptible:
// CHECK2-NEXT:  2800028:       4f f6 cd 7c     movw    r12, #65485
// CHECK2-NEXT:  280002c:       c0 f2 7f 1c     movt    r12, #383
// CHECK2-NEXT:  2800030:       fc 44   add     r12, pc
// CHECK2-NEXT:  2800032:       60 47   bx      r12

 .section .text.3, "ax", %progbits
.balign 0x2000000
far_preemptible:
far_nonpreemptible:
 bl elsewhere

 .section .text.4, "ax", %progbits
.balign 0x2000000
far_nonpreemptible_alias:
 bl elsewhere

// CHECK3: far_preemptible:
// CHECK3:  4000000:       00 f0 16 e8     blx     #44

// CHECK4: Disassembly of section .plt:
// CHECK4-NEXT: $a:
// CHECK4-NEXT:  4000010:	04 e0 2d e5 	str	lr, [sp, #-4]!
// CHECK4-NEXT:  4000014:	00 e6 8f e2 	add	lr, pc, #0, #12
// CHECK4-NEXT:  4000018:	00 ea 8e e2 	add	lr, lr, #0, #20
// CHECK4-NEXT:  400001c:	ec ff be e5 	ldr	pc, [lr, #4076]!
// CHECK4: $d:
// CHECK4-NEXT:  4000020:	d4 d4 d4 d4 	.word	0xd4d4d4d4
// CHECK4-NEXT:  4000024:	d4 d4 d4 d4 	.word	0xd4d4d4d4
// CHECK4-NEXT:  4000028:	d4 d4 d4 d4 	.word	0xd4d4d4d4
// CHECK4-NEXT:  400002c:	d4 d4 d4 d4 	.word	0xd4d4d4d4
// CHECK4: $a:
// CHECK4-NEXT:  4000030:	00 c6 8f e2 	add	r12, pc, #0, #12
// CHECK4-NEXT:  4000034:	00 ca 8c e2 	add	r12, r12, #0, #20
// CHECK4-NEXT:  4000038:	d4 ff bc e5 	ldr	pc, [r12, #4052]!
// CHECK4: $d:
// CHECK4-NEXT:  400003c:	d4 d4 d4 d4 	.word	0xd4d4d4d4
// CHECK4: $a:
// CHECK4-NEXT:  4000040:	00 c6 8f e2 	add	r12, pc, #0, #12
// CHECK4-NEXT:  4000044:	00 ca 8c e2 	add	r12, r12, #0, #20
// CHECK4-NEXT:  4000048:	c8 ff bc e5 	ldr	pc, [r12, #4040]!
// CHECK4: $d:
// CHECK4-NEXT:  400004c:	d4 d4 d4 d4 	.word	0xd4d4d4d4
// CHECK4: $a:
// CHECK4-NEXT:  4000050:	00 c6 8f e2 	add	r12, pc, #0, #12
// CHECK4-NEXT:  4000054:	00 ca 8c e2 	add	r12, r12, #0, #20
// CHECK4-NEXT:  4000058:	bc ff bc e5 	ldr	pc, [r12, #4028]!
// CHECK4: $d:
// CHECK4-NEXT:  400005c:	d4 d4 d4 d4 	.word	0xd4d4d4d4
