Don't import FastString in HsVersions.h
[ghc-hetmet.git] / compiler / codeGen / CgTailCall.lhs
index e25e794..475196a 100644 (file)
@@ -5,6 +5,13 @@
 % Code generation for tail calls.
 
 \begin{code}
+{-# 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 CgTailCall (
        cgTailCall, performTailCall,
        performReturn, performPrimReturn,
@@ -27,7 +34,6 @@ import CgUtils
 import CgTicky
 import ClosureInfo
 import SMRep
-import MachOp
 import Cmm     
 import CmmUtils
 import CLabel
@@ -191,7 +197,7 @@ performTailCall fun_info arg_amodes pending_assts
                    -- No, enter the closure.
                    ; enterClosure
                    ; labelC is_constr
-                   ; stmtC (CmmJump (CmmLit (CmmLabel lbl)) [])
+                   ; stmtC (CmmJump (entryCode $ CmmLit (CmmLabel lbl)) [])
                    }
 {-
               -- This is a scrutinee for a case expression
@@ -220,6 +226,7 @@ performTailCall fun_info arg_amodes pending_assts
         where
           --cond1 tag  = cmmULtWord tag lowCons
           -- More efficient than the above?
+{-
           tag_expr   = cmmGetClosureType (CmmReg nodeReg)
           cond1 tag  = cmmEqWord tag (CmmLit (mkIntCLit 0))
           cond2 tag  = cmmUGtWord tag highCons
@@ -227,11 +234,9 @@ performTailCall fun_info arg_amodes pending_assts
             -- CONSTR
           highCons   = CmmLit (mkIntCLit 8)
             -- CONSTR_NOCAF_STATIC (from ClosureType.h)
+-}
 
 
-untagCmmAssign (CmmAssign r cmmExpr) = CmmAssign r (cmmUntag cmmExpr)
-untagCmmAssign stmt                  = stmt
-
 directCall sp lbl args extra_args assts = do
   let
        -- First chunk of args go in registers
@@ -468,3 +473,4 @@ adjustSpAndHp newRealSp
        ; setRealHp vHp
        }
 \end{code}
+