Don't import FastString in HsVersions.h
[ghc-hetmet.git] / compiler / codeGen / CgPrimOp.hs
index 4f9f2a8..207ffe2 100644 (file)
@@ -1,3 +1,10 @@
+{-# OPTIONS -w #-}
+-- The above warning supression flag is a temporary kludge.
+-- While working on this module you are encouraged to remove it and fix
+-- any warnings in the module. See
+--     http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
+-- for details
+
 -----------------------------------------------------------------------------
 --
 -- Code generation for PrimOps.
@@ -6,13 +13,6 @@
 --
 -----------------------------------------------------------------------------
 
-{-# OPTIONS -w #-}
--- The above warning supression flag is a temporary kludge.
--- While working on this module you are encouraged to remove it and fix
--- any warnings in the module. See
---     http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
--- for details
-
 module CgPrimOp (
    cgPrimOp
  ) where
@@ -35,11 +35,12 @@ import PrimOp
 import SMRep
 import Constants
 import Outputable
+import FastString
 
 -- ---------------------------------------------------------------------------
 -- Code generation for PrimOps
 
-cgPrimOp   :: CmmFormals       -- where to put the results
+cgPrimOp   :: CmmFormalsWithoutKinds   -- where to put the results
           -> PrimOp            -- the op
           -> [StgArg]          -- arguments
           -> StgLiveVars       -- live vars, in case we need to save them
@@ -51,7 +52,7 @@ cgPrimOp results op args live
        emitPrimOp results op non_void_args live
 
 
-emitPrimOp :: CmmFormals       -- where to put the results
+emitPrimOp :: CmmFormalsWithoutKinds   -- where to put the results
           -> PrimOp            -- the op
           -> [CmmExpr]         -- arguments
           -> StgLiveVars       -- live vars, in case we need to save them
@@ -123,9 +124,10 @@ emitPrimOp [res] ParOp [arg] live
        -- later, we might want to inline it.
     vols <- getVolatileRegs live
     emitForeignCall' PlayRisky
-       [(res,NoHint)]
+       [CmmHinted res NoHint]
        (CmmCallee newspark CCallConv) 
-       [(CmmReg (CmmGlobal BaseReg), PtrHint), (arg,PtrHint)] 
+       [   (CmmHinted (CmmReg (CmmGlobal BaseReg)) PtrHint)
+          , (CmmHinted arg PtrHint)  ] 
        (Just vols)
         NoC_SRT -- No SRT b/c we do PlayRisky
         CmmMayReturn
@@ -143,7 +145,8 @@ emitPrimOp [] WriteMutVarOp [mutv,var] live
                [{-no results-}]
                (CmmCallee (CmmLit (CmmLabel mkDirty_MUT_VAR_Label))
                         CCallConv)
-               [(CmmReg (CmmGlobal BaseReg), PtrHint), (mutv,PtrHint)]
+               [   (CmmHinted (CmmReg (CmmGlobal BaseReg)) PtrHint)
+                  , (CmmHinted mutv PtrHint)  ]
                (Just vols)
                 NoC_SRT -- No SRT b/c we do PlayRisky
                 CmmMayReturn
@@ -348,9 +351,9 @@ emitPrimOp [res] op args live
    | Just prim <- callishOp op
    = do vols <- getVolatileRegs live
        emitForeignCall' PlayRisky
-          [(res,NoHint)] 
+          [CmmHinted res NoHint] 
           (CmmPrim prim) 
-          [(a,NoHint) | a<-args]  -- ToDo: hints?
+          [CmmHinted a NoHint | a<-args]  -- ToDo: hints?
           (Just vols)
            NoC_SRT -- No SRT b/c we do PlayRisky
            CmmMayReturn