microVU: Fix empty register use

This commit is contained in:
TellowKrinkle 2020-08-27 12:27:42 -05:00 committed by refractionpcsx2
parent ecebaca3f0
commit 56f2d307bc
1 changed files with 6 additions and 1 deletions

View File

@ -890,12 +890,17 @@ static void writeBackISW(microVU& mVU, void *base_ptr, xAddressReg reg) {
xLEA(gprT3q, ptr[(void*)((sptr)base_ptr + offset)]);
register_offset = offset;
}
xMOV(ptr32[gprT3q+gprT2q+(offset-register_offset)], gprT1);
xMOV(ptr32[gprT3q+reg+(offset-register_offset)], gprT1);
};
if (_X) writeBackAt(0);
if (_Y) writeBackAt(4);
if (_Z) writeBackAt(8);
if (_W) writeBackAt(12);
} else if (reg.IsEmpty()) {
if (_X) xMOV(ptr32[(void*)((uptr)base_ptr)], gprT1);
if (_Y) xMOV(ptr32[(void*)((uptr)base_ptr+4)], gprT1);
if (_Z) xMOV(ptr32[(void*)((uptr)base_ptr+8)], gprT1);
if (_W) xMOV(ptr32[(void*)((uptr)base_ptr+12)], gprT1);
} else {
if (_X) xMOV(ptr32[base_ptr+reg], gprT1);
if (_Y) xMOV(ptr32[base_ptr+reg+4], gprT1);