X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini-arm.h;h=c1f21f8995ad9b794a8bb50646965dfb5c53709e;hb=3a86569d2768d0fb43d7eac5be868c0005501e4a;hp=921ab0fb5a898352ee9bf7bcef8cb05d83be8bdf;hpb=0b787f5c0e9dd94f8b55ea7fe78ddd208e32e367;p=mono.git diff --git a/mono/mini/mini-arm.h b/mono/mini/mini-arm.h index 921ab0fb5a8..c1f21f8995a 100644 --- a/mono/mini/mini-arm.h +++ b/mono/mini/mini-arm.h @@ -1,3 +1,7 @@ +/* + * Copyright 2011 Xamarin Inc + */ + #ifndef __MONO_MINI_ARM_H__ #define __MONO_MINI_ARM_H__ @@ -5,8 +9,14 @@ #include #include -#if defined(ARM_FPU_NONE) || (defined(__ARM_EABI__) && !defined(ARM_FPU_VFP)) -#define MONO_ARCH_SOFT_FLOAT 1 +#ifdef __native_client_codegen__ +#define kNaClAlignmentARM 16 +#define kNaClAlignmentMaskARM (kNaClAlignmentARM - 1) +#define kNaClLengthOfCallImm 4 +#endif + +#if defined(ARM_FPU_NONE) +#define MONO_ARCH_SOFT_FLOAT_FALLBACK 1 #endif #if defined(__ARM_EABI__) @@ -19,14 +29,14 @@ #define ARM_ARCHITECTURE "arm" #endif -#if defined(ARM_FPU_FPA) -#define ARM_FP_MODEL "fpa" -#elif defined(ARM_FPU_VFP) +#if defined(ARM_FPU_VFP) #define ARM_FP_MODEL "vfp" #elif defined(ARM_FPU_NONE) -#define ARM_FP_MODEL "soft-float" +#define ARM_FP_MODEL "vfp+fallback" +#elif defined(ARM_FPU_VFP_HARD) +#define ARM_FP_MODEL "vfp+hard" #else -#error "At least one of ARM_FPU_NONE or ARM_FPU_FPA or ARM_FPU_VFP must be defined." +#error "At least one of ARM_FPU_NONE, ARM_FPU_VFP or ARM_FPU_VFP_HARD must be defined." #endif #define MONO_ARCH_ARCHITECTURE ARM_ARCHITECTURE "," ARM_FP_MODEL @@ -42,10 +52,9 @@ #endif #define MONO_MAX_IREGS 16 -#define MONO_MAX_FREGS 16 +#define MONO_MAX_FREGS 32 #define MONO_SAVED_GREGS 10 /* r4-r11, ip, lr */ -#define MONO_SAVED_FREGS 8 /* r4-r11, ip, lr: registers saved in the LMF */ #define MONO_ARM_REGSAVE_MASK 0x5ff0 @@ -57,29 +66,54 @@ #define MONO_ARCH_CALLEE_REGS ((1<