From 667c5237552a8bc2a8ad8f55be3034967fa74f56 Mon Sep 17 00:00:00 2001 From: Martino Fontana Date: Tue, 2 Sep 2025 15:15:03 +0200 Subject: [PATCH] Jit: Use `dcbz()` emitter for `dcbz_l` instead of interpreter fallback Without cache emulation, these instructions are functionally identical. In the interpreter, their only difference is related to HID registers checks, which the JIT already doesn't do for `dcbz`. A loop with `dcbz_l` is used in the SDK function `LCEnable`, which is called frequently in some games. --- Source/Core/Core/PowerPC/Jit64/Jit64_Tables.cpp | 2 +- Source/Core/Core/PowerPC/JitArm64/JitArm64_Tables.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/PowerPC/Jit64/Jit64_Tables.cpp b/Source/Core/Core/PowerPC/Jit64/Jit64_Tables.cpp index 62275b3dd8..be5458bffc 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit64_Tables.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit64_Tables.cpp @@ -101,7 +101,7 @@ constexpr std::array s_table4{{ {592, &Jit64::ps_mergeXX}, // ps_merge10 {624, &Jit64::ps_mergeXX}, // ps_merge11 - {1014, &Jit64::FallBackToInterpreter}, // dcbz_l + {1014, &Jit64::dcbz}, // dcbz_l }}; constexpr std::array s_table4_2{{ diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Tables.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Tables.cpp index 0aac345296..eb97db9b91 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Tables.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Tables.cpp @@ -101,7 +101,7 @@ constexpr std::array s_table4{{ {592, &JitArm64::ps_mergeXX}, // ps_merge10 {624, &JitArm64::ps_mergeXX}, // ps_merge11 - {1014, &JitArm64::FallBackToInterpreter}, // dcbz_l + {1014, &JitArm64::dcbz}, // dcbz_l }}; constexpr std::array s_table4_2{{