1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP
3 M68000 Hi-Performance Microprocessor Division
4 M68060 Software Package
5 Production Release P1.00 -- October 10, 1994
7 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved.
9 THE SOFTWARE is provided on an "AS IS" basis and without warranty.
10 To the maximum extent permitted by applicable law,
11 MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED,
12 INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
13 and any warranty against infringement with regard to the SOFTWARE
14 (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials.
16 To the maximum extent permitted by applicable law,
17 IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER
18 (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS,
19 BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS)
20 ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE.
21 Motorola assumes no responsibility for the maintenance and support of the SOFTWARE.
23 You are hereby granted a copyright license to use, modify, and distribute the SOFTWARE
24 so long as this entire notice is retained without alteration in any modified and/or
25 redistributed versions, and that such modified versions are clearly identified as such.
26 No licenses are granted by implication, estoppel or otherwise under any patents
27 or trademarks of Motorola, Inc.
28 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
29 #############################################
41 #############################################
49 bra.l _060TESTS_enable
53 string "Testing 68060 FPSP started:\n"
56 string "Testing 68060 FPSP unimplemented instruction started:\n"
59 string "Testing 68060 FPSP exception enabled started:\n"
86 #############################################
117 ### ovfl non-maskable
125 ### unfl non-maskable
133 movm.l (%sp)+,&0x3cfc
142 movm.l &0x3f3c,-(%sp)
145 pea start_str_unimp(%pc)
159 movm.l (%sp)+,&0x3cfc
168 movm.l &0x3f3c,-(%sp)
171 pea start_str_enable(%pc)
223 movm.l (%sp)+,&0x3cfc
229 #############################################
230 #############################################
233 string "\tUnimplemented FP instructions..."
237 addq.l &0x1,TESTCTR(%a6)
239 movm.l DEF_REGS(%pc),&0x3fff
240 fmovm.x DEF_FPREGS(%pc),&0xff
241 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
243 mov.w &0x0000,ICCR(%a6)
244 movm.l &0x7fff,IREGS(%a6)
245 fmovm.x &0xff,IFPREGS(%a6)
246 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
248 mov.l &0x40000000,DATA+0x0(%a6)
249 mov.l &0xc90fdaa2,DATA+0x4(%a6)
250 mov.l &0x2168c235,DATA+0x8(%a6)
254 fsin.x DATA(%a6),%fp0
257 movm.l &0x7fff,SREGS(%a6)
258 fmovm.x &0xff,SFPREGS(%a6)
259 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
261 mov.l &0xbfbf0000,IFPREGS+0x0(%a6)
262 mov.l &0x80000000,IFPREGS+0x4(%a6)
263 mov.l &0x00000000,IFPREGS+0x8(%a6)
264 mov.l &0x08000208,IFPCREGS+0x4(%a6)
265 lea unimp_0_pc(%pc),%a0
266 mov.l %a0,IFPCREGS+0x8(%a6)
277 addq.l &0x1,TESTCTR(%a6)
279 movm.l DEF_REGS(%pc),&0x3fff
280 fmovm.x DEF_FPREGS(%pc),&0xff
281 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
283 mov.w &0x0000,ICCR(%a6)
284 movm.l &0x7fff,IREGS(%a6)
285 fmovm.x &0xff,IFPREGS(%a6)
286 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
288 mov.l &0x3ffe0000,DATA+0x0(%a6)
289 mov.l &0xc90fdaa2,DATA+0x4(%a6)
290 mov.l &0x2168c235,DATA+0x8(%a6)
294 ftan.x DATA(%a6),%fp0
297 movm.l &0x7fff,SREGS(%a6)
298 fmovm.x &0xff,SFPREGS(%a6)
299 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
301 mov.l &0x3fff0000,IFPREGS+0x0(%a6)
302 mov.l &0x80000000,IFPREGS+0x4(%a6)
303 mov.l &0x00000000,IFPREGS+0x8(%a6)
304 mov.l &0x00000208,IFPCREGS+0x4(%a6)
305 lea unimp_1_pc(%pc),%a0
306 mov.l %a0,IFPCREGS+0x8(%a6)
318 addq.l &0x1,TESTCTR(%a6)
320 movm.l DEF_REGS(%pc),&0x3fff
321 fmovm.x DEF_FPREGS(%pc),&0xff
322 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
324 mov.w &0x0000,ICCR(%a6)
325 movm.l &0x7fff,IREGS(%a6)
326 fmovm.x &0xff,IFPREGS(%a6)
327 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
334 movm.l &0x7fff,SREGS(%a6)
335 fmovm.x &0xff,SFPREGS(%a6)
336 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
338 mov.l &0x40000000,IFPREGS+0x0(%a6)
339 mov.l &0x935d8ddd,IFPREGS+0x4(%a6)
340 mov.l &0xaaa8ac17,IFPREGS+0x8(%a6)
341 mov.l &0x00000208,IFPCREGS+0x4(%a6)
342 lea unimp_2_pc(%pc),%a0
343 mov.l %a0,IFPCREGS+0x8(%a6)
355 addq.l &0x1,TESTCTR(%a6)
357 movm.l DEF_REGS(%pc),&0x3fff
358 fmovm.x DEF_FPREGS(%pc),&0xff
359 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
361 fmov.l &0x0f000000,%fpsr
364 mov.w &0x0000,ICCR(%a6)
365 movm.l &0x7fff,IREGS(%a6)
366 fmovm.x &0xff,IFPREGS(%a6)
367 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
374 movm.l &0x7fff,SREGS(%a6)
375 fmovm.x &0xff,SFPREGS(%a6)
376 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
377 mov.l &0x0f008080,IFPCREGS+0x4(%a6)
378 lea unimp_3_pc(%pc),%a0
379 mov.l %a0,IFPCREGS+0x8(%a6)
391 addq.l &0x1,TESTCTR(%a6)
393 movm.l DEF_REGS(%pc),&0x3fff
394 fmovm.x DEF_FPREGS(%pc),&0xff
395 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
397 fmov.l &0x0f000000,%fpsr
400 mov.w &0x0000,ICCR(%a6)
401 movm.l &0x7fff,IREGS(%a6)
402 fmovm.x &0xff,IFPREGS(%a6)
403 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
407 fdbgt.w %d7,unimp_4_pc
410 movm.l &0x7fff,SREGS(%a6)
411 fmovm.x &0xff,SFPREGS(%a6)
412 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
413 mov.w &0xffff,IREGS+28+2(%a6)
414 mov.l &0x0f008080,IFPCREGS+0x4(%a6)
415 lea unimp_4_pc(%pc),%a0
416 mov.l %a0,IFPCREGS+0x8(%a6)
428 addq.l &0x1,TESTCTR(%a6)
430 movm.l DEF_REGS(%pc),&0x3fff
431 fmovm.x DEF_FPREGS(%pc),&0xff
432 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
434 fmov.l &0x0f000000,%fpsr
436 mov.w &0x0000,ICCR(%a6)
437 movm.l &0x7fff,IREGS(%a6)
438 fmovm.x &0xff,IFPREGS(%a6)
439 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
446 movm.l &0x7fff,SREGS(%a6)
447 fmovm.x &0xff,SFPREGS(%a6)
448 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
449 mov.l &0x0f008080,IFPCREGS+0x4(%a6)
450 lea unimp_5_pc(%pc),%a0
451 mov.l %a0,IFPCREGS+0x8(%a6)
464 #############################################
467 string "\tUnimplemented <ea>..."
471 addq.l &0x1,TESTCTR(%a6)
473 movm.l DEF_REGS(%pc),&0x3fff
474 fmovm.x DEF_FPREGS(%pc),&0xff
475 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
477 mov.w &0x0000,ICCR(%a6)
478 movm.l &0x7fff,IREGS(%a6)
479 fmovm.x &0xff,IFPREGS(%a6)
480 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
486 fmul.x &0xc00000008000000000000000,%fp0
489 movm.l &0x7fff,SREGS(%a6)
490 fmovm.x &0xff,SFPREGS(%a6)
491 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
493 mov.l &0xc0010000,IFPREGS+0x0(%a6)
494 mov.l &0x80000000,IFPREGS+0x4(%a6)
495 mov.l &0x00000000,IFPREGS+0x8(%a6)
496 mov.l &0x08000000,IFPCREGS+0x4(%a6)
497 lea effadd_0_pc(%pc),%a0
498 mov.l %a0,IFPCREGS+0x8(%a6)
509 addq.l &0x1,TESTCTR(%a6)
511 movm.l DEF_REGS(%pc),&0x3fff
512 fmovm.x DEF_FPREGS(%pc),&0xff
513 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
515 mov.w &0x0000,ICCR(%a6)
516 movm.l &0x7fff,IREGS(%a6)
517 fmovm.x &0xff,IFPREGS(%a6)
518 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
522 fabs.p &0xc12300012345678912345678,%fp0
525 movm.l &0x7fff,SREGS(%a6)
526 fmovm.x &0xff,SFPREGS(%a6)
527 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
529 mov.l &0x3e660000,IFPREGS+0x0(%a6)
530 mov.l &0xd0ed23e8,IFPREGS+0x4(%a6)
531 mov.l &0xd14035bc,IFPREGS+0x8(%a6)
532 mov.l &0x00000108,IFPCREGS+0x4(%a6)
533 lea effadd_1_pc(%pc),%a0
534 mov.l %a0,IFPCREGS+0x8(%a6)
545 addq.l &0x1,TESTCTR(%a6)
547 movm.l DEF_REGS(%pc),&0x3fff
548 fmovm.x DEF_FPREGS(%pc),&0xff
549 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
551 mov.w &0x0000,ICCR(%a6)
553 movm.l &0x7fff,IREGS(%a6)
554 fmovm.x &0xff,IFPREGS(%a6)
555 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
557 fmovm.l &0xffffffffffffffff,%fpcr,%fpsr
560 movm.l &0x7fff,SREGS(%a6)
561 fmovm.x &0xff,SFPREGS(%a6)
562 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
563 mov.l &0x0000fff0,IFPCREGS+0x0(%a6)
564 mov.l &0x0ffffff8,IFPCREGS+0x4(%a6)
575 addq.l &0x1,TESTCTR(%a6)
577 movm.l DEF_REGS(%pc),&0x3fff
578 fmovm.x DEF_FPREGS(%pc),&0xff
579 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
581 mov.w &0x0000,ICCR(%a6)
583 movm.l &0x7fff,IREGS(%a6)
584 fmovm.x &0xff,IFPREGS(%a6)
585 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
587 fmovm.l &0xffffffffffffffff,%fpcr,%fpiar
590 movm.l &0x7fff,SREGS(%a6)
591 fmovm.x &0xff,SFPREGS(%a6)
592 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
593 mov.l &0x0000fff0,IFPCREGS+0x0(%a6)
594 mov.l &0xffffffff,IFPCREGS+0x8(%a6)
605 addq.l &0x1,TESTCTR(%a6)
607 movm.l DEF_REGS(%pc),&0x3fff
608 fmovm.x DEF_FPREGS(%pc),&0xff
609 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
611 mov.w &0x0000,ICCR(%a6)
613 movm.l &0x7fff,IREGS(%a6)
614 fmovm.x &0xff,IFPREGS(%a6)
615 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
617 fmovm.l &0xffffffffffffffff,%fpsr,%fpiar
620 movm.l &0x7fff,SREGS(%a6)
621 fmovm.x &0xff,SFPREGS(%a6)
622 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
623 mov.l &0x0ffffff8,IFPCREGS+0x4(%a6)
624 mov.l &0xffffffff,IFPCREGS+0x8(%a6)
635 addq.l &0x1,TESTCTR(%a6)
637 movm.l DEF_REGS(%pc),&0x3fff
638 fmovm.x DEF_FPREGS(%pc),&0xff
639 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
641 mov.w &0x0000,ICCR(%a6)
643 movm.l &0x7fff,IREGS(%a6)
644 fmovm.x &0xff,IFPREGS(%a6)
645 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
647 fmovm.l &0xffffffffffffffffffffffff,%fpcr,%fpsr,%fpiar
650 movm.l &0x7fff,SREGS(%a6)
651 fmovm.x &0xff,SFPREGS(%a6)
652 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
653 mov.l &0x0000fff0,IFPCREGS+0x0(%a6)
654 mov.l &0x0ffffff8,IFPCREGS+0x4(%a6)
655 mov.l &0xffffffff,IFPCREGS+0x8(%a6)
667 addq.l &0x1,TESTCTR(%a6)
669 movm.l DEF_REGS(%pc),&0x3fff
670 fmovm.x DEF_FPREGS(%pc),&0xff
671 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
683 mov.l &0xffffffaa,%d0
685 mov.w &0x0000,ICCR(%a6)
686 movm.l &0xffff,IREGS(%a6)
688 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
689 fmovm.x &0xff,IFPREGS(%a6)
697 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
699 fmov.s &0x7f800000,%fp1
700 fmov.s &0x7f800000,%fp3
701 fmov.s &0x7f800000,%fp5
702 fmov.s &0x7f800000,%fp7
709 movm.l &0xffff,SREGS(%a6)
710 fmovm.x &0xff,SFPREGS(%a6)
721 addq.l &0x1,TESTCTR(%a6)
723 movm.l DEF_REGS(%pc),&0x3fff
724 fmovm.x DEF_FPREGS(%pc),&0xff
725 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
741 fmovm.x &0xff,IFPREGS(%a6)
743 fmov.s &0x7f800000,%fp6
744 fmov.s &0x7f800000,%fp4
745 fmov.s &0x7f800000,%fp2
746 fmov.s &0x7f800000,%fp0
750 mov.l &0xffffffaa,%d0
752 mov.w &0x0000,ICCR(%a6)
753 movm.l &0xffff,IREGS(%a6)
755 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
763 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
765 movm.l &0xffff,SREGS(%a6)
766 fmovm.x &0xff,SFPREGS(%a6)
777 addq.l &0x1,TESTCTR(%a6)
779 movm.l DEF_REGS(%pc),&0x3fff
780 fmovm.x DEF_FPREGS(%pc),&0xff
781 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
793 mov.l &0xffffff00,%d0
795 mov.w &0x0000,ICCR(%a6)
796 movm.l &0xffff,IREGS(%a6)
798 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
799 fmovm.x &0xff,IFPREGS(%a6)
807 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
809 movm.l &0xffff,SREGS(%a6)
810 fmovm.x &0xff,SFPREGS(%a6)
823 ###########################################################
825 # This test will take a non-maskable overflow directly.
827 string "\tNon-maskable overflow..."
831 addq.l &0x1,TESTCTR(%a6)
833 movm.l DEF_REGS(%pc),&0x3fff
834 fmovm.x DEF_FPREGS(%pc),&0xff
835 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
837 mov.w &0x0000,ICCR(%a6)
838 movm.l &0x7fff,IREGS(%a6)
839 fmovm.x &0xff,IFPREGS(%a6)
840 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
843 mov.l &0x7ffe0000,DATA+0x0(%a6)
844 mov.l &0x80000000,DATA+0x4(%a6)
845 mov.l &0x00000000,DATA+0x8(%a6)
849 fmul.x DATA(%a6),%fp0
852 movm.l &0x7fff,SREGS(%a6)
853 fmovm.x &0xff,SFPREGS(%a6)
854 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
856 mov.l &0x7fff0000,IFPREGS+0x0(%a6)
857 mov.l &0x00000000,IFPREGS+0x4(%a6)
858 mov.l &0x00000000,IFPREGS+0x8(%a6)
859 mov.l &0x02001048,IFPCREGS+0x4(%a6)
860 lea ovfl_nm_0_pc(%pc),%a0
861 mov.l %a0,IFPCREGS+0x8(%a6)
874 ###########################################################
876 # This test will take an overflow directly.
878 string "\tEnabled overflow..."
882 addq.l &0x1,TESTCTR(%a6)
884 movm.l DEF_REGS(%pc),&0x3fff
885 fmovm.x DEF_FPREGS(%pc),&0xff
886 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
888 mov.w &0x0000,ICCR(%a6)
889 movm.l &0x7fff,IREGS(%a6)
890 fmovm.x &0xff,IFPREGS(%a6)
891 fmov.l &0x00001000,%fpcr
892 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
895 mov.l &0x7ffe0000,DATA+0x0(%a6)
896 mov.l &0x80000000,DATA+0x4(%a6)
897 mov.l &0x00000000,DATA+0x8(%a6)
901 fmul.x DATA(%a6),%fp0
904 movm.l &0x7fff,SREGS(%a6)
905 fmovm.x &0xff,SFPREGS(%a6)
906 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
908 mov.l &0x7fff0000,IFPREGS+0x0(%a6)
909 mov.l &0x00000000,IFPREGS+0x4(%a6)
910 mov.l &0x00000000,IFPREGS+0x8(%a6)
911 mov.l &0x02001048,IFPCREGS+0x4(%a6)
912 lea ovfl_0_pc(%pc),%a0
913 mov.l %a0,IFPCREGS+0x8(%a6)
926 #####################################################################
928 # This test will take an underflow directly.
930 string "\tEnabled underflow..."
934 addq.l &0x1,TESTCTR(%a6)
936 movm.l DEF_REGS(%pc),&0x3fff
937 fmovm.x DEF_FPREGS(%pc),&0xff
938 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
940 mov.w &0x0000,ICCR(%a6)
941 movm.l &0x7fff,IREGS(%a6)
942 fmovm.x &0xff,IFPREGS(%a6)
943 fmov.l &0x00000800,%fpcr
944 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
946 mov.l &0x00000000,DATA+0x0(%a6)
947 mov.l &0x80000000,DATA+0x4(%a6)
948 mov.l &0x00000000,DATA+0x8(%a6)
949 fmovm.x DATA(%a6),&0x80
956 movm.l &0x7fff,SREGS(%a6)
957 fmovm.x &0xff,SFPREGS(%a6)
958 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
960 mov.l &0x00000000,IFPREGS+0x0(%a6)
961 mov.l &0x40000000,IFPREGS+0x4(%a6)
962 mov.l &0x00000000,IFPREGS+0x8(%a6)
963 mov.l &0x00000800,IFPCREGS+0x4(%a6)
964 lea unfl_0_pc(%pc),%a0
965 mov.l %a0,IFPCREGS+0x8(%a6)
978 #####################################################################
980 # This test will take a non-maskable underflow directly.
982 string "\tNon-maskable underflow..."
986 addq.l &0x1,TESTCTR(%a6)
988 movm.l DEF_REGS(%pc),&0x3fff
989 fmovm.x DEF_FPREGS(%pc),&0xff
990 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
992 mov.w &0x0000,ICCR(%a6)
993 movm.l &0x7fff,IREGS(%a6)
994 fmovm.x &0xff,IFPREGS(%a6)
995 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
997 mov.l &0x00000000,DATA+0x0(%a6)
998 mov.l &0x80000000,DATA+0x4(%a6)
999 mov.l &0x00000000,DATA+0x8(%a6)
1000 fmovm.x DATA(%a6),&0x80
1007 movm.l &0x7fff,SREGS(%a6)
1008 fmovm.x &0xff,SFPREGS(%a6)
1009 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
1011 mov.l &0x00000000,IFPREGS+0x0(%a6)
1012 mov.l &0x40000000,IFPREGS+0x4(%a6)
1013 mov.l &0x00000000,IFPREGS+0x8(%a6)
1014 mov.l &0x00000800,IFPCREGS+0x4(%a6)
1015 lea unfl_nm_0_pc(%pc),%a0
1016 mov.l %a0,IFPCREGS+0x8(%a6)
1029 #####################################################################
1032 string "\tEnabled inexact..."
1036 addq.l &0x1,TESTCTR(%a6)
1038 movm.l DEF_REGS(%pc),&0x3fff
1039 fmovm.x DEF_FPREGS(%pc),&0xff
1040 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
1042 mov.w &0x0000,ICCR(%a6)
1043 movm.l &0x7fff,IREGS(%a6)
1044 fmovm.x &0xff,IFPREGS(%a6)
1045 fmov.l &0x00000200,%fpcr # enable inexact
1046 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
1048 mov.l &0x50000000,DATA+0x0(%a6)
1049 mov.l &0x80000000,DATA+0x4(%a6)
1050 mov.l &0x00000000,DATA+0x8(%a6)
1051 fmovm.x DATA(%a6),&0x80
1058 movm.l &0x7fff,SREGS(%a6)
1059 fmovm.x &0xff,SFPREGS(%a6)
1060 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
1062 mov.l &0x50000000,IFPREGS+0x0(%a6)
1063 mov.l &0x80000000,IFPREGS+0x4(%a6)
1064 mov.l &0x00000000,IFPREGS+0x8(%a6)
1065 mov.l &0x00000208,IFPCREGS+0x4(%a6)
1066 lea inex_0_pc(%pc),%a0
1067 mov.l %a0,IFPCREGS+0x8(%a6)
1080 #####################################################################
1083 string "\tEnabled SNAN..."
1087 addq.l &0x1,TESTCTR(%a6)
1089 movm.l DEF_REGS(%pc),&0x3fff
1090 fmovm.x DEF_FPREGS(%pc),&0xff
1091 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
1093 mov.w &0x0000,ICCR(%a6)
1094 movm.l &0x7fff,IREGS(%a6)
1095 fmovm.x &0xff,IFPREGS(%a6)
1096 fmov.l &0x00004000,%fpcr # enable SNAN
1097 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
1099 mov.l &0xffff0000,DATA+0x0(%a6)
1100 mov.l &0x00000000,DATA+0x4(%a6)
1101 mov.l &0x00000001,DATA+0x8(%a6)
1102 fmovm.x DATA(%a6),&0x80
1109 movm.l &0x7fff,SREGS(%a6)
1110 fmovm.x &0xff,SFPREGS(%a6)
1111 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
1113 mov.l &0xffff0000,IFPREGS+0x0(%a6)
1114 mov.l &0x00000000,IFPREGS+0x4(%a6)
1115 mov.l &0x00000001,IFPREGS+0x8(%a6)
1116 mov.l &0x09004080,IFPCREGS+0x4(%a6)
1117 lea snan_0_pc(%pc),%a0
1118 mov.l %a0,IFPCREGS+0x8(%a6)
1131 #####################################################################
1134 string "\tEnabled OPERR..."
1138 addq.l &0x1,TESTCTR(%a6)
1140 movm.l DEF_REGS(%pc),&0x3fff
1141 fmovm.x DEF_FPREGS(%pc),&0xff
1142 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
1144 mov.w &0x0000,ICCR(%a6)
1145 movm.l &0x7fff,IREGS(%a6)
1146 fmovm.x &0xff,IFPREGS(%a6)
1147 fmov.l &0x00002000,%fpcr # enable OPERR
1148 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
1150 mov.l &0xffff0000,DATA+0x0(%a6)
1151 mov.l &0x00000000,DATA+0x4(%a6)
1152 mov.l &0x00000000,DATA+0x8(%a6)
1153 fmovm.x DATA(%a6),&0x80
1157 fadd.s &0x7f800000,%fp0
1160 movm.l &0x7fff,SREGS(%a6)
1161 fmovm.x &0xff,SFPREGS(%a6)
1162 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
1164 mov.l &0xffff0000,IFPREGS+0x0(%a6)
1165 mov.l &0x00000000,IFPREGS+0x4(%a6)
1166 mov.l &0x00000000,IFPREGS+0x8(%a6)
1167 mov.l &0x01002080,IFPCREGS+0x4(%a6)
1168 lea operr_0_pc(%pc),%a0
1169 mov.l %a0,IFPCREGS+0x8(%a6)
1182 #####################################################################
1185 string "\tEnabled DZ..."
1189 addq.l &0x1,TESTCTR(%a6)
1191 movm.l DEF_REGS(%pc),&0x3fff
1192 fmovm.x DEF_FPREGS(%pc),&0xff
1193 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
1195 mov.w &0x0000,ICCR(%a6)
1196 movm.l &0x7fff,IREGS(%a6)
1197 fmovm.x &0xff,IFPREGS(%a6)
1198 fmov.l &0x00000400,%fpcr # enable DZ
1199 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
1201 mov.l &0x40000000,DATA+0x0(%a6)
1202 mov.l &0x80000000,DATA+0x4(%a6)
1203 mov.l &0x00000000,DATA+0x8(%a6)
1204 fmovm.x DATA(%a6),&0x80
1211 movm.l &0x7fff,SREGS(%a6)
1212 fmovm.x &0xff,SFPREGS(%a6)
1213 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
1215 mov.l &0x40000000,IFPREGS+0x0(%a6)
1216 mov.l &0x80000000,IFPREGS+0x4(%a6)
1217 mov.l &0x00000000,IFPREGS+0x8(%a6)
1218 mov.l &0x02000410,IFPCREGS+0x4(%a6)
1219 lea dz_0_pc(%pc),%a0
1220 mov.l %a0,IFPCREGS+0x8(%a6)
1233 #####################################################################
1236 string "\tUnimplemented data type/format..."
1238 # an unnormalized number
1241 addq.l &0x1,TESTCTR(%a6)
1243 movm.l DEF_REGS(%pc),&0x3fff
1244 fmovm.x DEF_FPREGS(%pc),&0xff
1245 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
1247 mov.w &0x0000,ICCR(%a6)
1248 movm.l &0x7fff,IREGS(%a6)
1249 fmovm.x &0xff,IFPREGS(%a6)
1250 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
1252 mov.l &0xc03f0000,DATA+0x0(%a6)
1253 mov.l &0x00000000,DATA+0x4(%a6)
1254 mov.l &0x00000001,DATA+0x8(%a6)
1258 fmul.x DATA(%a6),%fp0
1261 movm.l &0x7fff,SREGS(%a6)
1262 fmovm.x &0xff,SFPREGS(%a6)
1263 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
1265 mov.l &0xc0010000,IFPREGS+0x0(%a6)
1266 mov.l &0x80000000,IFPREGS+0x4(%a6)
1267 mov.l &0x00000000,IFPREGS+0x8(%a6)
1268 mov.l &0x08000000,IFPCREGS+0x4(%a6)
1269 lea unsupp_0_pc(%pc),%a0
1270 mov.l %a0,IFPCREGS+0x8(%a6)
1280 # a denormalized number
1282 addq.l &0x1,TESTCTR(%a6)
1284 movm.l DEF_REGS(%pc),&0x3fff
1285 fmovm.x DEF_FPREGS(%pc),&0xff
1286 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
1288 mov.w &0x0000,ICCR(%a6)
1289 movm.l &0x7fff,IREGS(%a6)
1290 fmovm.x &0xff,IFPREGS(%a6)
1291 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
1293 mov.l &0x80000000,DATA+0x0(%a6)
1294 mov.l &0x01000000,DATA+0x4(%a6)
1295 mov.l &0x00000000,DATA+0x8(%a6)
1296 fmov.l &0x7fffffff,%fp0
1300 fmul.x DATA(%a6),%fp0
1303 movm.l &0x7fff,SREGS(%a6)
1304 fmovm.x &0xff,SFPREGS(%a6)
1305 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
1307 mov.l &0x80170000,IFPREGS+0x0(%a6)
1308 mov.l &0xfffffffe,IFPREGS+0x4(%a6)
1309 mov.l &0x00000000,IFPREGS+0x8(%a6)
1310 mov.l &0x08000000,IFPCREGS+0x4(%a6)
1311 lea unsupp_1_pc(%pc),%a0
1312 mov.l %a0,IFPCREGS+0x8(%a6)
1324 addq.l &0x1,TESTCTR(%a6)
1326 movm.l DEF_REGS(%pc),&0x3fff
1327 fmovm.x DEF_FPREGS(%pc),&0xff
1328 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
1330 mov.w &0x0000,ICCR(%a6)
1331 movm.l &0x7fff,IREGS(%a6)
1332 fmovm.x &0xff,IFPREGS(%a6)
1333 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
1335 mov.l &0xc1230001,DATA+0x0(%a6)
1336 mov.l &0x23456789,DATA+0x4(%a6)
1337 mov.l &0x12345678,DATA+0x8(%a6)
1341 fabs.p DATA(%a6),%fp0
1344 movm.l &0x7fff,SREGS(%a6)
1345 fmovm.x &0xff,SFPREGS(%a6)
1346 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
1348 mov.l &0x3e660000,IFPREGS+0x0(%a6)
1349 mov.l &0xd0ed23e8,IFPREGS+0x4(%a6)
1350 mov.l &0xd14035bc,IFPREGS+0x8(%a6)
1351 mov.l &0x00000108,IFPCREGS+0x4(%a6)
1352 lea unsupp_2_pc(%pc),%a0
1353 mov.l %a0,IFPCREGS+0x8(%a6)
1366 ###########################################################
1367 ###########################################################
1376 dbra.w %d0,chkregs_loop
1391 mov.l TESTCTR(%a6),%d1
1396 lea IFPREGS(%a6),%a0
1397 lea SFPREGS(%a6),%a1
1401 bne.l chkfpregs_error
1402 dbra.w %d0,chkfpregs_loop
1404 lea IFPCREGS(%a6),%a0
1405 lea SFPCREGS(%a6),%a1
1407 bne.l chkfpregs_error
1409 bne.l chkfpregs_error
1411 bne.l chkfpregs_error
1421 long 0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac
1422 long 0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac
1424 long 0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac
1425 long 0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac
1428 long 0x7fff0000, 0xffffffff, 0xffffffff
1429 long 0x7fff0000, 0xffffffff, 0xffffffff
1430 long 0x7fff0000, 0xffffffff, 0xffffffff
1431 long 0x7fff0000, 0xffffffff, 0xffffffff
1432 long 0x7fff0000, 0xffffffff, 0xffffffff
1433 long 0x7fff0000, 0xffffffff, 0xffffffff
1434 long 0x7fff0000, 0xffffffff, 0xffffffff
1435 long 0x7fff0000, 0xffffffff, 0xffffffff
1438 long 0x00000000, 0x00000000, 0x00000000
1440 ############################################################
1444 mov.l (TESTTOP-0x80+0x0,%pc),%d0
1445 pea (TESTTOP-0x80,%pc,%d0)
1451 mov.l (TESTTOP-0x80+0x4,%pc),%d0
1452 pea (TESTTOP-0x80,%pc,%d0)
1456 ############################################################