Commit | Line | Data |
---|---|---|
df5b3187 NC |
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 | |
1beffba1 DE |
25 | .global maclh1 |
26 | maclh1: | |
27 | maclh1 fp, fp | |
df5b3187 NC |
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 | |
1beffba1 DE |
66 | .global divh |
67 | divh: | |
68 | divh fp, fp | |
df5b3187 NC |
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 | ||
df5b3187 NC |
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: | |
1beffba1 | 93 | mvfaclo fp, a1 |
df5b3187 NC |
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 | ||
1beffba1 DE |
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 | ||
df5b3187 NC |
120 | .text |
121 | .global rach | |
122 | rach: | |
123 | rach a1 | |
124 | ||
1beffba1 DE |
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 | ||
df5b3187 NC |
135 | # Test explicitly parallel and implicitly parallel instructions |
136 | # Including apparent instruction sequence reordering. | |
137 | .text | |
138 | .global bc__add | |
139 | bc__add: | |
78e95c8c NC |
140 | bc bcl || add fp, fp |
141 | bc bcl | |
df5b3187 NC |
142 | add fp, fp |
143 | ||
144 | .text | |
145 | .global bcl__addi | |
146 | bcl__addi: | |
78e95c8c | 147 | bcl bcl || addi fp, #77 |
df5b3187 | 148 | addi fp, #77 |
78e95c8c | 149 | bcl bcl |
df5b3187 NC |
150 | |
151 | .text | |
152 | .global bl__addv | |
153 | bl__addv: | |
78e95c8c | 154 | bl bcl || addv fp, fp |
df5b3187 | 155 | addv fp, fp |
78e95c8c | 156 | bl bcl |
df5b3187 NC |
157 | |
158 | .text | |
159 | .global bnc__addx | |
160 | bnc__addx: | |
78e95c8c NC |
161 | bnc bcl || addx fp, fp |
162 | bnc bcl | |
df5b3187 NC |
163 | addx fp, fp |
164 | ||
165 | .text | |
166 | .global bncl__and | |
167 | bncl__and: | |
78e95c8c NC |
168 | bncl bcl || and fp, fp |
169 | bncl bcl | |
df5b3187 NC |
170 | and fp, fp |
171 | ||
172 | .text | |
173 | .global bra__cmp | |
174 | bra__cmp: | |
78e95c8c | 175 | bra bcl || cmp fp, fp |
df5b3187 | 176 | cmp fp, fp |
78e95c8c | 177 | bra bcl |
df5b3187 NC |
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: | |
1beffba1 DE |
252 | mvtc fp, cr2 || subv r2, fp |
253 | mvtc fp, cr2 | |
df5b3187 NC |
254 | subv r2, fp |
255 | ||
256 | .text | |
257 | .global rte__subx | |
258 | rte__subx: | |
1beffba1 | 259 | rte || sub r2, fp |
df5b3187 NC |
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 | |
1beffba1 DE |
278 | .global sra__maclh1 |
279 | sra__maclh1: | |
280 | sra fp, fp || maclh1 r2, fp | |
df5b3187 | 281 | sra fp, fp |
1beffba1 | 282 | maclh1 r2, fp |
df5b3187 NC |
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: | |
78e95c8c NC |
343 | trap #2 || mulwhi r2, fp |
344 | trap #2 | |
df5b3187 NC |
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: | |
1beffba1 | 406 | cmpu fp, fp || rach a0, a1 |
df5b3187 | 407 | cmpu fp, fp |
1beffba1 | 408 | rach a1, a1, #1 |
df5b3187 NC |
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 | ||
78e95c8c NC |
488 | # Test automatic and explicit parallelisation of instructions |
489 | .text | |
490 | .global nop__sadd | |
491 | nop__sadd: | |
78e95c8c NC |
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 | |
df5b3187 | 535 | |
78e95c8c NC |
536 | .text |
537 | .global mul__sra__reverse_src_clash | |
538 | mul__sra__reverse_src_clash: | |
539 | mul r1, r3 | |
540 | sra r3, r4 | |
df5b3187 | 541 | |
78e95c8c NC |
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 | |
df5b3187 | 553 | |
78e95c8c NC |
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 | |
1beffba1 DE |
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 |