-- 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/CodingStyle#Warnings
+-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
-- for details
module Main(main) where
#include "../../includes/ghcconfig.h"
-#include "../../includes/MachRegs.h"
-#include "../../includes/Constants.h"
+#include "../../includes/stg/MachRegs.h"
+#include "../../includes/rts/Constants.h"
-- Needed for TAG_BITS
#include "../../includes/MachDeps.h"
formalParam arg n =
formalParamType arg <> space <>
text "arg" <> int n <> text ", "
-formalParamType arg | isPtr arg = text "\"ptr\"" <> space <> argRep arg
- | otherwise = argRep arg
+formalParamType arg = argRep arg
argRep F = text "F_"
argRep D = text "D_"
argRep L = text "L_"
+argRep P = text "gcptr"
argRep _ = text "W_"
genApply regstatus args =
-- print " [THUNK_STATIC] &&thunk_lbl,"
-- print " [THUNK_SELECTOR] &&thunk_lbl,"
-- print " [IND] &&ind_lbl,"
--- print " [IND_OLDGEN] &&ind_lbl,"
-- print " [IND_STATIC] &&ind_lbl,"
-- print " [IND_PERM] &&ind_lbl,"
--- print " [IND_OLDGEN_PERM] &&ind_lbl"
-- print " };"
tickForArity (length args),
-- else:
text "case AP,",
text " AP_STACK,",
- text " CAF_BLACKHOLE,",
text " BLACKHOLE,",
- text " SE_BLACKHOLE,",
- text " SE_CAF_BLACKHOLE,",
+ text " WHITEHOLE,",
text " THUNK,",
text " THUNK_1_0,",
text " THUNK_0_1,",
-- print " ind_lbl:"
-- else:
text "case IND,",
- text " IND_OLDGEN,",
text " IND_STATIC,",
- text " IND_PERM,",
- text " IND_OLDGEN_PERM: {",
+ text " IND_PERM: {",
nest 4 (vcat [
text "R1 = StgInd_indirectee(R1);",
-- An indirection node might contain a tagged pointer