]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gas/testsuite/gas/m32r/m32rx.s
* config/sh/tm-sh.h (BELIEVE_PCC_PROMOTION): Define, so that
[thirdparty/binutils-gdb.git] / gas / testsuite / gas / m32r / m32rx.s
1 # Test new instructions
2 branchpoint:
3
4 .text
5 .global bcl
6 bcl:
7 bcl branchpoint
8
9 .text
10 .global bncl
11 bncl:
12 bncl branchpoint
13
14 .text
15 .global cmpz
16 cmpz:
17 cmpz fp
18
19 .text
20 .global cmpeq
21 cmpeq:
22 cmpeq fp, fp
23
24 .text
25 .global maclh1
26 maclh1:
27 maclh1 fp, fp
28
29 .text
30 .global macsl0
31 msblo:
32 msblo fp, fp
33
34 .text
35 .global mulwu1
36 mulwu1:
37 mulwu1 fp, fp
38
39 .text
40 .global macwu1
41 macwu1:
42 macwu1 fp, fp
43
44 .text
45 .global sadd
46 sadd:
47 sadd
48
49 .text
50 .global satb
51 satb:
52 satb fp, fp
53
54
55 .text
56 .global mulhi
57 mulhi:
58 mulhi fp, fp, a1
59
60 .text
61 .global mullo
62 mullo:
63 mullo fp, fp, a0
64
65 .text
66 .global divh
67 divh:
68 divh fp, fp
69
70 .text
71 .global machi
72 machi:
73 machi fp, fp, a1
74
75 .text
76 .global maclo
77 maclo:
78 maclo fp, fp, a0
79
80 .text
81 .global mvfachi
82 mvfachi:
83 mvfachi fp, a1
84
85 .text
86 .global mvfacmi
87 mvfacmi:
88 mvfacmi fp, a1
89
90 .text
91 .global mvfaclo
92 mvfaclo:
93 mvfaclo fp, a1
94
95 .text
96 .global mvtachi
97 mvtachi:
98 mvtachi fp, a1
99
100 .text
101 .global mvtaclo
102 mvtaclo:
103 mvtaclo fp, a0
104
105 .text
106 .global rac
107 rac:
108 rac a1
109
110 .text
111 .global rac_ds
112 rac_ds:
113 rac a1, a0
114
115 .text
116 .global rac_dsi
117 rac_dsi:
118 rac a0, a1, #1
119
120 .text
121 .global rach
122 rach:
123 rach a1
124
125 .text
126 .global rach_ds
127 rach_ds:
128 rach a0, a1
129
130 .text
131 .global rach_dsi
132 rach_dsi:
133 rach a1, a0, #2
134
135 # Test explicitly parallel and implicitly parallel instructions
136 # Including apparent instruction sequence reordering.
137 .text
138 .global bc__add
139 bc__add:
140 bc bcl || add fp, fp
141 bc bcl
142 add fp, fp
143
144 .text
145 .global bcl__addi
146 bcl__addi:
147 bcl bcl || addi fp, #77
148 addi fp, #77
149 bcl bcl
150
151 .text
152 .global bl__addv
153 bl__addv:
154 bl bcl || addv fp, fp
155 addv fp, fp
156 bl bcl
157
158 .text
159 .global bnc__addx
160 bnc__addx:
161 bnc bcl || addx fp, fp
162 bnc bcl
163 addx fp, fp
164
165 .text
166 .global bncl__and
167 bncl__and:
168 bncl bcl || and fp, fp
169 bncl bcl
170 and fp, fp
171
172 .text
173 .global bra__cmp
174 bra__cmp:
175 bra bcl || cmp fp, fp
176 cmp fp, fp
177 bra bcl
178
179 .text
180 .global jl__cmpeq
181 jl__cmpeq:
182 jl fp || cmpeq fp, fp
183 cmpeq fp, fp
184 jl fp
185
186 .text
187 .global jmp__cmpu
188 jmp__cmpu:
189 jmp fp || cmpu fp, fp
190 cmpu fp, fp
191 jmp fp
192
193 .text
194 .global ld__cmpz
195 ld__cmpz:
196 ld fp, @fp || cmpz r1
197 cmpz r1
198 ld fp, @fp
199
200 .text
201 .global ld__ldi
202 ld__ldi:
203 ld fp, @r1+ || ldi r2, #77
204 ld fp, @r1+
205 ldi r2, #77
206
207 .text
208 .global ldb__mv
209 ldb__mv:
210 ldb fp, @fp || mv r2, fp
211 ldb fp, @fp
212 mv r2, fp
213
214 .text
215 .global ldh__neg
216 ldh__neg:
217 ldh fp, @fp || neg r2, fp
218 ldh fp, @fp
219 neg r2, fp
220
221 .text
222 .global ldub__nop
223 ldub__nop:
224 ldub fp, @fp || nop
225 ldub fp, @fp
226 nop
227
228 .text
229 .global lduh__not
230 lduh__not:
231 lduh fp, @fp || not r2, fp
232 lduh fp, @fp
233 not r2, fp
234
235 .text
236 .global lock__or
237 lock__or:
238 lock fp, @fp || or r2, fp
239 lock fp, @fp
240 or r2, fp
241
242 .text
243 .global mvfc__sub
244 mvfc__sub:
245 mvfc fp, cr1 || sub r2, fp
246 mvfc fp, cr1
247 sub r2, fp
248
249 .text
250 .global mvtc__subv
251 mvtc__subv:
252 mvtc fp, cr2 || subv r2, fp
253 mvtc fp, cr2
254 subv r2, fp
255
256 .text
257 .global rte__subx
258 rte__subx:
259 rte || sub r2, fp
260 rte
261 subx r2, fp
262
263 .text
264 .global sll__xor
265 sll__xor:
266 sll fp, r1 || xor r2, fp
267 sll fp, r1
268 xor r2, fp
269
270 .text
271 .global slli__machi
272 slli__machi:
273 slli fp, #22 || machi r2, fp
274 slli fp, #22
275 machi r2, fp
276
277 .text
278 .global sra__maclh1
279 sra__maclh1:
280 sra fp, fp || maclh1 r2, fp
281 sra fp, fp
282 maclh1 r2, fp
283
284 .text
285 .global srai__maclo
286 srai__maclo:
287 srai fp, #22 || maclo r2, fp
288 srai fp, #22
289 maclo r2, fp
290
291 .text
292 .global srl__macwhi
293 srl__macwhi:
294 srl fp, fp || macwhi r2, fp
295 srl fp, fp
296 macwhi r2, fp
297
298 .text
299 .global srli__macwlo
300 srli__macwlo:
301 srli fp, #22 || macwlo r2, fp
302 srli fp, #22
303 macwlo r2, fp
304
305 .text
306 .global st__macwu1
307 st__macwu1:
308 st fp, @fp || macwu1 r2, fp
309 st fp, @fp
310 macwu1 r2, fp
311
312 .text
313 .global st__msblo
314 st__msblo:
315 st fp, @+fp || msblo r2, fp
316 st fp, @+fp
317 msblo r2, fp
318
319 .text
320 .global st__mul
321 st__mul:
322 st fp, @-fp || mul r2, fp
323 st fp, @-fp
324 mul r2, fp
325
326 .text
327 .global stb__mulhi
328 stb__mulhi:
329 stb fp, @fp || mulhi r2, fp
330 stb fp, @fp
331 mulhi r2, fp
332
333 .text
334 .global sth__mullo
335 sth__mullo:
336 sth fp, @fp || mullo r2, fp
337 sth fp, @fp
338 mullo r2, fp
339
340 .text
341 .global trap__mulwhi
342 trap__mulwhi:
343 trap #2 || mulwhi r2, fp
344 trap #2
345 mulwhi r2, fp
346
347 .text
348 .global unlock__mulwlo
349 unlock__mulwlo:
350 unlock fp, @fp || mulwlo r2, fp
351 unlock fp, @fp
352 mulwlo r2, fp
353
354 .text
355 .global add__mulwu1
356 add__mulwu1:
357 add fp, fp || mulwu1 r2, fp
358 add fp, fp
359 mulwu1 r2, fp
360
361 .text
362 .global addi__mvfachi
363 addi__mvfachi:
364 addi fp, #77 || mvfachi r2, a0
365 addi fp, #77
366 mvfachi r2, a0
367
368 .text
369 .global addv__mvfaclo
370 addv__mvfaclo:
371 addv fp, fp || mvfaclo r2, a1
372 addv fp, fp
373 mvfaclo r2, a1
374
375 .text
376 .global addx__mvfacmi
377 addx__mvfacmi:
378 addx fp, fp || mvfacmi r2, a0
379 addx fp, fp
380 mvfacmi r2, a0
381
382 .text
383 .global and__mvtachi
384 and__mvtachi:
385 and fp, fp || mvtachi r2, a0
386 and fp, fp
387 mvtachi r2, a0
388
389 .text
390 .global cmp__mvtaclo
391 cmp__mvtaclo:
392 cmp fp, fp || mvtaclo r2, a0
393 cmp fp, fp
394 mvtaclo r2, a0
395
396 .text
397 .global cmpeq__rac
398 cmpeq__rac:
399 cmpeq fp, fp || rac a1
400 cmpeq fp, fp
401 rac a1
402
403 .text
404 .global cmpu__rach
405 cmpu__rach:
406 cmpu fp, fp || rach a0, a1
407 cmpu fp, fp
408 rach a1, a1, #1
409
410 .text
411 .global cmpz__sadd
412 cmpz__sadd:
413 cmpz fp || sadd
414 cmpz fp
415 sadd
416
417
418
419 # Test private instructions
420 .text
421 .global sc
422 sc:
423 sc
424 sadd
425
426 .text
427 .global snc
428 snc:
429 snc
430 sadd
431
432 .text
433 .global jc
434 jc:
435 jc fp
436
437 .text
438 .global jnc
439 jnc:
440 jnc fp
441
442 .text
443 .global pcmpbz
444 pcmpbz:
445 pcmpbz fp
446
447 .text
448 .global sat
449 sat:
450 sat fp, fp
451
452 .text
453 .global sath
454 sath:
455 sath fp, fp
456
457
458 # Test parallel versions of the private instructions
459
460 .text
461 .global jc__pcmpbz
462 jc__pcmpbz:
463 jc fp || pcmpbz fp
464 jc fp
465 pcmpbz fp
466
467 .text
468 .global jnc__ldi
469 jnc__ldi:
470 jnc fp || ldi fp, #77
471 jnc fp
472 ldi fp, #77
473
474 .text
475 .global sc__mv
476 sc__mv:
477 sc || mv fp, r2
478 sc
479 mv fp, r2
480
481 .text
482 .global snc__neg
483 snc__neg:
484 snc || neg fp, r2
485 snc
486 neg fp, r2
487
488 # Test automatic and explicit parallelisation of instructions
489 .text
490 .global nop__sadd
491 nop__sadd:
492 nop
493 sadd
494
495 .text
496 .global sadd__nop
497 sadd__nop:
498 sadd
499 nop
500
501 .text
502 .global sadd__nop_reverse
503 sadd__nop_reverse:
504 sadd || nop
505
506 .text
507 .global add__not
508 add__not:
509 add r0, r1
510 not r3, r5
511
512 .text
513 .global add__not__dest_clash
514 add__not_dest_clash:
515 add r3, r4
516 not r3, r5
517
518 .text
519 .global add__not__src_clash
520 add__not__src_clash:
521 add r3, r4
522 not r5, r3
523
524 .text
525 .global add__not__no_clash
526 add__not__no_clash:
527 add r3, r4
528 not r4, r5
529
530 .text
531 .global mul__sra
532 mul__sra:
533 mul r1, r2
534 sra r3, r4
535
536 .text
537 .global mul__sra__reverse_src_clash
538 mul__sra__reverse_src_clash:
539 mul r1, r3
540 sra r3, r4
541
542 .text
543 .global bc__add_
544 bc__add_:
545 bc label
546 add r1, r2
547
548 .text
549 .global add__bc
550 add__bc:
551 add r3, r4
552 bc label
553
554 .text
555 .global bc__add__forced_parallel
556 bc__add__forced_parallel:
557 bc label || add r5, r6
558
559 .text
560 .global add__bc__forced_parallel
561 add__bc__forced_parallel:
562 add r7, r8 || bc label
563 label:
564 nop
565
566 ; Additional testcases.
567 ; These insns were added to the chip later.
568
569 .text
570 mulwhi:
571 mulwhi fp, fp, a0
572 mulwhi fp, fp, a1
573
574 mulwlo:
575 mulwlo fp, fp, a0
576 mulwlo fp, fp, a1
577
578 macwhi:
579 macwhi fp, fp, a0
580 macwhi fp, fp, a1
581
582 macwlo:
583 macwlo fp, fp, a0
584 macwlo fp, fp, a1