From ad5c3cb2684bff19a696a958aa3d7194c8ab47b8 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 24 Jan 2024 22:12:23 -0400 Subject: [PATCH] OpcodeDispatcher: rmif mask for OF in rcr smaller Signed-off-by: Alyssa Rosenzweig --- FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp index 3b759bf16..14b414c8e 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp @@ -2612,8 +2612,8 @@ void OpDispatchBuilder::RCRSmallerOp(OpcodeArgs) { // OF is the top two MSBs XOR'd together // Only when Shift == 1, it is undefined otherwise if (!IsSrcConst || SrcConst == 1) { - auto NewOF = _Xor(IR::SizeToOpSize(std::max(4u, GetOpSize(Res))), _Bfe(OpSize::i64Bit, 1, Size - 1, Res), _Bfe(OpSize::i64Bit, 1, Size - 2, Res)); - SetRFLAG(NewOF); + auto NewOF = _XorShift(IR::SizeToOpSize(std::max(4u, GetOpSize(Res))), Res, Res, ShiftType::LSR, 1); + SetRFLAG(NewOF, Size - 2, true); } }); }