| OLD | NEW | 
|    1 // The following is adapted from fdlibm (http://www.netlib.org/fdlibm). |    1 // The following is adapted from fdlibm (http://www.netlib.org/fdlibm). | 
|    2 // |    2 // | 
|    3 // ==================================================== |    3 // ==================================================== | 
|    4 // Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. |    4 // Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | 
|    5 // |    5 // | 
|    6 // Developed at SunSoft, a Sun Microsystems, Inc. business. |    6 // Developed at SunSoft, a Sun Microsystems, Inc. business. | 
|    7 // Permission to use, copy, modify, and distribute this |    7 // Permission to use, copy, modify, and distribute this | 
|    8 // software is freely granted, provided that this notice |    8 // software is freely granted, provided that this notice | 
|    9 // is preserved. |    9 // is preserved. | 
|   10 // ==================================================== |   10 // ==================================================== | 
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  257   y[1] = (ih == 0) ? fw : -fw; |  257   y[1] = (ih == 0) ? fw : -fw; | 
|  258   return n & 7; |  258   return n & 7; | 
|  259 } |  259 } | 
|  260  |  260  | 
|  261  |  261  | 
|  262 int rempio2(double x, double* y) { |  262 int rempio2(double x, double* y) { | 
|  263   int32_t hx = static_cast<int32_t>(internal::double_to_uint64(x) >> 32); |  263   int32_t hx = static_cast<int32_t>(internal::double_to_uint64(x) >> 32); | 
|  264   int32_t ix = hx & 0x7fffffff; |  264   int32_t ix = hx & 0x7fffffff; | 
|  265  |  265  | 
|  266   if (ix >= 0x7ff00000) { |  266   if (ix >= 0x7ff00000) { | 
|  267     *y = base::OS::nan_value(); |  267     *y = std::numeric_limits<double>::quiet_NaN(); | 
|  268     return 0; |  268     return 0; | 
|  269   } |  269   } | 
|  270  |  270  | 
|  271   int32_t e0 = (ix >> 20) - 1046; |  271   int32_t e0 = (ix >> 20) - 1046; | 
|  272   uint64_t zi = internal::double_to_uint64(x) & 0xFFFFFFFFu; |  272   uint64_t zi = internal::double_to_uint64(x) & 0xFFFFFFFFu; | 
|  273   zi |= static_cast<uint64_t>(ix - (e0 << 20)) << 32; |  273   zi |= static_cast<uint64_t>(ix - (e0 << 20)) << 32; | 
|  274   double z = internal::uint64_to_double(zi); |  274   double z = internal::uint64_to_double(zi); | 
|  275  |  275  | 
|  276   double tx[3]; |  276   double tx[3]; | 
|  277   for (int i = 0; i < 2; i++) { |  277   for (int i = 0; i < 2; i++) { | 
|  278     tx[i] = static_cast<double>(static_cast<int32_t>(z)); |  278     tx[i] = static_cast<double>(static_cast<int32_t>(z)); | 
|  279     z = (z - tx[i]) * two24; |  279     z = (z - tx[i]) * two24; | 
|  280   } |  280   } | 
|  281   tx[2] = z; |  281   tx[2] = z; | 
|  282  |  282  | 
|  283   int nx = 3; |  283   int nx = 3; | 
|  284   while (tx[nx - 1] == zero) nx--; |  284   while (tx[nx - 1] == zero) nx--; | 
|  285   int n = __kernel_rem_pio2(tx, y, e0, nx); |  285   int n = __kernel_rem_pio2(tx, y, e0, nx); | 
|  286   if (hx < 0) { |  286   if (hx < 0) { | 
|  287     y[0] = -y[0]; |  287     y[0] = -y[0]; | 
|  288     y[1] = -y[1]; |  288     y[1] = -y[1]; | 
|  289     return -n; |  289     return -n; | 
|  290   } |  290   } | 
|  291   return n; |  291   return n; | 
|  292 } |  292 } | 
|  293 } |  293 } | 
|  294 }  // namespace v8::internal |  294 }  // namespace v8::internal | 
| OLD | NEW |