From e25849b2cbc2c32e4fd99aed1b4e8be20bd64c7d Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sun, 12 Nov 2023 16:38:37 -0400 Subject: [PATCH] OpcodeDispatcher: fix BZHI flag calculation needs SF. Signed-off-by: Alyssa Rosenzweig --- .../Interface/Core/OpcodeDispatcher/Flags.cpp | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp index 26703d39a..666c67f60 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher/Flags.cpp @@ -1174,26 +1174,15 @@ void OpDispatchBuilder::CalculateFlags_POPCOUNT(OrderedNode *Src) { } void OpDispatchBuilder::CalculateFlags_BZHI(uint8_t SrcSize, OrderedNode *Result, OrderedNode *Src) { - // Now for the flags - auto Bounds = _Constant(SrcSize * 8- 1); auto Zero = _Constant(0); auto One = _Constant(1); - // OF cleared - SetRFLAG(Zero); - // PF/AF undefined _InvalidateFlags((1UL << X86State::RFLAG_PF_RAW_LOC) | (1UL << X86State::RFLAG_AF_RAW_LOC)); - // ZF - { - auto ZFOp = _Select(IR::COND_EQ, - Result, Zero, - One, Zero); - SetRFLAG(ZFOp); - } + SetNZ_ZeroCV(SrcSize, Result); // CF {