Fix regression in CRecompilerOps::SPECIAL_DADDU()
It should only add carry if GetMipsRegLo(source2) != 0
This commit is contained in:
parent
20163e76c1
commit
392d63a0de
|
@ -4875,9 +4875,17 @@ void CRecompilerOps::SPECIAL_DADDU()
|
||||||
Map_GPR_64bit(m_Opcode.rd, source1);
|
Map_GPR_64bit(m_Opcode.rd, source1);
|
||||||
if (IsConst(source2))
|
if (IsConst(source2))
|
||||||
{
|
{
|
||||||
AddConstToX86Reg(GetMipsRegMapLo(m_Opcode.rd), GetMipsRegLo(source2));
|
DWORD LoReg = GetMipsRegLo(source2);
|
||||||
|
AddConstToX86Reg(GetMipsRegMapLo(m_Opcode.rd), LoReg);
|
||||||
|
if(LoReg != 0)
|
||||||
|
{
|
||||||
AdcConstToX86Reg(GetMipsRegMapHi(m_Opcode.rd), GetMipsRegHi(source2));
|
AdcConstToX86Reg(GetMipsRegMapHi(m_Opcode.rd), GetMipsRegHi(source2));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AddConstToX86Reg(GetMipsRegMapHi(m_Opcode.rd), GetMipsRegHi(source2));
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (IsMapped(source2))
|
else if (IsMapped(source2))
|
||||||
{
|
{
|
||||||
x86Reg HiReg = Is64Bit(source2) ? GetMipsRegMapHi(source2) : Map_TempReg(x86_Any, source2, true);
|
x86Reg HiReg = Is64Bit(source2) ? GetMipsRegMapHi(source2) : Map_TempReg(x86_Any, source2, true);
|
||||||
|
|
Loading…
Reference in New Issue