]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - arch/arm/vfp/vfpmodule.c
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
[net-next-2.6.git] / arch / arm / vfp / vfpmodule.c
index def19f83d8129fdcbb5ad1ab7baeb607983a7a84..7f3f59fcaa2199dda10eebd5b7bfa62348643342 100644 (file)
@@ -197,10 +197,13 @@ static void vfp_raise_exceptions(u32 exceptions, u32 inst, u32 fpscr, struct pt_
        }
 
        /*
-        * Update the FPSCR with the additional exception flags.
+        * If any of the status flags are set, update the FPSCR.
         * Comparison instructions always return at least one of
         * these flags set.
         */
+       if (exceptions & (FPSCR_N|FPSCR_Z|FPSCR_C|FPSCR_V))
+               fpscr &= ~(FPSCR_N|FPSCR_Z|FPSCR_C|FPSCR_V);
+
        fpscr |= exceptions;
 
        fmxr(FPSCR, fpscr);