diff options
Diffstat (limited to 'src/devices/cpu/i960/i960.cpp')
-rw-r--r-- | src/devices/cpu/i960/i960.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/devices/cpu/i960/i960.cpp b/src/devices/cpu/i960/i960.cpp index 28ab1163d97..fe6d4dc9534 100644 --- a/src/devices/cpu/i960/i960.cpp +++ b/src/devices/cpu/i960/i960.cpp @@ -1530,6 +1530,12 @@ void i960_cpu_device::execute_op(uint32_t opcode) set_rif(opcode, t2f*log(t1f+1.0)/log(2.0)); break; + case 0x2: // logr + m_icount -= 400; // checkme + t1f = get_1_rif(opcode); + set_rif(opcode, log(t1f)); + break; + case 0x3: // remr m_icount -= 67; // (67 to 75878 depending on opcodes!!!) t1f = get_1_rif(opcode); @@ -1550,6 +1556,12 @@ void i960_cpu_device::execute_op(uint32_t opcode) set_rif(opcode, sqrt(t1f)); break; + case 0x9: // expr + m_icount -= 334; // checkme + t1f = get_1_rif(opcode); + set_rif(opcode, pow(2.0, t1f) - 1.0); + break; + case 0xa: // logbnr m_icount -= 37; t1f = get_1_rif(opcode); |