2 # $NetBSD: ftest.s,v 1.1 2000/04/14 20:24:39 is Exp $
5 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6 # MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP
7 # M68000 Hi-Performance Microprocessor Division
8 # M68060 Software Package Production Release
10 # M68060 Software Package Copyright (C) 1993, 1994, 1995, 1996 Motorola Inc.
11 # All rights reserved.
13 # THE SOFTWARE is provided on an "AS IS" basis and without warranty.
14 # To the maximum extent permitted by applicable law,
15 # MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED,
16 # INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS
17 # FOR A PARTICULAR PURPOSE and any warranty against infringement with
18 # regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF)
19 # and any accompanying written materials.
21 # To the maximum extent permitted by applicable law,
22 # IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER
23 # (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS,
24 # BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS)
25 # ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE.
27 # Motorola assumes no responsibility for the maintenance and support
30 # You are hereby granted a copyright license to use, modify, and distribute the
31 # SOFTWARE so long as this entire notice is retained without alteration
32 # in any modified and/or redistributed versions, and that such modified
33 # versions are clearly identified as such.
34 # No licenses are granted by implication, estoppel or otherwise under any
35 # patents or trademarks of Motorola, Inc.
36 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38 #############################################
50 #############################################
58 bra.
l _060TESTS_enable
62 string
"Testing 68060 FPSP started:\n"
65 string
"Testing 68060 FPSP unimplemented instruction started:\n"
68 string
"Testing 68060 FPSP exception enabled started:\n"
95 #############################################
126 ### ovfl non-maskable
134 ### unfl non-maskable
142 movm.
l (%sp
)+,&0x3cfc
151 movm.
l &0x3f3c,-(%sp
)
154 pea start_str_unimp
(%pc
)
168 movm.
l (%sp
)+,&0x3cfc
177 movm.
l &0x3f3c,-(%sp
)
180 pea start_str_enable
(%pc
)
232 movm.
l (%sp
)+,&0x3cfc
238 #############################################
239 #############################################
242 string
"\tUnimplemented FP instructions..."
246 addq.
l &0x1,TESTCTR
(%a6
)
248 movm.
l DEF_REGS
(%pc
),&0x3fff
249 fmovm.x DEF_FPREGS
(%pc
),&0xff
250 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
252 mov.w
&0x0000,ICCR
(%a6
)
253 movm.
l &0x7fff,IREGS
(%a6
)
254 fmovm.x
&0xff,IFPREGS
(%a6
)
255 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
257 mov.
l &0x40000000,DATA+
0x0(%a6
)
258 mov.
l &0xc90fdaa2,DATA+
0x4(%a6
)
259 mov.
l &0x2168c235,DATA+
0x8(%a6
)
263 fsin.x DATA
(%a6
),%fp0
266 movm.
l &0x7fff,SREGS
(%a6
)
267 fmovm.x
&0xff,SFPREGS
(%a6
)
268 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
270 mov.
l &0xbfbf0000,IFPREGS+
0x0(%a6
)
271 mov.
l &0x80000000,IFPREGS+
0x4(%a6
)
272 mov.
l &0x00000000,IFPREGS+
0x8(%a6
)
273 mov.
l &0x08000208,IFPCREGS+
0x4(%a6
)
274 lea unimp_0_pc
(%pc
),%a0
275 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
286 addq.
l &0x1,TESTCTR
(%a6
)
288 movm.
l DEF_REGS
(%pc
),&0x3fff
289 fmovm.x DEF_FPREGS
(%pc
),&0xff
290 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
292 mov.w
&0x0000,ICCR
(%a6
)
293 movm.
l &0x7fff,IREGS
(%a6
)
294 fmovm.x
&0xff,IFPREGS
(%a6
)
295 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
297 mov.
l &0x3ffe0000,DATA+
0x0(%a6
)
298 mov.
l &0xc90fdaa2,DATA+
0x4(%a6
)
299 mov.
l &0x2168c235,DATA+
0x8(%a6
)
303 ftan.x DATA
(%a6
),%fp0
306 movm.
l &0x7fff,SREGS
(%a6
)
307 fmovm.x
&0xff,SFPREGS
(%a6
)
308 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
310 mov.
l &0x3fff0000,IFPREGS+
0x0(%a6
)
311 mov.
l &0x80000000,IFPREGS+
0x4(%a6
)
312 mov.
l &0x00000000,IFPREGS+
0x8(%a6
)
313 mov.
l &0x00000208,IFPCREGS+
0x4(%a6
)
314 lea unimp_1_pc
(%pc
),%a0
315 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
327 addq.
l &0x1,TESTCTR
(%a6
)
329 movm.
l DEF_REGS
(%pc
),&0x3fff
330 fmovm.x DEF_FPREGS
(%pc
),&0xff
331 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
333 mov.w
&0x0000,ICCR
(%a6
)
334 movm.
l &0x7fff,IREGS
(%a6
)
335 fmovm.x
&0xff,IFPREGS
(%a6
)
336 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
343 movm.
l &0x7fff,SREGS
(%a6
)
344 fmovm.x
&0xff,SFPREGS
(%a6
)
345 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
347 mov.
l &0x40000000,IFPREGS+
0x0(%a6
)
348 mov.
l &0x935d8ddd,IFPREGS+
0x4(%a6
)
349 mov.
l &0xaaa8ac17,IFPREGS+
0x8(%a6
)
350 mov.
l &0x00000208,IFPCREGS+
0x4(%a6
)
351 lea unimp_2_pc
(%pc
),%a0
352 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
364 addq.
l &0x1,TESTCTR
(%a6
)
366 movm.
l DEF_REGS
(%pc
),&0x3fff
367 fmovm.x DEF_FPREGS
(%pc
),&0xff
368 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
370 fmov.
l &0x0f000000,%fpsr
373 mov.w
&0x0000,ICCR
(%a6
)
374 movm.
l &0x7fff,IREGS
(%a6
)
375 fmovm.x
&0xff,IFPREGS
(%a6
)
376 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
383 movm.
l &0x7fff,SREGS
(%a6
)
384 fmovm.x
&0xff,SFPREGS
(%a6
)
385 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
386 mov.
l &0x0f008080,IFPCREGS+
0x4(%a6
)
387 lea unimp_3_pc
(%pc
),%a0
388 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
400 addq.
l &0x1,TESTCTR
(%a6
)
402 movm.
l DEF_REGS
(%pc
),&0x3fff
403 fmovm.x DEF_FPREGS
(%pc
),&0xff
404 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
406 fmov.
l &0x0f000000,%fpsr
409 mov.w
&0x0000,ICCR
(%a6
)
410 movm.
l &0x7fff,IREGS
(%a6
)
411 fmovm.x
&0xff,IFPREGS
(%a6
)
412 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
416 fdbgt.w
%d7
,unimp_4_pc
419 movm.
l &0x7fff,SREGS
(%a6
)
420 fmovm.x
&0xff,SFPREGS
(%a6
)
421 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
422 mov.w
&0xffff,IREGS+
28+2(%a6
)
423 mov.
l &0x0f008080,IFPCREGS+
0x4(%a6
)
424 lea unimp_4_pc
(%pc
),%a0
425 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
437 addq.
l &0x1,TESTCTR
(%a6
)
439 movm.
l DEF_REGS
(%pc
),&0x3fff
440 fmovm.x DEF_FPREGS
(%pc
),&0xff
441 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
443 fmov.
l &0x0f000000,%fpsr
445 mov.w
&0x0000,ICCR
(%a6
)
446 movm.
l &0x7fff,IREGS
(%a6
)
447 fmovm.x
&0xff,IFPREGS
(%a6
)
448 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
455 movm.
l &0x7fff,SREGS
(%a6
)
456 fmovm.x
&0xff,SFPREGS
(%a6
)
457 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
458 mov.
l &0x0f008080,IFPCREGS+
0x4(%a6
)
459 lea unimp_5_pc
(%pc
),%a0
460 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
473 #############################################
476 string
"\tUnimplemented <ea>..."
480 addq.
l &0x1,TESTCTR
(%a6
)
482 movm.
l DEF_REGS
(%pc
),&0x3fff
483 fmovm.x DEF_FPREGS
(%pc
),&0xff
484 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
486 mov.w
&0x0000,ICCR
(%a6
)
487 movm.
l &0x7fff,IREGS
(%a6
)
488 fmovm.x
&0xff,IFPREGS
(%a6
)
489 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
495 fmul.x
&0xc00000008000000000000000,%fp0
498 movm.
l &0x7fff,SREGS
(%a6
)
499 fmovm.x
&0xff,SFPREGS
(%a6
)
500 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
502 mov.
l &0xc0010000,IFPREGS+
0x0(%a6
)
503 mov.
l &0x80000000,IFPREGS+
0x4(%a6
)
504 mov.
l &0x00000000,IFPREGS+
0x8(%a6
)
505 mov.
l &0x08000000,IFPCREGS+
0x4(%a6
)
506 lea effadd_0_pc
(%pc
),%a0
507 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
518 addq.
l &0x1,TESTCTR
(%a6
)
520 movm.
l DEF_REGS
(%pc
),&0x3fff
521 fmovm.x DEF_FPREGS
(%pc
),&0xff
522 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
524 mov.w
&0x0000,ICCR
(%a6
)
525 movm.
l &0x7fff,IREGS
(%a6
)
526 fmovm.x
&0xff,IFPREGS
(%a6
)
527 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
531 fabs.p
&0xc12300012345678912345678,%fp0
534 movm.
l &0x7fff,SREGS
(%a6
)
535 fmovm.x
&0xff,SFPREGS
(%a6
)
536 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
538 mov.
l &0x3e660000,IFPREGS+
0x0(%a6
)
539 mov.
l &0xd0ed23e8,IFPREGS+
0x4(%a6
)
540 mov.
l &0xd14035bc,IFPREGS+
0x8(%a6
)
541 mov.
l &0x00000108,IFPCREGS+
0x4(%a6
)
542 lea effadd_1_pc
(%pc
),%a0
543 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
554 addq.
l &0x1,TESTCTR
(%a6
)
556 movm.
l DEF_REGS
(%pc
),&0x3fff
557 fmovm.x DEF_FPREGS
(%pc
),&0xff
558 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
560 mov.w
&0x0000,ICCR
(%a6
)
562 movm.
l &0x7fff,IREGS
(%a6
)
563 fmovm.x
&0xff,IFPREGS
(%a6
)
564 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
566 fmovm.
l &0xffffffffffffffff,%fpcr
,%fpsr
569 movm.
l &0x7fff,SREGS
(%a6
)
570 fmovm.x
&0xff,SFPREGS
(%a6
)
571 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
572 mov.
l &0x0000fff0,IFPCREGS+
0x0(%a6
)
573 mov.
l &0x0ffffff8,IFPCREGS+
0x4(%a6
)
584 addq.
l &0x1,TESTCTR
(%a6
)
586 movm.
l DEF_REGS
(%pc
),&0x3fff
587 fmovm.x DEF_FPREGS
(%pc
),&0xff
588 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
590 mov.w
&0x0000,ICCR
(%a6
)
592 movm.
l &0x7fff,IREGS
(%a6
)
593 fmovm.x
&0xff,IFPREGS
(%a6
)
594 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
596 fmovm.
l &0xffffffffffffffff,%fpcr
,%fpiar
599 movm.
l &0x7fff,SREGS
(%a6
)
600 fmovm.x
&0xff,SFPREGS
(%a6
)
601 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
602 mov.
l &0x0000fff0,IFPCREGS+
0x0(%a6
)
603 mov.
l &0xffffffff,IFPCREGS+
0x8(%a6
)
614 addq.
l &0x1,TESTCTR
(%a6
)
616 movm.
l DEF_REGS
(%pc
),&0x3fff
617 fmovm.x DEF_FPREGS
(%pc
),&0xff
618 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
620 mov.w
&0x0000,ICCR
(%a6
)
622 movm.
l &0x7fff,IREGS
(%a6
)
623 fmovm.x
&0xff,IFPREGS
(%a6
)
624 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
626 fmovm.
l &0xffffffffffffffff,%fpsr
,%fpiar
629 movm.
l &0x7fff,SREGS
(%a6
)
630 fmovm.x
&0xff,SFPREGS
(%a6
)
631 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
632 mov.
l &0x0ffffff8,IFPCREGS+
0x4(%a6
)
633 mov.
l &0xffffffff,IFPCREGS+
0x8(%a6
)
644 addq.
l &0x1,TESTCTR
(%a6
)
646 movm.
l DEF_REGS
(%pc
),&0x3fff
647 fmovm.x DEF_FPREGS
(%pc
),&0xff
648 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
650 mov.w
&0x0000,ICCR
(%a6
)
652 movm.
l &0x7fff,IREGS
(%a6
)
653 fmovm.x
&0xff,IFPREGS
(%a6
)
654 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
656 fmovm.
l &0xffffffffffffffffffffffff,%fpcr
,%fpsr
,%fpiar
659 movm.
l &0x7fff,SREGS
(%a6
)
660 fmovm.x
&0xff,SFPREGS
(%a6
)
661 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
662 mov.
l &0x0000fff0,IFPCREGS+
0x0(%a6
)
663 mov.
l &0x0ffffff8,IFPCREGS+
0x4(%a6
)
664 mov.
l &0xffffffff,IFPCREGS+
0x8(%a6
)
676 addq.
l &0x1,TESTCTR
(%a6
)
678 movm.
l DEF_REGS
(%pc
),&0x3fff
679 fmovm.x DEF_FPREGS
(%pc
),&0xff
680 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
692 mov.
l &0xffffffaa,%d0
694 mov.w
&0x0000,ICCR
(%a6
)
695 movm.
l &0xffff,IREGS
(%a6
)
697 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
698 fmovm.x
&0xff,IFPREGS
(%a6
)
706 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
708 fmov.s
&0x7f800000,%fp1
709 fmov.s
&0x7f800000,%fp3
710 fmov.s
&0x7f800000,%fp5
711 fmov.s
&0x7f800000,%fp7
718 movm.
l &0xffff,SREGS
(%a6
)
719 fmovm.x
&0xff,SFPREGS
(%a6
)
730 addq.
l &0x1,TESTCTR
(%a6
)
732 movm.
l DEF_REGS
(%pc
),&0x3fff
733 fmovm.x DEF_FPREGS
(%pc
),&0xff
734 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
750 fmovm.x
&0xff,IFPREGS
(%a6
)
752 fmov.s
&0x7f800000,%fp6
753 fmov.s
&0x7f800000,%fp4
754 fmov.s
&0x7f800000,%fp2
755 fmov.s
&0x7f800000,%fp0
759 mov.
l &0xffffffaa,%d0
761 mov.w
&0x0000,ICCR
(%a6
)
762 movm.
l &0xffff,IREGS
(%a6
)
764 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
772 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
774 movm.
l &0xffff,SREGS
(%a6
)
775 fmovm.x
&0xff,SFPREGS
(%a6
)
786 addq.
l &0x1,TESTCTR
(%a6
)
788 movm.
l DEF_REGS
(%pc
),&0x3fff
789 fmovm.x DEF_FPREGS
(%pc
),&0xff
790 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
802 mov.
l &0xffffff00,%d0
804 mov.w
&0x0000,ICCR
(%a6
)
805 movm.
l &0xffff,IREGS
(%a6
)
807 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
808 fmovm.x
&0xff,IFPREGS
(%a6
)
816 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
818 movm.
l &0xffff,SREGS
(%a6
)
819 fmovm.x
&0xff,SFPREGS
(%a6
)
832 ###########################################################
834 # This test will take a non-maskable overflow directly.
836 string
"\tNon-maskable overflow..."
840 addq.
l &0x1,TESTCTR
(%a6
)
842 movm.
l DEF_REGS
(%pc
),&0x3fff
843 fmovm.x DEF_FPREGS
(%pc
),&0xff
844 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
846 mov.w
&0x0000,ICCR
(%a6
)
847 movm.
l &0x7fff,IREGS
(%a6
)
848 fmovm.x
&0xff,IFPREGS
(%a6
)
849 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
852 mov.
l &0x7ffe0000,DATA+
0x0(%a6
)
853 mov.
l &0x80000000,DATA+
0x4(%a6
)
854 mov.
l &0x00000000,DATA+
0x8(%a6
)
858 fmul.x DATA
(%a6
),%fp0
861 movm.
l &0x7fff,SREGS
(%a6
)
862 fmovm.x
&0xff,SFPREGS
(%a6
)
863 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
865 mov.
l &0x7fff0000,IFPREGS+
0x0(%a6
)
866 mov.
l &0x00000000,IFPREGS+
0x4(%a6
)
867 mov.
l &0x00000000,IFPREGS+
0x8(%a6
)
868 mov.
l &0x02001048,IFPCREGS+
0x4(%a6
)
869 lea ovfl_nm_0_pc
(%pc
),%a0
870 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
883 ###########################################################
885 # This test will take an overflow directly.
887 string
"\tEnabled overflow..."
891 addq.
l &0x1,TESTCTR
(%a6
)
893 movm.
l DEF_REGS
(%pc
),&0x3fff
894 fmovm.x DEF_FPREGS
(%pc
),&0xff
895 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
897 mov.w
&0x0000,ICCR
(%a6
)
898 movm.
l &0x7fff,IREGS
(%a6
)
899 fmovm.x
&0xff,IFPREGS
(%a6
)
900 fmov.
l &0x00001000,%fpcr
901 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
904 mov.
l &0x7ffe0000,DATA+
0x0(%a6
)
905 mov.
l &0x80000000,DATA+
0x4(%a6
)
906 mov.
l &0x00000000,DATA+
0x8(%a6
)
910 fmul.x DATA
(%a6
),%fp0
913 movm.
l &0x7fff,SREGS
(%a6
)
914 fmovm.x
&0xff,SFPREGS
(%a6
)
915 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
917 mov.
l &0x7fff0000,IFPREGS+
0x0(%a6
)
918 mov.
l &0x00000000,IFPREGS+
0x4(%a6
)
919 mov.
l &0x00000000,IFPREGS+
0x8(%a6
)
920 mov.
l &0x02001048,IFPCREGS+
0x4(%a6
)
921 lea ovfl_0_pc
(%pc
),%a0
922 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
935 #####################################################################
937 # This test will take an underflow directly.
939 string
"\tEnabled underflow..."
943 addq.
l &0x1,TESTCTR
(%a6
)
945 movm.
l DEF_REGS
(%pc
),&0x3fff
946 fmovm.x DEF_FPREGS
(%pc
),&0xff
947 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
949 mov.w
&0x0000,ICCR
(%a6
)
950 movm.
l &0x7fff,IREGS
(%a6
)
951 fmovm.x
&0xff,IFPREGS
(%a6
)
952 fmov.
l &0x00000800,%fpcr
953 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
955 mov.
l &0x00000000,DATA+
0x0(%a6
)
956 mov.
l &0x80000000,DATA+
0x4(%a6
)
957 mov.
l &0x00000000,DATA+
0x8(%a6
)
958 fmovm.x DATA
(%a6
),&0x80
965 movm.
l &0x7fff,SREGS
(%a6
)
966 fmovm.x
&0xff,SFPREGS
(%a6
)
967 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
969 mov.
l &0x00000000,IFPREGS+
0x0(%a6
)
970 mov.
l &0x40000000,IFPREGS+
0x4(%a6
)
971 mov.
l &0x00000000,IFPREGS+
0x8(%a6
)
972 mov.
l &0x00000800,IFPCREGS+
0x4(%a6
)
973 lea unfl_0_pc
(%pc
),%a0
974 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
987 #####################################################################
989 # This test will take a non-maskable underflow directly.
991 string
"\tNon-maskable underflow..."
995 addq.
l &0x1,TESTCTR
(%a6
)
997 movm.
l DEF_REGS
(%pc
),&0x3fff
998 fmovm.x DEF_FPREGS
(%pc
),&0xff
999 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
1001 mov.w
&0x0000,ICCR
(%a6
)
1002 movm.
l &0x7fff,IREGS
(%a6
)
1003 fmovm.x
&0xff,IFPREGS
(%a6
)
1004 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
1006 mov.
l &0x00000000,DATA+
0x0(%a6
)
1007 mov.
l &0x80000000,DATA+
0x4(%a6
)
1008 mov.
l &0x00000000,DATA+
0x8(%a6
)
1009 fmovm.x DATA
(%a6
),&0x80
1016 movm.
l &0x7fff,SREGS
(%a6
)
1017 fmovm.x
&0xff,SFPREGS
(%a6
)
1018 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
1020 mov.
l &0x00000000,IFPREGS+
0x0(%a6
)
1021 mov.
l &0x40000000,IFPREGS+
0x4(%a6
)
1022 mov.
l &0x00000000,IFPREGS+
0x8(%a6
)
1023 mov.
l &0x00000800,IFPCREGS+
0x4(%a6
)
1024 lea unfl_nm_0_pc
(%pc
),%a0
1025 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
1038 #####################################################################
1041 string
"\tEnabled inexact..."
1045 addq.
l &0x1,TESTCTR
(%a6
)
1047 movm.
l DEF_REGS
(%pc
),&0x3fff
1048 fmovm.x DEF_FPREGS
(%pc
),&0xff
1049 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
1051 mov.w
&0x0000,ICCR
(%a6
)
1052 movm.
l &0x7fff,IREGS
(%a6
)
1053 fmovm.x
&0xff,IFPREGS
(%a6
)
1054 fmov.
l &0x00000200,%fpcr
# enable inexact
1055 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
1057 mov.
l &0x50000000,DATA+
0x0(%a6
)
1058 mov.
l &0x80000000,DATA+
0x4(%a6
)
1059 mov.
l &0x00000000,DATA+
0x8(%a6
)
1060 fmovm.x DATA
(%a6
),&0x80
1067 movm.
l &0x7fff,SREGS
(%a6
)
1068 fmovm.x
&0xff,SFPREGS
(%a6
)
1069 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
1071 mov.
l &0x50000000,IFPREGS+
0x0(%a6
)
1072 mov.
l &0x80000000,IFPREGS+
0x4(%a6
)
1073 mov.
l &0x00000000,IFPREGS+
0x8(%a6
)
1074 mov.
l &0x00000208,IFPCREGS+
0x4(%a6
)
1075 lea inex_0_pc
(%pc
),%a0
1076 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
1089 #####################################################################
1092 string
"\tEnabled SNAN..."
1096 addq.
l &0x1,TESTCTR
(%a6
)
1098 movm.
l DEF_REGS
(%pc
),&0x3fff
1099 fmovm.x DEF_FPREGS
(%pc
),&0xff
1100 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
1102 mov.w
&0x0000,ICCR
(%a6
)
1103 movm.
l &0x7fff,IREGS
(%a6
)
1104 fmovm.x
&0xff,IFPREGS
(%a6
)
1105 fmov.
l &0x00004000,%fpcr
# enable SNAN
1106 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
1108 mov.
l &0xffff0000,DATA+
0x0(%a6
)
1109 mov.
l &0x00000000,DATA+
0x4(%a6
)
1110 mov.
l &0x00000001,DATA+
0x8(%a6
)
1111 fmovm.x DATA
(%a6
),&0x80
1118 movm.
l &0x7fff,SREGS
(%a6
)
1119 fmovm.x
&0xff,SFPREGS
(%a6
)
1120 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
1122 mov.
l &0xffff0000,IFPREGS+
0x0(%a6
)
1123 mov.
l &0x00000000,IFPREGS+
0x4(%a6
)
1124 mov.
l &0x00000001,IFPREGS+
0x8(%a6
)
1125 mov.
l &0x09004080,IFPCREGS+
0x4(%a6
)
1126 lea snan_0_pc
(%pc
),%a0
1127 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
1140 #####################################################################
1143 string
"\tEnabled OPERR..."
1147 addq.
l &0x1,TESTCTR
(%a6
)
1149 movm.
l DEF_REGS
(%pc
),&0x3fff
1150 fmovm.x DEF_FPREGS
(%pc
),&0xff
1151 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
1153 mov.w
&0x0000,ICCR
(%a6
)
1154 movm.
l &0x7fff,IREGS
(%a6
)
1155 fmovm.x
&0xff,IFPREGS
(%a6
)
1156 fmov.
l &0x00002000,%fpcr
# enable OPERR
1157 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
1159 mov.
l &0xffff0000,DATA+
0x0(%a6
)
1160 mov.
l &0x00000000,DATA+
0x4(%a6
)
1161 mov.
l &0x00000000,DATA+
0x8(%a6
)
1162 fmovm.x DATA
(%a6
),&0x80
1166 fadd.s
&0x7f800000,%fp0
1169 movm.
l &0x7fff,SREGS
(%a6
)
1170 fmovm.x
&0xff,SFPREGS
(%a6
)
1171 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
1173 mov.
l &0xffff0000,IFPREGS+
0x0(%a6
)
1174 mov.
l &0x00000000,IFPREGS+
0x4(%a6
)
1175 mov.
l &0x00000000,IFPREGS+
0x8(%a6
)
1176 mov.
l &0x01002080,IFPCREGS+
0x4(%a6
)
1177 lea operr_0_pc
(%pc
),%a0
1178 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
1191 #####################################################################
1194 string
"\tEnabled DZ..."
1198 addq.
l &0x1,TESTCTR
(%a6
)
1200 movm.
l DEF_REGS
(%pc
),&0x3fff
1201 fmovm.x DEF_FPREGS
(%pc
),&0xff
1202 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
1204 mov.w
&0x0000,ICCR
(%a6
)
1205 movm.
l &0x7fff,IREGS
(%a6
)
1206 fmovm.x
&0xff,IFPREGS
(%a6
)
1207 fmov.
l &0x00000400,%fpcr
# enable DZ
1208 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
1210 mov.
l &0x40000000,DATA+
0x0(%a6
)
1211 mov.
l &0x80000000,DATA+
0x4(%a6
)
1212 mov.
l &0x00000000,DATA+
0x8(%a6
)
1213 fmovm.x DATA
(%a6
),&0x80
1220 movm.
l &0x7fff,SREGS
(%a6
)
1221 fmovm.x
&0xff,SFPREGS
(%a6
)
1222 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
1224 mov.
l &0x40000000,IFPREGS+
0x0(%a6
)
1225 mov.
l &0x80000000,IFPREGS+
0x4(%a6
)
1226 mov.
l &0x00000000,IFPREGS+
0x8(%a6
)
1227 mov.
l &0x02000410,IFPCREGS+
0x4(%a6
)
1228 lea dz_0_pc
(%pc
),%a0
1229 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
1242 #####################################################################
1245 string
"\tUnimplemented data type/format..."
1247 # an unnormalized number
1250 addq.
l &0x1,TESTCTR
(%a6
)
1252 movm.
l DEF_REGS
(%pc
),&0x3fff
1253 fmovm.x DEF_FPREGS
(%pc
),&0xff
1254 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
1256 mov.w
&0x0000,ICCR
(%a6
)
1257 movm.
l &0x7fff,IREGS
(%a6
)
1258 fmovm.x
&0xff,IFPREGS
(%a6
)
1259 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
1261 mov.
l &0xc03f0000,DATA+
0x0(%a6
)
1262 mov.
l &0x00000000,DATA+
0x4(%a6
)
1263 mov.
l &0x00000001,DATA+
0x8(%a6
)
1267 fmul.x DATA
(%a6
),%fp0
1270 movm.
l &0x7fff,SREGS
(%a6
)
1271 fmovm.x
&0xff,SFPREGS
(%a6
)
1272 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
1274 mov.
l &0xc0010000,IFPREGS+
0x0(%a6
)
1275 mov.
l &0x80000000,IFPREGS+
0x4(%a6
)
1276 mov.
l &0x00000000,IFPREGS+
0x8(%a6
)
1277 mov.
l &0x08000000,IFPCREGS+
0x4(%a6
)
1278 lea unsupp_0_pc
(%pc
),%a0
1279 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
1289 # a denormalized number
1291 addq.
l &0x1,TESTCTR
(%a6
)
1293 movm.
l DEF_REGS
(%pc
),&0x3fff
1294 fmovm.x DEF_FPREGS
(%pc
),&0xff
1295 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
1297 mov.w
&0x0000,ICCR
(%a6
)
1298 movm.
l &0x7fff,IREGS
(%a6
)
1299 fmovm.x
&0xff,IFPREGS
(%a6
)
1300 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
1302 mov.
l &0x80000000,DATA+
0x0(%a6
)
1303 mov.
l &0x01000000,DATA+
0x4(%a6
)
1304 mov.
l &0x00000000,DATA+
0x8(%a6
)
1305 fmov.
l &0x7fffffff,%fp0
1309 fmul.x DATA
(%a6
),%fp0
1312 movm.
l &0x7fff,SREGS
(%a6
)
1313 fmovm.x
&0xff,SFPREGS
(%a6
)
1314 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
1316 mov.
l &0x80170000,IFPREGS+
0x0(%a6
)
1317 mov.
l &0xfffffffe,IFPREGS+
0x4(%a6
)
1318 mov.
l &0x00000000,IFPREGS+
0x8(%a6
)
1319 mov.
l &0x08000000,IFPCREGS+
0x4(%a6
)
1320 lea unsupp_1_pc
(%pc
),%a0
1321 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
1333 addq.
l &0x1,TESTCTR
(%a6
)
1335 movm.
l DEF_REGS
(%pc
),&0x3fff
1336 fmovm.x DEF_FPREGS
(%pc
),&0xff
1337 fmovm.
l DEF_FPCREGS
(%pc
),%fpcr
,%fpsr
,%fpiar
1339 mov.w
&0x0000,ICCR
(%a6
)
1340 movm.
l &0x7fff,IREGS
(%a6
)
1341 fmovm.x
&0xff,IFPREGS
(%a6
)
1342 fmovm.
l %fpcr
,%fpsr
,%fpiar
,IFPCREGS
(%a6
)
1344 mov.
l &0xc1230001,DATA+
0x0(%a6
)
1345 mov.
l &0x23456789,DATA+
0x4(%a6
)
1346 mov.
l &0x12345678,DATA+
0x8(%a6
)
1350 fabs.p DATA
(%a6
),%fp0
1353 movm.
l &0x7fff,SREGS
(%a6
)
1354 fmovm.x
&0xff,SFPREGS
(%a6
)
1355 fmovm.
l %fpcr
,%fpsr
,%fpiar
,SFPCREGS
(%a6
)
1357 mov.
l &0x3e660000,IFPREGS+
0x0(%a6
)
1358 mov.
l &0xd0ed23e8,IFPREGS+
0x4(%a6
)
1359 mov.
l &0xd14035bc,IFPREGS+
0x8(%a6
)
1360 mov.
l &0x00000108,IFPCREGS+
0x4(%a6
)
1361 lea unsupp_2_pc
(%pc
),%a0
1362 mov.
l %a0
,IFPCREGS+
0x8(%a6
)
1375 ###########################################################
1376 ###########################################################
1385 dbra.w
%d0
,chkregs_loop
1400 mov.
l TESTCTR
(%a6
),%d1
1405 lea IFPREGS
(%a6
),%a0
1406 lea SFPREGS
(%a6
),%a1
1410 bne.
l chkfpregs_error
1411 dbra.w
%d0
,chkfpregs_loop
1413 lea IFPCREGS
(%a6
),%a0
1414 lea SFPCREGS
(%a6
),%a1
1416 bne.
l chkfpregs_error
1418 bne.
l chkfpregs_error
1420 bne.
l chkfpregs_error
1430 long
0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac
1431 long
0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac
1433 long
0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac
1434 long
0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac
1437 long
0x7fff0000, 0xffffffff, 0xffffffff
1438 long
0x7fff0000, 0xffffffff, 0xffffffff
1439 long
0x7fff0000, 0xffffffff, 0xffffffff
1440 long
0x7fff0000, 0xffffffff, 0xffffffff
1441 long
0x7fff0000, 0xffffffff, 0xffffffff
1442 long
0x7fff0000, 0xffffffff, 0xffffffff
1443 long
0x7fff0000, 0xffffffff, 0xffffffff
1444 long
0x7fff0000, 0xffffffff, 0xffffffff
1447 long
0x00000000, 0x00000000, 0x00000000
1449 ############################################################
1453 mov.
l (TESTTOP-
0x80+0x0,%pc
),%d0
1454 pea
(TESTTOP-
0x80,%pc
,%d0
)
1460 mov.
l (TESTTOP-
0x80+0x4,%pc
),%d0
1461 pea
(TESTTOP-
0x80,%pc
,%d0
)
1465 ############################################################