PR 10168
[deliverable/binutils-gdb.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
This page took 0.032192 seconds and 4 git commands to generate.