[FAST486]
authorAleksandar Andrejevic <aandrejevic@reactos.org>
Sun, 3 Nov 2013 01:05:40 +0000 (01:05 +0000)
committerAleksandar Andrejevic <aandrejevic@reactos.org>
Sun, 3 Nov 2013 01:05:40 +0000 (01:05 +0000)
The RCL, RCR, ROL and ROR instructions do not update SF, ZF or PF.

svn path=/branches/ntvdm/; revision=60841

lib/fast486/opgroups.c

index 5b9ec0a..126d4d1 100644 (file)
@@ -278,10 +278,13 @@ Fast486RotateOperation(PFAST486_STATE State,
         }
     }
 
         }
     }
 
-    /* Update ZF, SF and PF */
-    State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
-    State->Flags.Sf = (Result & HighestBit) ? TRUE : FALSE;
-    State->Flags.Pf = Fast486CalculateParity(Result);
+    if (Operation >= 4)
+    {
+        /* Update ZF, SF and PF */
+        State->Flags.Zf = (Result == 0) ? TRUE : FALSE;
+        State->Flags.Sf = (Result & HighestBit) ? TRUE : FALSE;
+        State->Flags.Pf = Fast486CalculateParity(Result);
+    }
 
     /* Return the result */
     return Result;
 
     /* Return the result */
     return Result;