arm64jit: Allow reg ptr offsets when unaligned.

Since now they support being dirty.
This commit is contained in:
Unknown W. Brackets 2017-12-28 10:45:50 -08:00
parent c4c28282cf
commit 2e1d85a55b

View File

@ -86,8 +86,8 @@ void Arm64Jit::Comp_IType(MIPSOpcode op) {
case 8: // same as addiu?
case 9: // R(rt) = R(rs) + simm; break; //addiu
// Special-case for small adjustments of pointerified registers. Commonly for SP but happens for others.
if (rs == rt && jo.enablePointerify && gpr.IsMappedAsPointer(rs) && IsImmArithmetic(simm < 0 ? -simm : simm, nullptr, nullptr)) {
ARM64Reg r32 = gpr.R(rs);
if (rs == rt && gpr.IsMappedAsPointer(rs) && IsImmArithmetic(simm < 0 ? -simm : simm, nullptr, nullptr)) {
ARM64Reg r32 = gpr.RPtr(rs);
gpr.MarkDirty(r32);
ARM64Reg r = EncodeRegTo64(r32);
if (simm > 0) {