diff --git a/Core/MIPS/ARM64/Arm64RegCache.cpp b/Core/MIPS/ARM64/Arm64RegCache.cpp index f20cdf8918..c0be3515ad 100644 --- a/Core/MIPS/ARM64/Arm64RegCache.cpp +++ b/Core/MIPS/ARM64/Arm64RegCache.cpp @@ -682,6 +682,11 @@ void Arm64RegCache::SetImm(MIPSGPReg r, u64 immVal) { return; } + if (r != MIPS_REG_LO) { + // All regs on the PSP are 32 bit, but LO we treat as HI:LO so is 64 full bits. + immVal = immVal & 0xFFFFFFFF; + } + if (mr[r].isStatic) { mr[r].loc = ML_IMM; mr[r].imm = immVal;