[project @ 2005-04-13 15:07:20 by simonmar]
authorsimonmar <unknown>
Wed, 13 Apr 2005 15:07:20 +0000 (15:07 +0000)
committersimonmar <unknown>
Wed, 13 Apr 2005 15:07:20 +0000 (15:07 +0000)
Fix breakage in i386 floating-pt comparisons

ghc/compiler/nativeGen/MachCodeGen.hs

index 4fda4ee..dc4c91f 100644 (file)
@@ -3917,6 +3917,25 @@ condIntReg cond x y = do
   -- in
   return (Any I32 code)
 
+#endif
+
+#if i386_TARGET_ARCH
+
+condFltReg cond x y = do
+  CondCode _ cond cond_code <- condFltCode cond x y
+  tmp <- getNewRegNat I8
+  let 
+       code dst = cond_code `appOL` toOL [
+                   SETCC cond (OpReg tmp),
+                   MOVZxL I8 (OpReg tmp) (OpReg dst)
+                 ]
+  -- in
+  return (Any I32 code)
+
+#endif
+
+#if x86_64_TARGET_ARCH
+
 condFltReg cond x y = do
   CondCode _ cond cond_code <- condFltCode cond x y
   tmp1 <- getNewRegNat wordRep
@@ -3962,6 +3981,7 @@ condFltReg cond x y = do
                  ]
   -- in
   return (Any I32 code)
+
 #endif
 
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -