X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fincludes%2FBytecodes.h;h=19b3fd1b2450751aa8677c171bcb5ac07955fbca;hb=53386c359c55bd6eaa13c35fe174c9274ff5888e;hp=fc44f2673e388d6a7f26105e53121b1a0c7ba6dd;hpb=52ac8225f6460e43dcc3e0a858859ecfdd88e768;p=ghc-hetmet.git diff --git a/ghc/includes/Bytecodes.h b/ghc/includes/Bytecodes.h index fc44f26..19b3fd1 100644 --- a/ghc/includes/Bytecodes.h +++ b/ghc/includes/Bytecodes.h @@ -1,8 +1,7 @@ - /* ----------------------------------------------------------------------------- - * $Id: Bytecodes.h,v 1.2 2000/12/08 15:45:55 sewardj Exp $ + * $Id: Bytecodes.h,v 1.9 2002/12/11 15:36:37 simonmar Exp $ * - * (c) The GHC Team, 1998-2000 + * (c) The GHC Team, 1998-2002 * * Bytecode definitions. * @@ -25,34 +24,63 @@ I hope that's clear :-) */ -#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_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_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 /*-------------------------------------------------------------------------*/