From a40b1222108e88c8d20de9a023a226bfdbf59814 Mon Sep 17 00:00:00 2001 From: Sven Schnelle <41547105+svenschnelle@users.noreply.github.com> Date: Tue, 25 Jun 2024 20:44:33 +0200 Subject: cpu/m68000: Fix fmovem reads for mode=2 (#12510) - Commit 6957c469983 changed the write part, but missed to convert the read part. This fixes booting HP-UX 9 on hp9k_3xx. Signed-off-by: Sven Schnelle --- src/devices/cpu/m68000/m68kfpu.cpp | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/src/devices/cpu/m68000/m68kfpu.cpp b/src/devices/cpu/m68000/m68kfpu.cpp index 93cc6012e46..4fb984242fe 100644 --- a/src/devices/cpu/m68000/m68kfpu.cpp +++ b/src/devices/cpu/m68000/m68kfpu.cpp @@ -2020,17 +2020,6 @@ void m68000_musashi_device::fmovem(u16 w2) int mode = (w2 >> 11) & 0x3; int reglist = w2 & 0xff; - u32 mem_addr = 0; - switch (ea >> 3) - { - case 5: // (d16, An) - mem_addr= EA_AY_DI_32(); - break; - case 6: // (An) + (Xn) + d8 - mem_addr= EA_AY_IX_32(); - break; - } - if (dir) // From FP regs to mem { switch (mode) @@ -2116,17 +2105,12 @@ void m68000_musashi_device::fmovem(u16 w2) { if (reglist & (1 << i)) { - switch (ea >> 3) + m_fpr[7 - i] = READ_EA_FPE(imode, reg, di_mode_ea); + if (di_mode) { - case 5: // (d16, An) - case 6: // (An) + (Xn) + d8 - m_fpr[7-i] = load_extended_float80(mem_addr); - mem_addr += 12; - break; - default: - m_fpr[7 - i] = READ_EA_FPE(imode, reg, di_mode_ea); - break; + di_mode_ea += 12; } + m_icount -= 2; } } -- cgit v1.2.3