diff options
author | 2023-01-17 19:21:30 +0700 | |
---|---|---|
committer | 2023-01-17 19:21:30 +0700 | |
commit | e6adac10ecf9892c31dc0d38aaf827666a0f96b7 (patch) | |
tree | b6735023f8bb0b39f199ef1f70b8f0fa3608dff9 /src/devices | |
parent | 16de1c7df58ac0200dfeca21a5ef3e18627f96c8 (diff) |
m88000: add variants of some triadic instructions with un-decoded bits
Diffstat (limited to 'src/devices')
-rw-r--r-- | src/devices/cpu/m88000/m88000.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/devices/cpu/m88000/m88000.cpp b/src/devices/cpu/m88000/m88000.cpp index 9335e457639..c0df2a80a24 100644 --- a/src/devices/cpu/m88000/m88000.cpp +++ b/src/devices/cpu/m88000/m88000.cpp @@ -764,6 +764,7 @@ void mc88100_device::execute(u32 const inst) } break; case 0x340: // divu: unsigned integer divide (register) + case 0x348: if (!(m_cr[PSR] & PSR_SFD1)) { if (m_r[S2]) @@ -775,6 +776,7 @@ void mc88100_device::execute(u32 const inst) exception(E_SFU1_P); break; case 0x360: // mul: integer multiply (register) + case 0x368: if (!(m_cr[PSR] & PSR_SFD1)) m_r[D] = m_r[S1] * m_r[S2]; else @@ -869,6 +871,7 @@ void mc88100_device::execute(u32 const inst) } break; case 0x3c0: // div: signed integer divide (register) + case 0x3c8: if (!(m_cr[PSR] & PSR_SFD1)) { if (m_r[S2] && !BIT(m_r[S1], 31) && !BIT(m_r[S2], 31)) @@ -880,6 +883,7 @@ void mc88100_device::execute(u32 const inst) exception(E_SFU1_P); break; case 0x3e0: // cmp: integer compare (register) + case 0x3e8: m_r[D] = cmp(m_r[S1], m_r[S2]); break; |