X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini-x86.h;h=173f05fa58d0a5babd562254f1f80a7fc5bfc0fa;hb=8fad4b7607c3ade6102de2341783f7db22208ad4;hp=c0c57b121f7d6d3d556c1a0c6bbd537033fc4db0;hpb=9fa63279786375c0f81dcb87baf752eb67b8ffb3;p=mono.git diff --git a/mono/mini/mini-x86.h b/mono/mini/mini-x86.h index c0c57b121f7..173f05fa58d 100644 --- a/mono/mini/mini-x86.h +++ b/mono/mini/mini-x86.h @@ -48,7 +48,7 @@ struct sigcontext { #endif /* __HAIKU__ */ #if defined( __linux__) || defined(__sun) || defined(__APPLE__) || defined(__NetBSD__) || \ - defined(__FreeBSD__) || defined(__OpenBSD__) + defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) #define MONO_ARCH_USE_SIGACTION #endif @@ -74,8 +74,6 @@ struct sigcontext { #endif /* HAVE_WORKING_SIGALTSTACK */ #endif /* !HOST_WIN32 */ -/* #define MONO_X86_NO_PUSHES 1 */ - #define MONO_ARCH_SUPPORT_TASKLETS 1 #ifndef DISABLE_SIMD @@ -136,9 +134,6 @@ struct sigcontext { * reproduceable results for benchmarks */ #define MONO_ARCH_CODE_ALIGNMENT 32 -#define MONO_ARCH_RETREG1 X86_EAX -#define MONO_ARCH_RETREG2 X86_EDX - /*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 @@ -169,7 +164,6 @@ struct MonoLMF { typedef struct { gboolean need_stack_frame_inited; gboolean need_stack_frame; - gboolean no_pushes; int sp_fp_offset, param_area_size; } MonoCompileArch; @@ -204,24 +198,26 @@ typedef struct { /* 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 -#define MONO_ARCH_BIGMUL_INTRINS 1 #define MONO_ARCH_NEED_DIV_CHECK 1 #define MONO_ARCH_HAVE_IS_INT_OVERFLOW 1 #define MONO_ARCH_HAVE_INVALIDATE_METHOD 1 #define MONO_ARCH_NEED_GOT_VAR 1 +#ifndef HOST_WIN32 +/* X86 uses jit_tls->lmf (See emit_push_lmf ()) */ #define MONO_ARCH_ENABLE_MONO_LMF_VAR 1 +#endif #define MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE 1 -#define MONO_ARCH_HAVE_IMT 1 #define MONO_ARCH_HAVE_TLS_GET (mono_x86_have_tls_get ()) #define MONO_ARCH_IMT_REG X86_EDX #define MONO_ARCH_VTABLE_REG X86_EDX #define MONO_ARCH_RGCTX_REG MONO_ARCH_IMT_REG +#define MONO_ARCH_EXC_REG X86_EAX #define MONO_ARCH_HAVE_GENERALIZED_IMT_THUNK 1 #define MONO_ARCH_HAVE_LIVERANGE_OPS 1 -#define MONO_ARCH_HAVE_XP_UNWIND 1 #define MONO_ARCH_HAVE_SIGCTX_TO_MONOCTX 1 #if defined(__linux__) || defined (__APPLE__) #define MONO_ARCH_MONITOR_OBJECT_REG X86_EAX +#define MONO_ARCH_MONITOR_LOCK_TAKEN_REG X86_EDX #endif #if !defined(__native_client_codegen__) #define MONO_ARCH_HAVE_FULL_AOT_TRAMPOLINES 1 @@ -238,16 +234,11 @@ typedef struct { #define MONO_ARCH_HAVE_DECOMPOSE_LONG_OPTS 1 -#ifndef TARGET_WIN32 #define MONO_ARCH_AOT_SUPPORTED 1 -#endif - -#define MONO_ARCH_ENABLE_MONITOR_IL_FASTPATH 1 #define MONO_ARCH_GSHARED_SUPPORTED 1 #define MONO_ARCH_HAVE_LLVM_IMT_TRAMPOLINE 1 #define MONO_ARCH_LLVM_SUPPORTED 1 -#define MONO_ARCH_THIS_AS_FIRST_ARG 1 #if defined(MONO_ARCH_USE_SIGACTION) || defined(TARGET_WIN32) #define MONO_ARCH_SOFT_DEBUG_SUPPORTED 1 @@ -321,30 +312,30 @@ typedef struct { } GSharedVtCallInfo; guint8* -mono_x86_emit_tls_get (guint8* code, int dreg, int tls_offset) MONO_INTERNAL; +mono_x86_emit_tls_get (guint8* code, int dreg, int tls_offset); guint8* -mono_x86_emit_tls_get_reg (guint8* code, int dreg, int offset_reg) MONO_INTERNAL; +mono_x86_emit_tls_get_reg (guint8* code, int dreg, int offset_reg); guint32 -mono_x86_get_this_arg_offset (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig) MONO_INTERNAL; +mono_x86_get_this_arg_offset (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig); gboolean -mono_x86_have_tls_get (void) MONO_INTERNAL; +mono_x86_have_tls_get (void); void mono_x86_throw_exception (mgreg_t *regs, MonoObject *exc, - mgreg_t eip, gboolean rethrow) MONO_INTERNAL; + mgreg_t eip, gboolean rethrow); void mono_x86_throw_corlib_exception (mgreg_t *regs, guint32 ex_token_index, - mgreg_t eip, gint32 pc_offset) MONO_INTERNAL; + mgreg_t eip, gint32 pc_offset); void -mono_x86_patch (unsigned char* code, gpointer target) MONO_INTERNAL; +mono_x86_patch (unsigned char* code, gpointer target); gpointer -mono_x86_start_gsharedvt_call (GSharedVtCallInfo *info, gpointer *caller, gpointer *callee, gpointer mrgctx_reg) MONO_INTERNAL; +mono_x86_start_gsharedvt_call (GSharedVtCallInfo *info, gpointer *caller, gpointer *callee, gpointer mrgctx_reg); #endif /* __MONO_MINI_X86_H__ */