From 9b94266c4ac6a282055a38b8cdc47ac37250a3ac Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sun, 30 Aug 2015 12:56:36 -0700 Subject: [PATCH] arm64: Avoid overflow in imm math. --- Core/MIPS/ARM64/Arm64RegCache.cpp | 5 +++++ 1 file changed, 5 insertions(+) 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;