From bbac7a60a0591d9196f0da2100456f9db62d72b7 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Fri, 17 May 2024 20:52:21 +1000 Subject: [PATCH] CPU/PGXP: Don't set high bits of flags --- src/core/cpu_pgxp.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/core/cpu_pgxp.cpp b/src/core/cpu_pgxp.cpp index 74820f5bf..5423ba07a 100644 --- a/src/core/cpu_pgxp.cpp +++ b/src/core/cpu_pgxp.cpp @@ -43,14 +43,12 @@ enum : u32 enum : u32 { - ALL = 0xFFFFFFFFu, VALID_X = (1u << 0), VALID_Y = (1u << 1), VALID_Z = (1u << 2), VALID_XY = (VALID_X | VALID_Y), VALID_XYZ = (VALID_X | VALID_Y | VALID_Z), VALID_ALL = (VALID_X | VALID_Y | VALID_Z), - INV_VALID_ALL = (ALL ^ VALID_ALL), }; union psx_value @@ -224,12 +222,12 @@ ALWAYS_INLINE_RELEASE void CPU::PGXP::MakeValid(PGXP_value* pV, u32 psxV) ALWAYS_INLINE_RELEASE void CPU::PGXP::Validate(PGXP_value* pV, u32 psxV) { - pV->flags &= (pV->value == psxV) ? ALL : INV_VALID_ALL; + pV->flags = (pV->value == psxV) ? pV->flags : 0; } ALWAYS_INLINE_RELEASE void CPU::PGXP::MaskValidate(PGXP_value* pV, u32 psxV, u32 mask, u32 validMask) { - pV->flags &= ((pV->value & mask) == (psxV & mask)) ? ALL : (ALL ^ (validMask)); + pV->flags = ((pV->value & mask) == (psxV & mask)) ? pV->flags : (pV->flags & ~validMask); } ALWAYS_INLINE_RELEASE double CPU::PGXP::f16Sign(double in)