From a16c2f5462f27f6e6007b8e81bd71e8de6b69059 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Sun, 18 Oct 2020 14:43:45 +1000 Subject: [PATCH] CPU/Recompiler: Skip tracking some more interpreter state --- src/core/cpu_recompiler_code_generator.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/cpu_recompiler_code_generator.cpp b/src/core/cpu_recompiler_code_generator.cpp index 55ce19a52..a4999d08b 100644 --- a/src/core/cpu_recompiler_code_generator.cpp +++ b/src/core/cpu_recompiler_code_generator.cpp @@ -845,8 +845,8 @@ void CodeGenerator::BlockPrologue() // we don't know the state of the last block, so assume load delays might be in progress // TODO: Pull load delay into register cache - m_current_instruction_in_branch_delay_slot_dirty = true; - m_branch_was_taken_dirty = true; + m_current_instruction_in_branch_delay_slot_dirty = g_settings.cpu_recompiler_memory_exceptions; + m_branch_was_taken_dirty = g_settings.cpu_recompiler_memory_exceptions; m_current_instruction_was_branch_taken_dirty = false; m_load_delay_dirty = true; @@ -909,7 +909,7 @@ void CodeGenerator::InstructionPrologue(const CodeBlockInstruction& cbi, TickCou return; } - if (cbi.is_branch_delay_slot) + if (cbi.is_branch_delay_slot && g_settings.cpu_recompiler_memory_exceptions) { // m_current_instruction_in_branch_delay_slot = true EmitStoreCPUStructField(offsetof(State, current_instruction_in_branch_delay_slot), Value::FromConstantU8(1));