X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini-x86.h;h=180e6cc967cab907b5ae8a86cfd070c5b18a7dbd;hb=c6676b0ff882733f0cbfea92cdf96cf1be6f5858;hp=0ca2bdcec44d54524c13b56004e93c1149bb4c8c;hpb=976a327692d647afed38ef70d1fa34916e934264;p=mono.git diff --git a/mono/mini/mini-x86.h b/mono/mini/mini-x86.h index 0ca2bdcec44..180e6cc967c 100644 --- a/mono/mini/mini-x86.h +++ b/mono/mini/mini-x86.h @@ -1,3 +1,7 @@ +/** + * \file + */ + #ifndef __MONO_MINI_X86_H__ #define __MONO_MINI_X86_H__ @@ -5,13 +9,6 @@ #include #include -#ifdef __native_client_codegen__ -#define kNaClAlignmentX86 32 -#define kNaClAlignmentMaskX86 (kNaClAlignmentX86 - 1) - -#define kNaClLengthOfCallImm kx86NaClLengthOfCallImm -#endif - #ifdef HOST_WIN32 #include /* use SIG* defines if possible */ @@ -41,18 +38,12 @@ LONG CALLBACK seh_handler(EXCEPTION_POINTERS* ep); #endif /* HOST_WIN32 */ -#ifdef __HAIKU__ -struct sigcontext { - vregs regs; -}; -#endif /* __HAIKU__ */ - #if defined( __linux__) || defined(__sun) || defined(__APPLE__) || defined(__NetBSD__) || \ defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) #define MONO_ARCH_USE_SIGACTION #endif -#if defined(__native_client__) || defined(HOST_WATCHOS) +#if defined(HOST_WATCHOS) #undef MONO_ARCH_USE_SIGACTION #endif @@ -205,21 +196,14 @@ typedef struct { #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_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_GENERALIZED_IMT_TRAMPOLINE 1 #define MONO_ARCH_HAVE_LIVERANGE_OPS 1 #define MONO_ARCH_HAVE_SIGCTX_TO_MONOCTX 1 -#if !defined(__native_client_codegen__) #define MONO_ARCH_HAVE_FULL_AOT_TRAMPOLINES 1 -#endif #define MONO_ARCH_GOT_REG X86_EBX #define MONO_ARCH_HAVE_GET_TRAMPOLINES 1 #define MONO_ARCH_HAVE_GENERAL_RGCTX_LAZY_FETCH_TRAMPOLINE 1 @@ -240,7 +224,6 @@ typedef struct { #define MONO_ARCH_SOFT_DEBUG_SUPPORTED 1 #define MONO_ARCH_HAVE_EXCEPTIONS_INIT 1 -#define MONO_ARCH_HAVE_HANDLER_BLOCK_GUARD 1 #define MONO_ARCH_HAVE_CARD_TABLE_WBARRIER 1 #define MONO_ARCH_HAVE_SETUP_RESUME_FROM_SIGNAL_HANDLER_CTX 1 @@ -250,10 +233,10 @@ typedef struct { #define MONO_ARCH_GSHAREDVT_SUPPORTED 1 #define MONO_ARCH_HAVE_OP_TAIL_CALL 1 #define MONO_ARCH_HAVE_TRANSLATE_TLS_OFFSET 1 -#define MONO_ARCH_HAVE_TLS_GET_REG 1 #define MONO_ARCH_HAVE_DUMMY_INIT 1 #define MONO_ARCH_HAVE_SDB_TRAMPOLINES 1 #define MONO_ARCH_HAVE_PATCH_CODE_NEW 1 +#define MONO_ARCH_HAVE_INIT_LMF_EXT 1 /* Used for optimization, not complete */ #define MONO_ARCH_IS_OP_MEMBASE(opcode) ((opcode) == OP_X86_PUSH_MEMBASE) @@ -324,6 +307,7 @@ typedef struct { /* Only if storage == ArgValuetypeInReg */ ArgStorage pair_storage [2]; gint8 pair_regs [2]; + guint8 pass_empty_struct : 1; // Set in scenarios when empty structs needs to be represented as argument. } ArgInfo; typedef struct { @@ -344,18 +328,9 @@ typedef struct { ArgInfo args [1]; } CallInfo; -guint8* -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); - guint32 mono_x86_get_this_arg_offset (MonoMethodSignature *sig); -gboolean -mono_x86_have_tls_get (void); - void mono_x86_throw_exception (mgreg_t *regs, MonoObject *exc, mgreg_t eip, gboolean rethrow);