Fix JIT bug in ARM64. Fixes #10183

This commit is contained in:
Henrik Rydgård 2017-11-24 13:55:38 +01:00
parent 0646dc749b
commit 2cceba41bc
2 changed files with 6 additions and 1 deletions

View file

@ -376,6 +376,8 @@ namespace MIPSComp {
addrReg = SCRATCH1;
}
} else {
// This actually gets hit in micro machines! rs = ZR rt = ZR. Probably a bug.
// Leaving this a debug assert for future investigation.
_dbg_assert_msg_(JIT, !gpr.IsImm(rs), "Invalid immediate address? CPU bug?");
load ? gpr.MapDirtyIn(rt, rs) : gpr.MapInIn(rt, rs);

View file

@ -170,7 +170,7 @@ namespace MIPSComp {
}
void Arm64Jit::ApplyPrefixD(const u8 *vregs, VectorSize sz) {
_assert_(js.prefixDFlag & JitState::PREFIX_KNOWN);
_assert_msg_(JIT, js.prefixDFlag & JitState::PREFIX_KNOWN, "Unexpected unknown prefix!");
if (!js.prefixD)
return;
@ -1766,6 +1766,9 @@ namespace MIPSComp {
void Arm64Jit::Comp_Viim(MIPSOpcode op) {
CONDITIONAL_DISABLE;
if (js.HasUnknownPrefix()) {
DISABLE;
}
u8 dreg;
GetVectorRegs(&dreg, V_Single, _VT);