--- nono/exp/fmovemc.has 2026/04/29 17:04:28 1.1 +++ nono/exp/fmovemc.has 2026/04/29 17:05:28 1.1.1.3 @@ -1,11 +1,31 @@ ; ; 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 @@ -30,6 +50,9 @@ RESTORE_FLINE_TRAP .macro .text .even +start: + bra start2 + test_fmovem_dn_to____: PRINT msg_fmovem_dn_to____ fmove.l #0,fpcr @@ -779,6 +802,10 @@ 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 moveq.l #0,d7 @@ -1036,6 +1063,10 @@ 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 moveq.l #0,d7 @@ -1052,6 +1083,10 @@ 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 moveq.l #0,d7 @@ -1365,6 +1400,10 @@ 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 moveq.l #0,d7 @@ -1622,6 +1661,10 @@ 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 moveq.l #0,d7 @@ -1638,6 +1681,10 @@ 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 moveq.l #0,d7 @@ -1898,6 +1945,10 @@ 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 moveq.l #0,d7 @@ -1914,6 +1965,10 @@ 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 moveq.l #0,d7 @@ -2174,6 +2229,10 @@ 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 moveq.l #0,d7 @@ -2190,6 +2249,10 @@ 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 moveq.l #0,d7 @@ -2638,6 +2701,10 @@ 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 moveq.l #0,d7 @@ -2839,6 +2906,10 @@ 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 moveq.l #0,d7 @@ -2886,6 +2957,10 @@ 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 moveq.l #0,d7 @@ -3025,6 +3100,10 @@ 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 moveq.l #0,d7 @@ -3041,6 +3120,10 @@ 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 moveq.l #0,d7 @@ -3057,6 +3140,10 @@ 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 moveq.l #0,d7 @@ -3223,6 +3310,10 @@ 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 moveq.l #0,d7 @@ -3270,6 +3361,10 @@ 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 moveq.l #0,d7 @@ -3409,6 +3504,10 @@ 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 moveq.l #0,d7 @@ -3425,6 +3524,10 @@ 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 moveq.l #0,d7 @@ -3441,6 +3544,10 @@ 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 moveq.l #0,d7 @@ -3607,6 +3714,10 @@ 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 moveq.l #0,d7 @@ -3623,6 +3734,10 @@ 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 moveq.l #0,d7 @@ -3639,6 +3754,10 @@ 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 moveq.l #0,d7 @@ -3805,6 +3924,10 @@ 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 moveq.l #0,d7 @@ -3821,6 +3944,10 @@ 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 moveq.l #0,d7 @@ -3837,6 +3964,10 @@ 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 moveq.l #0,d7 @@ -4030,6 +4161,10 @@ 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 moveq.l #0,d7 @@ -4045,18 +4180,51 @@ test_fmovem_CSI_to_imm: PRINT msg_oktrap rts -start: +start2: clr.l -(sp) DOS _SUPER movem.l d7/a3-a5,-(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 +@@: + moveq.l #$2c,d0 ; alternate of "lea.l $2c,a5" move.l d0,a5 ; + 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 +4267,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 @@ -4166,7 +4352,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 @@ -4185,6 +4371,8 @@ 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 @@ -4199,106 +4387,107 @@ 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