OpcodeDispatcher: use real branch for INT

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
This commit is contained in:
Alyssa Rosenzweig 2024-02-28 10:25:10 -04:00
parent 4f4e38ace2
commit 811487ad98

View File

@ -5288,11 +5288,11 @@ void OpDispatchBuilder::INTOp(OpcodeArgs) {
}
if (Op->OP == 0xCE) { // Conditional to only break if Overflow == 1
auto Flag = GetRFLAG(FEXCore::X86State::RFLAG_OF_RAW_LOC);
CalculateDeferredFlags();
// If condition doesn't hold then keep going
auto CondJump_ = CondJump(Flag, {COND_EQ});
// COND_FNU means OF == 0
auto CondJump_ = CondJumpNZCV({COND_FNU});
auto FalseBlock = CreateNewCodeBlockAfter(GetCurrentBlock());
SetFalseJumpTarget(CondJump_, FalseBlock);
SetCurrentCodeBlock(FalseBlock);