[project @ 2002-11-13 12:21:08 by simonmar]
[ghc-hetmet.git] / ghc / includes / Bytecodes.h
index fc44f26..fe32488 100644 (file)
@@ -1,6 +1,6 @@
 
 /* -----------------------------------------------------------------------------
- * $Id: Bytecodes.h,v 1.2 2000/12/08 15:45:55 sewardj Exp $
+ * $Id: Bytecodes.h,v 1.8 2001/08/09 11:19:16 sewardj Exp $
  *
  * (c) The GHC Team, 1998-2000
  *
 
 #define bci_ARGCHECK  1
 #define bci_PUSH_L    2
-#define bci_PUSH_LL   28
-#define bci_PUSH_LLL  29
-#define bci_PUSH_G    3
-#define bci_PUSH_AS   26
-#define bci_PUSHT_I   4
-#define bci_PUSHT_F   5
-#define bci_PUSHT_D   6
-#define bci_PUSHU_I   7
-#define bci_PUSHU_F   8
-#define bci_PUSHU_D   9
-#define bci_SLIDE     10
-#define bci_ALLOC     11
-#define bci_MKAP      12
-#define bci_UNPACK    13
+#define bci_PUSH_LL   3
+#define bci_PUSH_LLL  4
+#define bci_PUSH_G    5
+#define bci_PUSH_AS   6
+#define bci_PUSH_UBX  7
+#define bci_PUSH_TAG  8
+#define bci_SLIDE     9
+#define bci_ALLOC     10
+#define bci_MKAP      11
+#define bci_UNPACK    12
+#define bci_UPK_TAG   13
 #define bci_PACK      14
-#define bci_LABEL     15
-#define bci_TESTLT_I  16 
-#define bci_TESTEQ_I  17
-#define bci_TESTLT_F  18
-#define bci_TESTEQ_F  19
-#define bci_TESTLT_D  20
-#define bci_TESTEQ_D  21
-#define bci_TESTLT_P  22
-#define bci_TESTEQ_P  23
-#define bci_CASEFAIL  24
-#define bci_ENTER     25
-#define bci_RETURN    27
+#define bci_TESTLT_I  15 
+#define bci_TESTEQ_I  16
+#define bci_TESTLT_F  17
+#define bci_TESTEQ_F  18
+#define bci_TESTLT_D  19
+#define bci_TESTEQ_D  20
+#define bci_TESTLT_P  21
+#define bci_TESTEQ_P  22
+#define bci_CASEFAIL  23
+#define bci_ENTER     24
+#define bci_RETURN    25
+#define bci_STKCHECK  26
+#define bci_JMP       27
+#define bci_CCALL     28
+#define bci_SWIZZLE   29
+
+/* If a BCO definitely requires less than this many words of stack,
+   don't include an explicit STKCHECK insn in it.  The interpreter
+   will check for this many words of stack before running each BCO,
+   rendering an explicit check unnecessary in the majority of
+   cases. */
+#define INTERP_STACK_CHECK_THRESH  50
 
 /*-------------------------------------------------------------------------*/