mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 06:09:50 -06:00
JitArm64: Pass 32-bit temp GPR to WriteConditionalExceptionExit
If a 64-bit register is passed to WriteConditionalExceptionExit, the LDR instruction in it will read too much data. This seems to be harmless right now, but causes problem in one of my PRs.
This commit is contained in:
@ -109,7 +109,7 @@ void JitArm64::psq_lXX(UGeckoInstruction inst)
|
||||
LDR(EncodeRegTo64(type_reg), ARM64Reg::X30, ArithOption(EncodeRegTo64(type_reg), true));
|
||||
BLR(EncodeRegTo64(type_reg));
|
||||
|
||||
WriteConditionalExceptionExit(EXCEPTION_DSI, ARM64Reg::X30, ARM64Reg::Q1);
|
||||
WriteConditionalExceptionExit(EXCEPTION_DSI, ARM64Reg::W30, ARM64Reg::Q1);
|
||||
|
||||
m_float_emit.ORR(EncodeRegToDouble(VS), ARM64Reg::D0, ARM64Reg::D0);
|
||||
}
|
||||
@ -261,7 +261,7 @@ void JitArm64::psq_stXX(UGeckoInstruction inst)
|
||||
LDR(EncodeRegTo64(type_reg), ARM64Reg::X30, ArithOption(EncodeRegTo64(type_reg), true));
|
||||
BLR(EncodeRegTo64(type_reg));
|
||||
|
||||
WriteConditionalExceptionExit(EXCEPTION_DSI, ARM64Reg::X30, ARM64Reg::Q1);
|
||||
WriteConditionalExceptionExit(EXCEPTION_DSI, ARM64Reg::W30, ARM64Reg::Q1);
|
||||
}
|
||||
|
||||
if (update && !early_update)
|
||||
|
Reference in New Issue
Block a user