Arm: Fix performance issue with thumb-2 tailcalls
[external/binutils.git] / ld / testsuite / ld-arm / farcall-mixed-app2.d
1
2 tmpdir/farcall-mixed-app2:     file format elf32-(little|big)arm
3 architecture: arm.*, flags 0x00000112:
4 EXEC_P, HAS_SYMS, D_PAGED
5 start address 0x.*
6
7 Disassembly of section .plt:
8
9 .* <.*>:
10  .*:    e52de004        push    {lr}            ; \(str lr, \[sp, #-4\]!\)
11  .*:    e59fe004        ldr     lr, \[pc, #4\]  ; .* <.*>
12  .*:    e08fe00e        add     lr, pc, lr
13  .*:    e5bef008        ldr     pc, \[lr, #8\]!
14  .*:    .*
15 .* <lib_func2@plt>:
16  .*:    4778            bx      pc
17  .*:    e7fd            b.n     .+ <.+>
18  .*:    e28fc6.*        add     ip, pc, #.*
19  .*:    e28cca.*        add     ip, ip, #.*     ; 0x.*
20  .*:    e5bcf.*         ldr     pc, \[ip, #.*\]!.*
21 .* <lib_func1@plt>:
22  .*:    e28fc6.*        add     ip, pc, #.*
23  .*:    e28cca.*        add     ip, ip, #.*     ; 0x.*
24  .*:    e5bcf.*         ldr     pc, \[ip, #.*\]!.*
25
26 Disassembly of section .text:
27
28 .* <_start>:
29  .*:    e1a0c00d        mov     ip, sp
30  .*:    e92dd800        push    {fp, ip, lr, pc}
31  .*:    eb000008        bl      .* <__app_func_veneer>
32  .*:    ebfffff6        bl      .* <lib_func1@plt>
33  .*:    ebfffff2        bl      .* <lib_func2@plt\+0x4>
34  .*:    e89d6800        ldm     sp, {fp, sp, lr}
35  .*:    e12fff1e        bx      lr
36  .*:    e1a00000        nop                     ; \(mov r0, r0\)
37
38 .* <app_tfunc_close>:
39  .*:    b500            push    {lr}
40  .*:    f7ff efde       blx     81e0 <lib_func2@plt\+0x4>
41  .*:    bd00            pop     {pc}
42  .*:    4770            bx      lr
43  .*:    46c0            nop                     ; \(mov r8, r8\)
44 #...
45
46 .* <__app_func_veneer>:
47  .*:    e51ff004        ldr     pc, \[pc, #-4\] ; 8234 <__app_func_veneer\+0x4>
48  .*:    02100000        .word   0x02100000
49
50 Disassembly of section .mid_thumb:
51
52 .* <mid_tfunc>:
53 #...
54  .*:    f400 9000       b.w     .* <lib_func2@plt>
55  .*:    f000 b800       b.w     .* <__lib_func2_from_thumb>
56
57 .* <__lib_func2_from_thumb>:
58  .*:    4778            bx      pc
59  .*:    e7fd            b.n     .+ <.+>
60  .*:    e51ff004        ldr     pc, \[pc, #-4\] ; 10081e8 <__lib_func2_from_thumb\+0x8>
61  .*:    000081e0        .word   0x000081e0
62  .*:    00000000        .word   0x00000000
63
64 Disassembly of section .far_arm:
65
66 .* <app_func>:
67  .*:    e1a0c00d        mov     ip, sp
68  .*:    e92dd800        push    {fp, ip, lr, pc}
69  .*:    eb000006        bl      .* <__lib_func1_veneer>
70  .*:    eb000007        bl      .* <__lib_func2_veneer>
71  .*:    e89d6800        ldm     sp, {fp, sp, lr}
72  .*:    e12fff1e        bx      lr
73  .*:    e1a00000        nop                     ; \(mov r0, r0\)
74  .*:    e1a00000        nop                     ; \(mov r0, r0\)
75
76 .* <app_func2>:
77  .*:    e12fff1e        bx      lr
78 #...
79
80 .* <__lib_func1_veneer>:
81  .*:    e51ff004        ldr     pc, \[pc, #-4\] ; .* <__lib_func1_veneer\+0x4>
82  .*:    000081ec        .word   0x000081ec
83 .* <__lib_func2_veneer>:
84  .*:    e51ff004        ldr     pc, \[pc, #-4\] ; .* <__lib_func2_veneer\+0x4>
85  .*:    000081e0        .word   0x000081e0
86
87 Disassembly of section .far_thumb:
88
89 .* <app_tfunc>:
90  .*:    b500            push    {lr}
91  .*:    f000 e806       blx     .* <__lib_func2_from_thumb>
92  .*:    bd00            pop     {pc}
93  .*:    4770            bx      lr
94  .*:    46c0            nop                     ; \(mov r8, r8\)
95 #...
96
97 .* <__lib_func2_from_thumb>:
98  .*:    e51ff004        ldr     pc, \[pc, #-4\] ; 2200014 <__lib_func2_from_thumb\+0x4>
99  .*:    000081e0        .word   0x000081e0