ASSERT((Opcode >= 0xE0) && (Opcode <= 0xE2));
NO_LOCK_PREFIX();
- TOGGLE_OPSIZE(Size);
+ TOGGLE_ADSIZE(Size);
if (Size) Condition = ((--State->GeneralRegs[FAST486_REG_ECX].Long) != 0);
else Condition = ((--State->GeneralRegs[FAST486_REG_ECX].LowWord) != 0);
if (Condition)
{
/* Move the instruction pointer */
- State->InstPtr.Long += Offset;
+ if (Size) State->InstPtr.Long += Offset;
+ else State->InstPtr.LowWord += Offset;
}
return TRUE;
ASSERT(Opcode == 0xE3);
NO_LOCK_PREFIX();
- TOGGLE_OPSIZE(Size);
+ TOGGLE_ADSIZE(Size);
if (Size) Condition = (State->GeneralRegs[FAST486_REG_ECX].Long == 0);
else Condition = (State->GeneralRegs[FAST486_REG_ECX].LowWord == 0);
if (Condition)
{
/* Move the instruction pointer */
- State->InstPtr.Long += Offset;
+ if (Size) State->InstPtr.Long += Offset;
+ else State->InstPtr.LowWord += Offset;
}
return TRUE;