From 2454bd5ba67acfa5df99a50528c29146455438ce Mon Sep 17 00:00:00 2001 From: Sintendo Date: Thu, 25 Feb 2021 23:22:17 +0100 Subject: [PATCH] Jit64: Add optional argument to GenerateOverflow This allows setting the overflow flag based on any condition code. Defaults to NO (no overflow). --- Source/Core/Core/PowerPC/Jit64/Jit.h | 2 +- Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/PowerPC/Jit64/Jit.h b/Source/Core/Core/PowerPC/Jit64/Jit.h index c1237463d8..358e7a8ea6 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit.h +++ b/Source/Core/Core/PowerPC/Jit64/Jit.h @@ -96,7 +96,7 @@ public: void GenerateConstantOverflow(bool overflow); void GenerateConstantOverflow(s64 val); - void GenerateOverflow(); + void GenerateOverflow(Gen::CCFlags cond = Gen::CCFlags::CC_NO); void FinalizeCarryOverflow(bool oe, bool inv = false); void FinalizeCarry(Gen::CCFlags cond); void FinalizeCarry(bool ca); diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp index 35df5a06a5..5c6f2cc17d 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp @@ -42,9 +42,9 @@ void Jit64::GenerateConstantOverflow(bool overflow) } // We could do overflow branchlessly, but unlike carry it seems to be quite a bit rarer. -void Jit64::GenerateOverflow() +void Jit64::GenerateOverflow(Gen::CCFlags cond) { - FixupBranch jno = J_CC(CC_NO); + FixupBranch jno = J_CC(cond); // XER[OV/SO] = 1 MOV(8, PPCSTATE(xer_so_ov), Imm8(XER_OV_MASK | XER_SO_MASK)); FixupBranch exit = J();