JitArm64: Correctly flush non-dirty immediates
Without this change, non-dirty immediates don't actually get flushed. This can be a problem if we for instance are flushing all registers in order to execute an interpreter fallback. If that interpreter fallback writes to a register that contained a non-dirty immediate, the JIT will keep using the old value instead of loading the updated value.
This commit is contained in:
parent
6b2d801ed7
commit
1b7bd32ac1
|
@ -232,10 +232,10 @@ void Arm64GPRCache::FlushRegister(size_t index, bool maintain_state, ARM64Reg tm
|
|||
if (allocated_tmp_reg)
|
||||
UnlockRegister(tmp_reg);
|
||||
}
|
||||
|
||||
if (!maintain_state)
|
||||
reg.Flush();
|
||||
}
|
||||
|
||||
if (!maintain_state)
|
||||
reg.Flush();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue