diff --git a/reactos/lib/fast486/opgroups.c b/reactos/lib/fast486/opgroups.c index ccaab8bfaa0..912b5bf5525 100644 --- a/reactos/lib/fast486/opgroups.c +++ b/reactos/lib/fast486/opgroups.c @@ -1629,6 +1629,15 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) return; } + if (State->ControlRegisters[FAST486_REG_CR0] & FAST486_CR0_PE) + { + if (!Fast486ProcessGate(State, Selector, Value, FALSE)) + { + /* Gate processed or exception occurred */ + return; + } + } + /* Push the current value of CS */ if (!Fast486StackPush(State, State->SegmentRegs[FAST486_REG_CS].Selector)) { @@ -1688,6 +1697,15 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) return; } + if (State->ControlRegisters[FAST486_REG_CR0] & FAST486_CR0_PE) + { + if (!Fast486ProcessGate(State, Selector, Value, FALSE)) + { + /* Gate processed or exception occurred */ + return; + } + } + /* Load the new code segment */ if (!Fast486LoadSegment(State, FAST486_REG_CS, Selector)) {