1 /*
2  * Copyright © 1988-2004 Keith Packard and Bart Massey.
3  * All Rights Reserved.  See the file COPYING in this directory
4  * for licensing information.
5  */
6 
7 #ifndef _CODE_H_
8 #define _CODE_H_
9 
10 typedef enum _OpCode {
11     OpNoop,
12     /*
13      * Statement op codes
14      */
15     OpBranch,
16     OpBranchFalse,
17     OpBranchTrue,
18     OpCase,
19     OpTagCase,
20     OpTagGlobal,
21     OpTagLocal,
22     OpDefault,
23     OpReturn,
24     OpReturnVoid,
25     OpFork,
26     OpCatch,
27     OpEndCatch,
28     OpRaise,
29     OpTwixt,
30     OpTwixtDone,
31     OpEnterDone,
32     OpLeaveDone,
33     OpFarJump,
34     OpUnwind,
35     /*
36      * Expr op codes
37      */
38     OpGlobal,
39     OpGlobalRef,
40     OpGlobalRefStore,
41     OpStatic,
42     OpStaticRef,
43     OpStaticRefStore,
44     OpLocal,
45     OpLocalRef,
46     OpLocalRefStore,
47     OpFetch,
48     OpConst,
49     OpBuildArray,
50     OpBuildArrayInd,
51     OpInitArray,
52     OpBuildHash,
53     OpInitHash,
54     OpInitHashDef,
55     OpBuildStruct,
56     OpInitStruct,
57     OpBuildUnion,
58     OpInitUnion,
59     OpArray,
60     OpArrayRef,
61     OpArrayRefStore,
62     OpVarActual,
63     OpCall,
64     OpTailCall,
65     OpExceptionCall,
66     OpDot,
67     OpDotRef,
68     OpDotRefStore,
69     OpArrow,
70     OpArrowRef,
71     OpArrowRefStore,
72     OpObj,
73     OpStaticInit,
74     OpStaticDone,
75     OpBinOp,
76     OpBinFunc,
77     OpUnOp,
78     OpUnFunc,
79     OpPreOp,
80     OpPostOp,
81     OpAssign,
82     OpAssignOp,
83     OpAssignFunc,
84     OpIsType,
85     OpHasMember,
86     OpEnd,
87     OpDrop
88 } __attribute__ ((packed)) OpCode;
89 
90 #endif /* _CODE_H_ */
91