]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
target-mips: Activate IEEE 754-2008 signaling NaN bit meaning for MSA
authorAleksandar Markovic <aleksandar.markovic@imgtec.com>
Fri, 10 Jun 2016 09:57:33 +0000 (11:57 +0200)
committerLeon Alrae <leon.alrae@imgtec.com>
Fri, 24 Jun 2016 12:41:45 +0000 (13:41 +0100)
Function msa_reset() is updated so that flag snan_bit_is_one is
properly set to 0.

By applying this patch, a number of incorrect MSA behaviors that
require IEEE 754-2008 compliance will be fixed. Those are behaviors
that (up to the moment of applying this patch) did not get the desired
functionality from SoftFloat library with respect to distinguishing
between quiet and signaling NaN, getting default NaN values (both
quiet and signaling), establishing if a floating point number is NaN
or not, etc.

Two examples:

* FMAX, FMIN will now correctly detect and propagate NaNs.
* FCLASS.D ans FCLASS.S will now correcty detect NaN flavors.

Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
Reviewed-by: Leon Alrae <leon.alrae@imgtec.com>
Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
target-mips/translate_init.c

index e81a83111731601ab70d7ff0c980d224d45cbb6d..a37d8bb60c839846f6e6629a0f12144f7902ac8e 100644 (file)
@@ -893,5 +893,6 @@ static void msa_reset(CPUMIPSState *env)
     /* clear float_status nan mode */
     set_default_nan_mode(0, &env->active_tc.msa_fp_status);
 
-    set_snan_bit_is_one(1, &env->active_tc.msa_fp_status);
+    /* set proper signanling bit meaning ("1" means "quiet") */
+    set_snan_bit_is_one(0, &env->active_tc.msa_fp_status);
 }