EE JIT: Backup shift on LDR/L if rs==rt

This commit is contained in:
refractionpcsx2 2021-11-03 17:28:10 +00:00
parent dc051541bd
commit 6a8287ea9f
1 changed files with 10 additions and 0 deletions

View File

@ -538,6 +538,11 @@ void recLDL()
if (GPR_IS_CONST1(_Rs_))
{
u32 srcadr = g_cpuConstRegs[_Rs_].UL[0] + _Imm_;
// If _Rs_ is equal to _Rt_ we need to put the shift in to eax since it won't take the CONST path
if (_Rs_ == _Rt_)
xMOV(calleeSavedReg1d, srcadr);
srcadr &= ~0x07;
t2reg = vtlb_DynGenRead64_Const(64, srcadr, -1);
@ -609,6 +614,11 @@ void recLDR()
if (GPR_IS_CONST1(_Rs_))
{
u32 srcadr = g_cpuConstRegs[_Rs_].UL[0] + _Imm_;
// If _Rs_ is equal to _Rt_ we need to put the shift in to eax since it won't take the CONST path
if(_Rs_ == _Rt_)
xMOV(calleeSavedReg1d, srcadr);
srcadr &= ~0x07;
t2reg = vtlb_DynGenRead64_Const(64, srcadr, -1);