Merge pull request #4660 from xmcclure/llvm-orbis
[mono.git] / mono / arch / arm / arm-vfp-codegen.h
index 8056f7bccc9de2c9b9b5c6610f691a742745e42e..edf558da2995f17b8e5663b0a4656bfc76576ec9 100644 (file)
@@ -1,6 +1,7 @@
 //
 // Copyright 2011 Xamarin Inc
 //
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
 
 #ifndef __MONO_ARM_VFP_CODEGEN_H__
 #define __MONO_ARM_VFP_CODEGEN_H__
@@ -8,7 +9,7 @@
 #include "arm-codegen.h"
 
 enum {
-       /* FPA registers */
+       /* VFP registers */
        ARM_VFP_F0,
        ARM_VFP_F1,
        ARM_VFP_F2,
@@ -160,7 +161,19 @@ enum {
 #define ARM_FSTD(p,freg,base,offset)   \
        ARM_FSTD_COND(p,freg,base,offset,ARMCOND_AL)
 
-#include "arm_vfpmacros.h"
+#define ARM_FLDMD_COND(p,first_reg,nregs,base,cond)                                                    \
+       ARM_EMIT((p), ARM_DEF_VFP_LSF((cond),ARM_VFP_COPROC_DOUBLE,0,ARMOP_LDR,0,(base),(first_reg),((nregs) * 2) << 2))
+
+#define ARM_FLDMD(p,first_reg,nregs,base)              \
+       ARM_FLDMD_COND(p,first_reg,nregs,base,ARMCOND_AL)
+
+#define ARM_FSTMD_COND(p,first_reg,nregs,base,cond)                                                    \
+       ARM_EMIT((p), ARM_DEF_VFP_LSF((cond),ARM_VFP_COPROC_DOUBLE,0,ARMOP_STR,0,(base),(first_reg),((nregs) * 2) << 2))
+
+#define ARM_FSTMD(p,first_reg,nregs,base)              \
+       ARM_FSTMD_COND(p,first_reg,nregs,base,ARMCOND_AL)
+
+#include <mono/arch/arm/arm_vfpmacros.h>
 
 /* coprocessor register transfer */
 #define ARM_FMSR(p,freg,reg)   \