aRR_WORDS_HDR_SIZE,
aRR_PTRS_HDR_SIZE,
rESERVED_C_STACK_BYTES,
+ rESERVED_STACK_WORDS,
sTD_ITBL_SIZE,
pROF_ITBL_SIZE,
oTHER_TAG,
mAX_INTLIKE, mIN_INTLIKE,
+ mAX_CHARLIKE, mIN_CHARLIKE,
spRelToInt,
iNT64_SIZE,
wORD64_SIZE,
- bLOCK_SIZE,
+ wORD_SIZE,
- interfaceFileFormatVersion
+ bLOCK_SIZE,
+ bLOCK_SIZE_W
) where
mIN_INTLIKE, mAX_INTLIKE :: Integer -- Only used to compare with (MachInt Integer)
mIN_INTLIKE = MIN_INTLIKE
mAX_INTLIKE = MAX_INTLIKE
+
+mIN_CHARLIKE, mAX_CHARLIKE :: Int -- Only used to compare with (MachChar Int)
+mIN_CHARLIKE = MIN_CHARLIKE
+mAX_CHARLIKE = MAX_CHARLIKE
\end{code}
A little function that abstracts the stack direction. Note that most
iNT64_SIZE = (INT64_SIZE :: Int)
\end{code}
-The version of the interface file format we're
-using:
+This tells the native code generator the size of the spill
+area is has available.
\begin{code}
-interfaceFileFormatVersion :: Int
-interfaceFileFormatVersion = HscIfaceFileVersion
+rESERVED_C_STACK_BYTES = (RESERVED_C_STACK_BYTES :: Int)
\end{code}
-This tells the native code generator the size of the spill
-area is has available.
+The amount of (Haskell) stack to leave free for saving registers when
+returning to the scheduler.
\begin{code}
-rESERVED_C_STACK_BYTES = (RESERVED_C_STACK_BYTES :: Int)
+rESERVED_STACK_WORDS = (RESERVED_STACK_WORDS :: Int)
+\end{code}
+
+Size of a word, in bytes
+
+\begin{code}
+wORD_SIZE = (WORD_SIZE :: Int)
\end{code}
Size of a storage manager block (in bytes).
\begin{code}
bLOCK_SIZE = (BLOCK_SIZE :: Int)
+bLOCK_SIZE_W = (bLOCK_SIZE `div` wORD_SIZE :: Int)
\end{code}