Upload Tizen:Base source
[external/binutils.git] / gas / testsuite / gas / arm / arm-it-auto.s
1         .syntax unified
2         .arch armv7
3         .thumb
4 main:
5
6 @These branches are to see the labels in the generated file
7         bl .L888
8         bl .L111
9         bl .L777
10
11 @No IT block here:
12         bne .L4
13
14 @The following groups should be an IT block each.
15 @it ne
16         addne.n   pc, r0
17
18 @it ne
19         tbbne [r0, r1]
20
21 @it eq
22         tbheq [r1, r0]
23
24 @The following group should be left as is:
25         itet    eq
26 .L111:  moveq   r0, #2
27         movne   r0, #3
28         moveq   r0, #4
29
30 @Same, reverted condition:
31         itet    ne
32         movne   r0, #2
33         moveq   r0, #3
34         movne   r0, #4
35
36
37 @Two groups shall be generated, due to the label:
38     movne   r0, #1
39 @ second group, the label should be at the IT insn
40 .L777:  moveq   r0, #2
41         ldrne   pc, [r1]
42
43 @it ne
44         blne .L4
45     
46 @it lt
47         bllt .L9
48
49 @itett ne
50 .L888:  movne   r0, #45
51         moveq   r0, #5
52         movne   r0, #6
53         addne.n pc, r0
54
55 @iteet eq
56         moveq   r0, #7
57         movne   r0, #8
58         movne   r0, #3
59         moveq   r0, #4
60
61 @itete eq
62         moveq   r0, #5
63         movne   r0, #6
64         moveq   r0, #7
65         movne   r0, #8
66
67 @ite eq - this group finishes due to the mov.n pc, rn
68         moveq   r0, #5
69         movne   r0, #6
70         mov.n   pc, r0
71
72 @itete eq
73         moveq   r0, #7
74         movne   r0, #8
75         moveq   r0, #5
76         movne   r0, #6
77
78 @this shall not generate an IT block
79         add.n   pc, r0
80
81 @ite eq - testing condition change (eq -> gt)
82         moveq   r0, #7
83         movne   r0, #8
84
85 @ite gt (group shall finish due to another condition change)
86         movgt   r0, #9
87         movle   r0, #10
88
89 @it eq
90         moveq   r0, #11
91
92 @it le
93         movle   r0, #12
94
95 @it ne
96         movne   r0, #13
97
98         bl      f
99 .L4:
100         pop     {r4, pc}
101 .L9:
102         bl      f
103
104 @Only the movlt shall be enclosed in the IT block
105 movlt r0, #0
106 muls r0, r0, r1
107
108 @Same here:
109 movlt r0, #0
110 muls r0, r0, r1