[FAST486]
[reactos.git] / lib / fast486 / opcodes.c
index 0c4f3d8..3dffdaa 100644 (file)
@@ -4268,11 +4268,12 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePopFlags)
         return FALSE;
     }
 
+    /* Check for VM86 mode when IOPL is not 3 */
     if (State->Flags.Vm && (State->Flags.Iopl != 3))
     {
         /* Call the VM86 monitor */
         Fast486ExceptionWithErrorCode(State, FAST486_EXCEPTION_GP, 0);
-        return TRUE;
+        return FALSE;
     }
 
     State->Flags.Cf = NewFlags.Cf;
@@ -4305,7 +4306,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSahf)
     State->Flags.AlwaysSet = TRUE;
     State->Flags.Reserved0 = State->Flags.Reserved1 = FALSE;
 
-    return FALSE;
+    return TRUE;
 }
 
 FAST486_OPCODE_HANDLER(Fast486OpcodeLahf)
@@ -4316,7 +4317,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLahf)
     /* Set AH to the low-order byte of FLAGS */
     State->GeneralRegs[FAST486_REG_EAX].HighByte = LOBYTE(State->Flags.Long);
 
-    return FALSE;
+    return TRUE;
 }
 
 FAST486_OPCODE_HANDLER(Fast486OpcodeRet)