summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/mips
diff options
context:
space:
mode:
author Patrick Mackinlay <pmackinlay@hotmail.com>2023-06-07 09:02:34 +0700
committer Patrick Mackinlay <pmackinlay@hotmail.com>2023-06-07 09:02:34 +0700
commitf3f10eef0f754f13b93787faa405f2180dff897a (patch)
treea5aa20899bf9f912119a96d3b7d28076fe9ea444 /src/devices/cpu/mips
parenteed6108b151582384b522d6c7dacf772e80559d3 (diff)
mips3: fix tlb modify exception registers
Diffstat (limited to 'src/devices/cpu/mips')
-rw-r--r--src/devices/cpu/mips/mips3com.cpp2
-rw-r--r--src/devices/cpu/mips/mips3drc.cpp4
2 files changed, 3 insertions, 3 deletions
diff --git a/src/devices/cpu/mips/mips3com.cpp b/src/devices/cpu/mips/mips3com.cpp
index cf8e65cd5af..2a9a933ef87 100644
--- a/src/devices/cpu/mips/mips3com.cpp
+++ b/src/devices/cpu/mips/mips3com.cpp
@@ -143,7 +143,7 @@ generate_tlb_index - generate a random tlb index
uint32_t mips3_device::generate_tlb_index()
{
// Actual hardware uses a free running counter to generate the index.
- // This impementation uses a linear congruential generator so that DRC and non-DRC code sequences match.
+ // This implementation uses a linear congruential generator so that DRC and non-DRC code sequences match.
m_tlb_seed = 214013 * m_tlb_seed + 2531011;
return (m_tlb_seed >> 16) & 0x3f;
}
diff --git a/src/devices/cpu/mips/mips3drc.cpp b/src/devices/cpu/mips/mips3drc.cpp
index 1b1683b8d65..b2b4cf22a35 100644
--- a/src/devices/cpu/mips/mips3drc.cpp
+++ b/src/devices/cpu/mips/mips3drc.cpp
@@ -756,7 +756,7 @@ void mips3_device::static_generate_exception(uint8_t exception, int recover, con
UML_MOV(block, CPR032(COP0_BadVAddr), I0); // mov [BadVAddr],i0
}
- if (exception == EXCEPTION_TLBLOAD || exception == EXCEPTION_TLBSTORE)
+ if (exception == EXCEPTION_TLBMOD || exception == EXCEPTION_TLBLOAD || exception == EXCEPTION_TLBSTORE)
{
/* set the upper bits of EntryHi and the lower bits of Context to the fault page */
UML_ROLINS(block, CPR032(COP0_EntryHi), I0, 0, 0xffffe000); // rolins [EntryHi],i0,0,0xffffe000
@@ -2610,7 +2610,7 @@ bool mips3_device::generate_set_cop0_reg(drcuml_block &block, compiler_state &co
{
case COP0_Cause:
UML_ROLINS(block, CPR032(COP0_Cause), I0, 0, ~0xfc00); // rolins [Cause],i0,0,~0xfc00
- compiler.checksoftints = true;
+ compiler.checkints = true;
if (!in_delay_slot)
generate_update_cycles(block, compiler, desc->pc + 4, true);
return true;