X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fincludes%2FBytecodes.h;h=b6e05ddbafff57040f542e57a9b8dacaa01d42ce;hb=6a56f3ba02d33c38c95ff8f8da8a28d07f02ede9;hp=7e4869a9a4e8734efb992968f90b4e4f0444ca4e;hpb=fbf965da0a16d593400ae8b18be187350fc91c0c;p=ghc-hetmet.git diff --git a/ghc/includes/Bytecodes.h b/ghc/includes/Bytecodes.h index 7e4869a..b6e05dd 100644 --- a/ghc/includes/Bytecodes.h +++ b/ghc/includes/Bytecodes.h @@ -1,8 +1,7 @@ - /* ----------------------------------------------------------------------------- - * $Id: Bytecodes.h,v 1.3 2000/12/12 17:16:54 sewardj Exp $ + * $Id: Bytecodes.h,v 1.10 2004/09/07 10:10:07 simonmar Exp $ * - * (c) The GHC Team, 1998-2000 + * (c) The GHC Team, 1998-2002 * * Bytecode definitions. * @@ -25,31 +24,63 @@ I hope that's clear :-) */ -#define bci_ARGCHECK 1 -#define bci_PUSH_L 2 -#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 26 +#define bci_STKCHECK 1 +#define bci_PUSH_L 2 +#define bci_PUSH_LL 3 +#define bci_PUSH_LLL 4 +#define bci_PUSH_G 5 +#define bci_PUSH_ALTS 6 +#define bci_PUSH_ALTS_P 7 +#define bci_PUSH_ALTS_N 8 +#define bci_PUSH_ALTS_F 9 +#define bci_PUSH_ALTS_D 10 +#define bci_PUSH_ALTS_L 11 +#define bci_PUSH_ALTS_V 12 +#define bci_PUSH_UBX 13 +#define bci_PUSH_APPLY_N 14 +#define bci_PUSH_APPLY_F 15 +#define bci_PUSH_APPLY_D 16 +#define bci_PUSH_APPLY_L 17 +#define bci_PUSH_APPLY_V 18 +#define bci_PUSH_APPLY_P 19 +#define bci_PUSH_APPLY_PP 20 +#define bci_PUSH_APPLY_PPP 21 +#define bci_PUSH_APPLY_PPPP 22 +#define bci_PUSH_APPLY_PPPPP 23 +#define bci_PUSH_APPLY_PPPPPP 24 +/* #define bci_PUSH_APPLY_PPPPPPP 25 */ +#define bci_SLIDE 26 +#define bci_ALLOC_AP 27 +#define bci_ALLOC_PAP 28 +#define bci_MKAP 29 +#define bci_UNPACK 30 +#define bci_PACK 31 +#define bci_TESTLT_I 32 +#define bci_TESTEQ_I 33 +#define bci_TESTLT_F 34 +#define bci_TESTEQ_F 35 +#define bci_TESTLT_D 36 +#define bci_TESTEQ_D 37 +#define bci_TESTLT_P 38 +#define bci_TESTEQ_P 39 +#define bci_CASEFAIL 40 +#define bci_JMP 41 +#define bci_CCALL 42 +#define bci_SWIZZLE 43 +#define bci_ENTER 44 +#define bci_RETURN 45 +#define bci_RETURN_P 46 +#define bci_RETURN_N 47 +#define bci_RETURN_F 48 +#define bci_RETURN_D 49 +#define bci_RETURN_L 50 +#define bci_RETURN_V 51 + +/* 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 /*-------------------------------------------------------------------------*/