DSP: fix for interpreter, jit ADDP
should probably use carry, not carry2
This commit is contained in:
parent
5cbe75b389
commit
9299026572
|
@ -464,7 +464,7 @@ void addp(const UDSPInstruction opc)
|
||||||
|
|
||||||
dsp_set_long_acc(dreg, res);
|
dsp_set_long_acc(dreg, res);
|
||||||
res = dsp_get_long_acc(dreg);
|
res = dsp_get_long_acc(dreg);
|
||||||
Update_SR_Register64(res, isCarry2(acc, res), isOverflow(acc, prod, res));
|
Update_SR_Register64(res, isCarry(acc, res), isOverflow(acc, prod, res));
|
||||||
}
|
}
|
||||||
|
|
||||||
// ADDAXL $acD, $axS.l
|
// ADDAXL $acD, $axS.l
|
||||||
|
|
|
@ -750,12 +750,12 @@ void DSPEmitter::addp(const UDSPInstruction opc)
|
||||||
ADD(64, R(RAX), R(RDX));
|
ADD(64, R(RAX), R(RDX));
|
||||||
// dsp_set_long_acc(dreg, res);
|
// dsp_set_long_acc(dreg, res);
|
||||||
// res = dsp_get_long_acc(dreg);
|
// res = dsp_get_long_acc(dreg);
|
||||||
// Update_SR_Register64(res, isCarry2(acc, res), isOverflow(acc, prod, res));
|
// Update_SR_Register64(res, isCarry(acc, res), isOverflow(acc, prod, res));
|
||||||
if (FlagsNeeded())
|
if (FlagsNeeded())
|
||||||
{
|
{
|
||||||
MOV(64, R(RCX), R(RAX));
|
MOV(64, R(RCX), R(RAX));
|
||||||
set_long_acc(dreg, RCX);
|
set_long_acc(dreg, RCX);
|
||||||
Update_SR_Register64_Carry2(EAX, tmp1);
|
Update_SR_Register64_Carry(EAX, tmp1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue