There are quite a few errors/missing stuff in the FPU module. I have corrected the ones that prevented me to run my app.
fatalerror message fprintf => vfprintf
added address register + displacement mode (mode 5, READ_EA_FPE/WRITE_EA_FPE), also changed prototype to it can be called with this mode
from FMOVEM loop
added immediate mode (READ_EA_FPE)
fpgen_rm_reg (FMOVE to register): added a lot of missing condition code update (SET_CONDITION_CODES(REG_FP[dst]))
added FSDIVS and FSMULS (easy as it's the same case as FDIV and FMUL). Updated condition codes for FDIV
fmove_fpcr: connected softfloat 4 rounding modes to this instruction, that didn't set rounding at all, when it's
perfectly emulated in softfloat module (just added: float_rounding_mode = (REG_FPCR >> 4) & 0x3;)
fmovem: added address register+displacement mode (READ_EA_FPE/WRITE_EA_FPE interface had to be changed)
There are quite a few errors/missing stuff in the FPU module. I have corrected the ones that prevented me to run my app.
here's the fixed file:
m68kfpu.zip