]> sourceware.org Git - glibc.git/commitdiff
Fix up __kernel_rem_pio2 for FLT_EVAL_METHOD != 0 architectures
authorJakub Jelinek <jakub@redhat.com>
Thu, 4 Aug 2011 19:40:16 +0000 (15:40 -0400)
committerUlrich Drepper <drepper@gmail.com>
Thu, 4 Aug 2011 19:40:16 +0000 (15:40 -0400)
ChangeLog
sysdeps/ieee754/dbl-64/k_rem_pio2.c

index 1cf7e225814bfb68ee86e9bf21680bcf0820fbb0..fbacbd5699a4773f00adca4c7e4e0a92a76d6529 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-08-01  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/ieee754/dbl-64/k_rem_pio2.c (__kernel_rem_pio2): Fix up fq
+       to y conversion for prec 3 and __FLT_EVAL_METHOD__ != 0.
+
 2011-07-22  Liubov Dmitrieva  <liubov.dmitrieva@intel.com>
 
        * sysdeps/i386/i686/multiarch/strcat-sse2.S: Update.
index ccf1633bd4151c0cad41868fe2841affa2fde7a3..911ff1fe3536cfdb04a6504f73ea3d55930a1d77 100644 (file)
@@ -300,14 +300,20 @@ recompute:
                break;
            case 3:     /* painful */
                for (i=jz;i>0;i--) {
-                   fw      = fq[i-1]+fq[i];
-                   fq[i]  += fq[i-1]-fw;
-                   fq[i-1] = fw;
+#if __FLT_EVAL_METHOD__ != 0
+                   volatile
+#endif
+                   double fv = (double)(fq[i-1]+fq[i]);
+                   fq[i]  += fq[i-1]-fv;
+                   fq[i-1] = fv;
                }
                for (i=jz;i>1;i--) {
-                   fw      = fq[i-1]+fq[i];
-                   fq[i]  += fq[i-1]-fw;
-                   fq[i-1] = fw;
+#if __FLT_EVAL_METHOD__ != 0
+                   volatile
+#endif
+                   double fv = (double)(fq[i-1]+fq[i]);
+                   fq[i]  += fq[i-1]-fv;
+                   fq[i-1] = fv;
                }
                for (fw=0.0,i=jz;i>=2;i--) fw += fq[i];
                if(ih==0) {
This page took 0.047075 seconds and 5 git commands to generate.