From df98a0b04ec854081463505b7f0f0b8146454fe1 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Sun, 10 Jan 2021 01:38:04 +1000 Subject: [PATCH] CPU/Recompiler: Fix incorrect speculative byte/halfword reads Fixes crash on boot in Monkey Magic. --- src/core/cpu_recompiler_code_generator.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/cpu_recompiler_code_generator.cpp b/src/core/cpu_recompiler_code_generator.cpp index 68492b030..ddeadbe0b 100644 --- a/src/core/cpu_recompiler_code_generator.cpp +++ b/src/core/cpu_recompiler_code_generator.cpp @@ -1324,9 +1324,9 @@ bool CodeGenerator::Compile_Load(const CodeBlockInstruction& cbi) if (address_spec) { - value_spec = SpeculativeReadMemory(*address_spec & ~1u); + value_spec = SpeculativeReadMemory(*address_spec & ~3u); if (value_spec) - value_spec = (*value_spec >> ((*address_spec & 1u) * 16u)) & 0xFFFFu; + value_spec = (*value_spec >> ((*address_spec & 3u) * 8u)) & 0xFFFFu; } } break;