mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 14:23:18 +00:00
[FAST486]
Superfluous prefixes don't usually generate #UD, except for LOCK. svn path=/trunk/; revision=67702
This commit is contained in:
parent
1e3adf9e73
commit
84ed5d3cf2
1 changed files with 8 additions and 48 deletions
|
@ -1046,12 +1046,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovByteRegImm)
|
||||||
/* Make sure this is the right instruction */
|
/* Make sure this is the right instruction */
|
||||||
ASSERT((Opcode & 0xF8) == 0xB0);
|
ASSERT((Opcode & 0xF8) == 0xB0);
|
||||||
|
|
||||||
if (State->PrefixFlags != 0)
|
NO_LOCK_PREFIX();
|
||||||
{
|
|
||||||
/* Invalid prefix */
|
|
||||||
Fast486Exception(State, FAST486_EXCEPTION_UD);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Fetch the byte */
|
/* Fetch the byte */
|
||||||
if (!Fast486FetchByte(State, &Value))
|
if (!Fast486FetchByte(State, &Value))
|
||||||
|
@ -1211,12 +1206,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddAl)
|
||||||
/* Make sure this is the right instruction */
|
/* Make sure this is the right instruction */
|
||||||
ASSERT(Opcode == 0x04);
|
ASSERT(Opcode == 0x04);
|
||||||
|
|
||||||
if (State->PrefixFlags)
|
NO_LOCK_PREFIX();
|
||||||
{
|
|
||||||
/* This opcode doesn't take any prefixes */
|
|
||||||
Fast486Exception(State, FAST486_EXCEPTION_UD);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Fast486FetchByte(State, &SecondValue))
|
if (!Fast486FetchByte(State, &SecondValue))
|
||||||
{
|
{
|
||||||
|
@ -1437,12 +1427,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrAl)
|
||||||
/* Make sure this is the right instruction */
|
/* Make sure this is the right instruction */
|
||||||
ASSERT(Opcode == 0x0C);
|
ASSERT(Opcode == 0x0C);
|
||||||
|
|
||||||
if (State->PrefixFlags)
|
NO_LOCK_PREFIX();
|
||||||
{
|
|
||||||
/* This opcode doesn't take any prefixes */
|
|
||||||
Fast486Exception(State, FAST486_EXCEPTION_UD);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Fast486FetchByte(State, &SecondValue))
|
if (!Fast486FetchByte(State, &SecondValue))
|
||||||
{
|
{
|
||||||
|
@ -1872,12 +1857,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorAl)
|
||||||
/* Make sure this is the right instruction */
|
/* Make sure this is the right instruction */
|
||||||
ASSERT(Opcode == 0x34);
|
ASSERT(Opcode == 0x34);
|
||||||
|
|
||||||
if (State->PrefixFlags)
|
NO_LOCK_PREFIX();
|
||||||
{
|
|
||||||
/* This opcode doesn't take any prefixes */
|
|
||||||
Fast486Exception(State, FAST486_EXCEPTION_UD);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Fast486FetchByte(State, &SecondValue))
|
if (!Fast486FetchByte(State, &SecondValue))
|
||||||
{
|
{
|
||||||
|
@ -2073,12 +2053,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestAl)
|
||||||
/* Make sure this is the right instruction */
|
/* Make sure this is the right instruction */
|
||||||
ASSERT(Opcode == 0xA8);
|
ASSERT(Opcode == 0xA8);
|
||||||
|
|
||||||
if (State->PrefixFlags)
|
NO_LOCK_PREFIX();
|
||||||
{
|
|
||||||
/* This opcode doesn't take any prefixes */
|
|
||||||
Fast486Exception(State, FAST486_EXCEPTION_UD);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Fast486FetchByte(State, &SecondValue))
|
if (!Fast486FetchByte(State, &SecondValue))
|
||||||
{
|
{
|
||||||
|
@ -2454,12 +2429,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcAl)
|
||||||
/* Make sure this is the right instruction */
|
/* Make sure this is the right instruction */
|
||||||
ASSERT(Opcode == 0x14);
|
ASSERT(Opcode == 0x14);
|
||||||
|
|
||||||
if (State->PrefixFlags)
|
NO_LOCK_PREFIX();
|
||||||
{
|
|
||||||
/* This opcode doesn't take any prefixes */
|
|
||||||
Fast486Exception(State, FAST486_EXCEPTION_UD);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Fast486FetchByte(State, &SecondValue))
|
if (!Fast486FetchByte(State, &SecondValue))
|
||||||
{
|
{
|
||||||
|
@ -2746,12 +2716,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbAl)
|
||||||
/* Make sure this is the right instruction */
|
/* Make sure this is the right instruction */
|
||||||
ASSERT(Opcode == 0x1C);
|
ASSERT(Opcode == 0x1C);
|
||||||
|
|
||||||
if (State->PrefixFlags)
|
NO_LOCK_PREFIX();
|
||||||
{
|
|
||||||
/* This opcode doesn't take any prefixes */
|
|
||||||
Fast486Exception(State, FAST486_EXCEPTION_UD);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Fast486FetchByte(State, &SecondValue))
|
if (!Fast486FetchByte(State, &SecondValue))
|
||||||
{
|
{
|
||||||
|
@ -3073,12 +3038,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubAl)
|
||||||
/* Make sure this is the right instruction */
|
/* Make sure this is the right instruction */
|
||||||
ASSERT((Opcode & 0xEF) == 0x2C);
|
ASSERT((Opcode & 0xEF) == 0x2C);
|
||||||
|
|
||||||
if (State->PrefixFlags)
|
NO_LOCK_PREFIX();
|
||||||
{
|
|
||||||
/* This opcode doesn't take any prefixes */
|
|
||||||
Fast486Exception(State, FAST486_EXCEPTION_UD);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Fast486FetchByte(State, &SecondValue))
|
if (!Fast486FetchByte(State, &SecondValue))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue