2 /* -----------------------------------------------------------------------------
3 * $Id: Bytecodes.h,v 1.6 2001/03/21 10:56:04 sewardj Exp $
5 * (c) The GHC Team, 1998-2000
7 * Bytecode definitions.
9 * ---------------------------------------------------------------------------*/
11 /* --------------------------------------------------------------------------
15 * o CASEFAIL is generated by the compiler whenever it tests an "irrefutable"
16 * pattern which fails. If we don't see too many of these, we could
17 * optimise out the redundant test.
18 * ------------------------------------------------------------------------*/
22 THIS FILE IS INCLUDED IN HASKELL SOURCES (ghc/compiler/ghci/ByteCodeGen.lhs).
23 DO NOT PUT C-SPECIFIC STUFF IN HERE!
25 I hope that's clear :-)
28 #define bci_ARGCHECK 1
31 #define bci_PUSH_LLL 4
34 #define bci_PUSH_UBX 7
35 #define bci_PUSH_TAG 8
40 #define bci_UPK_TAG 13
42 #define bci_TESTLT_I 15
43 #define bci_TESTEQ_I 16
44 #define bci_TESTLT_F 17
45 #define bci_TESTEQ_F 18
46 #define bci_TESTLT_D 19
47 #define bci_TESTEQ_D 20
48 #define bci_TESTLT_P 21
49 #define bci_TESTEQ_P 22
50 #define bci_CASEFAIL 23
53 #define bci_STKCHECK 26
57 /* If a BCO definitely requires less than this many words of stack,
58 don't include an explicit STKCHECK insn in it. The interpreter
59 will check for this many words of stack before running each BCO,
60 rendering an explicit check unnecessary in the majority of
62 #define INTERP_STACK_CHECK_THRESH 50
64 /*-------------------------------------------------------------------------*/