target-ppc: improve correctness of the fsel instruction
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 29 Dec 2008 09:47:11 +0000 (09:47 +0000)
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 29 Dec 2008 09:47:11 +0000 (09:47 +0000)
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6139 c046a42c-6fe2-441c-8c8c-71466251a162

target-ppc/op_helper.c

index 922060b..876b517 100644 (file)
@@ -1561,7 +1561,7 @@ uint64_t helper_fsel (uint64_t arg1, uint64_t arg2, uint64_t arg3)
 
     farg1.ll = arg1;
 
-    if (!float64_is_neg(farg1.d) || float64_is_zero(farg1.d))
+    if ((!float64_is_neg(farg1.d) || float64_is_zero(farg1.d)) && !float64_is_nan(farg1.d))
         return arg2;
     else
         return arg3;