X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini-mips.h;h=de4898bdd3e06cfce4162bfbce591c22bc293ff7;hb=HEAD;hp=06c533aee46cffa33e738dfd1b665dd6685f85e9;hpb=f6b8e1f10d5cd18826aad50e5a2b8d2aabf3222a;p=mono.git diff --git a/mono/mini/mini-mips.h b/mono/mini/mini-mips.h index 06c533aee46..de4898bdd3e 100644 --- a/mono/mini/mini-mips.h +++ b/mono/mini/mini-mips.h @@ -1,3 +1,7 @@ +/** + * \file + */ + #ifndef __MONO_MINI_MIPS_H__ #define __MONO_MINI_MIPS_H__ @@ -233,6 +237,15 @@ typedef struct MonoCompileArch { #define MONO_ARCH_EMULATE_FREM 1 #endif +/* + * mips backend misses some instructions that enable emitting of optimal + * code on other targets and, additionally, the register allocator gets + * confused by this optimization, failing to allocate all hw regs. + */ +#if SIZEOF_REGISTER == 4 +#define MONO_ARCH_NO_DIV_WITH_MUL +#endif + #if SIZEOF_REGISTER == 8 #define MONO_ARCH_NO_EMULATE_LONG_MUL_OPTS #endif @@ -269,6 +282,7 @@ typedef struct MonoCompileArch { #define MONO_ARCH_HAVE_SIGCTX_TO_MONOCTX 1 #define MONO_ARCH_HAVE_SETUP_RESUME_FROM_SIGNAL_HANDLER_CTX 1 #define MONO_ARCH_GSHARED_SUPPORTED 1 +#define MONO_ARCH_HAVE_INIT_LMF_EXT 1 /* set the next to 0 once inssel-mips.brg is updated */ #define MIPS_PASS_STRUCTS_BY_VALUE 1