diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp index 946a97e85..be09c397d 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp @@ -141,7 +141,6 @@ OrderedNode *OpDispatchBuilder::GetPackedRFLAG(uint32_t FlagsMask) { CalculateDeferredFlags(); OrderedNode *Original = _Constant(0); - bool Nonzero = false; // SF/ZF and N/Z are together on both arm64 and x86_64, so we special case that. bool GetNZ = (FlagsMask & (1 << FEXCore::X86State::RFLAG_SF_LOC)) && @@ -151,7 +150,6 @@ OrderedNode *OpDispatchBuilder::GetPackedRFLAG(uint32_t FlagsMask) { if (FlagsMask & (1 << FEXCore::X86State::RFLAG_CF_LOC)) { static_assert(FEXCore::X86State::RFLAG_CF_LOC == 0); Original = GetRFLAG(FEXCore::X86State::RFLAG_CF_LOC); - Nonzero = true; } for (size_t i = 0; i < FlagOffsets.size(); ++i) { @@ -177,12 +175,7 @@ OrderedNode *OpDispatchBuilder::GetPackedRFLAG(uint32_t FlagsMask) { else Flag = GetRFLAG(FlagOffset); - if (Nonzero) - Original = _Orlshl(OpSize::i64Bit, Original, Flag, FlagOffset); - else - Original = _Lshl(OpSize::i64Bit, Flag, _Constant(FlagOffset)); - - Nonzero = true; + Original = _Orlshl(OpSize::i64Bit, Original, Flag, FlagOffset); } // OR in the SF/ZF flags at the end, allowing the lshr to fold with the OR