fxam fix (Julian Seward)
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 19 Jun 2006 22:43:38 +0000 (22:43 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 19 Jun 2006 22:43:38 +0000 (22:43 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1997 c046a42c-6fe2-441c-8c8c-71466251a162

target-i386/helper.c

index 29185ceb97dad11d8a3c23c6e6cb873bff61feb7..379cfd5a45c8894629ac3af17f48716607ed44b8 100644 (file)
@@ -2950,9 +2950,14 @@ void helper_fxam_ST0(void)
     if (SIGND(temp))
         env->fpus |= 0x200; /* C1 <-- 1 */
 
+    /* XXX: test fptags too */
     expdif = EXPD(temp);
     if (expdif == MAXEXPD) {
+#ifdef USE_X86LDOUBLE
+        if (MANTD(temp) == 0x8000000000000000ULL)
+#else
         if (MANTD(temp) == 0)
+#endif
             env->fpus |=  0x500 /*Infinity*/;
         else
             env->fpus |=  0x100 /*NaN*/;