[project @ 2004-08-13 13:04:50 by simonmar]
[ghc-hetmet.git] / ghc / compiler / main / Constants.lhs
index 9d6a7cc..091a7de 100644 (file)
@@ -4,68 +4,7 @@
 \section[Constants]{Info about this compilation}
 
 \begin{code}
-module Constants (
-       mAX_CONTEXT_REDUCTION_DEPTH,
-       mAX_TUPLE_SIZE,
-
-       mAX_SPEC_THUNK_SIZE,
-       mAX_SPEC_FUN_SIZE,
-       mAX_SPEC_CONSTR_SIZE,
-       mAX_SPEC_SELECTEE_SIZE,
-       mAX_SPEC_AP_SIZE,
-
-       mIN_UPD_SIZE,
-       mIN_SIZE_NonUpdHeapObject,
-
-       sTD_HDR_SIZE,
-       pROF_HDR_SIZE,
-       gRAN_HDR_SIZE,
-       aRR_WORDS_HDR_SIZE,
-       aRR_PTRS_HDR_SIZE,
-        rESERVED_C_STACK_BYTES,
-        rESERVED_STACK_WORDS,
-
-       sTD_ITBL_SIZE,
-       rET_ITBL_SIZE,
-       pROF_ITBL_SIZE,
-       gRAN_ITBL_SIZE,
-       tICKY_ITBL_SIZE,
-
-       mAX_FAMILY_SIZE_FOR_VEC_RETURNS,
-
-       uF_SIZE,
-       pROF_UF_SIZE,
-       gRAN_UF_SIZE,  -- HWL
-       uF_RET,
-       uF_UPDATEE,
-
-       mAX_Vanilla_REG,
-       mAX_Float_REG,
-       mAX_Double_REG,
-       mAX_Long_REG,
-
-       mAX_Real_Vanilla_REG,
-       mAX_Real_Float_REG,
-       mAX_Real_Double_REG,
-       mAX_Real_Long_REG,
-
-       mAX_INTLIKE, mIN_INTLIKE,
-       mAX_CHARLIKE, mIN_CHARLIKE,
-
-       spRelToInt,
-
-       dOUBLE_SIZE,
-       iNT64_SIZE,
-       wORD64_SIZE,
-       
-       wORD_SIZE,
-       wORD_SIZE_IN_BITS,
-
-       bLOCK_SIZE,
-       bLOCK_SIZE_W,
-
-       bITMAP_BITS_SHIFT,
-    ) where
+module Constants (module Constants) where
 
 -- This magical #include brings in all the everybody-knows-these magic
 -- constants unfortunately, we need to be *explicit* about which one
@@ -73,7 +12,7 @@ module Constants (
 -- be in trouble.
 
 #include "HsVersions.h"
-#include "../includes/config.h"
+#include "../includes/ghcconfig.h"
 #include "../includes/MachRegs.h"
 #include "../includes/Constants.h"
 #include "../includes/MachDeps.h"
@@ -107,47 +46,20 @@ mIN_SIZE_NonUpdHeapObject  = (MIN_NONUPD_SIZE::Int)
 \end{code}
 
 \begin{code}
-mIN_INTLIKE, mAX_INTLIKE :: Integer    -- Only used to compare with (MachInt Integer)
+mIN_INTLIKE, mAX_INTLIKE :: Int        
 mIN_INTLIKE = MIN_INTLIKE
 mAX_INTLIKE = MAX_INTLIKE
 
-mIN_CHARLIKE, mAX_CHARLIKE :: Int      -- Only used to compare with (MachChar Int)
+mIN_CHARLIKE, mAX_CHARLIKE :: Int
 mIN_CHARLIKE = MIN_CHARLIKE
 mAX_CHARLIKE = MAX_CHARLIKE
 \end{code}
 
-A little function that abstracts the stack direction.  Note that most
-of the code generator is dependent on the stack direction anyway, so
-changing this on its own spells certain doom.  ToDo: remove?
-
-\begin{code}
--- THIS IS DIRECTION SENSITIVE!
-
--- stack grows down, positive virtual offsets correspond to negative
--- additions to the stack pointer.
-
-spRelToInt :: Int{-VirtualSpOffset-} -> Int{-VirtualSpOffset-} -> Int
-spRelToInt sp off = sp - off
-\end{code}
-
 A section of code-generator-related MAGIC CONSTANTS.
 
 \begin{code}
 mAX_FAMILY_SIZE_FOR_VEC_RETURNS = (MAX_VECTORED_RTN::Int)  -- pretty arbitrary
 -- If you change this, you may need to change runtimes/standard/Update.lhc
-
--- The update frame sizes
-uF_SIZE        = (STD_UF_SIZE::Int)
-
--- Same again, with profiling
-pROF_UF_SIZE = (PROF_UF_SIZE::Int)
-
--- Same again, with gransim
-gRAN_UF_SIZE = (GRAN_UF_SIZE::Int)
-
--- Offsets in an update frame.  They don't change with profiling!
-uF_RET         = (UF_RET::Int)
-uF_UPDATEE     = (UF_UPDATEE::Int)
 \end{code}
 
 \begin{code}
@@ -172,8 +84,6 @@ Closure header sizes.
 sTD_HDR_SIZE       = (STD_HDR_SIZE       :: Int)
 pROF_HDR_SIZE      = (PROF_HDR_SIZE      :: Int)
 gRAN_HDR_SIZE      = (GRAN_HDR_SIZE      :: Int)
-aRR_WORDS_HDR_SIZE = (ARR_WORDS_HDR_SIZE :: Int)
-aRR_PTRS_HDR_SIZE  = (ARR_PTRS_HDR_SIZE  :: Int)
 \end{code}
 
 Info Table sizes.
@@ -189,8 +99,8 @@ tICKY_ITBL_SIZE = (TICKY_ITBL_SIZE :: Int)
 Size of a double in StgWords.
 
 \begin{code}
-dOUBLE_SIZE     = (SIZEOF_DOUBLE `quot` SIZEOF_HSWORD :: Int)
-wORD64_SIZE     = (8 `quot` SIZEOF_HSWORD :: Int)
+dOUBLE_SIZE     = SIZEOF_DOUBLE :: Int
+wORD64_SIZE     = 8 :: Int
 iNT64_SIZE      = wORD64_SIZE
 \end{code}
 
@@ -219,7 +129,7 @@ Size of a storage manager block (in bytes).
 
 \begin{code}
 bLOCK_SIZE = (BLOCK_SIZE :: Int)
-bLOCK_SIZE_W = (bLOCK_SIZE `div` wORD_SIZE :: Int)
+bLOCK_SIZE_W = (bLOCK_SIZE `quot` wORD_SIZE :: Int)
 \end{code}
 
 Number of bits to shift a bitfield left by in an info table.
@@ -227,3 +137,10 @@ Number of bits to shift a bitfield left by in an info table.
 \begin{code}
 bITMAP_BITS_SHIFT = (BITMAP_BITS_SHIFT :: Int)
 \end{code}
+
+Constants derived from headers in ghc/includes, generated by the program
+../includes/mkDerivedConstants.c.
+
+\begin{code}
+#include "../includes/GHCConstants.h"
+\end{code}