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