X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FConstants.lhs;h=2e0c4d4095240416c6de90a91e85e92268250ced;hb=0b9530245a33b8206ca38b9de6dfb01e056fd8dc;hp=4f13af8828a0329325df49b66f2ed3c8b4c80424;hpb=dc8ffcb9797ade3e3a68e6ec0a89fe2e7444e0ef;p=ghc-hetmet.git diff --git a/compiler/main/Constants.lhs b/compiler/main/Constants.lhs index 4f13af8..2e0c4d4 100644 --- a/compiler/main/Constants.lhs +++ b/compiler/main/Constants.lhs @@ -6,6 +6,8 @@ \begin{code} module Constants (module Constants) where +import Data.Bits (shiftL) + -- This magical #include brings in all the everybody-knows-these magic -- constants unfortunately, we need to be *explicit* about which one -- we want; if we just hope a -I... will get the right one, we could @@ -108,6 +110,14 @@ wORD_SIZE = (SIZEOF_HSWORD :: Int) wORD_SIZE_IN_BITS = wORD_SIZE * 8 :: Int \end{code} +Amount of pointer bits used for semi-tagging constructor closures + +\begin{code} +tAG_BITS = (TAG_BITS :: Int) +tAG_MASK = ((1 `shiftL` tAG_BITS) - 1) :: Int +mAX_PTR_TAG = tAG_MASK :: Int +\end{code} + Size of a C int, in bytes. May be smaller than wORD_SIZE. \begin{code}