if (State->PrefixFlags & FAST486_PREFIX_REP)
{
UCHAR Block[STRING_BLOCK_SIZE];
- ULONG Count = OperandSize ? State->GeneralRegs[FAST486_REG_ECX].Long
+ ULONG Count = AddressSize ? State->GeneralRegs[FAST486_REG_ECX].Long
: State->GeneralRegs[FAST486_REG_ECX].LowWord;
/* Clear the memory block */
Processed * DataSize))
{
/* Set ECX */
- if (OperandSize) State->GeneralRegs[FAST486_REG_ECX].Long = Count;
+ if (AddressSize) State->GeneralRegs[FAST486_REG_ECX].Long = Count;
else State->GeneralRegs[FAST486_REG_ECX].LowWord = LOWORD(Count);
/* Exception occurred */
Processed * DataSize))
{
/* Set ECX */
- if (OperandSize) State->GeneralRegs[FAST486_REG_ECX].Long = Count;
+ if (AddressSize) State->GeneralRegs[FAST486_REG_ECX].Long = Count;
else State->GeneralRegs[FAST486_REG_ECX].LowWord = LOWORD(Count);
/* Exception occurred */
}
/* Clear ECX */
- if (OperandSize) State->GeneralRegs[FAST486_REG_ECX].Long = 0;
+ if (AddressSize) State->GeneralRegs[FAST486_REG_ECX].Long = 0;
else State->GeneralRegs[FAST486_REG_ECX].LowWord = 0;
}
else
}
/* Increment/decrement ESI and EDI */
- if (OperandSize)
+ if (AddressSize)
{
if (!State->Flags.Df)
{
else DataSize = OperandSize ? sizeof(ULONG) : sizeof(USHORT);
/* Calculate the mask and sign flag */
- DataMask = (1 << (DataSize * 8)) - 1;
SignFlag = 1 << ((DataSize * 8) - 1);
+ DataMask = SignFlag | (SignFlag - 1);
/* Read from the first source operand */
if (!Fast486ReadMemory(State,
State->Flags.Pf = Fast486CalculateParity(Result);
/* Increment/decrement ESI and EDI */
- if (OperandSize)
+ if (AddressSize)
{
if (!State->Flags.Df)
{
{
BOOLEAN Repeat = TRUE;
- if (OperandSize)
+ if (AddressSize)
{
if ((--State->GeneralRegs[FAST486_REG_ECX].Long) == 0)
{
if (State->PrefixFlags & FAST486_PREFIX_REP)
{
UCHAR Block[STRING_BLOCK_SIZE];
- ULONG Count = OperandSize ? State->GeneralRegs[FAST486_REG_ECX].Long
+ ULONG Count = AddressSize ? State->GeneralRegs[FAST486_REG_ECX].Long
: State->GeneralRegs[FAST486_REG_ECX].LowWord;
/* Fill the memory block with the data */
Processed * DataSize))
{
/* Set ECX */
- if (OperandSize) State->GeneralRegs[FAST486_REG_ECX].Long = Count;
+ if (AddressSize) State->GeneralRegs[FAST486_REG_ECX].Long = Count;
else State->GeneralRegs[FAST486_REG_ECX].LowWord = LOWORD(Count);
/* Exception occurred */
}
/* Clear ECX */
- if (OperandSize) State->GeneralRegs[FAST486_REG_ECX].Long = 0;
+ if (AddressSize) State->GeneralRegs[FAST486_REG_ECX].Long = 0;
else State->GeneralRegs[FAST486_REG_ECX].LowWord = 0;
}
else
}
/* Increment/decrement EDI */
- if (OperandSize)
+ if (AddressSize)
{
if (!State->Flags.Df) State->GeneralRegs[FAST486_REG_EDI].Long += DataSize;
else State->GeneralRegs[FAST486_REG_EDI].Long -= DataSize;
if (State->PrefixFlags & FAST486_PREFIX_REP)
{
- ULONG Count = OperandSize ? State->GeneralRegs[FAST486_REG_ECX].Long
+ ULONG Count = AddressSize ? State->GeneralRegs[FAST486_REG_ECX].Long
: State->GeneralRegs[FAST486_REG_ECX].LowWord;
/* If the count is 0, do nothing */
}
/* Clear ECX */
- if (OperandSize) State->GeneralRegs[FAST486_REG_ECX].Long = 0;
+ if (AddressSize) State->GeneralRegs[FAST486_REG_ECX].Long = 0;
else State->GeneralRegs[FAST486_REG_ECX].LowWord = 0;
}
}
/* Increment/decrement ESI */
- if (OperandSize)
+ if (AddressSize)
{
if (!State->Flags.Df) State->GeneralRegs[FAST486_REG_ESI].Long += DataSize;
else State->GeneralRegs[FAST486_REG_ESI].Long -= DataSize;
else DataSize = OperandSize ? sizeof(ULONG) : sizeof(USHORT);
/* Calculate the mask and sign flag */
- DataMask = (1 << (DataSize * 8)) - 1;
SignFlag = 1 << ((DataSize * 8) - 1);
+ DataMask = SignFlag | (SignFlag - 1);
/* Read from the source operand */
if (!Fast486ReadMemory(State,
State->Flags.Pf = Fast486CalculateParity(Result);
/* Increment/decrement EDI */
- if (OperandSize)
+ if (AddressSize)
{
if (!State->Flags.Df) State->GeneralRegs[FAST486_REG_EDI].Long += DataSize;
else State->GeneralRegs[FAST486_REG_EDI].Long -= DataSize;
{
BOOLEAN Repeat = TRUE;
- if (OperandSize)
+ if (AddressSize)
{
if ((--State->GeneralRegs[FAST486_REG_ECX].Long) == 0)
{
if (State->PrefixFlags & FAST486_PREFIX_REP)
{
UCHAR Block[STRING_BLOCK_SIZE];
- ULONG Count = OperandSize ? State->GeneralRegs[FAST486_REG_ECX].Long
+ ULONG Count = AddressSize ? State->GeneralRegs[FAST486_REG_ECX].Long
: State->GeneralRegs[FAST486_REG_ECX].LowWord;
/* Clear the memory block */
Processed * DataSize))
{
/* Set ECX */
- if (OperandSize) State->GeneralRegs[FAST486_REG_ECX].Long = Count;
+ if (AddressSize) State->GeneralRegs[FAST486_REG_ECX].Long = Count;
else State->GeneralRegs[FAST486_REG_ECX].LowWord = LOWORD(Count);
/* Exception occurred */
}
/* Clear ECX */
- if (OperandSize) State->GeneralRegs[FAST486_REG_ECX].Long = 0;
+ if (AddressSize) State->GeneralRegs[FAST486_REG_ECX].Long = 0;
else State->GeneralRegs[FAST486_REG_ECX].LowWord = 0;
}
else
}
/* Increment/decrement EDI */
- if (OperandSize)
+ if (AddressSize)
{
if (!State->Flags.Df) State->GeneralRegs[FAST486_REG_EDI].Long += DataSize;
else State->GeneralRegs[FAST486_REG_EDI].Long -= DataSize;
if (State->PrefixFlags & FAST486_PREFIX_REP)
{
UCHAR Block[STRING_BLOCK_SIZE];
- ULONG Count = OperandSize ? State->GeneralRegs[FAST486_REG_ECX].Long
+ ULONG Count = AddressSize ? State->GeneralRegs[FAST486_REG_ECX].Long
: State->GeneralRegs[FAST486_REG_ECX].LowWord;
/* Clear the memory block */
Processed * DataSize))
{
/* Set ECX */
- if (OperandSize) State->GeneralRegs[FAST486_REG_ECX].Long = Count;
+ if (AddressSize) State->GeneralRegs[FAST486_REG_ECX].Long = Count;
else State->GeneralRegs[FAST486_REG_ECX].LowWord = LOWORD(Count);
/* Exception occurred */
}
/* Clear ECX */
- if (OperandSize) State->GeneralRegs[FAST486_REG_ECX].Long = 0;
+ if (AddressSize) State->GeneralRegs[FAST486_REG_ECX].Long = 0;
else State->GeneralRegs[FAST486_REG_ECX].LowWord = 0;
}
else
DataSize);
/* Increment/decrement ESI */
- if (OperandSize)
+ if (AddressSize)
{
if (!State->Flags.Df) State->GeneralRegs[FAST486_REG_ESI].Long += DataSize;
else State->GeneralRegs[FAST486_REG_ESI].Long -= DataSize;