--- nono/exp/fmovemc.has 2026/04/29 17:04:28 1.1 +++ nono/exp/fmovemc.has 2026/04/29 17:05:36 1.1.1.4 @@ -1,14 +1,35 @@ ; ; nono -; Copyright (C) 2019 isaki@NetBSD.org +; Copyright (C) 2020 nono project ; +; Redistribution and use in source and binary forms, with or without +; modification, are permitted provided that the following conditions +; are met: +; 1. Redistributions of source code must retain the above copyright +; notice, this list of conditions and the following disclaimer. +; 2. Redistributions in binary form must reproduce the above copyright +; notice, this list of conditions and the following disclaimer in the +; documentation and/or other materials provided with the distribution. +; +; THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +; OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +; IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +; AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +; OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +; SUCH DAMAGE. ; How to compile: -; > has fmovem.has -; > hlk fmovem.o si_util.o +; > has fmovemc.has +; > hlk fmovemc.o si_util.o .xref hexstr_long .include doscall.mac + .include iocscall.mac .list .cpu 68030 @@ -18,30 +39,23 @@ PRINT .macro msg addq.l #4,sp .endm -SET_FLINE_TRAP .macro - move.l (a5),a4 - lea.l fline_handler(pc),a1 - move.l a1,(a5) - .endm - -RESTORE_FLINE_TRAP .macro - move.l a4,(a5) - .endm - .text .even +start: + bra start2 + test_fmovem_dn_to____: PRINT msg_fmovem_dn_to____ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,d0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $8000 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -89,12 +103,12 @@ test_fmovem_an_to____: fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $8000 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -143,12 +157,12 @@ test_fmovem_anin_to____: fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f210, $8000 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -206,12 +220,12 @@ test_fmovem_anpi_to____: fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f218, $8000 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -269,12 +283,12 @@ test_fmovem_anpd_to____: fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea+4(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f220, $8000 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -330,13 +344,13 @@ test_fmovem_imm_to____: fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $8000 .dc.l $55555555 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -384,12 +398,12 @@ test_fmovem_dn_to___I: fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,d0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l d0,fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -437,12 +451,12 @@ test_fmovem_an_to___I: fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l a0,fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -491,12 +505,12 @@ test_fmovem_anin_to___I: fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0),fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -554,12 +568,12 @@ test_fmovem_anpi_to___I: fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0)+,fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -617,12 +631,12 @@ test_fmovem_anpd_to___I: fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea+4(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l -(a0),fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -678,12 +692,12 @@ test_fmovem_imm_to___I: fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l #$55555555,fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -731,12 +745,12 @@ test_fmovem_dn_to__S_: fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,d0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l d0,fpsr @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -763,7 +777,7 @@ test_fmovem_dn_to__S_: lea.l 12(sp),sp @@: fmove.l fpiar,a0 - move.l d7,a1 ; d7=0 + suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) @@ -779,13 +793,17 @@ test_fmovem_dn_to__S_: rts test_fmovem_an_to__S_: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_an_to__S_ - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $8800 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -801,12 +819,12 @@ test_fmovem_anin_to__S_: fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0),fpsr @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -842,7 +860,7 @@ test_fmovem_anin_to__S_: lea.l 12(sp),sp @@: fmove.l fpiar,a0 - move.l d7,a1 ; d7=0 + suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) @@ -864,12 +882,12 @@ test_fmovem_anpi_to__S_: fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0)+,fpsr @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -905,7 +923,7 @@ test_fmovem_anpi_to__S_: lea.l 12(sp),sp @@: fmove.l fpiar,a0 - move.l d7,a1 ; d7=0 + suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) @@ -927,12 +945,12 @@ test_fmovem_anpd_to__S_: fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea+4(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l -(a0),fpsr @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -968,7 +986,7 @@ test_fmovem_anpd_to__S_: lea.l 12(sp),sp @@: fmove.l fpiar,a0 - move.l d7,a1 ; d7=0 + suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) @@ -988,12 +1006,12 @@ test_fmovem_imm_to__S_: fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l #$55555555,fpsr @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1020,7 +1038,7 @@ test_fmovem_imm_to__S_: lea.l 12(sp),sp @@: fmove.l fpiar,a0 - move.l d7,a1 ; d7=0 + suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) @@ -1036,13 +1054,17 @@ test_fmovem_imm_to__S_: rts test_fmovem_dn_to__SI: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_dn_to__SI - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $8c00 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -1052,13 +1074,17 @@ test_fmovem_dn_to__SI: rts test_fmovem_an_to__SI: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_an_to__SI - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $8c00 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -1075,12 +1101,12 @@ test_fmovem_anin_to__SI: move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0),fpsr/fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1139,12 +1165,12 @@ test_fmovem_anpi_to__SI: move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0)+,fpsr/fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1203,12 +1229,12 @@ test_fmovem_anpd_to__SI: move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea+8(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l -(a0),fpsr/fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1264,12 +1290,12 @@ test_fmovem_imm_to__SI: fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l #$55555555,#$aaaaaaaa,fpsr/fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1317,12 +1343,12 @@ test_fmovem_dn_to_C__: fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,d0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l d0,fpcr @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1349,7 +1375,7 @@ test_fmovem_dn_to_C__: lea.l 12(sp),sp @@: fmove.l fpiar,a0 - move.l d7,a1 ; d7=0 + suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) @@ -1365,13 +1391,17 @@ test_fmovem_dn_to_C__: rts test_fmovem_an_to_C__: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_an_to_C__ - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $9000 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -1387,12 +1417,12 @@ test_fmovem_anin_to_C__: fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0),fpcr @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1428,7 +1458,7 @@ test_fmovem_anin_to_C__: lea.l 12(sp),sp @@: fmove.l fpiar,a0 - move.l d7,a1 ; d7=0 + suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) @@ -1450,12 +1480,12 @@ test_fmovem_anpi_to_C__: fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0)+,fpcr @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1491,7 +1521,7 @@ test_fmovem_anpi_to_C__: lea.l 12(sp),sp @@: fmove.l fpiar,a0 - move.l d7,a1 ; d7=0 + suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) @@ -1513,12 +1543,12 @@ test_fmovem_anpd_to_C__: fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea+4(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l -(a0),fpcr @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1554,7 +1584,7 @@ test_fmovem_anpd_to_C__: lea.l 12(sp),sp @@: fmove.l fpiar,a0 - move.l d7,a1 ; d7=0 + suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) @@ -1574,12 +1604,12 @@ test_fmovem_imm_to_C__: fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l #$55555555,fpcr @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1606,7 +1636,7 @@ test_fmovem_imm_to_C__: lea.l 12(sp),sp @@: fmove.l fpiar,a0 - move.l d7,a1 ; d7=0 + suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) @@ -1622,13 +1652,17 @@ test_fmovem_imm_to_C__: rts test_fmovem_dn_to_C_I: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_dn_to_C_I - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $9400 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -1638,13 +1672,17 @@ test_fmovem_dn_to_C_I: rts test_fmovem_an_to_C_I: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_an_to_C_I - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $9400 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -1661,12 +1699,12 @@ test_fmovem_anin_to_C_I: move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0),fpcr/fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1725,12 +1763,12 @@ test_fmovem_anpi_to_C_I: move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0)+,fpcr/fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1789,12 +1827,12 @@ test_fmovem_anpd_to_C_I: move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea+8(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l -(a0),fpcr/fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1850,12 +1888,12 @@ test_fmovem_imm_to_C_I: fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l #$55555555,#$aaaaaaaa,fpcr/fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1898,13 +1936,17 @@ test_fmovem_imm_to_C_I: rts test_fmovem_dn_to_CS_: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_dn_to_CS_ - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $9800 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -1914,13 +1956,17 @@ test_fmovem_dn_to_CS_: rts test_fmovem_an_to_CS_: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_an_to_CS_ - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $9800 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -1937,12 +1983,12 @@ test_fmovem_anin_to_CS_: move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0),fpcr/fpsr @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -1978,7 +2024,7 @@ test_fmovem_anin_to_CS_: lea.l 12(sp),sp @@: fmove.l fpiar,a0 - move.l d7,a1 ; d7=0 + suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) @@ -2001,12 +2047,12 @@ test_fmovem_anpi_to_CS_: move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0)+,fpcr/fpsr @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2042,7 +2088,7 @@ test_fmovem_anpi_to_CS_: lea.l 12(sp),sp @@: fmove.l fpiar,a0 - move.l d7,a1 ; d7=0 + suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) @@ -2065,12 +2111,12 @@ test_fmovem_anpd_to_CS_: move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea+8(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l -(a0),fpcr/fpsr @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2106,7 +2152,7 @@ test_fmovem_anpd_to_CS_: lea.l 12(sp),sp @@: fmove.l fpiar,a0 - move.l d7,a1 ; d7=0 + suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) @@ -2126,12 +2172,12 @@ test_fmovem_imm_to_CS_: fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l #$55555555,#$aaaaaaaa,fpcr/fpsr @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2158,7 +2204,7 @@ test_fmovem_imm_to_CS_: lea.l 12(sp),sp @@: fmove.l fpiar,a0 - move.l d7,a1 ; d7=0 + suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) @@ -2174,13 +2220,17 @@ test_fmovem_imm_to_CS_: rts test_fmovem_dn_to_CSI: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_dn_to_CSI - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $9c00 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -2190,13 +2240,17 @@ test_fmovem_dn_to_CSI: rts test_fmovem_an_to_CSI: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_an_to_CSI - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $9c00 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -2214,12 +2268,12 @@ test_fmovem_anin_to_CSI: move.l #$aaaaaaaa,workarea+4 move.l #$33333333,workarea+8 lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0),fpcr/fpsr/fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2279,12 +2333,12 @@ test_fmovem_anpi_to_CSI: move.l #$aaaaaaaa,workarea+4 move.l #$33333333,workarea+8 lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0)+,fpcr/fpsr/fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2344,12 +2398,12 @@ test_fmovem_anpd_to_CSI: move.l #$aaaaaaaa,workarea+4 move.l #$33333333,workarea+8 lea.l workarea+12(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l -(a0),fpcr/fpsr/fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2405,12 +2459,12 @@ test_fmovem_imm_to_CSI: fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l #$55555555,#$aaaaaaaa,#$33333333,fpcr/fpsr/fpiar @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2457,12 +2511,12 @@ test_fmovem_____to_dn: fmove.l #$00000000,fpcr fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $a000 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2471,7 +2525,7 @@ test_fmovem_____to_dn: move.l #$55555555,d1 cmp.l d1,d0 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result @@ -2488,12 +2542,12 @@ test_fmovem_____to_an: fmove.l #$00000000,fpcr fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $a000 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2502,7 +2556,7 @@ test_fmovem_____to_an: movea.l #$55555555,a1 cmp.l a1,a0 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result @@ -2520,12 +2574,12 @@ test_fmovem_____to_anin: fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f210, $a000 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2543,7 +2597,7 @@ test_fmovem_____to_anin: move.l #$55555555,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -2561,12 +2615,12 @@ test_fmovem_____to_anpi: fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f218, $a000 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2584,7 +2638,7 @@ test_fmovem_____to_anpi: move.l #$55555555,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -2602,12 +2656,12 @@ test_fmovem_____to_anpd: fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar lea.l workarea+4(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f220, $a000 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2625,7 +2679,7 @@ test_fmovem_____to_anpd: move.l #$55555555,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -2638,13 +2692,17 @@ test_fmovem_____to_anpd: rts test_fmovem_____to_imm: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_____to_imm - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $a000 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -2658,12 +2716,12 @@ test_fmovem___I_to_dn: fmove.l #$00000000,fpcr fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpiar,d0 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2672,7 +2730,7 @@ test_fmovem___I_to_dn: move.l #$55555555,d1 cmp.l d1,d0 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result @@ -2689,12 +2747,12 @@ test_fmovem___I_to_an: fmove.l #$00000000,fpcr fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpiar,a0 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2703,7 +2761,7 @@ test_fmovem___I_to_an: movea.l #$55555555,a1 cmp.l a1,a0 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result @@ -2721,12 +2779,12 @@ test_fmovem___I_to_anin: fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpiar,(a0) @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2744,7 +2802,7 @@ test_fmovem___I_to_anin: move.l #$55555555,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -2762,12 +2820,12 @@ test_fmovem___I_to_anpi: fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpiar,(a0)+ @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2785,7 +2843,7 @@ test_fmovem___I_to_anpi: move.l #$55555555,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -2803,12 +2861,12 @@ test_fmovem___I_to_anpd: fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar lea.l workarea+4(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpiar,-(a0) @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2826,7 +2884,7 @@ test_fmovem___I_to_anpd: move.l #$55555555,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -2839,13 +2897,17 @@ test_fmovem___I_to_anpd: rts test_fmovem___I_to_imm: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem___I_to_imm - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $a400 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -2859,12 +2921,12 @@ test_fmovem__S__to_dn: fmove.l #$00000000,fpcr fmove.l #$55555555,fpsr fmove.l #$00000000,fpiar - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpsr,d0 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2873,7 +2935,7 @@ test_fmovem__S__to_dn: move.l #$05555550,d1 cmp.l d1,d0 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result @@ -2886,13 +2948,17 @@ test_fmovem__S__to_dn: rts test_fmovem__S__to_an: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem__S__to_an - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $a800 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -2907,12 +2973,12 @@ test_fmovem__S__to_anin: fmove.l #$55555555,fpsr fmove.l #$00000000,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpsr,(a0) @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2930,7 +2996,7 @@ test_fmovem__S__to_anin: move.l #$05555550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -2948,12 +3014,12 @@ test_fmovem__S__to_anpi: fmove.l #$55555555,fpsr fmove.l #$00000000,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpsr,(a0)+ @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -2971,7 +3037,7 @@ test_fmovem__S__to_anpi: move.l #$05555550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -2989,12 +3055,12 @@ test_fmovem__S__to_anpd: fmove.l #$55555555,fpsr fmove.l #$00000000,fpiar lea.l workarea+4(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpsr,-(a0) @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3012,7 +3078,7 @@ test_fmovem__S__to_anpd: move.l #$05555550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3025,13 +3091,17 @@ test_fmovem__S__to_anpd: rts test_fmovem__S__to_imm: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem__S__to_imm - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $a800 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -3041,13 +3111,17 @@ test_fmovem__S__to_imm: rts test_fmovem__SI_to_dn: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem__SI_to_dn - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $ac00 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -3057,13 +3131,17 @@ test_fmovem__SI_to_dn: rts test_fmovem__SI_to_an: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem__SI_to_an - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $ac00 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -3078,12 +3156,12 @@ test_fmovem__SI_to_anin: fmove.l #$55555555,fpsr fmove.l #$aaaaaaaa,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpsr/fpiar,(a0) @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3101,7 +3179,7 @@ test_fmovem__SI_to_anin: move.l #$05555550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3110,7 +3188,7 @@ test_fmovem__SI_to_anin: move.l #$aaaaaaaa,d1 cmp.l workarea+4,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result @@ -3128,12 +3206,12 @@ test_fmovem__SI_to_anpi: fmove.l #$55555555,fpsr fmove.l #$aaaaaaaa,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpsr/fpiar,(a0)+ @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3151,7 +3229,7 @@ test_fmovem__SI_to_anpi: move.l #$05555550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3160,7 +3238,7 @@ test_fmovem__SI_to_anpi: move.l #$aaaaaaaa,d1 cmp.l workarea+4,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result @@ -3178,12 +3256,12 @@ test_fmovem__SI_to_anpd: fmove.l #$55555555,fpsr fmove.l #$aaaaaaaa,fpiar lea.l workarea+8(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpsr/fpiar,-(a0) @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3201,7 +3279,7 @@ test_fmovem__SI_to_anpd: move.l #$05555550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3210,7 +3288,7 @@ test_fmovem__SI_to_anpd: move.l #$aaaaaaaa,d1 cmp.l workarea+4,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result @@ -3223,13 +3301,17 @@ test_fmovem__SI_to_anpd: rts test_fmovem__SI_to_imm: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem__SI_to_imm - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $ac00 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -3243,12 +3325,12 @@ test_fmovem_C___to_dn: fmove.l #$55555555,fpcr fmove.l #$00000000,fpsr fmove.l #$00000000,fpiar - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr,d0 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3257,7 +3339,7 @@ test_fmovem_C___to_dn: move.l #$00005550,d1 cmp.l d1,d0 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result @@ -3270,13 +3352,17 @@ test_fmovem_C___to_dn: rts test_fmovem_C___to_an: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_C___to_an - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $b000 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -3291,12 +3377,12 @@ test_fmovem_C___to_anin: fmove.l #$00000000,fpsr fmove.l #$00000000,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr,(a0) @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3314,7 +3400,7 @@ test_fmovem_C___to_anin: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3332,12 +3418,12 @@ test_fmovem_C___to_anpi: fmove.l #$00000000,fpsr fmove.l #$00000000,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr,(a0)+ @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3355,7 +3441,7 @@ test_fmovem_C___to_anpi: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3373,12 +3459,12 @@ test_fmovem_C___to_anpd: fmove.l #$00000000,fpsr fmove.l #$00000000,fpiar lea.l workarea+4(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr,-(a0) @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3396,7 +3482,7 @@ test_fmovem_C___to_anpd: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3409,13 +3495,17 @@ test_fmovem_C___to_anpd: rts test_fmovem_C___to_imm: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_C___to_imm - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $b000 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -3425,13 +3515,17 @@ test_fmovem_C___to_imm: rts test_fmovem_C_I_to_dn: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_C_I_to_dn - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $b400 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -3441,13 +3535,17 @@ test_fmovem_C_I_to_dn: rts test_fmovem_C_I_to_an: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_C_I_to_an - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $b400 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -3462,12 +3560,12 @@ test_fmovem_C_I_to_anin: fmove.l #$00000000,fpsr fmove.l #$aaaaaaaa,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpiar,(a0) @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3485,7 +3583,7 @@ test_fmovem_C_I_to_anin: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3494,7 +3592,7 @@ test_fmovem_C_I_to_anin: move.l #$aaaaaaaa,d1 cmp.l workarea+4,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result @@ -3512,12 +3610,12 @@ test_fmovem_C_I_to_anpi: fmove.l #$00000000,fpsr fmove.l #$aaaaaaaa,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpiar,(a0)+ @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3535,7 +3633,7 @@ test_fmovem_C_I_to_anpi: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3544,7 +3642,7 @@ test_fmovem_C_I_to_anpi: move.l #$aaaaaaaa,d1 cmp.l workarea+4,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result @@ -3562,12 +3660,12 @@ test_fmovem_C_I_to_anpd: fmove.l #$00000000,fpsr fmove.l #$aaaaaaaa,fpiar lea.l workarea+8(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpiar,-(a0) @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3585,7 +3683,7 @@ test_fmovem_C_I_to_anpd: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3594,7 +3692,7 @@ test_fmovem_C_I_to_anpd: move.l #$aaaaaaaa,d1 cmp.l workarea+4,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result @@ -3607,13 +3705,17 @@ test_fmovem_C_I_to_anpd: rts test_fmovem_C_I_to_imm: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_C_I_to_imm - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $b400 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -3623,13 +3725,17 @@ test_fmovem_C_I_to_imm: rts test_fmovem_CS__to_dn: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_CS__to_dn - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $b800 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -3639,13 +3745,17 @@ test_fmovem_CS__to_dn: rts test_fmovem_CS__to_an: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_CS__to_an - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $b800 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -3660,12 +3770,12 @@ test_fmovem_CS__to_anin: fmove.l #$aaaaaaaa,fpsr fmove.l #$00000000,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpsr,(a0) @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3683,7 +3793,7 @@ test_fmovem_CS__to_anin: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3692,7 +3802,7 @@ test_fmovem_CS__to_anin: move.l #$0aaaaaa8,d1 cmp.l workarea+4,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result @@ -3710,12 +3820,12 @@ test_fmovem_CS__to_anpi: fmove.l #$aaaaaaaa,fpsr fmove.l #$00000000,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpsr,(a0)+ @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3733,7 +3843,7 @@ test_fmovem_CS__to_anpi: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3742,7 +3852,7 @@ test_fmovem_CS__to_anpi: move.l #$0aaaaaa8,d1 cmp.l workarea+4,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result @@ -3760,12 +3870,12 @@ test_fmovem_CS__to_anpd: fmove.l #$aaaaaaaa,fpsr fmove.l #$00000000,fpiar lea.l workarea+8(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpsr,-(a0) @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3783,7 +3893,7 @@ test_fmovem_CS__to_anpd: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3792,7 +3902,7 @@ test_fmovem_CS__to_anpd: move.l #$0aaaaaa8,d1 cmp.l workarea+4,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result @@ -3805,13 +3915,17 @@ test_fmovem_CS__to_anpd: rts test_fmovem_CS__to_imm: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_CS__to_imm - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $b800 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -3821,13 +3935,17 @@ test_fmovem_CS__to_imm: rts test_fmovem_CSI_to_dn: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_CSI_to_dn - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $bc00 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -3837,13 +3955,17 @@ test_fmovem_CSI_to_dn: rts test_fmovem_CSI_to_an: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_CSI_to_an - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $bc00 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -3858,12 +3980,12 @@ test_fmovem_CSI_to_anin: fmove.l #$aaaaaaaa,fpsr fmove.l #$33333333,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpsr/fpiar,(a0) @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3881,7 +4003,7 @@ test_fmovem_CSI_to_anin: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3890,7 +4012,7 @@ test_fmovem_CSI_to_anin: move.l #$0aaaaaa8,d1 cmp.l workarea+4,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result @@ -3899,7 +4021,7 @@ test_fmovem_CSI_to_anin: move.l #$33333333,d1 cmp.l workarea+8,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+12,-(sp) bsr result @@ -3917,12 +4039,12 @@ test_fmovem_CSI_to_anpi: fmove.l #$aaaaaaaa,fpsr fmove.l #$33333333,fpiar lea.l workarea(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpsr/fpiar,(a0)+ @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3940,7 +4062,7 @@ test_fmovem_CSI_to_anpi: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -3949,7 +4071,7 @@ test_fmovem_CSI_to_anpi: move.l #$0aaaaaa8,d1 cmp.l workarea+4,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result @@ -3958,7 +4080,7 @@ test_fmovem_CSI_to_anpi: move.l #$33333333,d1 cmp.l workarea+8,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+12,-(sp) bsr result @@ -3976,12 +4098,12 @@ test_fmovem_CSI_to_anpd: fmove.l #$aaaaaaaa,fpsr fmove.l #$33333333,fpiar lea.l workarea+12(pc),a0 - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpsr/fpiar,-(a0) @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap @@ -3999,7 +4121,7 @@ test_fmovem_CSI_to_anpd: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result @@ -4008,7 +4130,7 @@ test_fmovem_CSI_to_anpd: move.l #$0aaaaaa8,d1 cmp.l workarea+4,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result @@ -4017,7 +4139,7 @@ test_fmovem_CSI_to_anpd: move.l #$33333333,d1 cmp.l workarea+8,d1 beq @f - pea.l msg_fail(pc) + pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+12,-(sp) bsr result @@ -4030,13 +4152,17 @@ test_fmovem_CSI_to_anpd: rts test_fmovem_CSI_to_imm: + tst.b is_hard(pc) + bne @f + rts +@@: PRINT msg_fmovem_CSI_to_imm - SET_FLINE_TRAP + bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $bc00 @@: - RESTORE_FLINE_TRAP + bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap @@ -4045,18 +4171,48 @@ test_fmovem_CSI_to_imm: PRINT msg_oktrap rts -start: +start2: clr.l -(sp) DOS _SUPER - movem.l d7/a3-a5,-(sp) - moveq.l #$2c,d0 ; alternate of "lea.l $2c,a5" - move.l d0,a5 ; + movem.l d7/a3-a4,-(sp) + ; rough argument check + cmpi.b #4,(a2)+ ; strlen(arg)>=4 ? + bcs @f + cmpi.l #$68617264,(a2) ; "hard" + seq.b is_hard +@@: + tst.b is_hard(pc) + beq disp_easy +disp_hard: + PRINT msg_hard + bra @f +disp_easy: + PRINT msg_easy +@@: + tst.b is_hard(pc) + beq @f bsr test_fmovem_dn_to____ +@@: + tst.b is_hard(pc) + beq @f bsr test_fmovem_an_to____ +@@: + tst.b is_hard(pc) + beq @f bsr test_fmovem_anin_to____ +@@: + tst.b is_hard(pc) + beq @f bsr test_fmovem_anpi_to____ +@@: + tst.b is_hard(pc) + beq @f bsr test_fmovem_anpd_to____ +@@: + tst.b is_hard(pc) + beq @f bsr test_fmovem_imm_to____ +@@: bsr test_fmovem_dn_to___I bsr test_fmovem_an_to___I bsr test_fmovem_anin_to___I @@ -4099,12 +4255,30 @@ start: bsr test_fmovem_anpi_to_CSI bsr test_fmovem_anpd_to_CSI bsr test_fmovem_imm_to_CSI + tst.b is_hard(pc) + beq @f bsr test_fmovem_____to_dn +@@: + tst.b is_hard(pc) + beq @f bsr test_fmovem_____to_an +@@: + tst.b is_hard(pc) + beq @f bsr test_fmovem_____to_anin +@@: + tst.b is_hard(pc) + beq @f bsr test_fmovem_____to_anpi +@@: + tst.b is_hard(pc) + beq @f bsr test_fmovem_____to_anpd +@@: + tst.b is_hard(pc) + beq @f bsr test_fmovem_____to_imm +@@: bsr test_fmovem___I_to_dn bsr test_fmovem___I_to_an bsr test_fmovem___I_to_anin @@ -4147,7 +4321,7 @@ start: bsr test_fmovem_CSI_to_anpi bsr test_fmovem_CSI_to_anpd bsr test_fmovem_CSI_to_imm - movem.l (sp)+,d7/a3-a5 + movem.l (sp)+,d7/a3-a4 DOS _EXIT ; 結果表示 @@ -4166,7 +4340,7 @@ result: PRINT buf PRINT msg_but - move.l 8+0(a6),a0 + move.l 8+0(a6),d0 lea.l buf(pc),a0 bsr hexstr_long PRINT buf @@ -4177,6 +4351,28 @@ result: unlk a6 rts +; Fライン例外をテスト用のものに差し替える。 +; 変更前のアドレスを a4 に格納する。 +; a1 は破壊する。 +set_fline: + movem.l d0-d1,-(sp) + moveq.l #$b,d1 + lea.l fline_handler(pc),a1 + IOCS _B_INTVCS + movea.l d0,a4 + movem.l (sp)+,d0-d1 + rts + +; Fライン例外を元に戻す。 +; a1 は破壊する。 +restore_fline: + movem.l d0-d1,-(sp) + moveq.l #$b,d1 + movea.l a4,a1 + IOCS _B_INTVCS + movem.l (sp)+,d0-d1 + rts + ; Fライン例外ハンドラ ; a3 に戻りアドレスをセットしてあること ; d7 を 1 にして帰る @@ -4185,120 +4381,123 @@ fline_handler: move.l a3,2(sp) rte +msg_hard: .dc.b "hard mode",$d,$a,0 +msg_easy: .dc.b "easy mode",$d,$a,0 msg_oktrap: .dc.b $9,"ok(trap)",$d,$a,0, 0,0 msg_fail_notrap: .dc.b $9,"FAIL: trap expected but not occured",$d,$a,0 msg_fail_trap: .dc.b $9,"FAIL: unexpected trap occured",$d,$a,0 msg_ok: .dc.b $9,"ok",$d,$a,0 -msg_fail: .dc.b $9,"fail",$d,$a,0 msg_fail_cr: .dc.b $9,"FAIL: fpcr expects ",0 msg_fail_sr: .dc.b $9,"FAIL: fpsr expects ",0 msg_fail_ir: .dc.b $9,"FAIL: fpiar expects ",0 msg_fail_addr: .dc.b $9,"FAIL: an expects ",0 +msg_fail_dst: .dc.b $9,"FAIL: dst expects ",0 msg_but: .dc.b " but ",0 msg_crlf: .dc.b $d,$a,0 -msg_fmovem_dn_to____: .dc.b "fmovem_dn_to____",0 -msg_fmovem_an_to____: .dc.b "fmovem_an_to____",0 -msg_fmovem_anin_to____: .dc.b "fmovem_anin_to____",0 -msg_fmovem_anpi_to____: .dc.b "fmovem_anpi_to____",0 -msg_fmovem_anpd_to____: .dc.b "fmovem_anpd_to____",0 -msg_fmovem_imm_to____: .dc.b "fmovem_imm_to____",0 -msg_fmovem_dn_to___I: .dc.b "fmovem_dn_to___I",0 -msg_fmovem_an_to___I: .dc.b "fmovem_an_to___I",0 -msg_fmovem_anin_to___I: .dc.b "fmovem_anin_to___I",0 -msg_fmovem_anpi_to___I: .dc.b "fmovem_anpi_to___I",0 -msg_fmovem_anpd_to___I: .dc.b "fmovem_anpd_to___I",0 -msg_fmovem_imm_to___I: .dc.b "fmovem_imm_to___I",0 -msg_fmovem_dn_to__S_: .dc.b "fmovem_dn_to__S_",0 -msg_fmovem_an_to__S_: .dc.b "fmovem_an_to__S_",0 -msg_fmovem_anin_to__S_: .dc.b "fmovem_anin_to__S_",0 -msg_fmovem_anpi_to__S_: .dc.b "fmovem_anpi_to__S_",0 -msg_fmovem_anpd_to__S_: .dc.b "fmovem_anpd_to__S_",0 -msg_fmovem_imm_to__S_: .dc.b "fmovem_imm_to__S_",0 -msg_fmovem_dn_to__SI: .dc.b "fmovem_dn_to__SI",0 -msg_fmovem_an_to__SI: .dc.b "fmovem_an_to__SI",0 -msg_fmovem_anin_to__SI: .dc.b "fmovem_anin_to__SI",0 -msg_fmovem_anpi_to__SI: .dc.b "fmovem_anpi_to__SI",0 -msg_fmovem_anpd_to__SI: .dc.b "fmovem_anpd_to__SI",0 -msg_fmovem_imm_to__SI: .dc.b "fmovem_imm_to__SI",0 -msg_fmovem_dn_to_C__: .dc.b "fmovem_dn_to_C__",0 -msg_fmovem_an_to_C__: .dc.b "fmovem_an_to_C__",0 -msg_fmovem_anin_to_C__: .dc.b "fmovem_anin_to_C__",0 -msg_fmovem_anpi_to_C__: .dc.b "fmovem_anpi_to_C__",0 -msg_fmovem_anpd_to_C__: .dc.b "fmovem_anpd_to_C__",0 -msg_fmovem_imm_to_C__: .dc.b "fmovem_imm_to_C__",0 -msg_fmovem_dn_to_C_I: .dc.b "fmovem_dn_to_C_I",0 -msg_fmovem_an_to_C_I: .dc.b "fmovem_an_to_C_I",0 -msg_fmovem_anin_to_C_I: .dc.b "fmovem_anin_to_C_I",0 -msg_fmovem_anpi_to_C_I: .dc.b "fmovem_anpi_to_C_I",0 -msg_fmovem_anpd_to_C_I: .dc.b "fmovem_anpd_to_C_I",0 -msg_fmovem_imm_to_C_I: .dc.b "fmovem_imm_to_C_I",0 -msg_fmovem_dn_to_CS_: .dc.b "fmovem_dn_to_CS_",0 -msg_fmovem_an_to_CS_: .dc.b "fmovem_an_to_CS_",0 -msg_fmovem_anin_to_CS_: .dc.b "fmovem_anin_to_CS_",0 -msg_fmovem_anpi_to_CS_: .dc.b "fmovem_anpi_to_CS_",0 -msg_fmovem_anpd_to_CS_: .dc.b "fmovem_anpd_to_CS_",0 -msg_fmovem_imm_to_CS_: .dc.b "fmovem_imm_to_CS_",0 -msg_fmovem_dn_to_CSI: .dc.b "fmovem_dn_to_CSI",0 -msg_fmovem_an_to_CSI: .dc.b "fmovem_an_to_CSI",0 -msg_fmovem_anin_to_CSI: .dc.b "fmovem_anin_to_CSI",0 -msg_fmovem_anpi_to_CSI: .dc.b "fmovem_anpi_to_CSI",0 -msg_fmovem_anpd_to_CSI: .dc.b "fmovem_anpd_to_CSI",0 -msg_fmovem_imm_to_CSI: .dc.b "fmovem_imm_to_CSI",0 -msg_fmovem_____to_dn: .dc.b "fmovem_____to_dn",0 -msg_fmovem_____to_an: .dc.b "fmovem_____to_an",0 -msg_fmovem_____to_anin: .dc.b "fmovem_____to_anin",0 -msg_fmovem_____to_anpi: .dc.b "fmovem_____to_anpi",0 -msg_fmovem_____to_anpd: .dc.b "fmovem_____to_anpd",0 -msg_fmovem_____to_imm: .dc.b "fmovem_____to_imm",0 -msg_fmovem___I_to_dn: .dc.b "fmovem___I_to_dn",0 -msg_fmovem___I_to_an: .dc.b "fmovem___I_to_an",0 -msg_fmovem___I_to_anin: .dc.b "fmovem___I_to_anin",0 -msg_fmovem___I_to_anpi: .dc.b "fmovem___I_to_anpi",0 -msg_fmovem___I_to_anpd: .dc.b "fmovem___I_to_anpd",0 -msg_fmovem___I_to_imm: .dc.b "fmovem___I_to_imm",0 -msg_fmovem__S__to_dn: .dc.b "fmovem__S__to_dn",0 -msg_fmovem__S__to_an: .dc.b "fmovem__S__to_an",0 -msg_fmovem__S__to_anin: .dc.b "fmovem__S__to_anin",0 -msg_fmovem__S__to_anpi: .dc.b "fmovem__S__to_anpi",0 -msg_fmovem__S__to_anpd: .dc.b "fmovem__S__to_anpd",0 -msg_fmovem__S__to_imm: .dc.b "fmovem__S__to_imm",0 -msg_fmovem__SI_to_dn: .dc.b "fmovem__SI_to_dn",0 -msg_fmovem__SI_to_an: .dc.b "fmovem__SI_to_an",0 -msg_fmovem__SI_to_anin: .dc.b "fmovem__SI_to_anin",0 -msg_fmovem__SI_to_anpi: .dc.b "fmovem__SI_to_anpi",0 -msg_fmovem__SI_to_anpd: .dc.b "fmovem__SI_to_anpd",0 -msg_fmovem__SI_to_imm: .dc.b "fmovem__SI_to_imm",0 -msg_fmovem_C___to_dn: .dc.b "fmovem_C___to_dn",0 -msg_fmovem_C___to_an: .dc.b "fmovem_C___to_an",0 -msg_fmovem_C___to_anin: .dc.b "fmovem_C___to_anin",0 -msg_fmovem_C___to_anpi: .dc.b "fmovem_C___to_anpi",0 -msg_fmovem_C___to_anpd: .dc.b "fmovem_C___to_anpd",0 -msg_fmovem_C___to_imm: .dc.b "fmovem_C___to_imm",0 -msg_fmovem_C_I_to_dn: .dc.b "fmovem_C_I_to_dn",0 -msg_fmovem_C_I_to_an: .dc.b "fmovem_C_I_to_an",0 -msg_fmovem_C_I_to_anin: .dc.b "fmovem_C_I_to_anin",0 -msg_fmovem_C_I_to_anpi: .dc.b "fmovem_C_I_to_anpi",0 -msg_fmovem_C_I_to_anpd: .dc.b "fmovem_C_I_to_anpd",0 -msg_fmovem_C_I_to_imm: .dc.b "fmovem_C_I_to_imm",0 -msg_fmovem_CS__to_dn: .dc.b "fmovem_CS__to_dn",0 -msg_fmovem_CS__to_an: .dc.b "fmovem_CS__to_an",0 -msg_fmovem_CS__to_anin: .dc.b "fmovem_CS__to_anin",0 -msg_fmovem_CS__to_anpi: .dc.b "fmovem_CS__to_anpi",0 -msg_fmovem_CS__to_anpd: .dc.b "fmovem_CS__to_anpd",0 -msg_fmovem_CS__to_imm: .dc.b "fmovem_CS__to_imm",0 -msg_fmovem_CSI_to_dn: .dc.b "fmovem_CSI_to_dn",0 -msg_fmovem_CSI_to_an: .dc.b "fmovem_CSI_to_an",0 -msg_fmovem_CSI_to_anin: .dc.b "fmovem_CSI_to_anin",0 -msg_fmovem_CSI_to_anpi: .dc.b "fmovem_CSI_to_anpi",0 -msg_fmovem_CSI_to_anpd: .dc.b "fmovem_CSI_to_anpd",0 -msg_fmovem_CSI_to_imm: .dc.b "fmovem_CSI_to_imm",0 +msg_fmovem_dn_to____: .dc.b "fmovem.l d0,nofpc",0 +msg_fmovem_an_to____: .dc.b "fmovem.l a0,nofpc",0 +msg_fmovem_anin_to____: .dc.b "fmovem.l (a0),nofpc",0 +msg_fmovem_anpi_to____: .dc.b "fmovem.l (a0)+,nofpc",0 +msg_fmovem_anpd_to____: .dc.b "fmovem.l -(a0),nofpc",0 +msg_fmovem_imm_to____: .dc.b "fmovem.l #imm,nofpc",0 +msg_fmovem_dn_to___I: .dc.b "fmovem.l d0,fpiar",0 +msg_fmovem_an_to___I: .dc.b "fmovem.l a0,fpiar",0 +msg_fmovem_anin_to___I: .dc.b "fmovem.l (a0),fpiar",0 +msg_fmovem_anpi_to___I: .dc.b "fmovem.l (a0)+,fpiar",0 +msg_fmovem_anpd_to___I: .dc.b "fmovem.l -(a0),fpiar",0 +msg_fmovem_imm_to___I: .dc.b "fmovem.l #imm,fpiar",0 +msg_fmovem_dn_to__S_: .dc.b "fmovem.l d0,fpsr",0 +msg_fmovem_an_to__S_: .dc.b "fmovem.l a0,fpsr",0 +msg_fmovem_anin_to__S_: .dc.b "fmovem.l (a0),fpsr",0 +msg_fmovem_anpi_to__S_: .dc.b "fmovem.l (a0)+,fpsr",0 +msg_fmovem_anpd_to__S_: .dc.b "fmovem.l -(a0),fpsr",0 +msg_fmovem_imm_to__S_: .dc.b "fmovem.l #imm,fpsr",0 +msg_fmovem_dn_to__SI: .dc.b "fmovem.l d0,fpsr/fpiar",0 +msg_fmovem_an_to__SI: .dc.b "fmovem.l a0,fpsr/fpiar",0 +msg_fmovem_anin_to__SI: .dc.b "fmovem.l (a0),fpsr/fpiar",0 +msg_fmovem_anpi_to__SI: .dc.b "fmovem.l (a0)+,fpsr/fpiar",0 +msg_fmovem_anpd_to__SI: .dc.b "fmovem.l -(a0),fpsr/fpiar",0 +msg_fmovem_imm_to__SI: .dc.b "fmovem.l #imm/#imm,fpsr/fpiar",0 +msg_fmovem_dn_to_C__: .dc.b "fmovem.l d0,fpcr",0 +msg_fmovem_an_to_C__: .dc.b "fmovem.l a0,fpcr",0 +msg_fmovem_anin_to_C__: .dc.b "fmovem.l (a0),fpcr",0 +msg_fmovem_anpi_to_C__: .dc.b "fmovem.l (a0)+,fpcr",0 +msg_fmovem_anpd_to_C__: .dc.b "fmovem.l -(a0),fpcr",0 +msg_fmovem_imm_to_C__: .dc.b "fmovem.l #imm,fpcr",0 +msg_fmovem_dn_to_C_I: .dc.b "fmovem.l d0,fpcr/fpiar",0 +msg_fmovem_an_to_C_I: .dc.b "fmovem.l a0,fpcr/fpiar",0 +msg_fmovem_anin_to_C_I: .dc.b "fmovem.l (a0),fpcr/fpiar",0 +msg_fmovem_anpi_to_C_I: .dc.b "fmovem.l (a0)+,fpcr/fpiar",0 +msg_fmovem_anpd_to_C_I: .dc.b "fmovem.l -(a0),fpcr/fpiar",0 +msg_fmovem_imm_to_C_I: .dc.b "fmovem.l #imm/#imm,fpcr/fpiar",0 +msg_fmovem_dn_to_CS_: .dc.b "fmovem.l d0,fpcr/fpsr",0 +msg_fmovem_an_to_CS_: .dc.b "fmovem.l a0,fpcr/fpsr",0 +msg_fmovem_anin_to_CS_: .dc.b "fmovem.l (a0),fpcr/fpsr",0 +msg_fmovem_anpi_to_CS_: .dc.b "fmovem.l (a0)+,fpcr/fpsr",0 +msg_fmovem_anpd_to_CS_: .dc.b "fmovem.l -(a0),fpcr/fpsr",0 +msg_fmovem_imm_to_CS_: .dc.b "fmovem.l #imm/#imm,fpcr/fpsr",0 +msg_fmovem_dn_to_CSI: .dc.b "fmovem.l d0,fpcr/fpsr/fpiar",0 +msg_fmovem_an_to_CSI: .dc.b "fmovem.l a0,fpcr/fpsr/fpiar",0 +msg_fmovem_anin_to_CSI: .dc.b "fmovem.l (a0),fpcr/fpsr/fpiar",0 +msg_fmovem_anpi_to_CSI: .dc.b "fmovem.l (a0)+,fpcr/fpsr/fpiar",0 +msg_fmovem_anpd_to_CSI: .dc.b "fmovem.l -(a0),fpcr/fpsr/fpiar",0 +msg_fmovem_imm_to_CSI: .dc.b "fmovem.l #imm/#imm/#imm,fpcr/fpsr/fpiar",0 +msg_fmovem_____to_dn: .dc.b "fmovem.l nofpc,d0",0 +msg_fmovem_____to_an: .dc.b "fmovem.l nofpc,a0",0 +msg_fmovem_____to_anin: .dc.b "fmovem.l nofpc,(a0)",0 +msg_fmovem_____to_anpi: .dc.b "fmovem.l nofpc,(a0)+",0 +msg_fmovem_____to_anpd: .dc.b "fmovem.l nofpc,-(a0)",0 +msg_fmovem_____to_imm: .dc.b "fmovem.l nofpc,#imm",0 +msg_fmovem___I_to_dn: .dc.b "fmovem.l fpiar,d0",0 +msg_fmovem___I_to_an: .dc.b "fmovem.l fpiar,a0",0 +msg_fmovem___I_to_anin: .dc.b "fmovem.l fpiar,(a0)",0 +msg_fmovem___I_to_anpi: .dc.b "fmovem.l fpiar,(a0)+",0 +msg_fmovem___I_to_anpd: .dc.b "fmovem.l fpiar,-(a0)",0 +msg_fmovem___I_to_imm: .dc.b "fmovem.l fpiar,#imm",0 +msg_fmovem__S__to_dn: .dc.b "fmovem.l fpsr,d0",0 +msg_fmovem__S__to_an: .dc.b "fmovem.l fpsr,a0",0 +msg_fmovem__S__to_anin: .dc.b "fmovem.l fpsr,(a0)",0 +msg_fmovem__S__to_anpi: .dc.b "fmovem.l fpsr,(a0)+",0 +msg_fmovem__S__to_anpd: .dc.b "fmovem.l fpsr,-(a0)",0 +msg_fmovem__S__to_imm: .dc.b "fmovem.l fpsr,#imm",0 +msg_fmovem__SI_to_dn: .dc.b "fmovem.l fpsr/fpiar,d0",0 +msg_fmovem__SI_to_an: .dc.b "fmovem.l fpsr/fpiar,a0",0 +msg_fmovem__SI_to_anin: .dc.b "fmovem.l fpsr/fpiar,(a0)",0 +msg_fmovem__SI_to_anpi: .dc.b "fmovem.l fpsr/fpiar,(a0)+",0 +msg_fmovem__SI_to_anpd: .dc.b "fmovem.l fpsr/fpiar,-(a0)",0 +msg_fmovem__SI_to_imm: .dc.b "fmovem.l fpsr/fpiar,#imm/#imm",0 +msg_fmovem_C___to_dn: .dc.b "fmovem.l fpcr,d0",0 +msg_fmovem_C___to_an: .dc.b "fmovem.l fpcr,a0",0 +msg_fmovem_C___to_anin: .dc.b "fmovem.l fpcr,(a0)",0 +msg_fmovem_C___to_anpi: .dc.b "fmovem.l fpcr,(a0)+",0 +msg_fmovem_C___to_anpd: .dc.b "fmovem.l fpcr,-(a0)",0 +msg_fmovem_C___to_imm: .dc.b "fmovem.l fpcr,#imm",0 +msg_fmovem_C_I_to_dn: .dc.b "fmovem.l fpcr/fpiar,d0",0 +msg_fmovem_C_I_to_an: .dc.b "fmovem.l fpcr/fpiar,a0",0 +msg_fmovem_C_I_to_anin: .dc.b "fmovem.l fpcr/fpiar,(a0)",0 +msg_fmovem_C_I_to_anpi: .dc.b "fmovem.l fpcr/fpiar,(a0)+",0 +msg_fmovem_C_I_to_anpd: .dc.b "fmovem.l fpcr/fpiar,-(a0)",0 +msg_fmovem_C_I_to_imm: .dc.b "fmovem.l fpcr/fpiar,#imm/#imm",0 +msg_fmovem_CS__to_dn: .dc.b "fmovem.l fpcr/fpsr,d0",0 +msg_fmovem_CS__to_an: .dc.b "fmovem.l fpcr/fpsr,a0",0 +msg_fmovem_CS__to_anin: .dc.b "fmovem.l fpcr/fpsr,(a0)",0 +msg_fmovem_CS__to_anpi: .dc.b "fmovem.l fpcr/fpsr,(a0)+",0 +msg_fmovem_CS__to_anpd: .dc.b "fmovem.l fpcr/fpsr,-(a0)",0 +msg_fmovem_CS__to_imm: .dc.b "fmovem.l fpcr/fpsr,#imm/#imm",0 +msg_fmovem_CSI_to_dn: .dc.b "fmovem.l fpcr/fpsr/fpiar,d0",0 +msg_fmovem_CSI_to_an: .dc.b "fmovem.l fpcr/fpsr/fpiar,a0",0 +msg_fmovem_CSI_to_anin: .dc.b "fmovem.l fpcr/fpsr/fpiar,(a0)",0 +msg_fmovem_CSI_to_anpi: .dc.b "fmovem.l fpcr/fpsr/fpiar,(a0)+",0 +msg_fmovem_CSI_to_anpd: .dc.b "fmovem.l fpcr/fpsr/fpiar,-(a0)",0 +msg_fmovem_CSI_to_imm: .dc.b "fmovem.l fpcr/fpsr/fpiar,#imm/#imm/#imm",0 .data .even workarea: .ds.b 24 -buf: .dc.b 20 +buf: .ds.b 20 +is_hard: .ds.b 1 .end start