From bea6a86893b8555d5fd1decc282096356eba0bfb Mon Sep 17 00:00:00 2001 From: MerryMage Date: Sat, 26 Dec 2020 23:57:07 +0000 Subject: [PATCH] Jit_Integer: Add trivial AndWithMask cases Add cases to handle all one and all zero masks. --- Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp index 74362c12c1..b0a9cf4cf1 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp @@ -194,7 +194,12 @@ void Jit64::ComputeRC(preg_t preg, bool needs_test, bool needs_sext) // flags. void Jit64::AndWithMask(X64Reg reg, u32 mask) { - if (mask == 0xff) + if (mask == 0xffffffff) + return; + + if (mask == 0) + XOR(32, R(reg), R(reg)); + else if (mask == 0xff) MOVZX(32, 8, reg, R(reg)); else if (mask == 0xffff) MOVZX(32, 16, reg, R(reg));