mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 05:55:42 +00:00
[FAST486]: Replace (boolean_condition) ? TRUE : FALSE; by: (boolean_condition) .
svn path=/branches/ntvdm/; revision=60856
This commit is contained in:
parent
3fbe4cb107
commit
3b6b1a7f37
3 changed files with 192 additions and 195 deletions
|
@ -743,8 +743,8 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeCmpXchgByte)
|
||||||
State->Flags.Of = ((Accumulator & SIGN_FLAG_BYTE) != (Destination & SIGN_FLAG_BYTE))
|
State->Flags.Of = ((Accumulator & SIGN_FLAG_BYTE) != (Destination & SIGN_FLAG_BYTE))
|
||||||
&& ((Accumulator & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
&& ((Accumulator & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
||||||
State->Flags.Af = (Accumulator & 0x0F) < (Destination & 0x0F);
|
State->Flags.Af = (Accumulator & 0x0F) < (Destination & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
if (State->Flags.Zf)
|
if (State->Flags.Zf)
|
||||||
|
@ -799,8 +799,8 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeCmpXchg)
|
||||||
State->Flags.Of = ((Accumulator & SIGN_FLAG_LONG) != (Destination & SIGN_FLAG_LONG))
|
State->Flags.Of = ((Accumulator & SIGN_FLAG_LONG) != (Destination & SIGN_FLAG_LONG))
|
||||||
&& ((Accumulator & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
&& ((Accumulator & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
||||||
State->Flags.Af = (Accumulator & 0x0F) < (Destination & 0x0F);
|
State->Flags.Af = (Accumulator & 0x0F) < (Destination & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
if (State->Flags.Zf)
|
if (State->Flags.Zf)
|
||||||
|
@ -834,8 +834,8 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeCmpXchg)
|
||||||
State->Flags.Of = ((Accumulator & SIGN_FLAG_WORD) != (Destination & SIGN_FLAG_WORD))
|
State->Flags.Of = ((Accumulator & SIGN_FLAG_WORD) != (Destination & SIGN_FLAG_WORD))
|
||||||
&& ((Accumulator & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
&& ((Accumulator & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
||||||
State->Flags.Af = (Accumulator & 0x0F) < (Destination & 0x0F);
|
State->Flags.Af = (Accumulator & 0x0F) < (Destination & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
if (State->Flags.Zf)
|
if (State->Flags.Zf)
|
||||||
|
@ -1267,9 +1267,9 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeXaddByte)
|
||||||
State->Flags.Cf = (Result < Source) && (Result < Destination);
|
State->Flags.Cf = (Result < Source) && (Result < Destination);
|
||||||
State->Flags.Of = ((Source & SIGN_FLAG_BYTE) == (Destination & SIGN_FLAG_BYTE))
|
State->Flags.Of = ((Source & SIGN_FLAG_BYTE) == (Destination & SIGN_FLAG_BYTE))
|
||||||
&& ((Source & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
&& ((Source & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
||||||
State->Flags.Af = (((Source & 0x0F) + (Destination & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((Source & 0x0F) + (Destination & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write the sum to the destination */
|
/* Write the sum to the destination */
|
||||||
|
@ -1330,9 +1330,9 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeXadd)
|
||||||
State->Flags.Cf = (Result < Source) && (Result < Destination);
|
State->Flags.Cf = (Result < Source) && (Result < Destination);
|
||||||
State->Flags.Of = ((Source & SIGN_FLAG_LONG) == (Destination & SIGN_FLAG_LONG))
|
State->Flags.Of = ((Source & SIGN_FLAG_LONG) == (Destination & SIGN_FLAG_LONG))
|
||||||
&& ((Source & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
&& ((Source & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
||||||
State->Flags.Af = (((Source & 0x0F) + (Destination & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((Source & 0x0F) + (Destination & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write the sum to the destination */
|
/* Write the sum to the destination */
|
||||||
|
@ -1369,9 +1369,9 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeXadd)
|
||||||
State->Flags.Cf = (Result < Source) && (Result < Destination);
|
State->Flags.Cf = (Result < Source) && (Result < Destination);
|
||||||
State->Flags.Of = ((Source & SIGN_FLAG_WORD) == (Destination & SIGN_FLAG_WORD))
|
State->Flags.Of = ((Source & SIGN_FLAG_WORD) == (Destination & SIGN_FLAG_WORD))
|
||||||
&& ((Source & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
&& ((Source & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
||||||
State->Flags.Af = (((Source & 0x0F) + (Destination & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((Source & 0x0F) + (Destination & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write the sum to the destination */
|
/* Write the sum to the destination */
|
||||||
|
|
|
@ -473,19 +473,19 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIncrement)
|
||||||
{
|
{
|
||||||
Value = ++State->GeneralRegs[Opcode & 0x07].Long;
|
Value = ++State->GeneralRegs[Opcode & 0x07].Long;
|
||||||
|
|
||||||
State->Flags.Of = (Value == SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Of = (Value == SIGN_FLAG_LONG);
|
||||||
State->Flags.Sf = (Value & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Value & SIGN_FLAG_LONG) != 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Value = ++State->GeneralRegs[Opcode & 0x07].LowWord;
|
Value = ++State->GeneralRegs[Opcode & 0x07].LowWord;
|
||||||
|
|
||||||
State->Flags.Of = (Value == SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Of = (Value == SIGN_FLAG_WORD);
|
||||||
State->Flags.Sf = (Value & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Value & SIGN_FLAG_WORD) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
State->Flags.Zf = (Value == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Value == 0);
|
||||||
State->Flags.Af = ((Value & 0x0F) == 0) ? TRUE : FALSE;
|
State->Flags.Af = ((Value & 0x0F) == 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(LOBYTE(Value));
|
State->Flags.Pf = Fast486CalculateParity(LOBYTE(Value));
|
||||||
|
|
||||||
/* Return success */
|
/* Return success */
|
||||||
|
@ -507,19 +507,19 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeDecrement)
|
||||||
{
|
{
|
||||||
Value = --State->GeneralRegs[Opcode & 0x07].Long;
|
Value = --State->GeneralRegs[Opcode & 0x07].Long;
|
||||||
|
|
||||||
State->Flags.Of = (Value == (SIGN_FLAG_LONG - 1)) ? TRUE : FALSE;
|
State->Flags.Of = (Value == (SIGN_FLAG_LONG - 1));
|
||||||
State->Flags.Sf = (Value & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Value & SIGN_FLAG_LONG) != 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Value = --State->GeneralRegs[Opcode & 0x07].LowWord;
|
Value = --State->GeneralRegs[Opcode & 0x07].LowWord;
|
||||||
|
|
||||||
State->Flags.Of = (Value == (SIGN_FLAG_WORD - 1)) ? TRUE : FALSE;
|
State->Flags.Of = (Value == (SIGN_FLAG_WORD - 1));
|
||||||
State->Flags.Sf = (Value & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Value & SIGN_FLAG_WORD) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
State->Flags.Zf = (Value == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Value == 0);
|
||||||
State->Flags.Af = ((Value & 0x0F) == 0x0F) ? TRUE : FALSE;
|
State->Flags.Af = ((Value & 0x0F) == 0x0F);
|
||||||
State->Flags.Pf = Fast486CalculateParity(LOBYTE(Value));
|
State->Flags.Pf = Fast486CalculateParity(LOBYTE(Value));
|
||||||
|
|
||||||
/* Return success */
|
/* Return success */
|
||||||
|
@ -1186,9 +1186,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddByteModrm)
|
||||||
State->Flags.Cf = (Result < FirstValue) && (Result < SecondValue);
|
State->Flags.Cf = (Result < FirstValue) && (Result < SecondValue);
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) == (SecondValue & SIGN_FLAG_BYTE))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) == (SecondValue & SIGN_FLAG_BYTE))
|
||||||
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
||||||
State->Flags.Af = (((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1239,9 +1239,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddModrm)
|
||||||
State->Flags.Cf = (Result < FirstValue) && (Result < SecondValue);
|
State->Flags.Cf = (Result < FirstValue) && (Result < SecondValue);
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) == (SecondValue & SIGN_FLAG_LONG))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) == (SecondValue & SIGN_FLAG_LONG))
|
||||||
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
||||||
State->Flags.Af = (((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1270,9 +1270,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddModrm)
|
||||||
State->Flags.Cf = (Result < FirstValue) && (Result < SecondValue);
|
State->Flags.Cf = (Result < FirstValue) && (Result < SecondValue);
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) == (SecondValue & SIGN_FLAG_WORD))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) == (SecondValue & SIGN_FLAG_WORD))
|
||||||
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
||||||
State->Flags.Af = (((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1311,9 +1311,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddAl)
|
||||||
State->Flags.Cf = (Result < FirstValue) && (Result < SecondValue);
|
State->Flags.Cf = (Result < FirstValue) && (Result < SecondValue);
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) == (SecondValue & SIGN_FLAG_BYTE))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) == (SecondValue & SIGN_FLAG_BYTE))
|
||||||
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
||||||
State->Flags.Af = (((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1350,9 +1350,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddEax)
|
||||||
State->Flags.Cf = (Result < FirstValue) && (Result < SecondValue);
|
State->Flags.Cf = (Result < FirstValue) && (Result < SecondValue);
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) == (SecondValue & SIGN_FLAG_LONG))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) == (SecondValue & SIGN_FLAG_LONG))
|
||||||
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
||||||
State->Flags.Af = (((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1376,9 +1376,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddEax)
|
||||||
State->Flags.Cf = (Result < FirstValue) && (Result < SecondValue);
|
State->Flags.Cf = (Result < FirstValue) && (Result < SecondValue);
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) == (SecondValue & SIGN_FLAG_WORD))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) == (SecondValue & SIGN_FLAG_WORD))
|
||||||
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
||||||
State->Flags.Af = (((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1421,8 +1421,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrByteModrm)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1472,8 +1472,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrModrm)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1501,8 +1501,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrModrm)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1540,8 +1540,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrAl)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1577,8 +1577,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrEax)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1601,8 +1601,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrEax)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1645,8 +1645,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndByteModrm)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1696,8 +1696,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndModrm)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1725,8 +1725,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndModrm)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1759,8 +1759,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndAl)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1796,8 +1796,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndEax)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1820,8 +1820,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndEax)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1864,8 +1864,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorByteModrm)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1915,8 +1915,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorModrm)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1944,8 +1944,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorModrm)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1983,8 +1983,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorAl)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -2020,8 +2020,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorEax)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -2044,8 +2044,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorEax)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -2087,8 +2087,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestByteModrm)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* The result is discarded */
|
/* The result is discarded */
|
||||||
|
@ -2135,8 +2135,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestModrm)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2158,8 +2158,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestModrm)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2194,8 +2194,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestAl)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* The result is discarded */
|
/* The result is discarded */
|
||||||
|
@ -2229,8 +2229,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestEax)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2250,8 +2250,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestEax)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2465,9 +2465,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcByteModrm)
|
||||||
State->Flags.Cf = State->Flags.Cf || ((Result < FirstValue) && (Result < SecondValue));
|
State->Flags.Cf = State->Flags.Cf || ((Result < FirstValue) && (Result < SecondValue));
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) == (SecondValue & SIGN_FLAG_BYTE))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) == (SecondValue & SIGN_FLAG_BYTE))
|
||||||
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
||||||
State->Flags.Af = (((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -2522,9 +2522,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcModrm)
|
||||||
State->Flags.Cf = State->Flags.Cf || ((Result < FirstValue) && (Result < SecondValue));
|
State->Flags.Cf = State->Flags.Cf || ((Result < FirstValue) && (Result < SecondValue));
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) == (SecondValue & SIGN_FLAG_LONG))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) == (SecondValue & SIGN_FLAG_LONG))
|
||||||
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
||||||
State->Flags.Af = (((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -2557,9 +2557,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcModrm)
|
||||||
State->Flags.Cf = State->Flags.Cf || ((Result < FirstValue) && (Result < SecondValue));
|
State->Flags.Cf = State->Flags.Cf || ((Result < FirstValue) && (Result < SecondValue));
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) == (SecondValue & SIGN_FLAG_WORD))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) == (SecondValue & SIGN_FLAG_WORD))
|
||||||
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
||||||
State->Flags.Af = (((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -2603,9 +2603,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcAl)
|
||||||
State->Flags.Cf = State->Flags.Cf || ((Result < FirstValue) && (Result < SecondValue));
|
State->Flags.Cf = State->Flags.Cf || ((Result < FirstValue) && (Result < SecondValue));
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) == (SecondValue & SIGN_FLAG_BYTE))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) == (SecondValue & SIGN_FLAG_BYTE))
|
||||||
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
||||||
State->Flags.Af = (((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -2646,9 +2646,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcEax)
|
||||||
State->Flags.Cf = State->Flags.Cf || ((Result < FirstValue) && (Result < SecondValue));
|
State->Flags.Cf = State->Flags.Cf || ((Result < FirstValue) && (Result < SecondValue));
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) == (SecondValue & SIGN_FLAG_LONG))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) == (SecondValue & SIGN_FLAG_LONG))
|
||||||
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
||||||
State->Flags.Af = (((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -2676,9 +2676,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcEax)
|
||||||
State->Flags.Cf = State->Flags.Cf || ((Result < FirstValue) && (Result < SecondValue));
|
State->Flags.Cf = State->Flags.Cf || ((Result < FirstValue) && (Result < SecondValue));
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) == (SecondValue & SIGN_FLAG_WORD))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) == (SecondValue & SIGN_FLAG_WORD))
|
||||||
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
||||||
State->Flags.Af = (((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -2751,8 +2751,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbByteModrm)
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) != (SecondValue & SIGN_FLAG_BYTE))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) != (SecondValue & SIGN_FLAG_BYTE))
|
||||||
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
||||||
State->Flags.Af = (FirstValue & 0x0F) < ((SecondValue + 1) & 0x0F);
|
State->Flags.Af = (FirstValue & 0x0F) < ((SecondValue + 1) & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -2812,8 +2812,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbModrm)
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) != (SecondValue & SIGN_FLAG_LONG))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) != (SecondValue & SIGN_FLAG_LONG))
|
||||||
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
||||||
State->Flags.Af = (FirstValue & 0x0F) < ((SecondValue + 1) & 0x0F);
|
State->Flags.Af = (FirstValue & 0x0F) < ((SecondValue + 1) & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -2850,8 +2850,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbModrm)
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) != (SecondValue & SIGN_FLAG_WORD))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) != (SecondValue & SIGN_FLAG_WORD))
|
||||||
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
||||||
State->Flags.Af = (FirstValue & 0x0F) < ((SecondValue + 1) & 0x0F);
|
State->Flags.Af = (FirstValue & 0x0F) < ((SecondValue + 1) & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -2892,8 +2892,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbAl)
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) != (SecondValue & SIGN_FLAG_BYTE))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) != (SecondValue & SIGN_FLAG_BYTE))
|
||||||
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
||||||
State->Flags.Af = (FirstValue & 0x0F) < ((SecondValue + 1) & 0x0F);
|
State->Flags.Af = (FirstValue & 0x0F) < ((SecondValue + 1) & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -2933,8 +2933,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbEax)
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) != (SecondValue & SIGN_FLAG_LONG))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) != (SecondValue & SIGN_FLAG_LONG))
|
||||||
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
||||||
State->Flags.Af = (FirstValue & 0x0F) < ((SecondValue + Carry) & 0x0F);
|
State->Flags.Af = (FirstValue & 0x0F) < ((SecondValue + Carry) & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -2959,8 +2959,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbEax)
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) != (SecondValue & SIGN_FLAG_WORD))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) != (SecondValue & SIGN_FLAG_WORD))
|
||||||
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
||||||
State->Flags.Af = (FirstValue & 0x0F) < ((SecondValue + Carry) & 0x0F);
|
State->Flags.Af = (FirstValue & 0x0F) < ((SecondValue + Carry) & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -3069,8 +3069,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubByteModrm)
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) != (SecondValue & SIGN_FLAG_BYTE))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) != (SecondValue & SIGN_FLAG_BYTE))
|
||||||
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
||||||
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Check if this is not a CMP */
|
/* Check if this is not a CMP */
|
||||||
|
@ -3138,8 +3138,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubModrm)
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) != (SecondValue & SIGN_FLAG_LONG))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) != (SecondValue & SIGN_FLAG_LONG))
|
||||||
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
||||||
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Check if this is not a CMP */
|
/* Check if this is not a CMP */
|
||||||
|
@ -3185,8 +3185,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubModrm)
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) != (SecondValue & SIGN_FLAG_WORD))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) != (SecondValue & SIGN_FLAG_WORD))
|
||||||
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
||||||
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Check if this is not a CMP */
|
/* Check if this is not a CMP */
|
||||||
|
@ -3235,8 +3235,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubAl)
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) != (SecondValue & SIGN_FLAG_BYTE))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_BYTE) != (SecondValue & SIGN_FLAG_BYTE))
|
||||||
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
&& ((FirstValue & SIGN_FLAG_BYTE) != (Result & SIGN_FLAG_BYTE));
|
||||||
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Check if this is not a CMP */
|
/* Check if this is not a CMP */
|
||||||
|
@ -3278,8 +3278,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubEax)
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) != (SecondValue & SIGN_FLAG_LONG))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_LONG) != (SecondValue & SIGN_FLAG_LONG))
|
||||||
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
&& ((FirstValue & SIGN_FLAG_LONG) != (Result & SIGN_FLAG_LONG));
|
||||||
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Check if this is not a CMP */
|
/* Check if this is not a CMP */
|
||||||
|
@ -3308,8 +3308,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubEax)
|
||||||
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) != (SecondValue & SIGN_FLAG_WORD))
|
State->Flags.Of = ((FirstValue & SIGN_FLAG_WORD) != (SecondValue & SIGN_FLAG_WORD))
|
||||||
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
&& ((FirstValue & SIGN_FLAG_WORD) != (Result & SIGN_FLAG_WORD));
|
||||||
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Check if this is not a CMP */
|
/* Check if this is not a CMP */
|
||||||
|
@ -4847,8 +4847,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAam)
|
||||||
State->GeneralRegs[FAST486_REG_EAX].LowByte = Value %= Base;
|
State->GeneralRegs[FAST486_REG_EAX].LowByte = Value %= Base;
|
||||||
|
|
||||||
/* Update flags */
|
/* Update flags */
|
||||||
State->Flags.Zf = (Value == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Value == 0);
|
||||||
State->Flags.Sf = (Value & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Value & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Value);
|
State->Flags.Pf = Fast486CalculateParity(Value);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -4873,8 +4873,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAad)
|
||||||
State->GeneralRegs[FAST486_REG_EAX].LowByte = Value;
|
State->GeneralRegs[FAST486_REG_EAX].LowByte = Value;
|
||||||
|
|
||||||
/* Update flags */
|
/* Update flags */
|
||||||
State->Flags.Zf = (Value == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Value == 0);
|
||||||
State->Flags.Sf = (Value & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Value & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Value);
|
State->Flags.Pf = Fast486CalculateParity(Value);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -5570,8 +5570,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmps)
|
||||||
State->Flags.Of = ((FirstValue & SignFlag) != (SecondValue & SignFlag))
|
State->Flags.Of = ((FirstValue & SignFlag) != (SecondValue & SignFlag))
|
||||||
&& ((FirstValue & SignFlag) != (Result & SignFlag));
|
&& ((FirstValue & SignFlag) != (Result & SignFlag));
|
||||||
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SignFlag) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SignFlag) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Increment/decrement ESI and EDI */
|
/* Increment/decrement ESI and EDI */
|
||||||
|
@ -5894,8 +5894,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeScas)
|
||||||
State->Flags.Of = ((FirstValue & SignFlag) != (SecondValue & SignFlag))
|
State->Flags.Of = ((FirstValue & SignFlag) != (SecondValue & SignFlag))
|
||||||
&& ((FirstValue & SignFlag) != (Result & SignFlag));
|
&& ((FirstValue & SignFlag) != (Result & SignFlag));
|
||||||
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
State->Flags.Af = (FirstValue & 0x0F) < (SecondValue & 0x0F);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SignFlag) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SignFlag) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Increment/decrement EDI */
|
/* Increment/decrement EDI */
|
||||||
|
|
|
@ -61,7 +61,7 @@ Fast486ArithmeticOperation(PFAST486_STATE State,
|
||||||
State->Flags.Cf = (Result < FirstValue) && (Result < SecondValue);
|
State->Flags.Cf = (Result < FirstValue) && (Result < SecondValue);
|
||||||
State->Flags.Of = ((FirstValue & SignFlag) == (SecondValue & SignFlag))
|
State->Flags.Of = ((FirstValue & SignFlag) == (SecondValue & SignFlag))
|
||||||
&& ((FirstValue & SignFlag) != (Result & SignFlag));
|
&& ((FirstValue & SignFlag) != (Result & SignFlag));
|
||||||
State->Flags.Af = (((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) ? TRUE : FALSE;
|
State->Flags.Af = ((((FirstValue & 0x0F) + (SecondValue & 0x0F)) & 0x10) != 0);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -85,8 +85,7 @@ Fast486ArithmeticOperation(PFAST486_STATE State,
|
||||||
|| ((Result < FirstValue) && (Result < (SecondValue + Carry)));
|
|| ((Result < FirstValue) && (Result < (SecondValue + Carry)));
|
||||||
State->Flags.Of = ((FirstValue & SignFlag) == (SecondValue & SignFlag))
|
State->Flags.Of = ((FirstValue & SignFlag) == (SecondValue & SignFlag))
|
||||||
&& ((FirstValue & SignFlag) != (Result & SignFlag));
|
&& ((FirstValue & SignFlag) != (Result & SignFlag));
|
||||||
State->Flags.Af = (((FirstValue & 0x0F) + ((SecondValue + Carry) & 0x0F)) & 0x10)
|
State->Flags.Af = ((((FirstValue & 0x0F) + ((SecondValue + Carry) & 0x0F)) & 0x10) != 0);
|
||||||
? TRUE : FALSE;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -144,8 +143,8 @@ Fast486ArithmeticOperation(PFAST486_STATE State,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update ZF, SF and PF */
|
/* Update ZF, SF and PF */
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SignFlag) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SignFlag) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(LOBYTE(Result));
|
State->Flags.Pf = Fast486CalculateParity(LOBYTE(Result));
|
||||||
|
|
||||||
/* Return the result */
|
/* Return the result */
|
||||||
|
@ -185,7 +184,7 @@ Fast486RotateOperation(PFAST486_STATE State,
|
||||||
|
|
||||||
/* Update CF and OF */
|
/* Update CF and OF */
|
||||||
State->Flags.Cf = Result & 1;
|
State->Flags.Cf = Result & 1;
|
||||||
if (Count == 1) State->Flags.Of = ((Result & HighestBit) ? TRUE : FALSE)
|
if (Count == 1) State->Flags.Of = ((Result & HighestBit) != 0)
|
||||||
^ State->Flags.Cf;
|
^ State->Flags.Cf;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -197,10 +196,9 @@ Fast486RotateOperation(PFAST486_STATE State,
|
||||||
Result = (Value >> Count) | (Value << (Bits - Count));
|
Result = (Value >> Count) | (Value << (Bits - Count));
|
||||||
|
|
||||||
/* Update CF and OF */
|
/* Update CF and OF */
|
||||||
State->Flags.Cf = (Result & HighestBit) ? TRUE : FALSE;
|
State->Flags.Cf = ((Result & HighestBit) != 0);
|
||||||
if (Count == 1) State->Flags.Of = State->Flags.Cf
|
if (Count == 1) State->Flags.Of = State->Flags.Cf
|
||||||
^ ((Result & (HighestBit >> 1))
|
^ ((Result & (HighestBit >> 1)) != 0);
|
||||||
? TRUE : FALSE);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -213,8 +211,8 @@ Fast486RotateOperation(PFAST486_STATE State,
|
||||||
| (Value >> (Bits - Count + 1));
|
| (Value >> (Bits - Count + 1));
|
||||||
|
|
||||||
/* Update CF and OF */
|
/* Update CF and OF */
|
||||||
State->Flags.Cf = (Value & (1 << (Bits - Count))) ? TRUE : FALSE;
|
State->Flags.Cf = ((Value & (1 << (Bits - Count))) != 0);
|
||||||
if (Count == 1) State->Flags.Of = ((Result & HighestBit) ? TRUE : FALSE)
|
if (Count == 1) State->Flags.Of = ((Result & HighestBit) != 0)
|
||||||
^ State->Flags.Cf;
|
^ State->Flags.Cf;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -228,10 +226,9 @@ Fast486RotateOperation(PFAST486_STATE State,
|
||||||
| (Value << (Bits - Count + 1));
|
| (Value << (Bits - Count + 1));
|
||||||
|
|
||||||
/* Update CF and OF */
|
/* Update CF and OF */
|
||||||
State->Flags.Cf = (Value & (1 << (Bits - Count))) ? TRUE : FALSE;
|
State->Flags.Cf = ((Value & (1 << (Bits - Count))) != 0);
|
||||||
if (Count == 1) State->Flags.Of = State->Flags.Cf
|
if (Count == 1) State->Flags.Of = State->Flags.Cf
|
||||||
^ ((Result & (HighestBit >> 1))
|
^ ((Result & (HighestBit >> 1)) != 0);
|
||||||
? TRUE : FALSE);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -243,9 +240,9 @@ Fast486RotateOperation(PFAST486_STATE State,
|
||||||
Result = Value << Count;
|
Result = Value << Count;
|
||||||
|
|
||||||
/* Update CF and OF */
|
/* Update CF and OF */
|
||||||
State->Flags.Cf = (Value & (1 << (Bits - Count))) ? TRUE : FALSE;
|
State->Flags.Cf = ((Value & (1 << (Bits - Count))) != 0);
|
||||||
if (Count == 1) State->Flags.Of = ((Result & HighestBit) ? TRUE : FALSE)
|
if (Count == 1) State->Flags.Of = ((Result & HighestBit) != 0)
|
||||||
^ (State->Flags.Cf ? TRUE : FALSE);
|
^ State->Flags.Cf;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -256,8 +253,8 @@ Fast486RotateOperation(PFAST486_STATE State,
|
||||||
Result = Value >> Count;
|
Result = Value >> Count;
|
||||||
|
|
||||||
/* Update CF and OF */
|
/* Update CF and OF */
|
||||||
State->Flags.Cf = (Value & (1 << (Count - 1))) ? TRUE : FALSE;
|
State->Flags.Cf = ((Value & (1 << (Count - 1))) != 0);
|
||||||
if (Count == 1) State->Flags.Of = (Value & HighestBit) ? TRUE : FALSE;
|
if (Count == 1) State->Flags.Of = ((Value & HighestBit) != 0);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -271,7 +268,7 @@ Fast486RotateOperation(PFAST486_STATE State,
|
||||||
if (Value & HighestBit) Result |= ((1 << Count) - 1) << (Bits - Count);
|
if (Value & HighestBit) Result |= ((1 << Count) - 1) << (Bits - Count);
|
||||||
|
|
||||||
/* Update CF and OF */
|
/* Update CF and OF */
|
||||||
State->Flags.Cf = (Value & (1 << (Count - 1))) ? TRUE : FALSE;
|
State->Flags.Cf = ((Value & (1 << (Count - 1))) != 0);
|
||||||
if (Count == 1) State->Flags.Of = FALSE;
|
if (Count == 1) State->Flags.Of = FALSE;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -281,8 +278,8 @@ Fast486RotateOperation(PFAST486_STATE State,
|
||||||
if (Operation >= 4)
|
if (Operation >= 4)
|
||||||
{
|
{
|
||||||
/* Update ZF, SF and PF */
|
/* Update ZF, SF and PF */
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & HighestBit) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & HighestBit) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -945,8 +942,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF6)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -966,11 +963,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF6)
|
||||||
UCHAR Result = -Value;
|
UCHAR Result = -Value;
|
||||||
|
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = (Value != 0) ? TRUE : FALSE;
|
State->Flags.Cf = (Value != 0);
|
||||||
State->Flags.Of = (Value & SIGN_FLAG_BYTE) && (Result & SIGN_FLAG_BYTE);
|
State->Flags.Of = (Value & SIGN_FLAG_BYTE) && (Result & SIGN_FLAG_BYTE);
|
||||||
State->Flags.Af = ((Value & 0x0F) != 0) ? TRUE : FALSE;
|
State->Flags.Af = ((Value & 0x0F) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -983,7 +980,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF6)
|
||||||
USHORT Result = (USHORT)Value * (USHORT)State->GeneralRegs[FAST486_REG_EAX].LowByte;
|
USHORT Result = (USHORT)Value * (USHORT)State->GeneralRegs[FAST486_REG_EAX].LowByte;
|
||||||
|
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = State->Flags.Of = HIBYTE(Result) ? TRUE : FALSE;
|
State->Flags.Cf = State->Flags.Of = (HIBYTE(Result) != 0);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
State->GeneralRegs[FAST486_REG_EAX].LowWord = Result;
|
State->GeneralRegs[FAST486_REG_EAX].LowWord = Result;
|
||||||
|
@ -998,7 +995,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF6)
|
||||||
|
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = State->Flags.Of =
|
State->Flags.Cf = State->Flags.Of =
|
||||||
((Result < -128) || (Result > 127)) ? TRUE : FALSE;
|
((Result < -128) || (Result > 127));
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
State->GeneralRegs[FAST486_REG_EAX].LowWord = (USHORT)Result;
|
State->GeneralRegs[FAST486_REG_EAX].LowWord = (USHORT)Result;
|
||||||
|
@ -1110,8 +1107,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7)
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = FALSE;
|
State->Flags.Cf = FALSE;
|
||||||
State->Flags.Of = FALSE;
|
State->Flags.Of = FALSE;
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SignFlag) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SignFlag) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -1141,11 +1138,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7)
|
||||||
if (!OperandSize) Result &= 0xFFFF;
|
if (!OperandSize) Result &= 0xFFFF;
|
||||||
|
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = (Value != 0) ? TRUE : FALSE;
|
State->Flags.Cf = (Value != 0);
|
||||||
State->Flags.Of = (Value & SignFlag) && (Result & SignFlag);
|
State->Flags.Of = (Value & SignFlag) && (Result & SignFlag);
|
||||||
State->Flags.Af = ((Value & 0x0F) != 0) ? TRUE : FALSE;
|
State->Flags.Af = ((Value & 0x0F) != 0);
|
||||||
State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Result == 0);
|
||||||
State->Flags.Sf = (Result & SignFlag) ? TRUE : FALSE;
|
State->Flags.Sf = ((Result & SignFlag) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Result);
|
State->Flags.Pf = Fast486CalculateParity(Result);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1170,7 +1167,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7)
|
||||||
|
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = State->Flags.Of =
|
State->Flags.Cf = State->Flags.Of =
|
||||||
(Result & 0xFFFFFFFF00000000ULL) ? TRUE : FALSE;
|
((Result & 0xFFFFFFFF00000000ULL) != 0);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
State->GeneralRegs[FAST486_REG_EAX].Long = Result & 0xFFFFFFFFULL;
|
State->GeneralRegs[FAST486_REG_EAX].Long = Result & 0xFFFFFFFFULL;
|
||||||
|
@ -1181,7 +1178,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7)
|
||||||
ULONG Result = (ULONG)Value * (ULONG)State->GeneralRegs[FAST486_REG_EAX].LowWord;
|
ULONG Result = (ULONG)Value * (ULONG)State->GeneralRegs[FAST486_REG_EAX].LowWord;
|
||||||
|
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = State->Flags.Of = HIWORD(Result) ? TRUE : FALSE;
|
State->Flags.Cf = State->Flags.Of = (HIWORD(Result) != 0);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
State->GeneralRegs[FAST486_REG_EAX].LowWord = LOWORD(Result);
|
State->GeneralRegs[FAST486_REG_EAX].LowWord = LOWORD(Result);
|
||||||
|
@ -1200,7 +1197,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7)
|
||||||
|
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = State->Flags.Of =
|
State->Flags.Cf = State->Flags.Of =
|
||||||
((Result < -2147483648LL) || (Result > 2147483647LL)) ? TRUE : FALSE;
|
((Result < -2147483648LL) || (Result > 2147483647LL));
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
State->GeneralRegs[FAST486_REG_EAX].Long = Result & 0xFFFFFFFFULL;
|
State->GeneralRegs[FAST486_REG_EAX].Long = Result & 0xFFFFFFFFULL;
|
||||||
|
@ -1212,7 +1209,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7)
|
||||||
|
|
||||||
/* Update the flags */
|
/* Update the flags */
|
||||||
State->Flags.Cf = State->Flags.Of =
|
State->Flags.Cf = State->Flags.Of =
|
||||||
((Result < -32768) || (Result > 32767)) ? TRUE : FALSE;
|
((Result < -32768) || (Result > 32767));
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
State->GeneralRegs[FAST486_REG_EAX].LowWord = LOWORD(Result);
|
State->GeneralRegs[FAST486_REG_EAX].LowWord = LOWORD(Result);
|
||||||
|
@ -1316,20 +1313,20 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFE)
|
||||||
{
|
{
|
||||||
/* Increment and update OF and AF */
|
/* Increment and update OF and AF */
|
||||||
Value++;
|
Value++;
|
||||||
State->Flags.Of = (Value == SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Of = (Value == SIGN_FLAG_BYTE);
|
||||||
State->Flags.Af = ((Value & 0x0F) == 0);
|
State->Flags.Af = ((Value & 0x0F) == 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Decrement and update OF and AF */
|
/* Decrement and update OF and AF */
|
||||||
State->Flags.Of = (Value == SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Of = (Value == SIGN_FLAG_BYTE);
|
||||||
Value--;
|
Value--;
|
||||||
State->Flags.Af = ((Value & 0x0F) == 0x0F);
|
State->Flags.Af = ((Value & 0x0F) == 0x0F);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update flags */
|
/* Update flags */
|
||||||
State->Flags.Sf = (Value & SIGN_FLAG_BYTE) ? TRUE : FALSE;
|
State->Flags.Zf = (Value == 0);
|
||||||
State->Flags.Zf = (Value == 0) ? TRUE : FALSE;
|
State->Flags.Sf = ((Value & SIGN_FLAG_BYTE) != 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Value);
|
State->Flags.Pf = Fast486CalculateParity(Value);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1377,13 +1374,13 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF)
|
||||||
{
|
{
|
||||||
/* Increment and update OF and AF */
|
/* Increment and update OF and AF */
|
||||||
Value++;
|
Value++;
|
||||||
State->Flags.Of = (Value == SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Of = (Value == SIGN_FLAG_LONG);
|
||||||
State->Flags.Af = ((Value & 0x0F) == 0);
|
State->Flags.Af = ((Value & 0x0F) == 0);
|
||||||
}
|
}
|
||||||
else if (ModRegRm.Register == 1)
|
else if (ModRegRm.Register == 1)
|
||||||
{
|
{
|
||||||
/* Decrement and update OF and AF */
|
/* Decrement and update OF and AF */
|
||||||
State->Flags.Of = (Value == SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Of = (Value == SIGN_FLAG_LONG);
|
||||||
Value--;
|
Value--;
|
||||||
State->Flags.Af = ((Value & 0x0F) == 0x0F);
|
State->Flags.Af = ((Value & 0x0F) == 0x0F);
|
||||||
}
|
}
|
||||||
|
@ -1495,8 +1492,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF)
|
||||||
if (ModRegRm.Register <= 1)
|
if (ModRegRm.Register <= 1)
|
||||||
{
|
{
|
||||||
/* Update flags */
|
/* Update flags */
|
||||||
State->Flags.Sf = (Value & SIGN_FLAG_LONG) ? TRUE : FALSE;
|
State->Flags.Sf = ((Value & SIGN_FLAG_LONG) != 0);
|
||||||
State->Flags.Zf = (Value == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Value == 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Value);
|
State->Flags.Pf = Fast486CalculateParity(Value);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
@ -1520,13 +1517,13 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF)
|
||||||
{
|
{
|
||||||
/* Increment and update OF */
|
/* Increment and update OF */
|
||||||
Value++;
|
Value++;
|
||||||
State->Flags.Of = (Value == SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Of = (Value == SIGN_FLAG_WORD);
|
||||||
State->Flags.Af = ((Value & 0x0F) == 0);
|
State->Flags.Af = ((Value & 0x0F) == 0);
|
||||||
}
|
}
|
||||||
else if (ModRegRm.Register == 1)
|
else if (ModRegRm.Register == 1)
|
||||||
{
|
{
|
||||||
/* Decrement and update OF */
|
/* Decrement and update OF */
|
||||||
State->Flags.Of = (Value == SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Of = (Value == SIGN_FLAG_WORD);
|
||||||
Value--;
|
Value--;
|
||||||
State->Flags.Af = ((Value & 0x0F) == 0x0F);
|
State->Flags.Af = ((Value & 0x0F) == 0x0F);
|
||||||
}
|
}
|
||||||
|
@ -1645,8 +1642,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF)
|
||||||
if (ModRegRm.Register <= 1)
|
if (ModRegRm.Register <= 1)
|
||||||
{
|
{
|
||||||
/* Update flags */
|
/* Update flags */
|
||||||
State->Flags.Sf = (Value & SIGN_FLAG_WORD) ? TRUE : FALSE;
|
State->Flags.Sf = ((Value & SIGN_FLAG_WORD) != 0);
|
||||||
State->Flags.Zf = (Value == 0) ? TRUE : FALSE;
|
State->Flags.Zf = (Value == 0);
|
||||||
State->Flags.Pf = Fast486CalculateParity(Value);
|
State->Flags.Pf = Fast486CalculateParity(Value);
|
||||||
|
|
||||||
/* Write back the result */
|
/* Write back the result */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue