From c5fc03dac4d7415b4c515c939bd49e322465f770 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sun, 24 Sep 2023 17:33:59 -0400 Subject: [PATCH] OpcodeDispatcher: Use cset for blsr/etc flags Signed-off-by: Alyssa Rosenzweig --- .../Source/Interface/Core/OpcodeDispatcher/Flags.cpp | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp index 74450ceba..946a97e85 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp @@ -1092,9 +1092,7 @@ void OpDispatchBuilder::CalculateFlags_BLSI(uint8_t SrcSize, OrderedNode *Src) { // CF { - auto CFOp = _Select(IR::COND_EQ, - Src, Zero, - Zero, One); + auto CFOp = _Select(IR::COND_NEQ, Src, Zero, One, Zero); SetRFLAG(CFOp); } } @@ -1115,9 +1113,7 @@ void OpDispatchBuilder::CalculateFlags_BLSMSK(OrderedNode *Src) { _InvalidateFlags((1UL << X86State::RFLAG_PF_LOC) | (1UL << X86State::RFLAG_AF_LOC)); - auto CFOp = _Select(IR::COND_EQ, - Src, Zero, - Zero, One); + auto CFOp = _Select(IR::COND_NEQ, Src, Zero, One, Zero); SetRFLAG(CFOp); } @@ -1134,9 +1130,7 @@ void OpDispatchBuilder::CalculateFlags_BLSR(uint8_t SrcSize, OrderedNode *Result // CF { - auto CFOp = _Select(IR::COND_EQ, - Src, Zero, - Zero, One); + auto CFOp = _Select(IR::COND_NEQ, Src, Zero, One, Zero); SetRFLAG(CFOp); } }