From 510d5edf29ac0c5f32bcc3535937acfe98fc9dba Mon Sep 17 00:00:00 2001 From: arbee Date: Fri, 29 Nov 2024 22:10:41 -0500 Subject: cpu/m68000: Support direct FPU moves to A registers, not just indirect. [R. Belmont] --- src/devices/cpu/m68000/m68kfpu.cpp | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/devices/cpu/m68000/m68kfpu.cpp b/src/devices/cpu/m68000/m68kfpu.cpp index dda4c0fb4b6..75839bba69e 100644 --- a/src/devices/cpu/m68000/m68kfpu.cpp +++ b/src/devices/cpu/m68000/m68kfpu.cpp @@ -573,6 +573,10 @@ u32 m68000_musashi_device::READ_EA_32(int ea) { return REG_D()[reg]; } + case 1: // An + { + return REG_A()[reg]; + } case 2: // (An) { u32 ea = REG_A()[reg]; @@ -1865,20 +1869,7 @@ void m68000_musashi_device::fmove_fpcr(u16 w2) switch (mode) { case 0: // Dn - #if 0 - if (dir) - { - if (regsel & 4) WRITE_EA_32(ea, m_fpcr); - if (regsel & 2) WRITE_EA_32(ea, m_fpsr); - if (regsel & 1) WRITE_EA_32(ea, m_fpiar); - } - else - { - if (regsel & 4) m_fpcr = READ_EA_32(ea); - if (regsel & 2) m_fpsr = READ_EA_32(ea); - if (regsel & 1) m_fpiar = READ_EA_32(ea); - } - #endif + case 1: // An break; case 2: // (An) @@ -1943,6 +1934,7 @@ void m68000_musashi_device::fmove_fpcr(u16 w2) switch (mode) { case 0: // Dn + case 1: // An case 3: // (An)+ case 4: // -(An) if (dir) // From system control reg to -- cgit v1.2.3