|
|
1.1 root 1: ;
2: ; nono
1.1.1.2 ! root 3: ; Copyright (C) 2020 nono project
1.1 root 4: ;
1.1.1.2 ! root 5: ; Redistribution and use in source and binary forms, with or without
! 6: ; modification, are permitted provided that the following conditions
! 7: ; are met:
! 8: ; 1. Redistributions of source code must retain the above copyright
! 9: ; notice, this list of conditions and the following disclaimer.
! 10: ; 2. Redistributions in binary form must reproduce the above copyright
! 11: ; notice, this list of conditions and the following disclaimer in the
! 12: ; documentation and/or other materials provided with the distribution.
! 13: ;
! 14: ; THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
! 15: ; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
! 16: ; OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
! 17: ; IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
! 18: ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
! 19: ; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
! 20: ; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
! 21: ; AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
! 22: ; OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
! 23: ; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
! 24: ; SUCH DAMAGE.
1.1 root 25:
26: ; How to compile:
27: ; > has fmovem_n.has
28: ; > hlk fmovem_n.o si_util.o
29:
30: .xref hexstr_long
31: .include doscall.mac
32: .list
33: .cpu 68030
34:
35: PRINT .macro msg
36: pea.l msg(pc)
37: DOS _PRINT
38: addq.l #4,sp
39: .endm
40:
41: SET_FLINE_TRAP .macro
42: move.l (a5),a4
43: lea.l fline_handler(pc),a1
44: move.l a1,(a5)
45: .endm
46:
47: RESTORE_FLINE_TRAP .macro
48: move.l a4,(a5)
49: .endm
50:
51: .text
52: .even
53: test_fmovem_dn_to_fpn_pred_sta:
54: PRINT msg_fmovem_dn_to_fpn_pred_sta
55: SET_FLINE_TRAP
56: moveq.l #0,d7
57: lea.l @f,a3
58: .dc.w $f200, $c060
59: @@:
60: RESTORE_FLINE_TRAP
61: tst.l d7
62: bne @f
63: PRINT msg_fail_notrap
64: rts
65: @@:
66: PRINT msg_oktrap
67: rts
68:
69: test_fmovem_an_to_fpn_pred_sta:
70: PRINT msg_fmovem_an_to_fpn_pred_sta
71: SET_FLINE_TRAP
72: moveq.l #0,d7
73: lea.l @f,a3
74: .dc.w $f208, $c060
75: @@:
76: RESTORE_FLINE_TRAP
77: tst.l d7
78: bne @f
79: PRINT msg_fail_notrap
80: rts
81: @@:
82: PRINT msg_oktrap
83: rts
84:
85: test_fmovem_anin_to_fpn_pred_sta:
86: PRINT msg_fmovem_anin_to_fpn_pred_sta
87: lea.l initdata(pc),a0
88: fmove.x (a0)+,fp0
89: fmove.x (a0)+,fp1
90: fmove.x (a0)+,fp2
91: fmove.x (a0)+,fp3
92: fmove.x (a0)+,fp4
93: fmove.x (a0)+,fp5
94: fmove.x (a0)+,fp6
95: fmove.x (a0)+,fp7
96: lea.l srcdata(pc),a0
97: SET_FLINE_TRAP
98: moveq.l #0,d7
99: lea.l @f,a3
100: .dc.w $f210, $c060
101: @@:
102: RESTORE_FLINE_TRAP
103: tst.l d7
104: beq @f
105: PRINT msg_fail_trap
106: rts
107: @@:
108: lea.l srcdata+0(pc),a1
109: cmp.l a1,a0
110: beq @f
111: pea.l msg_fail_addr(pc)
112: move.l a1,-(sp)
113: move.l a0,-(sp)
114: bsr result
115: lea.l 12(sp),sp
116: @@:
117: lea.l workarea(pc),a2
118: ; compare FP0
119: pea.l msg_fail_fp0(pc)
120: pea.l (initdata+0*12)(pc)
121: fmove.x fp0,(a2)
122: pea.l (a2)
123: bsr check_ext
124: lea.l 12(sp),sp
125: ; compare FP1
126: pea.l msg_fail_fp1(pc)
127: pea.l (initdata+1*12)(pc)
128: fmove.x fp1,(a2)
129: pea.l (a2)
130: bsr check_ext
131: lea.l 12(sp),sp
132: ; compare FP2
133: pea.l msg_fail_fp2(pc)
134: pea.l (initdata+2*12)(pc)
135: fmove.x fp2,(a2)
136: pea.l (a2)
137: bsr check_ext
138: lea.l 12(sp),sp
139: ; compare FP3
140: pea.l msg_fail_fp3(pc)
141: pea.l (initdata+3*12)(pc)
142: fmove.x fp3,(a2)
143: pea.l (a2)
144: bsr check_ext
145: lea.l 12(sp),sp
146: ; compare FP4
147: pea.l msg_fail_fp4(pc)
148: pea.l (initdata+4*12)(pc)
149: fmove.x fp4,(a2)
150: pea.l (a2)
151: bsr check_ext
152: lea.l 12(sp),sp
153: ; compare FP5
154: pea.l msg_fail_fp5(pc)
155: pea.l srcdata+12(pc)
156: fmove.x fp5,(a2)
157: pea.l (a2)
158: bsr check_ext
159: lea.l 12(sp),sp
160: ; compare FP6
161: pea.l msg_fail_fp6(pc)
162: pea.l srcdata+0(pc)
163: fmove.x fp6,(a2)
164: pea.l (a2)
165: bsr check_ext
166: lea.l 12(sp),sp
167: ; compare FP7
168: pea.l msg_fail_fp7(pc)
169: pea.l (initdata+7*12)(pc)
170: fmove.x fp7,(a2)
171: pea.l (a2)
172: bsr check_ext
173: lea.l 12(sp),sp
174: tst.l d7
175: bne @f
176: PRINT msg_ok
177: @@:
178: rts
179:
180: test_fmovem_anpi_to_fpn_pred_sta:
181: PRINT msg_fmovem_anpi_to_fpn_pred_sta
182: lea.l initdata(pc),a0
183: fmove.x (a0)+,fp0
184: fmove.x (a0)+,fp1
185: fmove.x (a0)+,fp2
186: fmove.x (a0)+,fp3
187: fmove.x (a0)+,fp4
188: fmove.x (a0)+,fp5
189: fmove.x (a0)+,fp6
190: fmove.x (a0)+,fp7
191: lea.l srcdata(pc),a0
192: SET_FLINE_TRAP
193: moveq.l #0,d7
194: lea.l @f,a3
195: .dc.w $f218, $c060
196: @@:
197: RESTORE_FLINE_TRAP
198: tst.l d7
199: beq @f
200: PRINT msg_fail_trap
201: rts
202: @@:
203: lea.l srcdata+24(pc),a1
204: cmp.l a1,a0
205: beq @f
206: pea.l msg_fail_addr(pc)
207: move.l a1,-(sp)
208: move.l a0,-(sp)
209: bsr result
210: lea.l 12(sp),sp
211: @@:
212: lea.l workarea(pc),a2
213: ; compare FP0
214: pea.l msg_fail_fp0(pc)
215: pea.l (initdata+0*12)(pc)
216: fmove.x fp0,(a2)
217: pea.l (a2)
218: bsr check_ext
219: lea.l 12(sp),sp
220: ; compare FP1
221: pea.l msg_fail_fp1(pc)
222: pea.l (initdata+1*12)(pc)
223: fmove.x fp1,(a2)
224: pea.l (a2)
225: bsr check_ext
226: lea.l 12(sp),sp
227: ; compare FP2
228: pea.l msg_fail_fp2(pc)
229: pea.l (initdata+2*12)(pc)
230: fmove.x fp2,(a2)
231: pea.l (a2)
232: bsr check_ext
233: lea.l 12(sp),sp
234: ; compare FP3
235: pea.l msg_fail_fp3(pc)
236: pea.l (initdata+3*12)(pc)
237: fmove.x fp3,(a2)
238: pea.l (a2)
239: bsr check_ext
240: lea.l 12(sp),sp
241: ; compare FP4
242: pea.l msg_fail_fp4(pc)
243: pea.l (initdata+4*12)(pc)
244: fmove.x fp4,(a2)
245: pea.l (a2)
246: bsr check_ext
247: lea.l 12(sp),sp
248: ; compare FP5
249: pea.l msg_fail_fp5(pc)
250: pea.l srcdata+12(pc)
251: fmove.x fp5,(a2)
252: pea.l (a2)
253: bsr check_ext
254: lea.l 12(sp),sp
255: ; compare FP6
256: pea.l msg_fail_fp6(pc)
257: pea.l srcdata+0(pc)
258: fmove.x fp6,(a2)
259: pea.l (a2)
260: bsr check_ext
261: lea.l 12(sp),sp
262: ; compare FP7
263: pea.l msg_fail_fp7(pc)
264: pea.l (initdata+7*12)(pc)
265: fmove.x fp7,(a2)
266: pea.l (a2)
267: bsr check_ext
268: lea.l 12(sp),sp
269: tst.l d7
270: bne @f
271: PRINT msg_ok
272: @@:
273: rts
274:
275: test_fmovem_anpd_to_fpn_pred_sta:
276: PRINT msg_fmovem_anpd_to_fpn_pred_sta
277: SET_FLINE_TRAP
278: moveq.l #0,d7
279: lea.l @f,a3
280: .dc.w $f220, $c060
281: @@:
282: RESTORE_FLINE_TRAP
283: tst.l d7
284: bne @f
285: PRINT msg_fail_notrap
286: rts
287: @@:
288: PRINT msg_oktrap
289: rts
290:
291: test_fmovem_imm_to_fpn_pred_sta:
292: PRINT msg_fmovem_imm_to_fpn_pred_sta
293: SET_FLINE_TRAP
294: moveq.l #0,d7
295: lea.l @f,a3
296: .dc.w $f23c, $c060
297: @@:
298: RESTORE_FLINE_TRAP
299: tst.l d7
300: bne @f
301: PRINT msg_fail_notrap
302: rts
303: @@:
304: PRINT msg_oktrap
305: rts
306:
307: test_fmovem_dn_to_fpn_pred_dyn:
308: PRINT msg_fmovem_dn_to_fpn_pred_dyn
309: SET_FLINE_TRAP
310: moveq.l #0,d7
311: lea.l @f,a3
312: .dc.w $f200, $c860
313: @@:
314: RESTORE_FLINE_TRAP
315: tst.l d7
316: bne @f
317: PRINT msg_fail_notrap
318: rts
319: @@:
320: PRINT msg_oktrap
321: rts
322:
323: test_fmovem_an_to_fpn_pred_dyn:
324: PRINT msg_fmovem_an_to_fpn_pred_dyn
325: SET_FLINE_TRAP
326: moveq.l #0,d7
327: lea.l @f,a3
328: .dc.w $f208, $c860
329: @@:
330: RESTORE_FLINE_TRAP
331: tst.l d7
332: bne @f
333: PRINT msg_fail_notrap
334: rts
335: @@:
336: PRINT msg_oktrap
337: rts
338:
339: test_fmovem_anin_to_fpn_pred_dyn:
340: PRINT msg_fmovem_anin_to_fpn_pred_dyn
341: lea.l initdata(pc),a0
342: fmove.x (a0)+,fp0
343: fmove.x (a0)+,fp1
344: fmove.x (a0)+,fp2
345: fmove.x (a0)+,fp3
346: fmove.x (a0)+,fp4
347: fmove.x (a0)+,fp5
348: fmove.x (a0)+,fp6
349: fmove.x (a0)+,fp7
350: lea.l srcdata(pc),a0
351: moveq.l #$30,d6
352: SET_FLINE_TRAP
353: moveq.l #0,d7
354: lea.l @f,a3
355: .dc.w $f210, $c860
356: @@:
357: RESTORE_FLINE_TRAP
358: tst.l d7
359: beq @f
360: PRINT msg_fail_trap
361: rts
362: @@:
363: lea.l srcdata+0(pc),a1
364: cmp.l a1,a0
365: beq @f
366: pea.l msg_fail_addr(pc)
367: move.l a1,-(sp)
368: move.l a0,-(sp)
369: bsr result
370: lea.l 12(sp),sp
371: @@:
372: lea.l workarea(pc),a2
373: ; compare FP0
374: pea.l msg_fail_fp0(pc)
375: pea.l (initdata+0*12)(pc)
376: fmove.x fp0,(a2)
377: pea.l (a2)
378: bsr check_ext
379: lea.l 12(sp),sp
380: ; compare FP1
381: pea.l msg_fail_fp1(pc)
382: pea.l (initdata+1*12)(pc)
383: fmove.x fp1,(a2)
384: pea.l (a2)
385: bsr check_ext
386: lea.l 12(sp),sp
387: ; compare FP2
388: pea.l msg_fail_fp2(pc)
389: pea.l (initdata+2*12)(pc)
390: fmove.x fp2,(a2)
391: pea.l (a2)
392: bsr check_ext
393: lea.l 12(sp),sp
394: ; compare FP3
395: pea.l msg_fail_fp3(pc)
396: pea.l (initdata+3*12)(pc)
397: fmove.x fp3,(a2)
398: pea.l (a2)
399: bsr check_ext
400: lea.l 12(sp),sp
401: ; compare FP4
402: pea.l msg_fail_fp4(pc)
403: pea.l srcdata+12(pc)
404: fmove.x fp4,(a2)
405: pea.l (a2)
406: bsr check_ext
407: lea.l 12(sp),sp
408: ; compare FP5
409: pea.l msg_fail_fp5(pc)
410: pea.l srcdata+0(pc)
411: fmove.x fp5,(a2)
412: pea.l (a2)
413: bsr check_ext
414: lea.l 12(sp),sp
415: ; compare FP6
416: pea.l msg_fail_fp6(pc)
417: pea.l (initdata+6*12)(pc)
418: fmove.x fp6,(a2)
419: pea.l (a2)
420: bsr check_ext
421: lea.l 12(sp),sp
422: ; compare FP7
423: pea.l msg_fail_fp7(pc)
424: pea.l (initdata+7*12)(pc)
425: fmove.x fp7,(a2)
426: pea.l (a2)
427: bsr check_ext
428: lea.l 12(sp),sp
429: tst.l d7
430: bne @f
431: PRINT msg_ok
432: @@:
433: rts
434:
435: test_fmovem_anpi_to_fpn_pred_dyn:
436: PRINT msg_fmovem_anpi_to_fpn_pred_dyn
437: lea.l initdata(pc),a0
438: fmove.x (a0)+,fp0
439: fmove.x (a0)+,fp1
440: fmove.x (a0)+,fp2
441: fmove.x (a0)+,fp3
442: fmove.x (a0)+,fp4
443: fmove.x (a0)+,fp5
444: fmove.x (a0)+,fp6
445: fmove.x (a0)+,fp7
446: lea.l srcdata(pc),a0
447: moveq.l #$30,d6
448: SET_FLINE_TRAP
449: moveq.l #0,d7
450: lea.l @f,a3
451: .dc.w $f218, $c860
452: @@:
453: RESTORE_FLINE_TRAP
454: tst.l d7
455: beq @f
456: PRINT msg_fail_trap
457: rts
458: @@:
459: lea.l srcdata+24(pc),a1
460: cmp.l a1,a0
461: beq @f
462: pea.l msg_fail_addr(pc)
463: move.l a1,-(sp)
464: move.l a0,-(sp)
465: bsr result
466: lea.l 12(sp),sp
467: @@:
468: lea.l workarea(pc),a2
469: ; compare FP0
470: pea.l msg_fail_fp0(pc)
471: pea.l (initdata+0*12)(pc)
472: fmove.x fp0,(a2)
473: pea.l (a2)
474: bsr check_ext
475: lea.l 12(sp),sp
476: ; compare FP1
477: pea.l msg_fail_fp1(pc)
478: pea.l (initdata+1*12)(pc)
479: fmove.x fp1,(a2)
480: pea.l (a2)
481: bsr check_ext
482: lea.l 12(sp),sp
483: ; compare FP2
484: pea.l msg_fail_fp2(pc)
485: pea.l (initdata+2*12)(pc)
486: fmove.x fp2,(a2)
487: pea.l (a2)
488: bsr check_ext
489: lea.l 12(sp),sp
490: ; compare FP3
491: pea.l msg_fail_fp3(pc)
492: pea.l (initdata+3*12)(pc)
493: fmove.x fp3,(a2)
494: pea.l (a2)
495: bsr check_ext
496: lea.l 12(sp),sp
497: ; compare FP4
498: pea.l msg_fail_fp4(pc)
499: pea.l srcdata+12(pc)
500: fmove.x fp4,(a2)
501: pea.l (a2)
502: bsr check_ext
503: lea.l 12(sp),sp
504: ; compare FP5
505: pea.l msg_fail_fp5(pc)
506: pea.l srcdata+0(pc)
507: fmove.x fp5,(a2)
508: pea.l (a2)
509: bsr check_ext
510: lea.l 12(sp),sp
511: ; compare FP6
512: pea.l msg_fail_fp6(pc)
513: pea.l (initdata+6*12)(pc)
514: fmove.x fp6,(a2)
515: pea.l (a2)
516: bsr check_ext
517: lea.l 12(sp),sp
518: ; compare FP7
519: pea.l msg_fail_fp7(pc)
520: pea.l (initdata+7*12)(pc)
521: fmove.x fp7,(a2)
522: pea.l (a2)
523: bsr check_ext
524: lea.l 12(sp),sp
525: tst.l d7
526: bne @f
527: PRINT msg_ok
528: @@:
529: rts
530:
531: test_fmovem_anpd_to_fpn_pred_dyn:
532: PRINT msg_fmovem_anpd_to_fpn_pred_dyn
533: SET_FLINE_TRAP
534: moveq.l #0,d7
535: lea.l @f,a3
536: .dc.w $f220, $c860
537: @@:
538: RESTORE_FLINE_TRAP
539: tst.l d7
540: bne @f
541: PRINT msg_fail_notrap
542: rts
543: @@:
544: PRINT msg_oktrap
545: rts
546:
547: test_fmovem_imm_to_fpn_pred_dyn:
548: PRINT msg_fmovem_imm_to_fpn_pred_dyn
549: SET_FLINE_TRAP
550: moveq.l #0,d7
551: lea.l @f,a3
552: .dc.w $f23c, $c860
553: @@:
554: RESTORE_FLINE_TRAP
555: tst.l d7
556: bne @f
557: PRINT msg_fail_notrap
558: rts
559: @@:
560: PRINT msg_oktrap
561: rts
562:
563: test_fmovem_dn_to_fpn_ctrl_sta:
564: PRINT msg_fmovem_dn_to_fpn_ctrl_sta
565: SET_FLINE_TRAP
566: moveq.l #0,d7
567: lea.l @f,a3
568: .dc.w $f200, $d060
569: @@:
570: RESTORE_FLINE_TRAP
571: tst.l d7
572: bne @f
573: PRINT msg_fail_notrap
574: rts
575: @@:
576: PRINT msg_oktrap
577: rts
578:
579: test_fmovem_an_to_fpn_ctrl_sta:
580: PRINT msg_fmovem_an_to_fpn_ctrl_sta
581: SET_FLINE_TRAP
582: moveq.l #0,d7
583: lea.l @f,a3
584: .dc.w $f208, $d060
585: @@:
586: RESTORE_FLINE_TRAP
587: tst.l d7
588: bne @f
589: PRINT msg_fail_notrap
590: rts
591: @@:
592: PRINT msg_oktrap
593: rts
594:
595: test_fmovem_anin_to_fpn_ctrl_sta:
596: PRINT msg_fmovem_anin_to_fpn_ctrl_sta
597: lea.l initdata(pc),a0
598: fmove.x (a0)+,fp0
599: fmove.x (a0)+,fp1
600: fmove.x (a0)+,fp2
601: fmove.x (a0)+,fp3
602: fmove.x (a0)+,fp4
603: fmove.x (a0)+,fp5
604: fmove.x (a0)+,fp6
605: fmove.x (a0)+,fp7
606: lea.l srcdata(pc),a0
607: SET_FLINE_TRAP
608: moveq.l #0,d7
609: lea.l @f,a3
610: .dc.w $f210, $d060
611: @@:
612: RESTORE_FLINE_TRAP
613: tst.l d7
614: beq @f
615: PRINT msg_fail_trap
616: rts
617: @@:
618: lea.l srcdata+0(pc),a1
619: cmp.l a1,a0
620: beq @f
621: pea.l msg_fail_addr(pc)
622: move.l a1,-(sp)
623: move.l a0,-(sp)
624: bsr result
625: lea.l 12(sp),sp
626: @@:
627: lea.l workarea(pc),a2
628: ; compare FP0
629: pea.l msg_fail_fp0(pc)
630: pea.l (initdata+0*12)(pc)
631: fmove.x fp0,(a2)
632: pea.l (a2)
633: bsr check_ext
634: lea.l 12(sp),sp
635: ; compare FP1
636: pea.l msg_fail_fp1(pc)
637: pea.l srcdata+0(pc)
638: fmove.x fp1,(a2)
639: pea.l (a2)
640: bsr check_ext
641: lea.l 12(sp),sp
642: ; compare FP2
643: pea.l msg_fail_fp2(pc)
644: pea.l srcdata+12(pc)
645: fmove.x fp2,(a2)
646: pea.l (a2)
647: bsr check_ext
648: lea.l 12(sp),sp
649: ; compare FP3
650: pea.l msg_fail_fp3(pc)
651: pea.l (initdata+3*12)(pc)
652: fmove.x fp3,(a2)
653: pea.l (a2)
654: bsr check_ext
655: lea.l 12(sp),sp
656: ; compare FP4
657: pea.l msg_fail_fp4(pc)
658: pea.l (initdata+4*12)(pc)
659: fmove.x fp4,(a2)
660: pea.l (a2)
661: bsr check_ext
662: lea.l 12(sp),sp
663: ; compare FP5
664: pea.l msg_fail_fp5(pc)
665: pea.l (initdata+5*12)(pc)
666: fmove.x fp5,(a2)
667: pea.l (a2)
668: bsr check_ext
669: lea.l 12(sp),sp
670: ; compare FP6
671: pea.l msg_fail_fp6(pc)
672: pea.l (initdata+6*12)(pc)
673: fmove.x fp6,(a2)
674: pea.l (a2)
675: bsr check_ext
676: lea.l 12(sp),sp
677: ; compare FP7
678: pea.l msg_fail_fp7(pc)
679: pea.l (initdata+7*12)(pc)
680: fmove.x fp7,(a2)
681: pea.l (a2)
682: bsr check_ext
683: lea.l 12(sp),sp
684: tst.l d7
685: bne @f
686: PRINT msg_ok
687: @@:
688: rts
689:
690: test_fmovem_anpi_to_fpn_ctrl_sta:
691: PRINT msg_fmovem_anpi_to_fpn_ctrl_sta
692: lea.l initdata(pc),a0
693: fmove.x (a0)+,fp0
694: fmove.x (a0)+,fp1
695: fmove.x (a0)+,fp2
696: fmove.x (a0)+,fp3
697: fmove.x (a0)+,fp4
698: fmove.x (a0)+,fp5
699: fmove.x (a0)+,fp6
700: fmove.x (a0)+,fp7
701: lea.l srcdata(pc),a0
702: SET_FLINE_TRAP
703: moveq.l #0,d7
704: lea.l @f,a3
705: .dc.w $f218, $d060
706: @@:
707: RESTORE_FLINE_TRAP
708: tst.l d7
709: beq @f
710: PRINT msg_fail_trap
711: rts
712: @@:
713: lea.l srcdata+24(pc),a1
714: cmp.l a1,a0
715: beq @f
716: pea.l msg_fail_addr(pc)
717: move.l a1,-(sp)
718: move.l a0,-(sp)
719: bsr result
720: lea.l 12(sp),sp
721: @@:
722: lea.l workarea(pc),a2
723: ; compare FP0
724: pea.l msg_fail_fp0(pc)
725: pea.l (initdata+0*12)(pc)
726: fmove.x fp0,(a2)
727: pea.l (a2)
728: bsr check_ext
729: lea.l 12(sp),sp
730: ; compare FP1
731: pea.l msg_fail_fp1(pc)
732: pea.l srcdata+0(pc)
733: fmove.x fp1,(a2)
734: pea.l (a2)
735: bsr check_ext
736: lea.l 12(sp),sp
737: ; compare FP2
738: pea.l msg_fail_fp2(pc)
739: pea.l srcdata+12(pc)
740: fmove.x fp2,(a2)
741: pea.l (a2)
742: bsr check_ext
743: lea.l 12(sp),sp
744: ; compare FP3
745: pea.l msg_fail_fp3(pc)
746: pea.l (initdata+3*12)(pc)
747: fmove.x fp3,(a2)
748: pea.l (a2)
749: bsr check_ext
750: lea.l 12(sp),sp
751: ; compare FP4
752: pea.l msg_fail_fp4(pc)
753: pea.l (initdata+4*12)(pc)
754: fmove.x fp4,(a2)
755: pea.l (a2)
756: bsr check_ext
757: lea.l 12(sp),sp
758: ; compare FP5
759: pea.l msg_fail_fp5(pc)
760: pea.l (initdata+5*12)(pc)
761: fmove.x fp5,(a2)
762: pea.l (a2)
763: bsr check_ext
764: lea.l 12(sp),sp
765: ; compare FP6
766: pea.l msg_fail_fp6(pc)
767: pea.l (initdata+6*12)(pc)
768: fmove.x fp6,(a2)
769: pea.l (a2)
770: bsr check_ext
771: lea.l 12(sp),sp
772: ; compare FP7
773: pea.l msg_fail_fp7(pc)
774: pea.l (initdata+7*12)(pc)
775: fmove.x fp7,(a2)
776: pea.l (a2)
777: bsr check_ext
778: lea.l 12(sp),sp
779: tst.l d7
780: bne @f
781: PRINT msg_ok
782: @@:
783: rts
784:
785: test_fmovem_anpd_to_fpn_ctrl_sta:
786: PRINT msg_fmovem_anpd_to_fpn_ctrl_sta
787: SET_FLINE_TRAP
788: moveq.l #0,d7
789: lea.l @f,a3
790: .dc.w $f220, $d060
791: @@:
792: RESTORE_FLINE_TRAP
793: tst.l d7
794: bne @f
795: PRINT msg_fail_notrap
796: rts
797: @@:
798: PRINT msg_oktrap
799: rts
800:
801: test_fmovem_imm_to_fpn_ctrl_sta:
802: PRINT msg_fmovem_imm_to_fpn_ctrl_sta
803: SET_FLINE_TRAP
804: moveq.l #0,d7
805: lea.l @f,a3
806: .dc.w $f23c, $d060
807: @@:
808: RESTORE_FLINE_TRAP
809: tst.l d7
810: bne @f
811: PRINT msg_fail_notrap
812: rts
813: @@:
814: PRINT msg_oktrap
815: rts
816:
817: test_fmovem_dn_to_fpn_ctrl_dyn:
818: PRINT msg_fmovem_dn_to_fpn_ctrl_dyn
819: SET_FLINE_TRAP
820: moveq.l #0,d7
821: lea.l @f,a3
822: .dc.w $f200, $d860
823: @@:
824: RESTORE_FLINE_TRAP
825: tst.l d7
826: bne @f
827: PRINT msg_fail_notrap
828: rts
829: @@:
830: PRINT msg_oktrap
831: rts
832:
833: test_fmovem_an_to_fpn_ctrl_dyn:
834: PRINT msg_fmovem_an_to_fpn_ctrl_dyn
835: SET_FLINE_TRAP
836: moveq.l #0,d7
837: lea.l @f,a3
838: .dc.w $f208, $d860
839: @@:
840: RESTORE_FLINE_TRAP
841: tst.l d7
842: bne @f
843: PRINT msg_fail_notrap
844: rts
845: @@:
846: PRINT msg_oktrap
847: rts
848:
849: test_fmovem_anin_to_fpn_ctrl_dyn:
850: PRINT msg_fmovem_anin_to_fpn_ctrl_dyn
851: lea.l initdata(pc),a0
852: fmove.x (a0)+,fp0
853: fmove.x (a0)+,fp1
854: fmove.x (a0)+,fp2
855: fmove.x (a0)+,fp3
856: fmove.x (a0)+,fp4
857: fmove.x (a0)+,fp5
858: fmove.x (a0)+,fp6
859: fmove.x (a0)+,fp7
860: lea.l srcdata(pc),a0
861: moveq.l #$30,d6
862: SET_FLINE_TRAP
863: moveq.l #0,d7
864: lea.l @f,a3
865: .dc.w $f210, $d860
866: @@:
867: RESTORE_FLINE_TRAP
868: tst.l d7
869: beq @f
870: PRINT msg_fail_trap
871: rts
872: @@:
873: lea.l srcdata+0(pc),a1
874: cmp.l a1,a0
875: beq @f
876: pea.l msg_fail_addr(pc)
877: move.l a1,-(sp)
878: move.l a0,-(sp)
879: bsr result
880: lea.l 12(sp),sp
881: @@:
882: lea.l workarea(pc),a2
883: ; compare FP0
884: pea.l msg_fail_fp0(pc)
885: pea.l (initdata+0*12)(pc)
886: fmove.x fp0,(a2)
887: pea.l (a2)
888: bsr check_ext
889: lea.l 12(sp),sp
890: ; compare FP1
891: pea.l msg_fail_fp1(pc)
892: pea.l (initdata+1*12)(pc)
893: fmove.x fp1,(a2)
894: pea.l (a2)
895: bsr check_ext
896: lea.l 12(sp),sp
897: ; compare FP2
898: pea.l msg_fail_fp2(pc)
899: pea.l srcdata+0(pc)
900: fmove.x fp2,(a2)
901: pea.l (a2)
902: bsr check_ext
903: lea.l 12(sp),sp
904: ; compare FP3
905: pea.l msg_fail_fp3(pc)
906: pea.l srcdata+12(pc)
907: fmove.x fp3,(a2)
908: pea.l (a2)
909: bsr check_ext
910: lea.l 12(sp),sp
911: ; compare FP4
912: pea.l msg_fail_fp4(pc)
913: pea.l (initdata+4*12)(pc)
914: fmove.x fp4,(a2)
915: pea.l (a2)
916: bsr check_ext
917: lea.l 12(sp),sp
918: ; compare FP5
919: pea.l msg_fail_fp5(pc)
920: pea.l (initdata+5*12)(pc)
921: fmove.x fp5,(a2)
922: pea.l (a2)
923: bsr check_ext
924: lea.l 12(sp),sp
925: ; compare FP6
926: pea.l msg_fail_fp6(pc)
927: pea.l (initdata+6*12)(pc)
928: fmove.x fp6,(a2)
929: pea.l (a2)
930: bsr check_ext
931: lea.l 12(sp),sp
932: ; compare FP7
933: pea.l msg_fail_fp7(pc)
934: pea.l (initdata+7*12)(pc)
935: fmove.x fp7,(a2)
936: pea.l (a2)
937: bsr check_ext
938: lea.l 12(sp),sp
939: tst.l d7
940: bne @f
941: PRINT msg_ok
942: @@:
943: rts
944:
945: test_fmovem_anpi_to_fpn_ctrl_dyn:
946: PRINT msg_fmovem_anpi_to_fpn_ctrl_dyn
947: lea.l initdata(pc),a0
948: fmove.x (a0)+,fp0
949: fmove.x (a0)+,fp1
950: fmove.x (a0)+,fp2
951: fmove.x (a0)+,fp3
952: fmove.x (a0)+,fp4
953: fmove.x (a0)+,fp5
954: fmove.x (a0)+,fp6
955: fmove.x (a0)+,fp7
956: lea.l srcdata(pc),a0
957: moveq.l #$30,d6
958: SET_FLINE_TRAP
959: moveq.l #0,d7
960: lea.l @f,a3
961: .dc.w $f218, $d860
962: @@:
963: RESTORE_FLINE_TRAP
964: tst.l d7
965: beq @f
966: PRINT msg_fail_trap
967: rts
968: @@:
969: lea.l srcdata+24(pc),a1
970: cmp.l a1,a0
971: beq @f
972: pea.l msg_fail_addr(pc)
973: move.l a1,-(sp)
974: move.l a0,-(sp)
975: bsr result
976: lea.l 12(sp),sp
977: @@:
978: lea.l workarea(pc),a2
979: ; compare FP0
980: pea.l msg_fail_fp0(pc)
981: pea.l (initdata+0*12)(pc)
982: fmove.x fp0,(a2)
983: pea.l (a2)
984: bsr check_ext
985: lea.l 12(sp),sp
986: ; compare FP1
987: pea.l msg_fail_fp1(pc)
988: pea.l (initdata+1*12)(pc)
989: fmove.x fp1,(a2)
990: pea.l (a2)
991: bsr check_ext
992: lea.l 12(sp),sp
993: ; compare FP2
994: pea.l msg_fail_fp2(pc)
995: pea.l srcdata+0(pc)
996: fmove.x fp2,(a2)
997: pea.l (a2)
998: bsr check_ext
999: lea.l 12(sp),sp
1000: ; compare FP3
1001: pea.l msg_fail_fp3(pc)
1002: pea.l srcdata+12(pc)
1003: fmove.x fp3,(a2)
1004: pea.l (a2)
1005: bsr check_ext
1006: lea.l 12(sp),sp
1007: ; compare FP4
1008: pea.l msg_fail_fp4(pc)
1009: pea.l (initdata+4*12)(pc)
1010: fmove.x fp4,(a2)
1011: pea.l (a2)
1012: bsr check_ext
1013: lea.l 12(sp),sp
1014: ; compare FP5
1015: pea.l msg_fail_fp5(pc)
1016: pea.l (initdata+5*12)(pc)
1017: fmove.x fp5,(a2)
1018: pea.l (a2)
1019: bsr check_ext
1020: lea.l 12(sp),sp
1021: ; compare FP6
1022: pea.l msg_fail_fp6(pc)
1023: pea.l (initdata+6*12)(pc)
1024: fmove.x fp6,(a2)
1025: pea.l (a2)
1026: bsr check_ext
1027: lea.l 12(sp),sp
1028: ; compare FP7
1029: pea.l msg_fail_fp7(pc)
1030: pea.l (initdata+7*12)(pc)
1031: fmove.x fp7,(a2)
1032: pea.l (a2)
1033: bsr check_ext
1034: lea.l 12(sp),sp
1035: tst.l d7
1036: bne @f
1037: PRINT msg_ok
1038: @@:
1039: rts
1040:
1041: test_fmovem_anpd_to_fpn_ctrl_dyn:
1042: PRINT msg_fmovem_anpd_to_fpn_ctrl_dyn
1043: SET_FLINE_TRAP
1044: moveq.l #0,d7
1045: lea.l @f,a3
1046: .dc.w $f220, $d860
1047: @@:
1048: RESTORE_FLINE_TRAP
1049: tst.l d7
1050: bne @f
1051: PRINT msg_fail_notrap
1052: rts
1053: @@:
1054: PRINT msg_oktrap
1055: rts
1056:
1057: test_fmovem_imm_to_fpn_ctrl_dyn:
1058: PRINT msg_fmovem_imm_to_fpn_ctrl_dyn
1059: SET_FLINE_TRAP
1060: moveq.l #0,d7
1061: lea.l @f,a3
1062: .dc.w $f23c, $d860
1063: @@:
1064: RESTORE_FLINE_TRAP
1065: tst.l d7
1066: bne @f
1067: PRINT msg_fail_notrap
1068: rts
1069: @@:
1070: PRINT msg_oktrap
1071: rts
1072:
1073: test_fmovem_fpn_to_dn_pred_sta:
1074: PRINT msg_fmovem_fpn_to_dn_pred_sta
1075: SET_FLINE_TRAP
1076: moveq.l #0,d7
1077: lea.l @f,a3
1078: .dc.w $f200, $e060
1079: @@:
1080: RESTORE_FLINE_TRAP
1081: tst.l d7
1082: bne @f
1083: PRINT msg_fail_notrap
1084: rts
1085: @@:
1086: PRINT msg_oktrap
1087: rts
1088:
1089: test_fmovem_fpn_to_an_pred_sta:
1090: PRINT msg_fmovem_fpn_to_an_pred_sta
1091: SET_FLINE_TRAP
1092: moveq.l #0,d7
1093: lea.l @f,a3
1094: .dc.w $f208, $e060
1095: @@:
1096: RESTORE_FLINE_TRAP
1097: tst.l d7
1098: bne @f
1099: PRINT msg_fail_notrap
1100: rts
1101: @@:
1102: PRINT msg_oktrap
1103: rts
1104:
1105: test_fmovem_fpn_to_anin_pred_sta:
1106: PRINT msg_fmovem_fpn_to_anin_pred_sta
1107: lea.l initdata(pc),a0
1108: fmove.x (a0)+,fp0
1109: fmove.x (a0)+,fp1
1110: fmove.x (a0)+,fp2
1111: fmove.x (a0)+,fp3
1112: fmove.x (a0)+,fp4
1113: fmove.x (a0)+,fp5
1114: fmove.x (a0)+,fp6
1115: fmove.x (a0)+,fp7
1116: moveq.l #0,d0
1117: moveq.l #0,d1
1118: moveq.l #0,d7
1119: lea.l workarea(pc),a0
1120: movem.l d0-d1/d7,(a0)
1121: movem.l d0-d1/d7,12(a0)
1122: SET_FLINE_TRAP
1123: lea.l @f,a3
1124: .dc.w $f210, $e060
1125: @@:
1126: RESTORE_FLINE_TRAP
1127: tst.l d7
1128: beq @f
1129: PRINT msg_fail_trap
1130: rts
1131: @@:
1132: lea.l workarea(pc),a1
1133: cmp.l a1,a0
1134: beq @f
1135: pea.l msg_fail_addr(pc)
1136: move.l a1,-(sp)
1137: move.l a0,-(sp)
1138: bsr result
1139: lea.l 12(sp),sp
1140: @@:
1141: ; compare first one
1142: pea.l msg_fail_1st(pc)
1143: pea.l (initdata+6*12)(pc)
1144: pea.l 0(a1)
1145: bsr check_ext
1146: lea.l 12(sp),sp
1147: ; compare second one
1148: pea.l msg_fail_2nd(pc)
1149: pea.l (initdata+5*12)(pc)
1150: pea.l 12(a1)
1151: bsr check_ext
1152: lea.l 12(sp),sp
1153:
1154: tst.l d7
1155: bne @f
1156: PRINT msg_ok
1157: @@:
1158: rts
1159:
1160: test_fmovem_fpn_to_anpi_pred_sta:
1161: PRINT msg_fmovem_fpn_to_anpi_pred_sta
1162: SET_FLINE_TRAP
1163: moveq.l #0,d7
1164: lea.l @f,a3
1165: .dc.w $f218, $e060
1166: @@:
1167: RESTORE_FLINE_TRAP
1168: tst.l d7
1169: bne @f
1170: PRINT msg_fail_notrap
1171: rts
1172: @@:
1173: PRINT msg_oktrap
1174: rts
1175:
1176: test_fmovem_fpn_to_anpd_pred_sta:
1177: PRINT msg_fmovem_fpn_to_anpd_pred_sta
1178: lea.l initdata(pc),a0
1179: fmove.x (a0)+,fp0
1180: fmove.x (a0)+,fp1
1181: fmove.x (a0)+,fp2
1182: fmove.x (a0)+,fp3
1183: fmove.x (a0)+,fp4
1184: fmove.x (a0)+,fp5
1185: fmove.x (a0)+,fp6
1186: fmove.x (a0)+,fp7
1187: moveq.l #0,d0
1188: moveq.l #0,d1
1189: moveq.l #0,d7
1190: lea.l workarea(pc),a0
1191: movem.l d0-d1/d7,(a0)
1192: movem.l d0-d1/d7,12(a0)
1193: lea.l workarea+24(pc),a0
1194: SET_FLINE_TRAP
1195: lea.l @f,a3
1196: .dc.w $f220, $e060
1197: @@:
1198: RESTORE_FLINE_TRAP
1199: tst.l d7
1200: beq @f
1201: PRINT msg_fail_trap
1202: rts
1203: @@:
1204: lea.l workarea(pc),a1
1205: cmp.l a1,a0
1206: beq @f
1207: pea.l msg_fail_addr(pc)
1208: move.l a1,-(sp)
1209: move.l a0,-(sp)
1210: bsr result
1211: lea.l 12(sp),sp
1212: @@:
1213: ; compare first one
1214: pea.l msg_fail_1st(pc)
1215: pea.l (initdata+6*12)(pc)
1216: pea.l 12(a1)
1217: bsr check_ext
1218: lea.l 12(sp),sp
1219: ; compare second one
1220: pea.l msg_fail_2nd(pc)
1221: pea.l (initdata+5*12)(pc)
1222: pea.l 0(a1)
1223: bsr check_ext
1224: lea.l 12(sp),sp
1225:
1226: tst.l d7
1227: bne @f
1228: PRINT msg_ok
1229: @@:
1230: rts
1231:
1232: test_fmovem_fpn_to_imm_pred_sta:
1233: PRINT msg_fmovem_fpn_to_imm_pred_sta
1234: SET_FLINE_TRAP
1235: moveq.l #0,d7
1236: lea.l @f,a3
1237: .dc.w $f23c, $e060
1238: @@:
1239: RESTORE_FLINE_TRAP
1240: tst.l d7
1241: bne @f
1242: PRINT msg_fail_notrap
1243: rts
1244: @@:
1245: PRINT msg_oktrap
1246: rts
1247:
1248: test_fmovem_fpn_to_dn_pred_dyn:
1249: PRINT msg_fmovem_fpn_to_dn_pred_dyn
1250: SET_FLINE_TRAP
1251: moveq.l #0,d7
1252: lea.l @f,a3
1253: .dc.w $f200, $e860
1254: @@:
1255: RESTORE_FLINE_TRAP
1256: tst.l d7
1257: bne @f
1258: PRINT msg_fail_notrap
1259: rts
1260: @@:
1261: PRINT msg_oktrap
1262: rts
1263:
1264: test_fmovem_fpn_to_an_pred_dyn:
1265: PRINT msg_fmovem_fpn_to_an_pred_dyn
1266: SET_FLINE_TRAP
1267: moveq.l #0,d7
1268: lea.l @f,a3
1269: .dc.w $f208, $e860
1270: @@:
1271: RESTORE_FLINE_TRAP
1272: tst.l d7
1273: bne @f
1274: PRINT msg_fail_notrap
1275: rts
1276: @@:
1277: PRINT msg_oktrap
1278: rts
1279:
1280: test_fmovem_fpn_to_anin_pred_dyn:
1281: PRINT msg_fmovem_fpn_to_anin_pred_dyn
1282: lea.l initdata(pc),a0
1283: fmove.x (a0)+,fp0
1284: fmove.x (a0)+,fp1
1285: fmove.x (a0)+,fp2
1286: fmove.x (a0)+,fp3
1287: fmove.x (a0)+,fp4
1288: fmove.x (a0)+,fp5
1289: fmove.x (a0)+,fp6
1290: fmove.x (a0)+,fp7
1291: moveq.l #0,d0
1292: moveq.l #0,d1
1293: moveq.l #0,d7
1294: lea.l workarea(pc),a0
1295: movem.l d0-d1/d7,(a0)
1296: movem.l d0-d1/d7,12(a0)
1297: moveq.l #$30,d6
1298: SET_FLINE_TRAP
1299: lea.l @f,a3
1300: .dc.w $f210, $e860
1301: @@:
1302: RESTORE_FLINE_TRAP
1303: tst.l d7
1304: beq @f
1305: PRINT msg_fail_trap
1306: rts
1307: @@:
1308: lea.l workarea(pc),a1
1309: cmp.l a1,a0
1310: beq @f
1311: pea.l msg_fail_addr(pc)
1312: move.l a1,-(sp)
1313: move.l a0,-(sp)
1314: bsr result
1315: lea.l 12(sp),sp
1316: @@:
1317: ; compare first one
1318: pea.l msg_fail_1st(pc)
1319: pea.l (initdata+5*12)(pc)
1320: pea.l 0(a1)
1321: bsr check_ext
1322: lea.l 12(sp),sp
1323: ; compare second one
1324: pea.l msg_fail_2nd(pc)
1325: pea.l (initdata+4*12)(pc)
1326: pea.l 12(a1)
1327: bsr check_ext
1328: lea.l 12(sp),sp
1329:
1330: tst.l d7
1331: bne @f
1332: PRINT msg_ok
1333: @@:
1334: rts
1335:
1336: test_fmovem_fpn_to_anpi_pred_dyn:
1337: PRINT msg_fmovem_fpn_to_anpi_pred_dyn
1338: SET_FLINE_TRAP
1339: moveq.l #0,d7
1340: lea.l @f,a3
1341: .dc.w $f218, $e860
1342: @@:
1343: RESTORE_FLINE_TRAP
1344: tst.l d7
1345: bne @f
1346: PRINT msg_fail_notrap
1347: rts
1348: @@:
1349: PRINT msg_oktrap
1350: rts
1351:
1352: test_fmovem_fpn_to_anpd_pred_dyn:
1353: PRINT msg_fmovem_fpn_to_anpd_pred_dyn
1354: lea.l initdata(pc),a0
1355: fmove.x (a0)+,fp0
1356: fmove.x (a0)+,fp1
1357: fmove.x (a0)+,fp2
1358: fmove.x (a0)+,fp3
1359: fmove.x (a0)+,fp4
1360: fmove.x (a0)+,fp5
1361: fmove.x (a0)+,fp6
1362: fmove.x (a0)+,fp7
1363: moveq.l #0,d0
1364: moveq.l #0,d1
1365: moveq.l #0,d7
1366: lea.l workarea(pc),a0
1367: movem.l d0-d1/d7,(a0)
1368: movem.l d0-d1/d7,12(a0)
1369: lea.l workarea+24(pc),a0
1370: moveq.l #$30,d6
1371: SET_FLINE_TRAP
1372: lea.l @f,a3
1373: .dc.w $f220, $e860
1374: @@:
1375: RESTORE_FLINE_TRAP
1376: tst.l d7
1377: beq @f
1378: PRINT msg_fail_trap
1379: rts
1380: @@:
1381: lea.l workarea(pc),a1
1382: cmp.l a1,a0
1383: beq @f
1384: pea.l msg_fail_addr(pc)
1385: move.l a1,-(sp)
1386: move.l a0,-(sp)
1387: bsr result
1388: lea.l 12(sp),sp
1389: @@:
1390: ; compare first one
1391: pea.l msg_fail_1st(pc)
1392: pea.l (initdata+5*12)(pc)
1393: pea.l 12(a1)
1394: bsr check_ext
1395: lea.l 12(sp),sp
1396: ; compare second one
1397: pea.l msg_fail_2nd(pc)
1398: pea.l (initdata+4*12)(pc)
1399: pea.l 0(a1)
1400: bsr check_ext
1401: lea.l 12(sp),sp
1402:
1403: tst.l d7
1404: bne @f
1405: PRINT msg_ok
1406: @@:
1407: rts
1408:
1409: test_fmovem_fpn_to_imm_pred_dyn:
1410: PRINT msg_fmovem_fpn_to_imm_pred_dyn
1411: SET_FLINE_TRAP
1412: moveq.l #0,d7
1413: lea.l @f,a3
1414: .dc.w $f23c, $e860
1415: @@:
1416: RESTORE_FLINE_TRAP
1417: tst.l d7
1418: bne @f
1419: PRINT msg_fail_notrap
1420: rts
1421: @@:
1422: PRINT msg_oktrap
1423: rts
1424:
1425: test_fmovem_fpn_to_dn_ctrl_sta:
1426: PRINT msg_fmovem_fpn_to_dn_ctrl_sta
1427: SET_FLINE_TRAP
1428: moveq.l #0,d7
1429: lea.l @f,a3
1430: .dc.w $f200, $f060
1431: @@:
1432: RESTORE_FLINE_TRAP
1433: tst.l d7
1434: bne @f
1435: PRINT msg_fail_notrap
1436: rts
1437: @@:
1438: PRINT msg_oktrap
1439: rts
1440:
1441: test_fmovem_fpn_to_an_ctrl_sta:
1442: PRINT msg_fmovem_fpn_to_an_ctrl_sta
1443: SET_FLINE_TRAP
1444: moveq.l #0,d7
1445: lea.l @f,a3
1446: .dc.w $f208, $f060
1447: @@:
1448: RESTORE_FLINE_TRAP
1449: tst.l d7
1450: bne @f
1451: PRINT msg_fail_notrap
1452: rts
1453: @@:
1454: PRINT msg_oktrap
1455: rts
1456:
1457: test_fmovem_fpn_to_anin_ctrl_sta:
1458: PRINT msg_fmovem_fpn_to_anin_ctrl_sta
1459: lea.l initdata(pc),a0
1460: fmove.x (a0)+,fp0
1461: fmove.x (a0)+,fp1
1462: fmove.x (a0)+,fp2
1463: fmove.x (a0)+,fp3
1464: fmove.x (a0)+,fp4
1465: fmove.x (a0)+,fp5
1466: fmove.x (a0)+,fp6
1467: fmove.x (a0)+,fp7
1468: moveq.l #0,d0
1469: moveq.l #0,d1
1470: moveq.l #0,d7
1471: lea.l workarea(pc),a0
1472: movem.l d0-d1/d7,(a0)
1473: movem.l d0-d1/d7,12(a0)
1474: SET_FLINE_TRAP
1475: lea.l @f,a3
1476: .dc.w $f210, $f060
1477: @@:
1478: RESTORE_FLINE_TRAP
1479: tst.l d7
1480: beq @f
1481: PRINT msg_fail_trap
1482: rts
1483: @@:
1484: lea.l workarea(pc),a1
1485: cmp.l a1,a0
1486: beq @f
1487: pea.l msg_fail_addr(pc)
1488: move.l a1,-(sp)
1489: move.l a0,-(sp)
1490: bsr result
1491: lea.l 12(sp),sp
1492: @@:
1493: ; compare first one
1494: pea.l msg_fail_1st(pc)
1495: pea.l (initdata+1*12)(pc)
1496: pea.l 0(a1)
1497: bsr check_ext
1498: lea.l 12(sp),sp
1499: ; compare second one
1500: pea.l msg_fail_2nd(pc)
1501: pea.l (initdata+2*12)(pc)
1502: pea.l 12(a1)
1503: bsr check_ext
1504: lea.l 12(sp),sp
1505:
1506: tst.l d7
1507: bne @f
1508: PRINT msg_ok
1509: @@:
1510: rts
1511:
1512: test_fmovem_fpn_to_anpi_ctrl_sta:
1513: PRINT msg_fmovem_fpn_to_anpi_ctrl_sta
1514: SET_FLINE_TRAP
1515: moveq.l #0,d7
1516: lea.l @f,a3
1517: .dc.w $f218, $f060
1518: @@:
1519: RESTORE_FLINE_TRAP
1520: tst.l d7
1521: bne @f
1522: PRINT msg_fail_notrap
1523: rts
1524: @@:
1525: PRINT msg_oktrap
1526: rts
1527:
1528: test_fmovem_fpn_to_anpd_ctrl_sta:
1529: PRINT msg_fmovem_fpn_to_anpd_ctrl_sta
1530: lea.l initdata(pc),a0
1531: fmove.x (a0)+,fp0
1532: fmove.x (a0)+,fp1
1533: fmove.x (a0)+,fp2
1534: fmove.x (a0)+,fp3
1535: fmove.x (a0)+,fp4
1536: fmove.x (a0)+,fp5
1537: fmove.x (a0)+,fp6
1538: fmove.x (a0)+,fp7
1539: moveq.l #0,d0
1540: moveq.l #0,d1
1541: moveq.l #0,d7
1542: lea.l workarea(pc),a0
1543: movem.l d0-d1/d7,(a0)
1544: movem.l d0-d1/d7,12(a0)
1545: lea.l workarea+24(pc),a0
1546: SET_FLINE_TRAP
1547: lea.l @f,a3
1548: .dc.w $f220, $f060
1549: @@:
1550: RESTORE_FLINE_TRAP
1551: tst.l d7
1552: beq @f
1553: PRINT msg_fail_trap
1554: rts
1555: @@:
1556: lea.l workarea(pc),a1
1557: cmp.l a1,a0
1558: beq @f
1559: pea.l msg_fail_addr(pc)
1560: move.l a1,-(sp)
1561: move.l a0,-(sp)
1562: bsr result
1563: lea.l 12(sp),sp
1564: @@:
1565: ; compare first one
1566: pea.l msg_fail_1st(pc)
1567: pea.l (initdata+1*12)(pc)
1568: pea.l 12(a1)
1569: bsr check_ext
1570: lea.l 12(sp),sp
1571: ; compare second one
1572: pea.l msg_fail_2nd(pc)
1573: pea.l (initdata+2*12)(pc)
1574: pea.l 0(a1)
1575: bsr check_ext
1576: lea.l 12(sp),sp
1577:
1578: tst.l d7
1579: bne @f
1580: PRINT msg_ok
1581: @@:
1582: rts
1583:
1584: test_fmovem_fpn_to_imm_ctrl_sta:
1585: PRINT msg_fmovem_fpn_to_imm_ctrl_sta
1586: SET_FLINE_TRAP
1587: moveq.l #0,d7
1588: lea.l @f,a3
1589: .dc.w $f23c, $f060
1590: @@:
1591: RESTORE_FLINE_TRAP
1592: tst.l d7
1593: bne @f
1594: PRINT msg_fail_notrap
1595: rts
1596: @@:
1597: PRINT msg_oktrap
1598: rts
1599:
1600: test_fmovem_fpn_to_dn_ctrl_dyn:
1601: PRINT msg_fmovem_fpn_to_dn_ctrl_dyn
1602: SET_FLINE_TRAP
1603: moveq.l #0,d7
1604: lea.l @f,a3
1605: .dc.w $f200, $f860
1606: @@:
1607: RESTORE_FLINE_TRAP
1608: tst.l d7
1609: bne @f
1610: PRINT msg_fail_notrap
1611: rts
1612: @@:
1613: PRINT msg_oktrap
1614: rts
1615:
1616: test_fmovem_fpn_to_an_ctrl_dyn:
1617: PRINT msg_fmovem_fpn_to_an_ctrl_dyn
1618: SET_FLINE_TRAP
1619: moveq.l #0,d7
1620: lea.l @f,a3
1621: .dc.w $f208, $f860
1622: @@:
1623: RESTORE_FLINE_TRAP
1624: tst.l d7
1625: bne @f
1626: PRINT msg_fail_notrap
1627: rts
1628: @@:
1629: PRINT msg_oktrap
1630: rts
1631:
1632: test_fmovem_fpn_to_anin_ctrl_dyn:
1633: PRINT msg_fmovem_fpn_to_anin_ctrl_dyn
1634: lea.l initdata(pc),a0
1635: fmove.x (a0)+,fp0
1636: fmove.x (a0)+,fp1
1637: fmove.x (a0)+,fp2
1638: fmove.x (a0)+,fp3
1639: fmove.x (a0)+,fp4
1640: fmove.x (a0)+,fp5
1641: fmove.x (a0)+,fp6
1642: fmove.x (a0)+,fp7
1643: moveq.l #0,d0
1644: moveq.l #0,d1
1645: moveq.l #0,d7
1646: lea.l workarea(pc),a0
1647: movem.l d0-d1/d7,(a0)
1648: movem.l d0-d1/d7,12(a0)
1649: moveq.l #$30,d6
1650: SET_FLINE_TRAP
1651: lea.l @f,a3
1652: .dc.w $f210, $f860
1653: @@:
1654: RESTORE_FLINE_TRAP
1655: tst.l d7
1656: beq @f
1657: PRINT msg_fail_trap
1658: rts
1659: @@:
1660: lea.l workarea(pc),a1
1661: cmp.l a1,a0
1662: beq @f
1663: pea.l msg_fail_addr(pc)
1664: move.l a1,-(sp)
1665: move.l a0,-(sp)
1666: bsr result
1667: lea.l 12(sp),sp
1668: @@:
1669: ; compare first one
1670: pea.l msg_fail_1st(pc)
1671: pea.l (initdata+2*12)(pc)
1672: pea.l 0(a1)
1673: bsr check_ext
1674: lea.l 12(sp),sp
1675: ; compare second one
1676: pea.l msg_fail_2nd(pc)
1677: pea.l (initdata+3*12)(pc)
1678: pea.l 12(a1)
1679: bsr check_ext
1680: lea.l 12(sp),sp
1681:
1682: tst.l d7
1683: bne @f
1684: PRINT msg_ok
1685: @@:
1686: rts
1687:
1688: test_fmovem_fpn_to_anpi_ctrl_dyn:
1689: PRINT msg_fmovem_fpn_to_anpi_ctrl_dyn
1690: SET_FLINE_TRAP
1691: moveq.l #0,d7
1692: lea.l @f,a3
1693: .dc.w $f218, $f860
1694: @@:
1695: RESTORE_FLINE_TRAP
1696: tst.l d7
1697: bne @f
1698: PRINT msg_fail_notrap
1699: rts
1700: @@:
1701: PRINT msg_oktrap
1702: rts
1703:
1704: test_fmovem_fpn_to_anpd_ctrl_dyn:
1705: PRINT msg_fmovem_fpn_to_anpd_ctrl_dyn
1706: lea.l initdata(pc),a0
1707: fmove.x (a0)+,fp0
1708: fmove.x (a0)+,fp1
1709: fmove.x (a0)+,fp2
1710: fmove.x (a0)+,fp3
1711: fmove.x (a0)+,fp4
1712: fmove.x (a0)+,fp5
1713: fmove.x (a0)+,fp6
1714: fmove.x (a0)+,fp7
1715: moveq.l #0,d0
1716: moveq.l #0,d1
1717: moveq.l #0,d7
1718: lea.l workarea(pc),a0
1719: movem.l d0-d1/d7,(a0)
1720: movem.l d0-d1/d7,12(a0)
1721: lea.l workarea+24(pc),a0
1722: moveq.l #$30,d6
1723: SET_FLINE_TRAP
1724: lea.l @f,a3
1725: .dc.w $f220, $f860
1726: @@:
1727: RESTORE_FLINE_TRAP
1728: tst.l d7
1729: beq @f
1730: PRINT msg_fail_trap
1731: rts
1732: @@:
1733: lea.l workarea(pc),a1
1734: cmp.l a1,a0
1735: beq @f
1736: pea.l msg_fail_addr(pc)
1737: move.l a1,-(sp)
1738: move.l a0,-(sp)
1739: bsr result
1740: lea.l 12(sp),sp
1741: @@:
1742: ; compare first one
1743: pea.l msg_fail_1st(pc)
1744: pea.l (initdata+2*12)(pc)
1745: pea.l 12(a1)
1746: bsr check_ext
1747: lea.l 12(sp),sp
1748: ; compare second one
1749: pea.l msg_fail_2nd(pc)
1750: pea.l (initdata+3*12)(pc)
1751: pea.l 0(a1)
1752: bsr check_ext
1753: lea.l 12(sp),sp
1754:
1755: tst.l d7
1756: bne @f
1757: PRINT msg_ok
1758: @@:
1759: rts
1760:
1761: test_fmovem_fpn_to_imm_ctrl_dyn:
1762: PRINT msg_fmovem_fpn_to_imm_ctrl_dyn
1763: SET_FLINE_TRAP
1764: moveq.l #0,d7
1765: lea.l @f,a3
1766: .dc.w $f23c, $f860
1767: @@:
1768: RESTORE_FLINE_TRAP
1769: tst.l d7
1770: bne @f
1771: PRINT msg_fail_notrap
1772: rts
1773: @@:
1774: PRINT msg_oktrap
1775: rts
1776:
1777: test_fmovem_nofpn:
1778: PRINT msg_fmovem_nofpn
1779: lea.l initdata(pc),a0
1780: fmove.x (a0)+,fp0
1781: fmove.x (a0)+,fp1
1782: fmove.x (a0)+,fp2
1783: fmove.x (a0)+,fp3
1784: fmove.x (a0)+,fp4
1785: fmove.x (a0)+,fp5
1786: fmove.x (a0)+,fp6
1787: fmove.x (a0)+,fp7
1788: SET_FLINE_TRAP
1789: moveq.l #0,d7
1790: lea.l workarea(pc),a0
1791: move.l d7,(a0)
1792: move.l d7,4(a0)
1793: move.l d7,8(a0)
1794: lea.l @f,a3
1795: .dc.w $f210, $f000 ; fmovem nofpn,(a0)
1796: @@:
1797: RESTORE_FLINE_TRAP
1798: tst.l d7
1799: beq @f
1800: PRINT msg_fail_trap
1801: rts
1802: @@:
1803: pea.l msg_fail_1st(pc)
1804: pea.l zerodata(pc)
1805: pea.l (a0)
1806: bsr check_ext
1807: lea.l 12(sp),sp
1808:
1809: tst.l d7
1810: bne @f
1811: PRINT msg_ok
1812: @@:
1813: rts
1814:
1815: test_fmovem_illegal_dyn:
1816: PRINT msg_fmovem_illegal_dyn
1817: lea.l initdata(pc),a0
1818: fmove.x (a0)+,fp0
1819: fmove.x (a0)+,fp1
1820: fmove.x (a0)+,fp2
1821: fmove.x (a0)+,fp3
1822: fmove.x (a0)+,fp4
1823: fmove.x (a0)+,fp5
1824: fmove.x (a0)+,fp6
1825: fmove.x (a0)+,fp7
1826: SET_FLINE_TRAP
1827: lea.l srcdata(pc),a0
1828: moveq.l #$80,d6
1829: moveq.l #0,d7
1830: lea.l @f,a3
1831: .dc.w $f210, $d86f ; fmovem (a0),d6
1832: @@:
1833: RESTORE_FLINE_TRAP
1834:
1835: tst.l d7
1836: beq @f
1837: PRINT msg_fail_trap
1838: rts
1839: @@:
1840: lea.l workarea(pc),a0
1841: fmovem.x fp0,(a0)
1842: pea.l msg_fail_fp0(pc)
1843: pea.l srcdata(pc)
1844: pea.l (a0)
1845: bsr check_ext
1846: lea.l 12(sp),sp
1847:
1848: tst.l d7
1849: bne @f
1850: PRINT msg_ok
1851: @@:
1852: rts
1853:
1854: start:
1855: clr.l -(sp)
1856: DOS _SUPER
1857: movem.l d6-d7/a2-a5,-(sp)
1858: moveq.l #$2c,d0 ; alternate of "lea.l $2c,a5"
1859: move.l d0,a5 ;
1860: bsr test_fmovem_dn_to_fpn_pred_sta
1861: bsr test_fmovem_an_to_fpn_pred_sta
1862: bsr test_fmovem_anin_to_fpn_pred_sta
1863: bsr test_fmovem_anpi_to_fpn_pred_sta
1864: bsr test_fmovem_anpd_to_fpn_pred_sta
1865: bsr test_fmovem_imm_to_fpn_pred_sta
1866: bsr test_fmovem_dn_to_fpn_pred_dyn
1867: bsr test_fmovem_an_to_fpn_pred_dyn
1868: bsr test_fmovem_anin_to_fpn_pred_dyn
1869: bsr test_fmovem_anpi_to_fpn_pred_dyn
1870: bsr test_fmovem_anpd_to_fpn_pred_dyn
1871: bsr test_fmovem_imm_to_fpn_pred_dyn
1872: bsr test_fmovem_dn_to_fpn_ctrl_sta
1873: bsr test_fmovem_an_to_fpn_ctrl_sta
1874: bsr test_fmovem_anin_to_fpn_ctrl_sta
1875: bsr test_fmovem_anpi_to_fpn_ctrl_sta
1876: bsr test_fmovem_anpd_to_fpn_ctrl_sta
1877: bsr test_fmovem_imm_to_fpn_ctrl_sta
1878: bsr test_fmovem_dn_to_fpn_ctrl_dyn
1879: bsr test_fmovem_an_to_fpn_ctrl_dyn
1880: bsr test_fmovem_anin_to_fpn_ctrl_dyn
1881: bsr test_fmovem_anpi_to_fpn_ctrl_dyn
1882: bsr test_fmovem_anpd_to_fpn_ctrl_dyn
1883: bsr test_fmovem_imm_to_fpn_ctrl_dyn
1884: bsr test_fmovem_fpn_to_dn_pred_sta
1885: bsr test_fmovem_fpn_to_an_pred_sta
1886: bsr test_fmovem_fpn_to_anin_pred_sta
1887: bsr test_fmovem_fpn_to_anpi_pred_sta
1888: bsr test_fmovem_fpn_to_anpd_pred_sta
1889: bsr test_fmovem_fpn_to_imm_pred_sta
1890: bsr test_fmovem_fpn_to_dn_pred_dyn
1891: bsr test_fmovem_fpn_to_an_pred_dyn
1892: bsr test_fmovem_fpn_to_anin_pred_dyn
1893: bsr test_fmovem_fpn_to_anpi_pred_dyn
1894: bsr test_fmovem_fpn_to_anpd_pred_dyn
1895: bsr test_fmovem_fpn_to_imm_pred_dyn
1896: bsr test_fmovem_fpn_to_dn_ctrl_sta
1897: bsr test_fmovem_fpn_to_an_ctrl_sta
1898: bsr test_fmovem_fpn_to_anin_ctrl_sta
1899: bsr test_fmovem_fpn_to_anpi_ctrl_sta
1900: bsr test_fmovem_fpn_to_anpd_ctrl_sta
1901: bsr test_fmovem_fpn_to_imm_ctrl_sta
1902: bsr test_fmovem_fpn_to_dn_ctrl_dyn
1903: bsr test_fmovem_fpn_to_an_ctrl_dyn
1904: bsr test_fmovem_fpn_to_anin_ctrl_dyn
1905: bsr test_fmovem_fpn_to_anpi_ctrl_dyn
1906: bsr test_fmovem_fpn_to_anpd_ctrl_dyn
1907: bsr test_fmovem_fpn_to_imm_ctrl_dyn
1908: bsr test_fmovem_nofpn
1909: bsr test_fmovem_illegal_dyn
1910: movem.l (sp)+,d6-d7/a2-a5
1911: DOS _EXIT
1912:
1913: ; 結果表示
1914: ; スタックには、メッセージ、期待値、実際の値の順で積む。
1915: result:
1916: link a6,#0
1917: movem.l d0/a0,-(sp)
1918:
1919: move.l 8+8(a6),-(sp)
1920: DOS _PRINT
1921: addq.l #4,sp
1922:
1923: move.l 8+4(a6),d0
1924: lea.l buf(pc),a0
1925: bsr hexstr_long
1926: PRINT buf
1927: PRINT msg_but
1928:
1929: move.l 8+0(a6),d0
1930: lea.l buf(pc),a0
1931: bsr hexstr_long
1932: PRINT buf
1933: PRINT msg_crlf
1934:
1935: addq.l #1,d7 ; errcnt
1936: movem.l (sp)+,d0/a0
1937: unlk a6
1938: rts
1939:
1940: ; 拡張精度の比較と結果表示。
1941: ; 一致したら何もせず帰る。一致しなければエラーメッセージを表示。
1942: ; スタックには、(エラー時の)メッセージ、期待値、実際の値の順で積む
1943: check_ext:
1944: link a6,#0
1945: movem.l d0/a0-a2,-(sp)
1946:
1947: move.l 8+4(a6),a1
1948: move.l 8+0(a6),a2
1949: cmpm.l (a1)+,(a2)+
1950: bne @f
1951: cmpm.l (a1)+,(a2)+
1952: bne @f
1953: cmpm.l (a1)+,(a2)+
1954: bne @f
1955: ; equal
1956: bra check_ext_done
1957:
1958: @@: ; not equal
1959: move.l 8+8(a6),-(sp)
1960: DOS _PRINT
1961: addq.l #4,sp
1962:
1963: lea.l buf(pc),a0
1964: move.l 8+4(a6),a1
1965: move.l (a1)+,d0
1966: bsr hexstr_long
1967: move.b #'_',(a0)+
1968: move.l (a1)+,d0
1969: bsr hexstr_long
1970: move.b #'_',(a0)+
1971: move.l (a1),d0
1972: bsr hexstr_long
1973: PRINT buf
1974: PRINT msg_but
1975:
1976: lea.l buf(pc),a0
1977: move.l 8+0(a6),a2
1978: move.l (a2)+,d0
1979: bsr hexstr_long
1980: move.b #'_',(a0)+
1981: move.l (a2)+,d0
1982: bsr hexstr_long
1983: move.b #'_',(a0)+
1984: move.l (a2),d0
1985: bsr hexstr_long
1986: PRINT buf
1987: PRINT msg_crlf
1988:
1989: addq.l #1,d7 ; errcnt
1990: check_ext_done:
1991: movem.l (sp)+,d0/a0-a2
1992: unlk a6
1993: rts
1994:
1995: ; Fライン例外ハンドラ
1996: ; a3 に戻りアドレスをセットしてあること
1997: ; d7 を 1 にして帰る
1998: fline_handler:
1999: moveq.l #1,d7
2000: move.l a3,2(sp)
2001: rte
2002:
2003: ; FPn を埋める初期値
2004: initdata:
2005: .dc.l $0, $0, $8
2006: .dc.l $0, $0, $1
2007: .dc.l $0, $0, $2
2008: .dc.l $0, $0, $3
2009: .dc.l $0, $0, $4
2010: .dc.l $0, $0, $5
2011: .dc.l $0, $0, $6
2012: .dc.l $0, $0, $7
2013:
2014: ; ターゲットの FPn に転送するデータ
2015: srcdata:
2016: .dc.l $3fff0000, $88112233, $44556677
2017: .dc.l $dfff0000, $8899aabb, $ccddeeff
2018:
2019: zerodata:
2020: .dc.l $0, $0, $0
2021:
2022: msg_oktrap: .dc.b $9,"ok(trap)",$d,$a,0, 0,0
2023: msg_fail_notrap: .dc.b $9,"FAIL: trap expected but not occured",$d,$a,0
2024: msg_fail_trap: .dc.b $9,"FAIL: unexpected trap occured",$d,$a,0
2025:
2026: msg_ok: .dc.b $9,"ok",$d,$a,0
2027: msg_fail_fp0: .dc.b $9,"FAIL: fp0 expects ",0
2028: msg_fail_fp1: .dc.b $9,"FAIL: fp1 expects ",0
2029: msg_fail_fp2: .dc.b $9,"FAIL: fp2 expects ",0
2030: msg_fail_fp3: .dc.b $9,"FAIL: fp3 expects ",0
2031: msg_fail_fp4: .dc.b $9,"FAIL: fp4 expects ",0
2032: msg_fail_fp5: .dc.b $9,"FAIL: fp5 expects ",0
2033: msg_fail_fp6: .dc.b $9,"FAIL: fp6 expects ",0
2034: msg_fail_fp7: .dc.b $9,"FAIL: fp7 expects ",0
2035: msg_fail_1st: .dc.b $9,"FAIL: 1st expects ",0
2036: msg_fail_2nd: .dc.b $9,"FAIL: 2nd expects ",0
2037: msg_fail_addr: .dc.b $9,"FAIL: an expects ",0
2038: msg_but: .dc.b " but ",0
2039: msg_crlf: .dc.b $d,$a,0
2040:
2041: msg_fmovem_dn_to_fpn_pred_sta: .dc.b "fmovem_dn_to_fpn_pred_sta",0
2042: msg_fmovem_an_to_fpn_pred_sta: .dc.b "fmovem_an_to_fpn_pred_sta",0
2043: msg_fmovem_anin_to_fpn_pred_sta: .dc.b "fmovem_anin_to_fpn_pred_sta",0
2044: msg_fmovem_anpi_to_fpn_pred_sta: .dc.b "fmovem_anpi_to_fpn_pred_sta",0
2045: msg_fmovem_anpd_to_fpn_pred_sta: .dc.b "fmovem_anpd_to_fpn_pred_sta",0
2046: msg_fmovem_imm_to_fpn_pred_sta: .dc.b "fmovem_imm_to_fpn_pred_sta",0
2047: msg_fmovem_dn_to_fpn_pred_dyn: .dc.b "fmovem_dn_to_fpn_pred_dyn",0
2048: msg_fmovem_an_to_fpn_pred_dyn: .dc.b "fmovem_an_to_fpn_pred_dyn",0
2049: msg_fmovem_anin_to_fpn_pred_dyn: .dc.b "fmovem_anin_to_fpn_pred_dyn",0
2050: msg_fmovem_anpi_to_fpn_pred_dyn: .dc.b "fmovem_anpi_to_fpn_pred_dyn",0
2051: msg_fmovem_anpd_to_fpn_pred_dyn: .dc.b "fmovem_anpd_to_fpn_pred_dyn",0
2052: msg_fmovem_imm_to_fpn_pred_dyn: .dc.b "fmovem_imm_to_fpn_pred_dyn",0
2053: msg_fmovem_dn_to_fpn_ctrl_sta: .dc.b "fmovem_dn_to_fpn_ctrl_sta",0
2054: msg_fmovem_an_to_fpn_ctrl_sta: .dc.b "fmovem_an_to_fpn_ctrl_sta",0
2055: msg_fmovem_anin_to_fpn_ctrl_sta: .dc.b "fmovem_anin_to_fpn_ctrl_sta",0
2056: msg_fmovem_anpi_to_fpn_ctrl_sta: .dc.b "fmovem_anpi_to_fpn_ctrl_sta",0
2057: msg_fmovem_anpd_to_fpn_ctrl_sta: .dc.b "fmovem_anpd_to_fpn_ctrl_sta",0
2058: msg_fmovem_imm_to_fpn_ctrl_sta: .dc.b "fmovem_imm_to_fpn_ctrl_sta",0
2059: msg_fmovem_dn_to_fpn_ctrl_dyn: .dc.b "fmovem_dn_to_fpn_ctrl_dyn",0
2060: msg_fmovem_an_to_fpn_ctrl_dyn: .dc.b "fmovem_an_to_fpn_ctrl_dyn",0
2061: msg_fmovem_anin_to_fpn_ctrl_dyn: .dc.b "fmovem_anin_to_fpn_ctrl_dyn",0
2062: msg_fmovem_anpi_to_fpn_ctrl_dyn: .dc.b "fmovem_anpi_to_fpn_ctrl_dyn",0
2063: msg_fmovem_anpd_to_fpn_ctrl_dyn: .dc.b "fmovem_anpd_to_fpn_ctrl_dyn",0
2064: msg_fmovem_imm_to_fpn_ctrl_dyn: .dc.b "fmovem_imm_to_fpn_ctrl_dyn",0
2065: msg_fmovem_fpn_to_dn_pred_sta: .dc.b "fmovem_fpn_to_dn_pred_sta",0
2066: msg_fmovem_fpn_to_an_pred_sta: .dc.b "fmovem_fpn_to_an_pred_sta",0
2067: msg_fmovem_fpn_to_anin_pred_sta: .dc.b "fmovem_fpn_to_anin_pred_sta",0
2068: msg_fmovem_fpn_to_anpi_pred_sta: .dc.b "fmovem_fpn_to_anpi_pred_sta",0
2069: msg_fmovem_fpn_to_anpd_pred_sta: .dc.b "fmovem_fpn_to_anpd_pred_sta",0
2070: msg_fmovem_fpn_to_imm_pred_sta: .dc.b "fmovem_fpn_to_imm_pred_sta",0
2071: msg_fmovem_fpn_to_dn_pred_dyn: .dc.b "fmovem_fpn_to_dn_pred_dyn",0
2072: msg_fmovem_fpn_to_an_pred_dyn: .dc.b "fmovem_fpn_to_an_pred_dyn",0
2073: msg_fmovem_fpn_to_anin_pred_dyn: .dc.b "fmovem_fpn_to_anin_pred_dyn",0
2074: msg_fmovem_fpn_to_anpi_pred_dyn: .dc.b "fmovem_fpn_to_anpi_pred_dyn",0
2075: msg_fmovem_fpn_to_anpd_pred_dyn: .dc.b "fmovem_fpn_to_anpd_pred_dyn",0
2076: msg_fmovem_fpn_to_imm_pred_dyn: .dc.b "fmovem_fpn_to_imm_pred_dyn",0
2077: msg_fmovem_fpn_to_dn_ctrl_sta: .dc.b "fmovem_fpn_to_dn_ctrl_sta",0
2078: msg_fmovem_fpn_to_an_ctrl_sta: .dc.b "fmovem_fpn_to_an_ctrl_sta",0
2079: msg_fmovem_fpn_to_anin_ctrl_sta: .dc.b "fmovem_fpn_to_anin_ctrl_sta",0
2080: msg_fmovem_fpn_to_anpi_ctrl_sta: .dc.b "fmovem_fpn_to_anpi_ctrl_sta",0
2081: msg_fmovem_fpn_to_anpd_ctrl_sta: .dc.b "fmovem_fpn_to_anpd_ctrl_sta",0
2082: msg_fmovem_fpn_to_imm_ctrl_sta: .dc.b "fmovem_fpn_to_imm_ctrl_sta",0
2083: msg_fmovem_fpn_to_dn_ctrl_dyn: .dc.b "fmovem_fpn_to_dn_ctrl_dyn",0
2084: msg_fmovem_fpn_to_an_ctrl_dyn: .dc.b "fmovem_fpn_to_an_ctrl_dyn",0
2085: msg_fmovem_fpn_to_anin_ctrl_dyn: .dc.b "fmovem_fpn_to_anin_ctrl_dyn",0
2086: msg_fmovem_fpn_to_anpi_ctrl_dyn: .dc.b "fmovem_fpn_to_anpi_ctrl_dyn",0
2087: msg_fmovem_fpn_to_anpd_ctrl_dyn: .dc.b "fmovem_fpn_to_anpd_ctrl_dyn",0
2088: msg_fmovem_fpn_to_imm_ctrl_dyn: .dc.b "fmovem_fpn_to_imm_ctrl_dyn",0
2089: msg_fmovem_nofpn: .dc.b "fmovem_nofpn",0
2090: msg_fmovem_illegal_dyn: .dc.b "fmovem_illegal_dyn",0
2091:
2092: .data
2093: .even
2094: workarea: .ds.b 24
2095: buf: .dc.b 64
2096:
2097: .end start
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.