Replacing copyins and copyouts with data-movement instructions
[ghc-hetmet.git] / compiler / nativeGen / RegAllocInfo.hs
index d834a80..0328b95 100644 (file)
@@ -35,6 +35,7 @@ module RegAllocInfo (
 
 #include "HsVersions.h"
 
+import BlockId
 import Cmm
 import CLabel
 import MachOp           ( MachRep(..), wordRep )
@@ -215,9 +216,9 @@ regUsage instr = case instr of
     GABS   sz src dst  -> mkRU [src] [dst]
     GNEG   sz src dst  -> mkRU [src] [dst]
     GSQRT  sz src dst  -> mkRU [src] [dst]
-    GSIN   sz src dst  -> mkRU [src] [dst]
-    GCOS   sz src dst  -> mkRU [src] [dst]
-    GTAN   sz src dst  -> mkRU [src] [dst]
+    GSIN   sz _ _ src dst      -> mkRU [src] [dst]
+    GCOS   sz _ _ src dst      -> mkRU [src] [dst]
+    GTAN   sz _ _ src dst      -> mkRU [src] [dst]
 #endif
 
 #if x86_64_TARGET_ARCH
@@ -599,9 +600,9 @@ patchRegs instr env = case instr of
     GABS sz src dst    -> GABS sz (env src) (env dst)
     GNEG sz src dst    -> GNEG sz (env src) (env dst)
     GSQRT sz src dst   -> GSQRT sz (env src) (env dst)
-    GSIN sz src dst    -> GSIN sz (env src) (env dst)
-    GCOS sz src dst    -> GCOS sz (env src) (env dst)
-    GTAN sz src dst    -> GTAN sz (env src) (env dst)
+    GSIN sz l1 l2 src dst      -> GSIN sz l1 l2 (env src) (env dst)
+    GCOS sz l1 l2 src dst      -> GCOS sz l1 l2 (env src) (env dst)
+    GTAN sz l1 l2 src dst      -> GTAN sz l1 l2 (env src) (env dst)
 #endif
 
 #if x86_64_TARGET_ARCH
@@ -774,7 +775,7 @@ isRegRegMove (MOV _ (OpReg r1) (OpReg r2)) = Just (r1,r2)
 #elif powerpc_TARGET_ARCH
 isRegRegMove (MR dst src) = Just (src,dst)
 #else
-#warning ToDo: isRegRegMove
+#error ToDo: isRegRegMove
 #endif
 isRegRegMove _ = Nothing
 
@@ -877,6 +878,8 @@ mkRegRegMoveInstr src dst
 #endif
 #elif powerpc_TARGET_ARCH
     = MR dst src
+#else
+#error ToDo: mkRegRegMoveInstr
 #endif
 
 mkBranchInstr