mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-03-12 14:46:49 +01:00
Merge pull request #5268 from MerryMage/gpfifo3
JitArm64: Fix bugs introduced by #5257
This commit is contained in:
commit
6b32c17d1b
@ -141,7 +141,7 @@ void JitArm64::SafeLoadToReg(u32 dest, s32 addr, s32 offsetReg, u32 flags, s32 o
|
|||||||
void JitArm64::SafeStoreFromReg(s32 dest, u32 value, s32 regOffset, u32 flags, s32 offset)
|
void JitArm64::SafeStoreFromReg(s32 dest, u32 value, s32 regOffset, u32 flags, s32 offset)
|
||||||
{
|
{
|
||||||
// We want to make sure to not get LR as a temp register
|
// We want to make sure to not get LR as a temp register
|
||||||
gpr.Lock(W0, W1);
|
gpr.Lock(W0, W1, W30);
|
||||||
|
|
||||||
ARM64Reg RS = gpr.R(value);
|
ARM64Reg RS = gpr.R(value);
|
||||||
|
|
||||||
@ -256,7 +256,7 @@ void JitArm64::SafeStoreFromReg(s32 dest, u32 value, s32 regOffset, u32 flags, s
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
STRB(INDEX_POST, WA, X0, 1);
|
STRB(INDEX_POST, RS, X0, 1);
|
||||||
}
|
}
|
||||||
STR(INDEX_UNSIGNED, X0, X1, 0);
|
STR(INDEX_UNSIGNED, X0, X1, 0);
|
||||||
js.fifoBytesSinceCheck += accessSize >> 3;
|
js.fifoBytesSinceCheck += accessSize >> 3;
|
||||||
@ -282,7 +282,7 @@ void JitArm64::SafeStoreFromReg(s32 dest, u32 value, s32 regOffset, u32 flags, s
|
|||||||
EmitBackpatchRoutine(flags, jo.fastmem, jo.fastmem, RS, XA, regs_in_use, fprs_in_use);
|
EmitBackpatchRoutine(flags, jo.fastmem, jo.fastmem, RS, XA, regs_in_use, fprs_in_use);
|
||||||
}
|
}
|
||||||
|
|
||||||
gpr.Unlock(W0, W1);
|
gpr.Unlock(W0, W1, W30);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JitArm64::lXX(UGeckoInstruction inst)
|
void JitArm64::lXX(UGeckoInstruction inst)
|
||||||
|
@ -241,7 +241,7 @@ void JitArm64::stfXX(UGeckoInstruction inst)
|
|||||||
u32 imm_addr = 0;
|
u32 imm_addr = 0;
|
||||||
bool is_immediate = false;
|
bool is_immediate = false;
|
||||||
|
|
||||||
gpr.Lock(W0, W1);
|
gpr.Lock(W0, W1, W30);
|
||||||
fpr.Lock(Q0);
|
fpr.Lock(Q0);
|
||||||
|
|
||||||
bool single = (flags & BackPatchInfo::FLAG_SIZE_F32) && fpr.IsSingle(inst.FS, true);
|
bool single = (flags & BackPatchInfo::FLAG_SIZE_F32) && fpr.IsSingle(inst.FS, true);
|
||||||
@ -398,6 +398,6 @@ void JitArm64::stfXX(UGeckoInstruction inst)
|
|||||||
{
|
{
|
||||||
EmitBackpatchRoutine(flags, jo.fastmem, jo.fastmem, V0, XA, regs_in_use, fprs_in_use);
|
EmitBackpatchRoutine(flags, jo.fastmem, jo.fastmem, V0, XA, regs_in_use, fprs_in_use);
|
||||||
}
|
}
|
||||||
gpr.Unlock(W0, W1);
|
gpr.Unlock(W0, W1, W30);
|
||||||
fpr.Unlock(Q0);
|
fpr.Unlock(Q0);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user