diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp index 887c8d51e..efb1e1e3d 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp @@ -1050,18 +1050,14 @@ void OpDispatchBuilder::CalculateFlags_BLSMSK(uint8_t SrcSize, OrderedNode *Resu void OpDispatchBuilder::CalculateFlags_BLSR(uint8_t SrcSize, OrderedNode *Result, OrderedNode *Src) { auto Zero = _Constant(0); auto One = _Constant(1); + auto CFOp = _Select(IR::COND_EQ, Src, Zero, One, Zero); SetNZ_ZeroCV(SrcSize, Result); + SetRFLAG(CFOp); // PF/AF undefined _InvalidateFlags((1UL << X86State::RFLAG_PF_RAW_LOC) | (1UL << X86State::RFLAG_AF_RAW_LOC)); - - // CF - { - auto CFOp = _Select(IR::COND_EQ, Src, Zero, One, Zero); - SetRFLAG(CFOp); - } } void OpDispatchBuilder::CalculateFlags_POPCOUNT(OrderedNode *Src) {