* gas/cris/*: New tests for CRIS.
[external/binutils.git] / gas / testsuite / gas / cris / unop.s
1 ; @OC@ test
2 ; Generic unary operations supporting all sizes and their various
3 ; addressing modes.
4
5 ; Some fairly big pseudorandom numbers we don't want to compute
6 ; as differences in actual data or code.
7
8  .set const_int_32, 0x1b94452b
9  .set const_int_m32, -3513208907
10  .set two701867, 2701867
11
12 ; Other constants that are not differences
13  .set forty2, 42
14  .set mforty2, -42
15
16  .set three2767, 32767
17  .set six5535, 65535
18
19  .text
20 notstart:
21  .dword 0
22
23 start:
24
25 ;;;;;;;;;;;;;;;;;
26 ;
27 ; r
28  @OC@.b r3
29  @OC@.w r5
30  @OC@.d r10
31
32  @OC@ r7
33  @OC@ r6
34
35 ;;;;;;;;;;;;;;;;;
36 ;
37 ; [r]
38  @OC@.b [r0]
39  @OC@.w [r5]
40  @OC@.d [r10]
41
42  @OC@ [r0]
43  @OC@ [r3]
44
45 ;;;;;;;;;;;;;;;;;
46 ;
47 ; [r+]
48  @OC@.b [r0+]
49  @OC@.w [r5+]
50  @OC@.d [r10+]
51
52  @OC@ [r4+]
53  @OC@ [r1+]
54
55 ;;;;;;;;;;;;;;;;;
56 ;
57 ; [r+X]
58
59 ; [r+r.b]
60
61  @OC@.b [r2+r0.b]
62  @OC@.w [r2+r5.b]
63  @OC@.d [r2+r10.b]
64
65  @OC@ [r11+r13.b]
66  @OC@ [r2+r10.b]
67
68 ; [r+[r].b]
69  @OC@.b [r2+[r0].b]
70  @OC@.w [r2+[r5].b]
71  @OC@.d [r2+[r10].b]
72
73  @OC@ [r12+[r5].b]
74  @OC@ [r13+[r10].b]
75
76 ; [r+[r+].b]
77  @OC@.b [r2+[r0+].b]
78  @OC@.w [r2+[r5+].b]
79  @OC@.d [r2+[r10+].b]
80
81  @OC@ [r2+[r13+].b]
82  @OC@ [r12+[r0+].b]
83
84 ; [r+r.w]
85
86  @OC@.b [r2+r0.w]
87  @OC@.w [r2+r5.w]
88  @OC@.d [r2+r10.w]
89
90  @OC@ [r5+r11.w]
91  @OC@ [r1+r1.w]
92
93 ; [r+[r].w]
94  @OC@.b [r2+[r0].w]
95  @OC@.w [r2+[r5].w]
96  @OC@.d [r2+[r10].w]
97
98  @OC@ [r0+[r0].w]
99  @OC@ [r2+[r7].w]
100
101 ; [r+[r+].w]
102  @OC@.b [r2+[r0+].w]
103  @OC@.w [r2+[r5+].w]
104  @OC@.d [r2+[r10+].w]
105
106  @OC@ [r2+[r3+].w]
107  @OC@ [r7+[r8+].w]
108
109 ; [r+r.d]
110
111  @OC@.b [r2+r0.d]
112  @OC@.w [r2+r5.d]
113  @OC@.d [r2+r10.d]
114
115  @OC@ [r2+r5.d]
116  @OC@ [r3+r10.d]
117
118 ; [r+[r].d]
119  @OC@.b [r2+[r0].d]
120  @OC@.w [r2+[r5].d]
121  @OC@.d [r2+[r10].d]
122
123  @OC@ [r5+[r2].d]
124  @OC@ [r12+[r10].d]
125
126 ; [r+[r+].d]
127  @OC@.b [r2+[r0+].d]
128  @OC@.w [r2+[r5+].d]
129  @OC@.d [r2+[r10+].d]
130
131  @OC@ [r1+[r5+].d]
132  @OC@ [r2+[r10+].d]
133
134 ; [r+const]
135
136 ; Note that I forgot 16-bit offsets and 32-bit offsets here and later.
137 ; Maybe add them later if it feels necessary.
138
139  @OC@.b [r2+0]
140  @OC@.b [r2+1]
141  @OC@.b [r2+127]
142  @OC@.b [r2+128]
143  @OC@.b [r2+-1]
144  @OC@.b [r2+-127]
145  @OC@.b [r2+-128]
146  @OC@.b [r2+255]
147
148  @OC@.b [r2+42]
149  @OC@.b [r2+-42]
150  @OC@.b [r2-42]
151  @OC@.b [r2+forty2]
152  @OC@.b [r2+mforty2]
153  @OC@.b [r2+-forty2]
154  @OC@.b [r2+-mforty2]
155  @OC@.b [r2-forty2]
156  @OC@.b [r2-mforty2]
157  @OC@.b [r2+externalsym]
158
159 ; Note that I missed 32-bit offsets (except -32769) here and later.
160 ; Maybe add them later if it feels necessary.
161
162  @OC@.w [r2+0]
163  @OC@.w [r2+1]
164  @OC@.w [r2+127]
165  @OC@.w [r2+128]
166  @OC@.w [r2+-1]
167  @OC@.w [r2-1]
168  @OC@.w [r2+-127]
169  @OC@.w [r2+-128]
170  @OC@.w [r2+-129]
171  @OC@.w [r2-127]
172  @OC@.w [r2-128]
173  @OC@.w [r2-129]
174  @OC@.w [r2+255]
175  @OC@.w [r2+-255]
176  @OC@.w [r2-255]
177  @OC@.w [r2+256]
178  @OC@.w [r2-256]
179  @OC@.w [r2+-8856]
180  @OC@.w [r2-8856]
181  @OC@.w [r2+8856]
182
183  @OC@.w [r2+42]
184  @OC@.w [r2+-42]
185  @OC@.w [r2-42]
186  @OC@.w [r2+forty2]
187  @OC@.w [r2+mforty2]
188  @OC@.w [r2+-forty2]
189  @OC@.w [r2-forty2]
190  @OC@.w [r2+-mforty2]
191
192  @OC@.w [r2+three2767]
193  @OC@.w [r2+three2767+1]
194  @OC@.w [r2+three2767+2]
195  @OC@.w [r2+-three2767]
196  @OC@.w [r2+-(three2767+1)]
197  @OC@.w [r2+-(three2767+2)]
198  @OC@.w [r2-three2767]
199  @OC@.w [r2-(three2767+1)]
200  @OC@.w [r2-(three2767+2)]
201  @OC@.w [r2+six5535]
202  @OC@.w [r2+externalsym]
203
204  @OC@.d [r2+0]
205  @OC@.d [r2+1]
206  @OC@.d [r2+127]
207  @OC@.d [r2+128]
208  @OC@.d [r2+-1]
209  @OC@.d [r2-1]
210  @OC@.d [r2+-127]
211  @OC@.d [r2+-128]
212  @OC@.d [r2-127]
213  @OC@.d [r2-128]
214  @OC@.d [r2+255]
215  @OC@.d [r2+-255]
216  @OC@.d [r2-255]
217  @OC@.d [r2+256]
218  @OC@.d [r2-256]
219  @OC@.d [r2-8856]
220  @OC@.d [r2+-256]
221  @OC@.d [r2+-8856]
222  @OC@.d [r2+8856]
223
224  @OC@.d [r2+2781868]
225  @OC@.d [r2+-2701867]
226
227  @OC@.d [r2+0x9ec0ceac]
228  @OC@.d [r2+-0x7ec0cead]
229  @OC@.d [r2-0x7ec0cead]
230  @OC@.d [r2+const_int_m32]
231  @OC@.d [r2+const_int_32]
232
233  @OC@.d [r2+42]
234  @OC@.d [r2-42]
235  @OC@.d [r2+-42]
236  @OC@.d [r2+forty2]
237  @OC@.d [r2+mforty2]
238  @OC@.d [r2-forty2]
239  @OC@.d [r2-mforty2]
240  @OC@.d [r2+-forty2]
241  @OC@.d [r2+-mforty2]
242
243  @OC@.d [r2+three2767]
244  @OC@.d [r2+three2767+1]
245  @OC@.d [r2+three2767+2]
246  @OC@.d [r2+-three2767]
247  @OC@.d [r2+-(three2767+1)]
248  @OC@.d [r2+-(three2767+2)]
249  @OC@.d [r2-three2767]
250  @OC@.d [r2-(three2767+1)]
251  @OC@.d [r2-(three2767+2)]
252  @OC@.d [r2+six5535]
253  @OC@.d [r2+six5535+1]
254  @OC@.d [r2+two701867]
255  @OC@.d [r2+-two701867]
256  @OC@.d [r2-two701867]
257
258  @OC@.d [r2+externalsym]
259
260  @OC@ [r2+0]
261  @OC@ [r2+1]
262  @OC@ [r2+127]
263  @OC@ [r2+128]
264  @OC@ [r2+-1]
265  @OC@ [r2-1]
266  @OC@ [r2+-127]
267  @OC@ [r2+-128]
268  @OC@ [r2-127]
269  @OC@ [r2-128]
270  @OC@ [r2+255]
271  @OC@ [r2+-255]
272  @OC@ [r2-255]
273  @OC@ [r2+256]
274  @OC@ [r2-256]
275  @OC@ [r2-8856]
276  @OC@ [r2+-256]
277  @OC@ [r2+-8856]
278  @OC@ [r2+8856]
279
280  @OC@ [r2+2781868]
281  @OC@ [r2+-2701867]
282
283  @OC@ [r2+0x9ec0ceac]
284  @OC@ [r2+-0x7ec0cead]
285  @OC@ [r2-0x7ec0cead]
286  @OC@ [r2+const_int_m32]
287  @OC@ [r2+const_int_32]
288
289  @OC@ [r2+42]
290  @OC@ [r2-42]
291  @OC@ [r2+-42]
292  @OC@ [r2+forty2]
293  @OC@ [r2+mforty2]
294  @OC@ [r2-forty2]
295  @OC@ [r2-mforty2]
296  @OC@ [r2+-forty2]
297  @OC@ [r2+-mforty2]
298
299  @OC@ [r2+three2767]
300  @OC@ [r2+three2767+1]
301  @OC@ [r2+three2767+2]
302  @OC@ [r2+-three2767]
303  @OC@ [r2+-(three2767+1)]
304  @OC@ [r2+-(three2767+2)]
305  @OC@ [r2-three2767]
306  @OC@ [r2-(three2767+1)]
307  @OC@ [r2-(three2767+2)]
308  @OC@ [r2+six5535]
309  @OC@ [r2+six5535+1]
310  @OC@ [r2+two701867]
311  @OC@ [r2+-two701867]
312  @OC@ [r2-two701867]
313
314  @OC@ [r2+externalsym]
315
316  @OC@ [r2+0]
317  @OC@ [r2+1]
318  @OC@ [r2+127]
319  @OC@ [r2+128]
320  @OC@ [r2+-1]
321  @OC@ [r2-1]
322  @OC@ [r2+-127]
323  @OC@ [r2+-128]
324  @OC@ [r2-127]
325  @OC@ [r2-128]
326  @OC@ [r2+255]
327  @OC@ [r2+-255]
328  @OC@ [r2-255]
329  @OC@ [r2+256]
330  @OC@ [r2-256]
331  @OC@ [r2-8856]
332  @OC@ [r2+-256]
333  @OC@ [r2+-8856]
334  @OC@ [r2+8856]
335
336  @OC@ [r2+2781868]
337  @OC@ [r2+-2701867]
338
339  @OC@ [r2+0x9ec0ceac]
340  @OC@ [r2+-0x7ec0cead]
341  @OC@ [r2-0x7ec0cead]
342  @OC@ [r2+const_int_m32]
343  @OC@ [r2+const_int_32]
344
345  @OC@ [r2+42]
346  @OC@ [r2-42]
347  @OC@ [r2+-42]
348  @OC@ [r2+forty2]
349  @OC@ [r2+mforty2]
350  @OC@ [r2-forty2]
351  @OC@ [r2-mforty2]
352  @OC@ [r2+-forty2]
353  @OC@ [r2+-mforty2]
354
355  @OC@ [r2+three2767]
356  @OC@ [r2+three2767+1]
357  @OC@ [r2+three2767+2]
358  @OC@ [r2+-three2767]
359  @OC@ [r2+-(three2767+1)]
360  @OC@ [r2+-(three2767+2)]
361  @OC@ [r2-three2767]
362  @OC@ [r2-(three2767+1)]
363  @OC@ [r2-(three2767+2)]
364  @OC@ [r2+six5535]
365  @OC@ [r2+six5535+1]
366  @OC@ [r2+two701867]
367  @OC@ [r2+-two701867]
368  @OC@ [r2-two701867]
369
370  @OC@ [r2+externalsym]
371
372 ;;;;;;;;;;;;;;;;;
373 ;
374 ; [r=r+X],r
375
376 ; [r=r+r.b],r
377
378  @OC@.b [r12=r2+r0.b]
379  @OC@.w [r12=r2+r5.b]
380  @OC@.d [r12=r2+r10.b]
381
382  @OC@ [r1=r2+r3.b]
383  @OC@ [r12=r2+r10.b]
384
385 ; [r=r+[r].b],r
386  @OC@.b [r12=r2+[r0].b]
387  @OC@.w [r12=r2+[r5].b]
388  @OC@.d [r12=r2+[r10].b]
389
390  @OC@ [r0=r2+[r5].b]
391  @OC@ [r3=r2+[r10].b]
392
393 ; [r=r+[r+].b],r
394  @OC@.b [r12=r2+[r0+].b]
395  @OC@.w [r12=r2+[r5+].b]
396  @OC@.d [r12=r2+[r10+].b]
397
398  @OC@.w [r12=r2+[r5+].b]
399
400  @OC@.d [r12=r2+[r10+].b]
401
402  @OC@ [r5=r2+[r4+].b]
403  @OC@ [r2=r4+[r7+].b]
404
405 ; [r=r+r.w],r
406
407  @OC@.b [r12=r2+r0.w]
408  @OC@.w [r12=r2+r5.w]
409  @OC@.d [r12=r2+r10.w]
410
411  @OC@ [r12=r12+r5.w]
412  @OC@ [r1=r3+r10.w]
413
414 ; [r=r+[r].w],r
415  @OC@.b [r12=r2+[r0].w]
416  @OC@.w [r12=r2+[r5].w]
417  @OC@.d [r12=r2+[r10].w]
418
419  @OC@ [r12=r2+[r5].w]
420  @OC@ [r12=r7+[r10].w]
421
422 ; [r=r+[r+].w],r
423  @OC@.b [r12=r2+[r0+].w]
424  @OC@.w [r12=r2+[r5+].w]
425  @OC@.d [r12=r2+[r10+].w]
426
427  @OC@.w [r12=r2+[r5+].w]
428
429  @OC@.d [r12=r2+[r10+].w]
430
431  @OC@ [r12=r6+[r7+].w]
432  @OC@ [r12=r3+[r1+].w]
433
434 ; [r=r+r.d],r
435
436  @OC@.b [r12=r2+r0.d]
437  @OC@.w [r12=r2+r5.d]
438  @OC@.d [r12=r2+r10.d]
439
440  @OC@ [r4=r2+r5.d]
441  @OC@ [r12=r2+r10.d]
442
443 ; [r=r+[r].d],r
444  @OC@.b [r12=r2+[r0].d]
445  @OC@.w [r12=r2+[r5].d]
446  @OC@.d [r12=r2+[r10].d]
447
448  @OC@ [r12=r3+[r5].d]
449  @OC@ [r12=r4+[r10].d]
450
451 ; [r=r+[r+].d],r
452  @OC@.b [r12=r2+[r0+].d]
453  @OC@.w [r12=r2+[r5+].d]
454  @OC@.d [r12=r2+[r10+].d]
455
456  @OC@.w [r12=r2+[r5+].d]
457
458  @OC@.d [r12=r2+[r10+].d]
459
460  @OC@ [r12=r8+[r5+].d]
461  @OC@ [r12=r9+[r10+].d]
462
463 ; [r=r+const],r
464  @OC@.b [r12=r2+0]
465  @OC@.b [r12=r2+1]
466  @OC@.b [r12=r2+127]
467  @OC@.b [r12=r2+128]
468  @OC@.b [r12=r2+-1]
469  @OC@.b [r12=r2+-127]
470  @OC@.b [r12=r2+-128]
471  @OC@.b [r12=r2+255]
472
473  @OC@.b [r12=r2+42]
474  @OC@.b [r12=r2+-42]
475  @OC@.b [r12=r2-42]
476  @OC@.b [r12=r2+forty2]
477  @OC@.b [r12=r2+mforty2]
478  @OC@.b [r12=r2+-forty2]
479  @OC@.b [r12=r2+-mforty2]
480  @OC@.b [r12=r2-forty2]
481  @OC@.b [r12=r2-mforty2]
482  @OC@.b [r12=r2+externalsym]
483
484  @OC@.w [r12=r2+0]
485  @OC@.w [r12=r2+1]
486  @OC@.w [r12=r2+127]
487  @OC@.w [r12=r2+128]
488  @OC@.w [r12=r2+-1]
489  @OC@.w [r12=r2-1]
490  @OC@.w [r12=r2+-127]
491  @OC@.w [r12=r2+-128]
492  @OC@.w [r12=r2+-129]
493  @OC@.w [r12=r2-127]
494  @OC@.w [r12=r2-128]
495  @OC@.w [r12=r2-129]
496  @OC@.w [r12=r2+255]
497  @OC@.w [r12=r2+-255]
498  @OC@.w [r12=r2-255]
499  @OC@.w [r12=r2+256]
500  @OC@.w [r12=r2-256]
501  @OC@.w [r12=r2+-8856]
502  @OC@.w [r12=r2-8856]
503  @OC@.w [r12=r2+8856]
504
505  @OC@.w [r12=r2+42]
506  @OC@.w [r12=r2+-42]
507  @OC@.w [r12=r2-42]
508  @OC@.w [r12=r2+forty2]
509  @OC@.w [r12=r2+mforty2]
510  @OC@.w [r12=r2+-forty2]
511  @OC@.w [r12=r2-forty2]
512  @OC@.w [r12=r2+-mforty2]
513
514  @OC@.w [r12=r2+three2767]
515  @OC@.w [r12=r2+three2767+1]
516  @OC@.w [r12=r2+three2767+2]
517  @OC@.w [r12=r2+-three2767]
518  @OC@.w [r12=r2+-(three2767+1)]
519  @OC@.w [r12=r2+-(three2767+2)]
520  @OC@.w [r12=r2-three2767]
521  @OC@.w [r12=r2-(three2767+1)]
522  @OC@.w [r12=r2-(three2767+2)]
523  @OC@.w [r12=r2+six5535]
524  @OC@.w [r12=r2+externalsym]
525
526  @OC@.d [r12=r2+0]
527  @OC@.d [r12=r2+1]
528  @OC@.d [r12=r2+127]
529  @OC@.d [r12=r2+128]
530  @OC@.d [r12=r2+-1]
531  @OC@.d [r12=r2-1]
532  @OC@.d [r12=r2+-127]
533  @OC@.d [r12=r2+-128]
534  @OC@.d [r12=r2-127]
535  @OC@.d [r12=r2-128]
536  @OC@.d [r12=r2+255]
537  @OC@.d [r12=r2+-255]
538  @OC@.d [r12=r2-255]
539  @OC@.d [r12=r2+256]
540  @OC@.d [r12=r2-256]
541  @OC@.d [r12=r2-8856]
542  @OC@.d [r12=r2+-256]
543  @OC@.d [r12=r2+-8856]
544  @OC@.d [r12=r2+8856]
545
546  @OC@.d [r12=r2+2781868]
547  @OC@.d [r12=r2+-2701867]
548
549  @OC@.d [r12=r2+0x9ec0ceac]
550  @OC@.d [r12=r2+-0x7ec0cead]
551  @OC@.d [r12=r2-0x7ec0cead]
552  @OC@.d [r12=r2+const_int_m32]
553  @OC@.d [r12=r2+const_int_32]
554
555  @OC@.d [r12=r2+42]
556  @OC@.d [r12=r2-42]
557  @OC@.d [r12=r2+-42]
558  @OC@.d [r12=r2+forty2]
559  @OC@.d [r12=r2+mforty2]
560  @OC@.d [r12=r2-forty2]
561  @OC@.d [r12=r2-mforty2]
562  @OC@.d [r12=r2+-forty2]
563  @OC@.d [r12=r2+-mforty2]
564
565  @OC@.d [r12=r2+three2767]
566  @OC@.d [r12=r2+three2767+1]
567  @OC@.d [r12=r2+three2767+2]
568  @OC@.d [r12=r2+-three2767]
569  @OC@.d [r12=r2+-(three2767+1)]
570  @OC@.d [r12=r2+-(three2767+2)]
571  @OC@.d [r12=r2-three2767]
572  @OC@.d [r12=r2-(three2767+1)]
573  @OC@.d [r12=r2-(three2767+2)]
574  @OC@.d [r12=r2+six5535]
575  @OC@.d [r12=r2+six5535+1]
576  @OC@.d [r12=r2+two701867]
577  @OC@.d [r12=r2+-two701867]
578  @OC@.d [r12=r2-two701867]
579
580  @OC@.d [r12=r2+externalsym]
581
582  @OC@ [r12=r2+0]
583  @OC@ [r12=r2+1]
584  @OC@ [r12=r2+127]
585  @OC@ [r12=r2+128]
586  @OC@ [r12=r2+-1]
587  @OC@ [r12=r2-1]
588  @OC@ [r12=r2+-127]
589  @OC@ [r12=r2+-128]
590  @OC@ [r12=r2-127]
591  @OC@ [r12=r2-128]
592  @OC@ [r12=r2+255]
593  @OC@ [r12=r2+-255]
594  @OC@ [r12=r2-255]
595  @OC@ [r12=r2+256]
596  @OC@ [r12=r2-256]
597  @OC@ [r12=r2-8856]
598  @OC@ [r12=r2+-256]
599  @OC@ [r12=r2+-8856]
600  @OC@ [r12=r2+8856]
601
602  @OC@ [r12=r2+2781868]
603  @OC@ [r12=r2+-2701867]
604
605  @OC@ [r12=r2+0x9ec0ceac]
606  @OC@ [r12=r2+-0x7ec0cead]
607  @OC@ [r12=r2-0x7ec0cead]
608  @OC@ [r12=r2+const_int_m32]
609  @OC@ [r12=r2+const_int_32]
610
611  @OC@ [r12=r2+42]
612  @OC@ [r12=r2-42]
613  @OC@ [r12=r2+-42]
614  @OC@ [r12=r2+forty2]
615  @OC@ [r12=r2+mforty2]
616  @OC@ [r12=r2-forty2]
617  @OC@ [r12=r2-mforty2]
618  @OC@ [r12=r2+-forty2]
619  @OC@ [r12=r2+-mforty2]
620
621  @OC@ [r12=r2+three2767]
622  @OC@ [r12=r2+three2767+1]
623  @OC@ [r12=r2+three2767+2]
624  @OC@ [r12=r2+-three2767]
625  @OC@ [r12=r2+-(three2767+1)]
626  @OC@ [r12=r2+-(three2767+2)]
627  @OC@ [r12=r2-three2767]
628  @OC@ [r12=r2-(three2767+1)]
629  @OC@ [r12=r2-(three2767+2)]
630  @OC@ [r12=r2+six5535]
631  @OC@ [r12=r2+six5535+1]
632  @OC@ [r12=r2+two701867]
633  @OC@ [r12=r2+-two701867]
634  @OC@ [r12=r2-two701867]
635
636  @OC@ [r12=r2+externalsym]
637
638 ;;;;;;;;;;;;;;;;;;;
639 ;
640 ; [[r(+)]],r
641
642  @OC@.b [[r3]]
643  @OC@.w [[r2]]
644  @OC@.d [[r3]]
645
646  @OC@ [[r2]]
647  @OC@ [[r3]]
648
649  @OC@.b [[r9+]]
650  @OC@.w [[r3+]]
651  @OC@.d [[r1+]]
652
653  @OC@ [[r3+]]
654  @OC@ [[r1+]]
655
656  @OC@.b [externalsym]
657  @OC@.w [externalsym]
658  @OC@.d [externalsym]
659
660  @OC@ [externalsym]
661
662  @OC@.b [notstart]
663  @OC@.w [notstart]
664  @OC@.d [notstart]
665
666  @OC@ [notstart]
667
668 end: