projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 2001-11-03 01:30:42 by sof]
[ghc-hetmet.git]
/
ghc
/
compiler
/
main
/
Constants.lhs
diff --git
a/ghc/compiler/main/Constants.lhs
b/ghc/compiler/main/Constants.lhs
index
641b9f7
..
daa1c84
100644
(file)
--- a/
ghc/compiler/main/Constants.lhs
+++ b/
ghc/compiler/main/Constants.lhs
@@
-24,6
+24,7
@@
module Constants (
aRR_WORDS_HDR_SIZE,
aRR_PTRS_HDR_SIZE,
rESERVED_C_STACK_BYTES,
aRR_WORDS_HDR_SIZE,
aRR_PTRS_HDR_SIZE,
rESERVED_C_STACK_BYTES,
+ rESERVED_STACK_WORDS,
sTD_ITBL_SIZE,
pROF_ITBL_SIZE,
sTD_ITBL_SIZE,
pROF_ITBL_SIZE,
@@
-33,15
+34,14
@@
module Constants (
mAX_FAMILY_SIZE_FOR_VEC_RETURNS,
uF_SIZE,
mAX_FAMILY_SIZE_FOR_VEC_RETURNS,
uF_SIZE,
- sCC_UF_SIZE,
+ pROF_UF_SIZE,
gRAN_UF_SIZE, -- HWL
uF_RET,
uF_SU,
uF_UPDATEE,
gRAN_UF_SIZE, -- HWL
uF_RET,
uF_SU,
uF_UPDATEE,
- uF_CCS,
sEQ_FRAME_SIZE,
sEQ_FRAME_SIZE,
- sCC_SEQ_FRAME_SIZE,
+ pROF_SEQ_FRAME_SIZE,
gRAN_SEQ_FRAME_SIZE, -- HWL
mAX_Vanilla_REG,
gRAN_SEQ_FRAME_SIZE, -- HWL
mAX_Vanilla_REG,
@@
-57,6
+57,7
@@
module Constants (
oTHER_TAG,
mAX_INTLIKE, mIN_INTLIKE,
oTHER_TAG,
mAX_INTLIKE, mIN_INTLIKE,
+ mAX_CHARLIKE, mIN_CHARLIKE,
spRelToInt,
spRelToInt,
@@
-64,9
+65,10
@@
module Constants (
iNT64_SIZE,
wORD64_SIZE,
iNT64_SIZE,
wORD64_SIZE,
- bLOCK_SIZE,
+ wORD_SIZE,
- interfaceFileFormatVersion
+ bLOCK_SIZE,
+ bLOCK_SIZE_W
) where
) where
@@
-79,6
+81,8
@@
module Constants (
#include "../includes/config.h"
#include "../includes/MachRegs.h"
#include "../includes/Constants.h"
#include "../includes/config.h"
#include "../includes/MachRegs.h"
#include "../includes/Constants.h"
+#include "../includes/MachDeps.h"
+#include "../includes/DerivedConstants.h"
-- import Util
\end{code}
-- import Util
\end{code}
@@
-117,6
+121,10
@@
oTHER_TAG = (INFO_OTHER_TAG :: Integer) -- (-1) unevaluated, probably
mIN_INTLIKE, mAX_INTLIKE :: Integer -- Only used to compare with (MachInt Integer)
mIN_INTLIKE = MIN_INTLIKE
mAX_INTLIKE = MAX_INTLIKE
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
\end{code}
A little function that abstracts the stack direction. Note that most
@@
-140,10
+148,10
@@
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
-- If you change this, you may need to change runtimes/standard/Update.lhc
-- The update frame sizes
-uF_SIZE = (NOSCC_UF_SIZE::Int)
+uF_SIZE = (STD_UF_SIZE::Int)
-- Same again, with profiling
-- Same again, with profiling
-sCC_UF_SIZE = (SCC_UF_SIZE::Int)
+pROF_UF_SIZE = (PROF_UF_SIZE::Int)
-- Same again, with gransim
gRAN_UF_SIZE = (GRAN_UF_SIZE::Int)
-- Same again, with gransim
gRAN_UF_SIZE = (GRAN_UF_SIZE::Int)
@@
-152,14
+160,13
@@
gRAN_UF_SIZE = (GRAN_UF_SIZE::Int)
uF_RET = (UF_RET::Int)
uF_SU = (UF_SU::Int)
uF_UPDATEE = (UF_UPDATEE::Int)
uF_RET = (UF_RET::Int)
uF_SU = (UF_SU::Int)
uF_UPDATEE = (UF_UPDATEE::Int)
-uF_CCS = (UF_CCS::Int)
\end{code}
Seq frame sizes.
\begin{code}
\end{code}
Seq frame sizes.
\begin{code}
-sEQ_FRAME_SIZE = (NOSCC_SEQ_FRAME_SIZE::Int)
-sCC_SEQ_FRAME_SIZE = (SCC_SEQ_FRAME_SIZE::Int)
+sEQ_FRAME_SIZE = (STD_SEQ_FRAME_SIZE::Int)
+pROF_SEQ_FRAME_SIZE = (PROF_SEQ_FRAME_SIZE::Int)
gRAN_SEQ_FRAME_SIZE = (GRAN_SEQ_FRAME_SIZE::Int)
\end{code}
gRAN_SEQ_FRAME_SIZE = (GRAN_SEQ_FRAME_SIZE::Int)
\end{code}
@@
-202,28
+209,34
@@
tICKY_ITBL_SIZE = (TICKY_ITBL_SIZE :: Int)
Size of a double in StgWords.
\begin{code}
Size of a double in StgWords.
\begin{code}
-dOUBLE_SIZE = (DOUBLE_SIZE :: Int)
-wORD64_SIZE = (WORD64_SIZE :: Int)
-iNT64_SIZE = (INT64_SIZE :: Int)
+dOUBLE_SIZE = (SIZEOF_DOUBLE `quot` SIZEOF_HSWORD :: Int)
+wORD64_SIZE = (8 `quot` SIZEOF_HSWORD :: Int)
+iNT64_SIZE = wORD64_SIZE
\end{code}
\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}
\begin{code}
-interfaceFileFormatVersion :: Int
-interfaceFileFormatVersion = HscIfaceFileVersion
+rESERVED_C_STACK_BYTES = (RESERVED_C_STACK_BYTES :: Int)
\end{code}
\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}
\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 = (SIZEOF_HSWORD :: Int)
\end{code}
Size of a storage manager block (in bytes).
\begin{code}
bLOCK_SIZE = (BLOCK_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}
\end{code}