summaryrefslogtreecommitdiff
path: root/includes/mkDerivedConstants.c
diff options
context:
space:
mode:
authorIan Lynagh <ian@well-typed.com>2012-09-14 12:48:53 +0100
committerIan Lynagh <ian@well-typed.com>2012-09-14 12:48:53 +0100
commit9b0c4ed70cb4394bb293e4e6f863f877debcd655 (patch)
tree20ab9121e9a9c8a5911b8b8d352f6c776eae8e68 /includes/mkDerivedConstants.c
parentf4d0e6282da7b37fe019aaf91a32d3f958ceec64 (diff)
downloadhaskell-9b0c4ed70cb4394bb293e4e6f863f877debcd655.tar.gz
Start moving other constants from (Haskell)Constants to platformConstants
Diffstat (limited to 'includes/mkDerivedConstants.c')
-rw-r--r--includes/mkDerivedConstants.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/includes/mkDerivedConstants.c b/includes/mkDerivedConstants.c
index 69c87f0832..92024d3833 100644
--- a/includes/mkDerivedConstants.c
+++ b/includes/mkDerivedConstants.c
@@ -293,6 +293,26 @@ enum Mode { Gen_Haskell_Type, Gen_Haskell_Value, Gen_Haskell_Wrappers, Gen_Haske
#define FUN_OFFSET(sym) (OFFSET(Capability,f.sym) - OFFSET(Capability,r))
+void constantInt(char *name, intptr_t val) {
+ switch (mode) {
+ case Gen_Haskell_Type:
+ printf(" , pc_%s :: Int\n", name);
+ break;
+ case Gen_Haskell_Value:
+ printf(" , pc_%s = %" PRIdPTR "\n", name, val);
+ break;
+ case Gen_Haskell_Wrappers:
+ printf("%s :: DynFlags -> Int\n", name);
+ printf("%s dflags = pc_%s (sPlatformConstants (settings dflags))\n",
+ name, name);
+ break;
+ case Gen_Haskell_Exports:
+ printf(" %s,\n", name);
+ break;
+ case Gen_Header:
+ break;
+ }
+}
int
main(int argc, char *argv[])
@@ -602,6 +622,10 @@ main(int argc, char *argv[])
}
#endif
+ // pre-compiled thunk types
+ constantInt("mAX_SPEC_SELECTEE_SIZE", MAX_SPEC_SELECTEE_SIZE);
+ constantInt("mAX_SPEC_AP_SIZE", MAX_SPEC_AP_SIZE);
+
switch (mode) {
case Gen_Haskell_Type:
printf(" } deriving (Read, Show)\n");