]> err.no Git - linux-2.6/blobdiff - arch/arm/vfp/vfpdouble.c
[PATCH] Corgi: Add MMC/SD write protection switch handling
[linux-2.6] / arch / arm / vfp / vfpdouble.c
index fa3053e84db56996701bad20b6f757c10f0ae9bb..9b367a65cb4d65caec8afedf39b53c2cb99b0159 100644 (file)
@@ -32,6 +32,8 @@
  */
 #include <linux/kernel.h>
 #include <linux/bitops.h>
+
+#include <asm/div64.h>
 #include <asm/ptrace.h>
 #include <asm/vfp.h>
 
@@ -768,6 +770,9 @@ vfp_double_add(struct vfp_double *vdd, struct vfp_double *vdn,
                if ((s64)m_sig < 0) {
                        vdd->sign = vfp_sign_negate(vdd->sign);
                        m_sig = -m_sig;
+               } else if (m_sig == 0) {
+                       vdd->sign = (fpscr & FPSCR_RMODE_MASK) ==
+                                     FPSCR_ROUND_MINUSINF ? 0x8000 : 0;
                }
        } else {
                m_sig += vdn->significand;