#include "jit.h"
#include "cfgdump.h"
-#include "mono/metadata/class-internals.h"
-#include "mono/metadata/domain-internals.h"
-#include "mono/metadata/object.h"
#include "mono/metadata/tabledefs.h"
#include "mono/metadata/marshal.h"
#include "mono/metadata/security-manager.h"
#include "mono/metadata/exception.h"
-#include "mono/utils/mono-compiler.h"
#ifdef __native_client_codegen__
#include <nacl/nacl_dyncode.h>
#define MONO_BB_FOR_EACH_INS_SAFE(bb, n, ins) for ((ins) = (bb)->code, n = (ins) ? (ins)->next : NULL; (ins); (ins) = (n), (n) = (ins) ? (ins)->next : NULL)
+#define MONO_BB_FOR_EACH_INS_REVERSE(bb, ins) for ((ins) = (bb)->last_ins; (ins); (ins) = (ins)->prev)
+
#define MONO_BB_FOR_EACH_INS_REVERSE_SAFE(bb, p, ins) for ((ins) = (bb)->last_ins, p = (ins) ? (ins)->prev : NULL; (ins); (ins) = (p), (p) = (ins) ? (ins)->prev : NULL)
#define mono_bb_first_ins(bb) (bb)->code
/* Whenever to compile in llvm-only mode */
JIT_FLAG_LLVM_ONLY = (1 << 6),
/* Whenever calls to pinvoke functions are made directly */
- JIT_FLAG_DIRECT_PINVOKE = (1 << 7)
+ JIT_FLAG_DIRECT_PINVOKE = (1 << 7),
+ /* Whenever this is a compile-all run and the result should be discarded */
+ JIT_FLAG_DISCARD_RESULTS = (1 << 8),
} JitFlags;
/* Bit-fields in the MonoBasicBlock.region */
gboolean better_cast_details;
gboolean mdb_optimizations;
gboolean no_gdb_backtrace;
- gboolean suspend_on_sigsegv;
+ gboolean suspend_on_native_crash;
gboolean suspend_on_exception;
gboolean suspend_on_unhandled;
gboolean dyn_runtime_invoke;
void mono_optimize_branches (MonoCompile *cfg);
void mono_blockset_print (MonoCompile *cfg, MonoBitSet *set, const char *name, guint idom);
-const char*mono_ji_type_to_string (MonoJumpInfoType type);
+const char*mono_ji_type_to_string (MonoJumpInfoType type) MONO_LLVM_INTERNAL;
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);
guint8* mono_arch_get_call_target (guint8 *code);
guint32 mono_arch_get_plt_info_offset (guint8 *plt_entry, mgreg_t *regs, guint8 *code);
GSList *mono_arch_get_trampolines (gboolean aot);
-#ifdef ENABLE_INTERPRETER
-gpointer mono_arch_get_enter_icall_trampoline (MonoTrampInfo **info);
-#endif
/* Handle block guard */
gpointer mono_arch_install_handler_block_guard (MonoJitInfo *ji, MonoJitExceptionInfo *clause, MonoContext *ctx, gpointer new_value);