^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) M68000 Hi-Performance Microprocessor Division
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) M68060 Software Package
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) Production Release P1.00 -- October 10, 1994
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) THE SOFTWARE is provided on an "AS IS" basis and without warranty.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) To the maximum extent permitted by applicable law,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) and any warranty against infringement with regard to the SOFTWARE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) To the maximum extent permitted by applicable law,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) Motorola assumes no responsibility for the maintenance and support of the SOFTWARE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) You are hereby granted a copyright license to use, modify, and distribute the SOFTWARE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) so long as this entire notice is retained without alteration in any modified and/or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) redistributed versions, and that such modified versions are clearly identified as such.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) No licenses are granted by implication, estoppel or otherwise under any patents
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) or trademarks of Motorola, Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #############################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) set SREGS, -64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) set IREGS, -128
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) set IFPREGS, -224
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) set SFPREGS, -320
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) set IFPCREGS, -332
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) set SFPCREGS, -344
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) set ICCR, -346
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) set SCCR, -348
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) set TESTCTR, -352
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) set DATA, -384
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) #############################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) TESTTOP:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) bra.l _060TESTS_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) short 0x0000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) bra.l _060TESTS_unimp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) short 0x0000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) bra.l _060TESTS_enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) short 0x0000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) start_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) string "Testing 68060 FPSP started:\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) start_str_unimp:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) string "Testing 68060 FPSP unimplemented instruction started:\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) start_str_enable:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) string "Testing 68060 FPSP exception enabled started:\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) pass_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) string "passed\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) fail_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) string " failed\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) align 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) chk_test:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) tst.l %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) bne.b test_fail
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) test_pass:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) pea pass_str(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) addq.l &0x4,%sp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) test_fail:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) mov.l %d1,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) bsr.l _print_num
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) addq.l &0x4,%sp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) pea fail_str(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) addq.l &0x4,%sp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) #############################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) _060TESTS_:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) link %a6,&-384
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) movm.l &0x3f3c,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) fmovm.x &0xff,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) pea start_str(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) addq.l &0x4,%sp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) ### effadd
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) clr.l TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) pea effadd_str(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) addq.l &0x4,%sp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) bsr.l effadd_0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) bsr.l chk_test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) ### unsupp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) clr.l TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) pea unsupp_str(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) addq.l &0x4,%sp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) bsr.l unsupp_0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) bsr.l chk_test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) ### ovfl non-maskable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) clr.l TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) pea ovfl_nm_str(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) bsr.l ovfl_nm_0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) bsr.l chk_test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) ### unfl non-maskable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) clr.l TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) pea unfl_nm_str(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) bsr.l unfl_nm_0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) bsr.l chk_test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) movm.l (%sp)+,&0x3cfc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) fmovm.x (%sp)+,&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) unlk %a6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) _060TESTS_unimp:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) link %a6,&-384
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) movm.l &0x3f3c,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) fmovm.x &0xff,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) pea start_str_unimp(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) addq.l &0x4,%sp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) ### unimp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) clr.l TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) pea unimp_str(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) addq.l &0x4,%sp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) bsr.l unimp_0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) bsr.l chk_test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) movm.l (%sp)+,&0x3cfc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) fmovm.x (%sp)+,&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) unlk %a6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) _060TESTS_enable:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) link %a6,&-384
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) movm.l &0x3f3c,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) fmovm.x &0xff,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) pea start_str_enable(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) addq.l &0x4,%sp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) ### snan
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) clr.l TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) pea snan_str(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) bsr.l snan_0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) bsr.l chk_test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) ### operr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) clr.l TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) pea operr_str(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) bsr.l operr_0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) bsr.l chk_test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) ### ovfl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) clr.l TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) pea ovfl_str(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) bsr.l ovfl_0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) bsr.l chk_test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) ### unfl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) clr.l TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) pea unfl_str(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) bsr.l unfl_0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) bsr.l chk_test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) ### dz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) clr.l TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) pea dz_str(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) bsr.l dz_0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) bsr.l chk_test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) ### inexact
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) clr.l TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) pea inex_str(%pc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) bsr.l _print_str
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) bsr.l inex_0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) bsr.l chk_test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) movm.l (%sp)+,&0x3cfc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) fmovm.x (%sp)+,&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) unlk %a6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) #############################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) #############################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) unimp_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) string "\tUnimplemented FP instructions..."
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) align 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) unimp_0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) mov.l &0x40000000,DATA+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) mov.l &0xc90fdaa2,DATA+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) mov.l &0x2168c235,DATA+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) unimp_0_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) fsin.x DATA(%a6),%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) mov.l &0xbfbf0000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) mov.l &0x80000000,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) mov.l &0x00000000,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) mov.l &0x08000208,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) lea unimp_0_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) unimp_1:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) mov.l &0x3ffe0000,DATA+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) mov.l &0xc90fdaa2,DATA+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) mov.l &0x2168c235,DATA+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) unimp_1_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) ftan.x DATA(%a6),%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) mov.l &0x3fff0000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) mov.l &0x80000000,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) mov.l &0x00000000,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) mov.l &0x00000208,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) lea unimp_1_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) # fmovecr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) unimp_2:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) unimp_2_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) fmovcr.x &0x31,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) mov.l &0x40000000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) mov.l &0x935d8ddd,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) mov.l &0xaaa8ac17,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) mov.l &0x00000208,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) lea unimp_2_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) # fscc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) unimp_3:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) fmov.l &0x0f000000,%fpsr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) mov.l &0x00,%d7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) unimp_3_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) fsgt %d7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) mov.l &0x0f008080,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) lea unimp_3_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) # fdbcc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) unimp_4:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) fmov.l &0x0f000000,%fpsr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) mov.l &0x2,%d7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) unimp_4_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) fdbgt.w %d7,unimp_4_pc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) mov.w &0xffff,IREGS+28+2(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) mov.l &0x0f008080,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) lea unimp_4_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) # ftrapcc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) unimp_5:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) fmov.l &0x0f000000,%fpsr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) unimp_5_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) ftpgt.l &0xabcdef01
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) mov.l &0x0f008080,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) lea unimp_5_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) clr.l %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) #############################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) effadd_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) string "\tUnimplemented <ea>..."
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) align 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) effadd_0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) fmov.b &0x2,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) effadd_0_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) fmul.x &0xc00000008000000000000000,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) mov.l &0xc0010000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) mov.l &0x80000000,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) mov.l &0x00000000,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) mov.l &0x08000000,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) lea effadd_0_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) effadd_1:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) effadd_1_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) fabs.p &0xc12300012345678912345678,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) mov.l &0x3e660000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) mov.l &0xd0ed23e8,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) mov.l &0xd14035bc,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) mov.l &0x00000108,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) lea effadd_1_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) fmovml_0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) fmovm.l &0xffffffffffffffff,%fpcr,%fpsr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) mov.l &0x0000fff0,IFPCREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) mov.l &0x0ffffff8,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) fmovml_1:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) fmovm.l &0xffffffffffffffff,%fpcr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) mov.l &0x0000fff0,IFPCREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) mov.l &0xffffffff,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) fmovml_2:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) fmovm.l &0xffffffffffffffff,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) mov.l &0x0ffffff8,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) mov.l &0xffffffff,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) fmovml_3:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) fmovm.l &0xffffffffffffffffffffffff,%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) mov.l &0x0000fff0,IFPCREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) mov.l &0x0ffffff8,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) mov.l &0xffffffff,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) # fmovmx dynamic
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) fmovmx_0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) fmov.b &0x1,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674) fmov.b &0x2,%fp1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) fmov.b &0x3,%fp2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676) fmov.b &0x4,%fp3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677) fmov.b &0x5,%fp4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) fmov.b &0x6,%fp5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) fmov.b &0x7,%fp6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680) fmov.b &0x8,%fp7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682) fmov.l &0x0,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683) mov.l &0xffffffaa,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686) movm.l &0xffff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693) fmovm.x %d0,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) fmov.s &0x7f800000,%fp1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) fmov.s &0x7f800000,%fp3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701) fmov.s &0x7f800000,%fp5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702) fmov.s &0x7f800000,%fp7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704) fmov.x (%sp)+,%fp1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705) fmov.x (%sp)+,%fp3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706) fmov.x (%sp)+,%fp5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707) fmov.x (%sp)+,%fp7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709) movm.l &0xffff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) fmovmx_1:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727) fmov.b &0x1,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728) fmov.b &0x2,%fp1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729) fmov.b &0x3,%fp2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730) fmov.b &0x4,%fp3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731) fmov.b &0x5,%fp4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732) fmov.b &0x6,%fp5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733) fmov.b &0x7,%fp6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734) fmov.b &0x8,%fp7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736) fmov.x %fp6,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737) fmov.x %fp4,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738) fmov.x %fp2,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739) fmov.x %fp0,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743) fmov.s &0x7f800000,%fp6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744) fmov.s &0x7f800000,%fp4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745) fmov.s &0x7f800000,%fp2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746) fmov.s &0x7f800000,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748) fmov.l &0x0,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749) fmov.l &0x0,%fpsr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750) mov.l &0xffffffaa,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753) movm.l &0xffff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759) fmovm.x (%sp)+,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765) movm.l &0xffff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776) fmovmx_2:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783) fmov.b &0x1,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) fmov.b &0x2,%fp1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785) fmov.b &0x3,%fp2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786) fmov.b &0x4,%fp3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787) fmov.b &0x5,%fp4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788) fmov.b &0x6,%fp5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789) fmov.b &0x7,%fp6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790) fmov.b &0x8,%fp7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792) fmov.l &0x0,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793) mov.l &0xffffff00,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796) movm.l &0xffff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803) fmovm.x %d0,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809) movm.l &0xffff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 819)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 820) clr.l %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 821) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 822)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 823) ###########################################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 824)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 825) # This test will take a non-maskable overflow directly.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 826) ovfl_nm_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 827) string "\tNon-maskable overflow..."
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 828)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 829) align 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 830) ovfl_nm_0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 831) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 832)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 833) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 834) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 835) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 836)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 837) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 838) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 839) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 840) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 841)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 842) fmov.b &0x2,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 843) mov.l &0x7ffe0000,DATA+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 844) mov.l &0x80000000,DATA+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 845) mov.l &0x00000000,DATA+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 846)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 847) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 848) ovfl_nm_0_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 849) fmul.x DATA(%a6),%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 850)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 851) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 852) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 853) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 854) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 855)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 856) mov.l &0x7fff0000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 857) mov.l &0x00000000,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 858) mov.l &0x00000000,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 859) mov.l &0x02001048,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 860) lea ovfl_nm_0_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 861) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 862)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 863) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 864) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 865) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 866)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 867) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 868) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 869) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 870)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 871) clr.l %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 872) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 873)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 874) ###########################################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 875)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 876) # This test will take an overflow directly.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 877) ovfl_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 878) string "\tEnabled overflow..."
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 879)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 880) align 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 881) ovfl_0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 882) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 883)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 884) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 885) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 886) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 887)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 888) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 889) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 890) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 891) fmov.l &0x00001000,%fpcr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 892) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 893)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 894) fmov.b &0x2,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 895) mov.l &0x7ffe0000,DATA+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 896) mov.l &0x80000000,DATA+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 897) mov.l &0x00000000,DATA+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 898)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 899) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 900) ovfl_0_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 901) fmul.x DATA(%a6),%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 902)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 903) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 904) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 905) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 906) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 907)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 908) mov.l &0x7fff0000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 909) mov.l &0x00000000,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 910) mov.l &0x00000000,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 911) mov.l &0x02001048,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 912) lea ovfl_0_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 913) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 914)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 915) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 916) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 917) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 918)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 919) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 920) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 921) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 922)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 923) clr.l %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 924) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 925)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 926) #####################################################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 927)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 928) # This test will take an underflow directly.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 929) unfl_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 930) string "\tEnabled underflow..."
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 931)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 932) align 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 933) unfl_0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 934) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 935)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 936) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 937) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 938) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 939)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 940) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 941) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 942) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 943) fmov.l &0x00000800,%fpcr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 944) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 945)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 946) mov.l &0x00000000,DATA+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 947) mov.l &0x80000000,DATA+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 948) mov.l &0x00000000,DATA+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 949) fmovm.x DATA(%a6),&0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 950)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 951) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 952) unfl_0_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 953) fdiv.b &0x2,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 954)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 955) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 956) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 957) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 958) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 959)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 960) mov.l &0x00000000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 961) mov.l &0x40000000,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 962) mov.l &0x00000000,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 963) mov.l &0x00000800,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 964) lea unfl_0_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 965) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 966)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 967) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 968) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 969) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 970)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 971) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 972) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 973) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 974)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 975) clr.l %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 976) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 977)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 978) #####################################################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 979)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 980) # This test will take a non-maskable underflow directly.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 981) unfl_nm_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 982) string "\tNon-maskable underflow..."
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 983)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 984) align 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 985) unfl_nm_0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 986) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 987)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 988) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 989) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 990) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 991)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 992) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 993) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 994) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 995) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 996)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 997) mov.l &0x00000000,DATA+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 998) mov.l &0x80000000,DATA+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 999) mov.l &0x00000000,DATA+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1000) fmovm.x DATA(%a6),&0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1002) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1003) unfl_nm_0_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1004) fdiv.b &0x2,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1005)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1006) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1007) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1008) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1009) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1011) mov.l &0x00000000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1012) mov.l &0x40000000,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1013) mov.l &0x00000000,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1014) mov.l &0x00000800,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1015) lea unfl_nm_0_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1016) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1017)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1018) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1019) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1020) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1021)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1022) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1023) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1024) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1025)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1026) clr.l %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1027) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1028)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1029) #####################################################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1030)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1031) inex_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1032) string "\tEnabled inexact..."
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1033)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1034) align 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1035) inex_0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1036) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1037)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1038) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1039) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1040) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1041)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1042) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1043) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1044) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1045) fmov.l &0x00000200,%fpcr # enable inexact
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1046) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1047)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1048) mov.l &0x50000000,DATA+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1049) mov.l &0x80000000,DATA+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1050) mov.l &0x00000000,DATA+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1051) fmovm.x DATA(%a6),&0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1052)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1053) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1054) inex_0_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1055) fadd.b &0x2,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1056)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1057) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1058) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1059) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1060) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1061)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1062) mov.l &0x50000000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1063) mov.l &0x80000000,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1064) mov.l &0x00000000,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1065) mov.l &0x00000208,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1066) lea inex_0_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1067) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1068)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1069) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1070) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1071) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1072)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1073) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1074) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1075) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1076)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1077) clr.l %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1078) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1079)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1080) #####################################################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1081)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1082) snan_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1083) string "\tEnabled SNAN..."
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1084)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1085) align 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1086) snan_0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1087) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1088)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1089) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1090) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1091) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1092)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1093) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1094) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1095) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1096) fmov.l &0x00004000,%fpcr # enable SNAN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1097) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1098)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1099) mov.l &0xffff0000,DATA+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1100) mov.l &0x00000000,DATA+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1101) mov.l &0x00000001,DATA+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1102) fmovm.x DATA(%a6),&0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1103)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1104) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1105) snan_0_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1106) fadd.b &0x2,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1108) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1109) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1110) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1111) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1113) mov.l &0xffff0000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1114) mov.l &0x00000000,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1115) mov.l &0x00000001,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1116) mov.l &0x09004080,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1117) lea snan_0_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1118) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1119)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1120) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1121) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1122) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1123)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1124) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1125) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1126) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1127)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1128) clr.l %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1129) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1131) #####################################################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1132)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1133) operr_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1134) string "\tEnabled OPERR..."
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1135)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1136) align 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1137) operr_0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1138) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1139)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1140) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1141) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1142) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1144) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1145) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1146) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1147) fmov.l &0x00002000,%fpcr # enable OPERR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1148) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1149)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1150) mov.l &0xffff0000,DATA+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1151) mov.l &0x00000000,DATA+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1152) mov.l &0x00000000,DATA+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1153) fmovm.x DATA(%a6),&0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1155) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1156) operr_0_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1157) fadd.s &0x7f800000,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1158)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1159) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1160) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1161) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1162) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1164) mov.l &0xffff0000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1165) mov.l &0x00000000,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1166) mov.l &0x00000000,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1167) mov.l &0x01002080,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1168) lea operr_0_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1169) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1170)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1171) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1172) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1173) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1174)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1175) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1176) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1177) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1178)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1179) clr.l %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1180) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1181)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1182) #####################################################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1184) dz_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1185) string "\tEnabled DZ..."
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1186)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1187) align 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1188) dz_0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1189) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1190)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1191) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1192) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1193) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1194)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1195) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1196) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1197) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1198) fmov.l &0x00000400,%fpcr # enable DZ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1199) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1200)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1201) mov.l &0x40000000,DATA+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1202) mov.l &0x80000000,DATA+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1203) mov.l &0x00000000,DATA+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1204) fmovm.x DATA(%a6),&0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1205)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1206) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1207) dz_0_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1208) fdiv.b &0x0,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1209)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1210) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1211) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1212) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1213) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1214)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1215) mov.l &0x40000000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1216) mov.l &0x80000000,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1217) mov.l &0x00000000,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1218) mov.l &0x02000410,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1219) lea dz_0_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1220) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1221)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1222) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1223) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1224) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1225)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1226) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1227) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1228) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1229)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1230) clr.l %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1231) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1232)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1233) #####################################################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1234)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1235) unsupp_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1236) string "\tUnimplemented data type/format..."
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1237)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1238) # an unnormalized number
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1239) align 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1240) unsupp_0:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1241) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1242)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1243) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1244) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1245) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1246)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1247) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1248) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1249) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1250) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1251)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1252) mov.l &0xc03f0000,DATA+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1253) mov.l &0x00000000,DATA+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1254) mov.l &0x00000001,DATA+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1255) fmov.b &0x2,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1256) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1257) unsupp_0_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1258) fmul.x DATA(%a6),%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1259)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1260) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1261) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1262) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1263) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1264)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1265) mov.l &0xc0010000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1266) mov.l &0x80000000,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1267) mov.l &0x00000000,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1268) mov.l &0x08000000,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1269) lea unsupp_0_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1270) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1271)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1272) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1273) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1274) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1275)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1276) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1277) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1278) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1279)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1280) # a denormalized number
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1281) unsupp_1:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1282) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1283)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1284) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1285) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1286) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1287)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1288) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1289) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1290) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1291) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1292)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1293) mov.l &0x80000000,DATA+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1294) mov.l &0x01000000,DATA+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1295) mov.l &0x00000000,DATA+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1296) fmov.l &0x7fffffff,%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1297)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1298) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1299) unsupp_1_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1300) fmul.x DATA(%a6),%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1301)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1302) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1303) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1304) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1305) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1306)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1307) mov.l &0x80170000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1308) mov.l &0xfffffffe,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1309) mov.l &0x00000000,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1310) mov.l &0x08000000,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1311) lea unsupp_1_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1312) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1313)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1314) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1315) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1316) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1317)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1318) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1319) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1320) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1321)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1322) # packed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1323) unsupp_2:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1324) addq.l &0x1,TESTCTR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1325)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1326) movm.l DEF_REGS(%pc),&0x3fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1327) fmovm.x DEF_FPREGS(%pc),&0xff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1328) fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1329)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1330) mov.w &0x0000,ICCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1331) movm.l &0x7fff,IREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1332) fmovm.x &0xff,IFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1333) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1334)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1335) mov.l &0xc1230001,DATA+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1336) mov.l &0x23456789,DATA+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1337) mov.l &0x12345678,DATA+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1338)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1339) mov.w &0x0000,%cc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1340) unsupp_2_pc:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1341) fabs.p DATA(%a6),%fp0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1342)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1343) mov.w %cc,SCCR(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1344) movm.l &0x7fff,SREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1345) fmovm.x &0xff,SFPREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1346) fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1347)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1348) mov.l &0x3e660000,IFPREGS+0x0(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1349) mov.l &0xd0ed23e8,IFPREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1350) mov.l &0xd14035bc,IFPREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1351) mov.l &0x00000108,IFPCREGS+0x4(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1352) lea unsupp_2_pc(%pc),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1353) mov.l %a0,IFPCREGS+0x8(%a6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1354)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1355) bsr.l chkregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1356) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1357) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1358)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1359) bsr.l chkfpregs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1360) tst.b %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1361) bne.l error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1362)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1363) clr.l %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1364) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1365)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1366) ###########################################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1367) ###########################################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1368)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1369) chkregs:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1370) lea IREGS(%a6),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1371) lea SREGS(%a6),%a1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1372) mov.l &14,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1373) chkregs_loop:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1374) cmp.l (%a0)+,(%a1)+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1375) bne.l chkregs_error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1376) dbra.w %d0,chkregs_loop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1377)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1378) mov.w ICCR(%a6),%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1379) mov.w SCCR(%a6),%d1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1380) cmp.w %d0,%d1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1381) bne.l chkregs_error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1382)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1383) clr.l %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1384) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1385)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1386) chkregs_error:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1387) movq.l &0x1,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1388) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1389)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1390) error:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1391) mov.l TESTCTR(%a6),%d1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1392) movq.l &0x1,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1393) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1394)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1395) chkfpregs:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1396) lea IFPREGS(%a6),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1397) lea SFPREGS(%a6),%a1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1398) mov.l &23,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1399) chkfpregs_loop:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1400) cmp.l (%a0)+,(%a1)+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1401) bne.l chkfpregs_error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1402) dbra.w %d0,chkfpregs_loop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1403)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1404) lea IFPCREGS(%a6),%a0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1405) lea SFPCREGS(%a6),%a1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1406) cmp.l (%a0)+,(%a1)+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1407) bne.l chkfpregs_error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1408) cmp.l (%a0)+,(%a1)+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1409) bne.l chkfpregs_error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1410) cmp.l (%a0)+,(%a1)+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1411) bne.l chkfpregs_error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1412)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1413) clr.l %d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1414) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1415)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1416) chkfpregs_error:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1417) movq.l &0x1,%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1418) rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1419)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1420) DEF_REGS:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1421) long 0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1422) long 0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1423)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1424) long 0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1425) long 0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1426)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1427) DEF_FPREGS:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1428) long 0x7fff0000, 0xffffffff, 0xffffffff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1429) long 0x7fff0000, 0xffffffff, 0xffffffff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1430) long 0x7fff0000, 0xffffffff, 0xffffffff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1431) long 0x7fff0000, 0xffffffff, 0xffffffff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1432) long 0x7fff0000, 0xffffffff, 0xffffffff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1433) long 0x7fff0000, 0xffffffff, 0xffffffff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1434) long 0x7fff0000, 0xffffffff, 0xffffffff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1435) long 0x7fff0000, 0xffffffff, 0xffffffff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1436)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1437) DEF_FPCREGS:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1438) long 0x00000000, 0x00000000, 0x00000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1439)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1440) ############################################################
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1441)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1442) _print_str:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1443) mov.l %d0,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1444) mov.l (TESTTOP-0x80+0x0,%pc),%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1445) pea (TESTTOP-0x80,%pc,%d0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1446) mov.l 0x4(%sp),%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1447) rtd &0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1448)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1449) _print_num:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1450) mov.l %d0,-(%sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1451) mov.l (TESTTOP-0x80+0x4,%pc),%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1452) pea (TESTTOP-0x80,%pc,%d0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1453) mov.l 0x4(%sp),%d0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1454) rtd &0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1455)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1456) ############################################################