[fast486]: code formatting + add a comment about the instruction 0xF1.

svn path=/trunk/; revision=64696
This commit is contained in:
Hermès Bélusca-Maïto 2014-10-12 13:50:05 +00:00
parent 5aaaab86e4
commit 88b05a01ad
4 changed files with 19 additions and 10 deletions

View file

@ -166,8 +166,6 @@ Fast486GetIntVector(PFAST486_STATE State,
UCHAR Number, UCHAR Number,
PFAST486_IDT_ENTRY IdtEntry) PFAST486_IDT_ENTRY IdtEntry)
{ {
ULONG FarPointer;
/* Check for protected mode */ /* Check for protected mode */
if (State->ControlRegisters[FAST486_REG_CR0] & FAST486_CR0_PE) if (State->ControlRegisters[FAST486_REG_CR0] & FAST486_CR0_PE)
{ {
@ -185,6 +183,7 @@ Fast486GetIntVector(PFAST486_STATE State,
else else
{ {
/* Read from the real-mode IVT */ /* Read from the real-mode IVT */
ULONG FarPointer;
/* Paging is always disabled in real mode */ /* Paging is always disabled in real mode */
State->MemReadCallback(State, State->MemReadCallback(State,
@ -215,9 +214,9 @@ Fast486InterruptInternal(PFAST486_STATE State,
USHORT SegmentSelector = IdtEntry->Selector; USHORT SegmentSelector = IdtEntry->Selector;
ULONG Offset = MAKELONG(IdtEntry->Offset, IdtEntry->OffsetHigh); ULONG Offset = MAKELONG(IdtEntry->Offset, IdtEntry->OffsetHigh);
ULONG GateType = IdtEntry->Type; ULONG GateType = IdtEntry->Type;
BOOLEAN GateSize = (GateType == FAST486_IDT_INT_GATE_32) ||
(GateType == FAST486_IDT_TRAP_GATE_32);
BOOLEAN GateSize = (GateType == FAST486_IDT_INT_GATE_32)
|| (GateType == FAST486_IDT_TRAP_GATE_32);
BOOLEAN Success = FALSE; BOOLEAN Success = FALSE;
ULONG OldPrefixFlags = State->PrefixFlags; ULONG OldPrefixFlags = State->PrefixFlags;

View file

@ -2267,9 +2267,9 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeXadd)
ULONG Source, Destination, Result; ULONG Source, Destination, Result;
if (!Fast486ReadModrmDwordOperands(State, if (!Fast486ReadModrmDwordOperands(State,
&ModRegRm, &ModRegRm,
&Source, &Source,
&Destination)) &Destination))
{ {
/* Exception occurred */ /* Exception occurred */
return FALSE; return FALSE;

View file

@ -125,7 +125,7 @@ Fast486FpuAdd(PFAST486_STATE State,
/* Find the largest exponent */ /* Find the largest exponent */
TempResult.Exponent = max(FirstOperand->Exponent, SecondOperand->Exponent); TempResult.Exponent = max(FirstOperand->Exponent, SecondOperand->Exponent);
/* Adjust the first operand to it */ /* Adjust the first operand to it... */
if (FirstAdjusted.Exponent < TempResult.Exponent) if (FirstAdjusted.Exponent < TempResult.Exponent)
{ {
FirstAdjusted.Mantissa >>= (TempResult.Exponent - FirstAdjusted.Exponent); FirstAdjusted.Mantissa >>= (TempResult.Exponent - FirstAdjusted.Exponent);

View file

@ -279,7 +279,7 @@ Fast486OpcodeHandlers[FAST486_NUM_OPCODE_HANDLERS] =
Fast486OpcodeOutByte, /* 0xEE */ Fast486OpcodeOutByte, /* 0xEE */
Fast486OpcodeOut, /* 0xEF */ Fast486OpcodeOut, /* 0xEF */
Fast486OpcodePrefix, /* 0xF0 */ Fast486OpcodePrefix, /* 0xF0 */
Fast486OpcodeInvalid, /* 0xF1 */ // Invalid opcode Fast486OpcodeInvalid, /* 0xF1 */ // Invalid opcode -- ICEBP/INT01 opcode
Fast486OpcodePrefix, /* 0xF2 */ Fast486OpcodePrefix, /* 0xF2 */
Fast486OpcodePrefix, /* 0xF3 */ Fast486OpcodePrefix, /* 0xF3 */
Fast486OpcodeHalt, /* 0xF4 */ Fast486OpcodeHalt, /* 0xF4 */
@ -300,7 +300,12 @@ Fast486OpcodeHandlers[FAST486_NUM_OPCODE_HANDLERS] =
FAST486_OPCODE_HANDLER(Fast486OpcodeInvalid) FAST486_OPCODE_HANDLER(Fast486OpcodeInvalid)
{ {
/* This is not a valid opcode */ /*
* This is not a valid opcode.
* Well, not totally: see http://www.rcollins.org/secrets/opcodes/ICEBP.html
* for more details.
*/
DPRINT1("FAST486 -- Calling ICEBP opcode\n");
Fast486Exception(State, FAST486_EXCEPTION_UD); Fast486Exception(State, FAST486_EXCEPTION_UD);
return FALSE; return FALSE;
} }
@ -5428,6 +5433,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovOffsetEax)
FAST486_OPCODE_HANDLER(Fast486OpcodeSalc) FAST486_OPCODE_HANDLER(Fast486OpcodeSalc)
{ {
/*
* See: http://www.rcollins.org/secrets/opcodes/SALC.html
* for more information.
*/
/* Make sure this is the right instruction */ /* Make sure this is the right instruction */
ASSERT(Opcode == 0xD6); ASSERT(Opcode == 0xD6);