X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini-x86.h;h=3063fc2cecae7bffbc927c5d7dba6198217ae0bc;hb=45890e8b46ac438d2b8ccc1bd0d74eea31870de1;hp=f2a95f793b7c17f86bf502e42d6ecd8b9c99b7c6;hpb=187071319ebd9b6ff41a872d2a0c353b251f69b6;p=mono.git diff --git a/mono/mini/mini-x86.h b/mono/mini/mini-x86.h index f2a95f793b7..3063fc2ceca 100644 --- a/mono/mini/mini-x86.h +++ b/mono/mini/mini-x86.h @@ -146,6 +146,11 @@ struct sigcontext { /*This is the max size of the locals area of a given frame. I think 1MB is a safe default for now*/ #define MONO_ARCH_MAX_FRAME_SIZE 0x100000 +/*This is how much a try block must be extended when is is preceeded by a Monitor.Enter() call. +It's 4 bytes as this is how many bytes + 1 that 'add 0x10, %esp' takes. It is used to pop the arguments from +the monitor.enter call and must be already protected.*/ +#define MONO_ARCH_MONITOR_ENTER_ADJUSTMENT 4 + struct MonoLMF { /* * If the lowest bit is set to 1, then this is a trampoline LMF frame. @@ -250,15 +255,6 @@ typedef struct { #define MONO_ARCH_INIT_TOP_LMF_ENTRY(lmf) do { (lmf)->ebp = -1; } while (0) -/* - * This structure is an extension of MonoLMF and contains extra information. - */ -typedef struct { - struct MonoLMF lmf; - gboolean debugger_invoke; - MonoContext ctx; /* if debugger_invoke is TRUE */ -} MonoLMFExt; - /* Enables OP_LSHL, OP_LSHL_IMM, OP_LSHR, OP_LSHR_IMM, OP_LSHR_UN, OP_LSHR_UN_IMM */ #define MONO_ARCH_NO_EMULATE_LONG_SHIFT_OPS @@ -320,6 +316,7 @@ typedef struct { #define MONO_ARCH_HAVE_HANDLER_BLOCK_GUARD 1 #define MONO_ARCH_HAVE_CARD_TABLE_WBARRIER 1 +#define MONO_ARCH_GC_MAPS_SUPPORTED 1 gboolean mono_x86_tail_call_supported (MonoMethodSignature *caller_sig, MonoMethodSignature *callee_sig) MONO_INTERNAL;