]> rtime.felk.cvut.cz Git - lisovros/qemu_apohw.git/commitdiff
fscale fix (bug noticed by Kuwanger, fix by malc)
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 24 Jul 2005 14:33:17 +0000 (14:33 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 24 Jul 2005 14:33:17 +0000 (14:33 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1528 c046a42c-6fe2-441c-8c8c-71466251a162

target-i386/exec.h
target-i386/helper.c

index a3bbea9999b7e73bb9f02e03f79271193c2a6889..b1145017d52322872847be7c7b289617a85f5f1c 100644 (file)
@@ -337,6 +337,7 @@ static inline void stfl(target_ulong ptr, float v)
 #define atan2 atan2l
 #define floor floorl
 #define ceil ceill
+#define ldexp ldexpl
 #else
 #define floatx_to_int32 float64_to_int32
 #define floatx_to_int64 float64_to_int64
index c83dbf21909af63f1362b6a9141202f1ee6fb996..01b663f3819bc2e0eacc834a5a1839e5ed26abd7 100644 (file)
@@ -2888,11 +2888,7 @@ void helper_frndint(void)
 
 void helper_fscale(void)
 {
-    CPU86_LDouble fpsrcop, fptemp;
-
-    fpsrcop = 2.0;
-    fptemp = pow(fpsrcop,ST1);
-    ST0 *= fptemp;
+    ST0 = ldexp (ST0, (int)(ST1)); 
 }
 
 void helper_fsin(void)