X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini.h;h=3159149307040796ecef73de4c5a6fc3ae92d7e5;hb=dfac8517b91687f11479801fa0a2191585b1ad4c;hp=082b243966ac1378354d4459ddb86ffb9b45d7c0;hpb=1adda99f1008ef2d01312502c500c78de062a71a;p=mono.git diff --git a/mono/mini/mini.h b/mono/mini/mini.h index 082b243966a..31591493070 100644 --- a/mono/mini/mini.h +++ b/mono/mini/mini.h @@ -2,6 +2,7 @@ * Copyright 2002-2003 Ximian Inc * Copyright 2003-2011 Novell Inc * Copyright 2011 Xamarin Inc + * Licensed under the MIT license. See LICENSE file in the project root for full license information. */ #ifndef __MONO_MINI_H__ #define __MONO_MINI_H__ @@ -39,6 +40,7 @@ #include "regalloc.h" #include "mini-unwind.h" #include "jit.h" +#include "cfgdump.h" #include "mono/metadata/class-internals.h" #include "mono/metadata/domain-internals.h" @@ -114,7 +116,7 @@ #endif /* Version number of the AOT file format */ -#define MONO_AOT_FILE_VERSION 132 +#define MONO_AOT_FILE_VERSION 133 //TODO: This is x86/amd64 specific. #define mono_simd_shuffle_mask(a,b,c,d) ((a) | ((b) << 2) | ((c) << 4) | ((d) << 6)) @@ -354,6 +356,8 @@ typedef struct gpointer *memcpy_addr [17]; gpointer *bzero_addr [17]; gpointer llvm_module; + /* Maps MonoMethod -> GSlist of addresses */ + GHashTable *llvm_jit_callees; } MonoJitDomainInfo; typedef struct { @@ -1840,6 +1844,9 @@ typedef struct { /* Error handling */ MonoError error; + /* pointer to context datastructure used for graph dumping */ + MonoGraphDumper *gdump_ctx; + /* Stats */ int stat_allocate_var; int stat_locals_stack_size; @@ -2131,6 +2138,11 @@ typedef struct { * Translate Debugger.Break () into a native breakpoint signal */ gboolean native_debugger_break; + /* + * Disabling the frame pointer emit optimization can allow debuggers to more easily + * identify the stack on some platforms + */ + gboolean disable_omit_fp; } MonoDebugOptions; enum { @@ -2274,11 +2286,19 @@ mono_bb_last_inst (MonoBasicBlock *bb, int filter) MONO_API int mono_main (int argc, char* argv[]); MONO_API void mono_set_defaults (int verbose_level, guint32 opts); MONO_API void mono_parse_env_options (int *ref_argc, char **ref_argv []); +MONO_API char *mono_parse_options_from (const char *options, int *ref_argc, char **ref_argv []); + MonoDomain* mini_init (const char *filename, const char *runtime_version); void mini_cleanup (MonoDomain *domain); MONO_API MonoDebugOptions *mini_get_debug_options (void); MONO_API gboolean mini_parse_debug_option (const char *option); +/* graph dumping */ +void mono_cfg_dump_create_context (MonoCompile *cfg); +void mono_cfg_dump_begin_group (MonoCompile *cfg); +void mono_cfg_dump_close_group (MonoCompile *cfg); +void mono_cfg_dump_ir (MonoCompile *cfg, const char *phase_name); + /* helper methods */ void mini_jit_init (void); void mini_jit_cleanup (void); @@ -2334,6 +2354,7 @@ void mono_blockset_print (MonoCompile *cfg, MonoBitSet *set, const char*mono_ji_type_to_string (MonoJumpInfoType type); void mono_print_ji (const MonoJumpInfo *ji); void mono_print_ins_index (int i, MonoInst *ins); +GString *mono_print_ins_index_strbuf (int i, MonoInst *ins); void mono_print_ins (MonoInst *ins); void mono_print_bb (MonoBasicBlock *bb, const char *msg); void mono_print_code (MonoCompile *cfg, const char *msg); @@ -3002,6 +3023,10 @@ mono_method_is_generic_sharable_full (MonoMethod *method, gboolean allow_type_va gboolean mini_class_is_generic_sharable (MonoClass *klass); + +gboolean +mini_generic_inst_is_sharable (MonoGenericInst *inst, gboolean allow_type_vars, gboolean allow_partial); + gboolean mono_is_partially_sharable_inst (MonoGenericInst *inst); @@ -3182,4 +3207,10 @@ gboolean MONO_SIG_HANDLER_SIGNATURE (mono_chain_signal); #define ARCH_VARARG_ICALLS 0 #endif +/* + * Native unwinder integration + */ +void mono_exception_native_unwind (void *ctx, MONO_SIG_HANDLER_INFO_TYPE *info); + + #endif /* __MONO_MINI_H__ */