--- nono/exp/fmovemc.has 2026/04/29 17:04:33 1.1.1.2 +++ nono/exp/fmovemc.has 2026/04/29 17:05:28 1.1.1.3 @@ -24,8 +24,8 @@ ; 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 @@ -50,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 @@ -799,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 @@ -1056,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 @@ -1072,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 @@ -1385,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 @@ -1642,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 @@ -1658,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 @@ -1918,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 @@ -1934,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 @@ -2194,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 @@ -2210,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 @@ -2658,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 @@ -2859,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 @@ -2906,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 @@ -3045,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 @@ -3061,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 @@ -3077,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 @@ -3243,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 @@ -3290,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 @@ -3429,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 @@ -3445,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 @@ -3461,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 @@ -3627,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 @@ -3643,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 @@ -3659,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 @@ -3825,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 @@ -3841,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 @@ -3857,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 @@ -4050,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 @@ -4065,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 @@ -4119,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 @@ -4186,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 @@ -4205,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 @@ -4219,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