1 /** 2 * \file 3 */ 4 5 #ifndef __MONO_METADATA_BASIC_BLOCK_H__ 6 #define __MONO_METADATA_BASIC_BLOCK_H__ 7 8 #include <glib.h> 9 #include <mono/metadata/metadata.h> 10 #include <mono/utils/mono-compiler.h> 11 #include <mono/utils/mono-error.h> 12 13 G_BEGIN_DECLS 14 15 typedef struct _MonoSimpleBasicBlock MonoSimpleBasicBlock; 16 17 struct _MonoSimpleBasicBlock { 18 MonoSimpleBasicBlock *next, *left, *right, *parent; 19 GSList *out_bb; 20 int start, end; 21 unsigned colour : 1; 22 unsigned dead : 1; 23 }; 24 25 MonoSimpleBasicBlock* 26 mono_basic_block_split (MonoMethod *method, MonoError *error, MonoMethodHeader *header); 27 28 void 29 mono_basic_block_free (MonoSimpleBasicBlock *bb); 30 31 32 /*This function is here because opcodes.h is a public header*/ 33 int 34 mono_opcode_value_and_size (const unsigned char **ip, const unsigned char *end, int *value); 35 36 int 37 mono_opcode_size (const unsigned char *ip, const unsigned char *end); 38 39 G_END_DECLS 40 41 #endif /* __MONO_METADATA_BASIC_BLOCK_H__ */ 42 43