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 62275b3dd87..be5458bffc8 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 0aac345296b..eb97db9b91e 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{{