grammar updates
[mono.git] / mono / metadata / opcodes.h
index fb7b4e47c0ffd8ca6fdff6795d76bb820c90dfcd..dec47adc7020e9089c66fdd5bb51f9f248dc8a5b 100644 (file)
  * (C) 2002 Ximian, Inc.
  */
 
+#include <glib.h>
+
+#define MONO_CUSTOM_PREFIX 0xf0
+
+#define OPDEF(a,b,c,d,e,f,g,h,i,j) \
+       MONO_ ## a,
+
+typedef enum {
+#include "mono/cil/opcode.def"
+       MONO_CEE_LAST
+} MonoOpcodeEnum;
+
+#undef OPDEF
+
 enum {
        MONO_FLOW_NEXT,
        MONO_FLOW_BRANCH,
@@ -43,12 +57,13 @@ enum {
 typedef struct {
        unsigned char argument;
        unsigned char flow_type;
-       unsigned char byte0, byte1;
+       unsigned short opval;
 } MonoOpcode;
 
-#define MONO_N_OPCODES 300
+extern const MonoOpcode mono_opcodes [];
+extern const char* const mono_opcode_names [];
 
-extern const MonoOpcode mono_opcodes [MONO_N_OPCODES];
-extern const char* const mono_opcode_names [MONO_N_OPCODES];
+MonoOpcodeEnum
+mono_opcode_value (const guint8 **ip);
 
 #endif /* __MONO_METADATA_OPCODES_H__ */