// SPDX-FileCopyrightText: 2002-2025 PCSX2 Dev Team // SPDX-License-Identifier: GPL-3.0+ #include "Common.h" #include #include #include "VUmicro.h" /*****************************************/ /* NEW FLAGS */ //By asadr. Thnkx F|RES :p /*****************************************/ static __ri u32 VU_MAC_UPDATE( int shift, VURegs * VU, float f ) { u32 v = *(u32*)&f; int exp = (v >> 23) & 0xff; u32 s = v & 0x80000000; if (s) VU->macflag |= 0x0010<macflag &= ~(0x0010<macflag = (VU->macflag & ~(0x1100<macflag = (VU->macflag&~(0x1000<macflag = (VU->macflag&~(0x0101<macflag = (VU->macflag & ~(0x1101<macflag&= ~(0x1111<<3); } __fi void VU_MACy_CLEAR(VURegs * VU) { VU->macflag&= ~(0x1111<<2); } __fi void VU_MACz_CLEAR(VURegs * VU) { VU->macflag&= ~(0x1111<<1); } __fi void VU_MACw_CLEAR(VURegs * VU) { VU->macflag&= ~(0x1111<<0); } __ri void VU_STAT_UPDATE(VURegs * VU) { int newflag = 0 ; if (VU->macflag & 0x000F) newflag = 0x1; if (VU->macflag & 0x00F0) newflag |= 0x2; if (VU->macflag & 0x0F00) newflag |= 0x4; if (VU->macflag & 0xF000) newflag |= 0x8; // Save old sticky flags and D/I settings, everthing else is the new flags only VU->statusflag = newflag; }