2002-04-25 Nick Drochak <ndrochak@gol.com>
[mono.git] / mono / metadata / opcodes.h
1 #ifndef __MONO_METADATA_OPCODES_H__
2 #define __MONO_METADATA_OPCODES_H__
3
4 /*
5  * opcodes.h: CIL instruction information
6  *
7  * Author:
8  *   Paolo Molaro (lupus@ximian.com)
9  *
10  * (C) 2002 Ximian, Inc.
11  */
12
13 enum {
14         MONO_FLOW_NEXT,
15         MONO_FLOW_BRANCH,
16         MONO_FLOW_COND_BRANCH,
17         MONO_FLOW_ERROR,
18         MONO_FLOW_CALL,
19         MONO_FLOW_RETURN,
20         MONO_FLOW_META
21 };
22
23 enum {
24         MonoInlineNone,
25         MonoInlineType,
26         MonoInlineField,
27         MonoInlineMethod,
28         MonoInlineTok,
29         MonoInlineString,
30         MonoInlineSig,
31         MonoInlineVar,
32         MonoShortInlineVar,
33         MonoInlineBrTarget,
34         MonoShortInlineBrTarget,
35         MonoInlineSwitch,
36         MonoInlineR,
37         MonoShortInlineR,
38         MonoInlineI,
39         MonoShortInlineI,
40         MonoInlineI8
41 };
42
43 typedef struct {
44         unsigned char argument;
45         unsigned char flow_type;
46         unsigned short opval;
47 } MonoOpcode;
48
49 #define MONO_N_OPCODES 300
50
51 extern const MonoOpcode mono_opcodes [MONO_N_OPCODES];
52 extern const char* const mono_opcode_names [MONO_N_OPCODES];
53
54 #endif /* __MONO_METADATA_OPCODES_H__ */