Upload Tizen:Base source
[external/binutils.git] / ld / testsuite / ld-arm / thumb2-bl-blx-interwork.s
1         .arch armv7-a
2         .global _start
3         .syntax unified
4         .text
5         .thumb
6
7         .macro do_calls
8         @ The following four instructions are accepted by gas, but generate
9         @ meaningless code.
10         @bl.w arm0
11         @bl.w arm4
12         @nop
13         @bl.w arm0
14         @bl.w arm4
15         @nop
16         blx.w arm0
17         blx.w arm4
18         nop
19         blx.w arm0
20         blx.w arm4
21         nop
22         bl.w thumb0
23         bl.w thumb2
24         bl.w thumb4
25         bl.w thumb6
26         nop
27         bl.w thumb0
28         bl.w thumb2
29         bl.w thumb4
30         bl.w thumb6
31         nop
32         @ These eight are all accepted by gas, but generate bad code.
33         @blx.w thumb0
34         @blx.w thumb2
35         @blx.w thumb4
36         @blx.w thumb6
37         @nop
38         @blx.w thumb0
39         @blx.w thumb2
40         @blx.w thumb4
41         @blx.w thumb6
42         .endm
43
44         .thumb_func
45         .align 3
46 _start:
47         do_calls
48
49         .arm
50         .align 3
51 arm0:
52         bx lr
53
54         .align 3
55         nop
56 arm4:
57         bx lr
58
59         .thumb
60         .thumb_func
61         .align 3
62 thumb0:
63         bx lr
64
65         .thumb_func
66         .align 3
67         nop
68 thumb2:
69         bx lr
70
71         .thumb_func
72         .align 3
73         nop
74         nop
75 thumb4:
76         bx lr
77
78         .thumb_func
79         .align 3
80         nop
81         nop
82         nop
83 thumb6:
84         bx lr
85
86 backwards:
87         do_calls