summaryrefslogtreecommitdiff
path: root/includes/StgFun.h
diff options
context:
space:
mode:
Diffstat (limited to 'includes/StgFun.h')
-rw-r--r--includes/StgFun.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/includes/StgFun.h b/includes/StgFun.h
new file mode 100644
index 0000000000..e6f9b1fe0e
--- /dev/null
+++ b/includes/StgFun.h
@@ -0,0 +1,52 @@
+/* -----------------------------------------------------------------------------
+ * (c) The GHC Team, 2002
+ *
+ * Things for functions.
+ * ---------------------------------------------------------------------------*/
+
+#ifndef STGFUN_H
+#define STGFUN_H
+
+/* generic - function comes with a small bitmap */
+#define ARG_GEN 0
+
+/* generic - function comes with a large bitmap */
+#define ARG_GEN_BIG 1
+
+/* BCO - function is really a BCO */
+#define ARG_BCO 2
+
+/*
+ * Specialised function types: bitmaps and calling sequences
+ * for these functions are pre-generated: see ghc/utils/genapply and
+ * generated code in ghc/rts/AutoApply.cmm.
+ *
+ * NOTE: other places to change if you change this table:
+ * - utils/genapply/GenApply.hs: stackApplyTypes
+ * - compiler/codeGen/CgCallConv.lhs: stdPattern
+ */
+#define ARG_NONE 3
+#define ARG_N 4
+#define ARG_P 5
+#define ARG_F 6
+#define ARG_D 7
+#define ARG_L 8
+#define ARG_NN 9
+#define ARG_NP 10
+#define ARG_PN 11
+#define ARG_PP 12
+#define ARG_NNN 13
+#define ARG_NNP 14
+#define ARG_NPN 15
+#define ARG_NPP 16
+#define ARG_PNN 17
+#define ARG_PNP 18
+#define ARG_PPN 19
+#define ARG_PPP 20
+#define ARG_PPPP 21
+#define ARG_PPPPP 22
+#define ARG_PPPPPP 23
+#define ARG_PPPPPPP 24
+#define ARG_PPPPPPPP 25
+
+#endif /* STGFUN_H */