From 91793d52cd2c4de319972771bc193f6c58f5af7e Mon Sep 17 00:00:00 2001 From: lizzie Date: Sat, 14 Feb 2026 20:18:17 +0000 Subject: [PATCH] fix --- .../dynarmic/frontend/A64/translate/a64_translate.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/dynarmic/src/dynarmic/frontend/A64/translate/a64_translate.cpp b/src/dynarmic/src/dynarmic/frontend/A64/translate/a64_translate.cpp index 3583ebd549..6778d13890 100644 --- a/src/dynarmic/src/dynarmic/frontend/A64/translate/a64_translate.cpp +++ b/src/dynarmic/src/dynarmic/frontend/A64/translate/a64_translate.cpp @@ -23,9 +23,12 @@ void Translate(IR::Block& block, LocationDescriptor descriptor, MemoryReadCodeFu bool should_continue = true; do { const u64 pc = visitor.ir.current_location->PC(); - auto decoder = Decode(*instruction); - should_continue = decoder.get().call(visitor, *instruction); - + if (const auto instruction = memory_read_code(pc)) { + auto decoder = Decode(*instruction); + should_continue = decoder.get().call(visitor, *instruction); + } else { + should_continue = visitor.RaiseException(Exception::NoExecuteFault); + } visitor.ir.current_location = visitor.ir.current_location->AdvancePC(4); block.CycleCount()++; } while (should_continue && !single_step);