adsp2100: fix regression with ABS opcode S flag [mjrgh]

This commit is contained in:
hap 2023-03-13 18:07:50 +01:00
parent 94ebbd67dd
commit cf6a0973d1

View File

@ -834,6 +834,7 @@ void adsp21xx_device::alu_op_ar(int op)
xop = ALU_GETXREG_UNSIGNED(xop);
res = (xop & 0x8000) ? -xop : xop;
CLR_FLAGS;
CLR_S;
if (xop == 0) SET_Z;
if (xop == 0x8000) SET_N, SET_V;
if (xop & 0x8000) SET_S;
@ -960,6 +961,7 @@ void adsp21xx_device::alu_op_ar_const(int op)
xop = ALU_GETXREG_UNSIGNED(xop);
res = (xop & 0x8000) ? -xop : xop;
CLR_FLAGS;
CLR_S;
if (xop == 0) SET_Z;
if (xop == 0x8000) SET_N, SET_V;
if (xop & 0x8000) SET_S;
@ -1098,6 +1100,7 @@ void adsp21xx_device::alu_op_af(int op)
xop = ALU_GETXREG_UNSIGNED(xop);
res = (xop & 0x8000) ? -xop : xop;
CLR_FLAGS;
CLR_S;
if (xop == 0) SET_Z;
if (xop == 0x8000) SET_N, SET_V;
if (xop & 0x8000) SET_S;
@ -1221,6 +1224,7 @@ void adsp21xx_device::alu_op_af_const(int op)
xop = ALU_GETXREG_UNSIGNED(xop);
res = (xop & 0x8000) ? -xop : xop;
CLR_FLAGS;
CLR_S;
if (xop == 0) SET_Z;
if (xop == 0x8000) SET_N, SET_V;
if (xop & 0x8000) SET_S;
@ -1356,6 +1360,7 @@ void adsp21xx_device::alu_op_none(int op)
xop = ALU_GETXREG_UNSIGNED(xop);
res = (xop & 0x8000) ? -xop : xop;
CLR_FLAGS;
CLR_S;
if (xop == 0) SET_Z;
if (xop == 0x8000) SET_N, SET_V;
if (xop & 0x8000) SET_S;