Upload Tizen:Base source
[external/binutils.git] / gas / testsuite / gas / cris / branch.s
1 ;
2 ; Test that branches work: 8- and 16-bit all insns, relaxing to
3 ; 32-bit, forward and backward.  No need to check the border
4 ; cases for *all* insns.
5 ;
6  .text
7 start_original:
8  nop
9 startm32: ;       start     start2    start3
10  nop
11  .space 32750-(256-21*2+20)-(21*2+10*2+21*4)-12,0
12 startm16:
13  nop
14  ; The size of a bunch of short branches is start2-start = 42,
15  ; so make the threshold be dependent of the size of that block,
16  ; for the next block; half of them will be relaxed.
17  .space 256-21*2-20,0
18 start:
19  nop
20  ba start
21  bcc start
22  bcs start
23  beq start
24  bwf start
25  bext start
26  bext start ; leftover, used to be never-implemented "bir"
27  bge start
28  bgt start
29  bhi start
30  bhs start
31  ble start
32  blo start
33  bls start
34  blt start
35  bmi start
36  bne start
37  bpl start
38  bvc start
39  bvs start
40 start2:
41  nop
42  ba startm16
43  bcc startm16
44  bcs startm16
45  beq startm16
46  bwf startm16
47  bext startm16
48  bext startm16
49  bge startm16
50  bgt startm16
51  bhi startm16
52  bhs startm16
53  ble startm16
54  blo startm16
55  bls startm16
56  blt startm16
57  bmi startm16
58  bne startm16
59  bpl startm16
60  bvc startm16
61  bvs startm16
62 start3:
63 ; Ok, once more to make sure *all* 16-bit variants get ok for
64 ; backward references.
65  nop
66  ba startm16
67  bcc startm16
68  bcs startm16
69  beq startm16
70  bwf startm16
71  bext startm16
72  bext startm16
73  bge startm16
74  bgt startm16
75  bhi startm16
76  bhs startm16
77  ble startm16
78  blo startm16
79  bls startm16
80  blt startm16
81  bmi startm16
82  bne startm16
83  bpl startm16
84  bvc startm16
85  bvs startm16
86 ;
87 ; Now check that dynamically relaxing some of these branches
88 ; from 16-bit to 32-bit works.
89 ;
90 start4:
91  nop
92  ba startm32
93  bcc startm32
94  bcs startm32
95  beq startm32
96  bwf startm32
97  bext startm32
98  bext startm32
99  bge startm32
100  bgt startm32
101  bhi startm32
102  bhs startm32
103  ble startm32
104  blo startm32
105  bls startm32
106  blt startm32
107  bmi startm32
108  bne startm32
109  bpl startm32
110  bvc startm32
111  bvs startm32
112 ;
113 ; Again, so all insns get to be tested for 32-bit relaxing.
114 ;
115 start5:
116  nop
117  ba startm32
118  bcc startm32
119  bcs startm32
120  beq startm32
121  bwf startm32
122  bext startm32
123  bext startm32
124  bge startm32
125  bgt startm32
126  bhi startm32
127  bhs startm32
128  ble startm32
129  blo startm32
130  bls startm32
131  blt startm32
132  bmi startm32
133  bne startm32
134  bpl startm32
135  bvc startm32
136  bvs startm32
137 ;
138 ; Now test forward references.  Symmetrically as above.
139 ;
140 ; All to 32-bit:
141 start6:
142  nop
143  ba endp32
144  bcc endp32
145  bcs endp32
146  beq endp32
147  bwf endp32
148  bext endp32
149  bext endp32
150  bge endp32
151  bgt endp32
152  bhi endp32
153  bhs endp32
154  ble endp32
155  blo endp32
156  bls endp32
157  blt endp32
158  bmi endp32
159  bne endp32
160  bpl endp32
161  bvc endp32
162  bvs endp32
163 ;
164 ; Some get relaxed:
165 ;
166 start7:
167  nop
168  ba endp32
169  bcc endp32
170  bcs endp32
171  beq endp32
172  bwf endp32
173  bext endp32
174  bext endp32
175  bge endp32
176  bgt endp32
177  bhi endp32
178  bhs endp32
179  ble endp32
180  blo endp32
181  bls endp32
182  blt endp32
183  bmi endp32
184  bne endp32
185  bpl endp32
186  bvc endp32
187  bvs endp32
188 ;
189 ; All to 16-bit:
190 ;
191 start8:
192  nop
193  ba endp16
194  bcc endp16
195  bcs endp16
196  beq endp16
197  bwf endp16
198  bext endp16
199  bext endp16
200  bge endp16
201  bgt endp16
202  bhi endp16
203  bhs endp16
204  ble endp16
205  blo endp16
206  bls endp16
207  blt endp16
208  bmi endp16
209  bne endp16
210  bpl endp16
211  bvc endp16
212  bvs endp16
213 ;
214 ; Some relaxing:
215 ;
216 start9:
217  nop
218  ba endp16
219  bcc endp16
220  bcs endp16
221  beq endp16
222  bwf endp16
223  bext endp16
224  bext endp16
225  bge endp16
226  bgt endp16
227  bhi endp16
228  bhs endp16
229  ble endp16
230  blo endp16
231  bls endp16
232  blt endp16
233  bmi endp16
234  bne endp16
235  bpl endp16
236  bvc endp16
237  bvs endp16
238 ;
239 ; And all the short ones, forward.
240 ;
241 start10:
242  ba end
243  bcc end
244  bcs end
245  beq end
246  bwf end
247  bext end
248  bext end
249  bge end
250  bgt end
251  bhi end
252  bhs end
253  ble end
254  blo end
255  bls end
256  blt end
257  bmi end
258  bne end
259  bpl end
260  bvc end
261  bvs end
262  nop
263 end:
264  nop
265  .space 256-21*2-20,0
266 endp16:
267  nop
268  .space 32750-(256-21*2+20)-(21*2+10*2+21*4)-12,0
269 endp32:
270  nop