]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/vfp/vfp.h
Merge branch 'for-rmk' of git://git.pengutronix.de/git/ukl/linux-2.6 into devel
[linux-2.6-omap-h63xx.git] / arch / arm / vfp / vfp.h
index 54a2ad6d9ca25a314514b6e99543c392a37ddde9..8de86e4feada7f56686abbbfe7b1a1067f50f466 100644 (file)
@@ -265,7 +265,11 @@ struct vfp_double {
  * which returns (double)0.0.  This is useful for the compare with
  * zero instructions.
  */
+#ifdef CONFIG_VFPv3
+#define VFP_REG_ZERO   32
+#else
 #define VFP_REG_ZERO   16
+#endif
 extern u64 vfp_get_double(unsigned int reg);
 extern void vfp_put_double(u64 val, unsigned int reg);
 
@@ -361,16 +365,18 @@ u32 vfp_estimate_sqrt_significand(u32 exponent, u32 significand);
  *  OP_SCALAR - this operation always operates in scalar mode
  *  OP_SD - the instruction exceptionally writes to a single precision result.
  *  OP_DD - the instruction exceptionally writes to a double precision result.
+ *  OP_SM - the instruction exceptionally reads from a single precision operand.
  */
 #define OP_SCALAR      (1 << 0)
 #define OP_SD          (1 << 1)
 #define OP_DD          (1 << 1)
+#define OP_SM          (1 << 2)
 
 struct op {
        u32 (* const fn)(int dd, int dn, int dm, u32 fpscr);
        u32 flags;
 };
 
-#ifdef CONFIG_SMP
+#if defined(CONFIG_SMP) || defined(CONFIG_PM)
 extern void vfp_save_state(void *location, u32 fpexc);
 #endif