Upgrade V8 to version 4.9.385.28

https://chromium.googlesource.com/v8/v8/+/4.9.385.28

FPIIM-449

Change-Id: I4b2e74289d4bf3667f2f3dc8aa2e541f63e26eb4
diff --git a/src/third_party/fdlibm/fdlibm.cc b/src/third_party/fdlibm/fdlibm.cc
index cc5dbc2..0ef2301 100644
--- a/src/third_party/fdlibm/fdlibm.cc
+++ b/src/third_party/fdlibm/fdlibm.cc
@@ -13,11 +13,14 @@
 // modified significantly by Google Inc.
 // Copyright 2014 the V8 project authors. All rights reserved.
 
-#include "src/v8.h"
-
-#include "src/double.h"
 #include "src/third_party/fdlibm/fdlibm.h"
 
+#include <stdint.h>
+#include <cmath>
+#include <limits>
+
+#include "src/base/macros.h"
+#include "src/double.h"
 
 namespace v8 {
 namespace fdlibm {
@@ -26,75 +29,6 @@
 inline double scalbn(double x, int y) { return _scalb(x, y); }
 #endif  // _MSC_VER
 
-const double MathConstants::constants[] = {
-    6.36619772367581382433e-01,   // invpio2    0
-    1.57079632673412561417e+00,   // pio2_1     1
-    6.07710050650619224932e-11,   // pio2_1t    2
-    6.07710050630396597660e-11,   // pio2_2     3
-    2.02226624879595063154e-21,   // pio2_2t    4
-    2.02226624871116645580e-21,   // pio2_3     5
-    8.47842766036889956997e-32,   // pio2_3t    6
-    -1.66666666666666324348e-01,  // S1         7  coefficients for sin
-    8.33333333332248946124e-03,   //            8
-    -1.98412698298579493134e-04,  //            9
-    2.75573137070700676789e-06,   //           10
-    -2.50507602534068634195e-08,  //           11
-    1.58969099521155010221e-10,   // S6        12
-    4.16666666666666019037e-02,   // C1        13  coefficients for cos
-    -1.38888888888741095749e-03,  //           14
-    2.48015872894767294178e-05,   //           15
-    -2.75573143513906633035e-07,  //           16
-    2.08757232129817482790e-09,   //           17
-    -1.13596475577881948265e-11,  // C6        18
-    3.33333333333334091986e-01,   // T0        19  coefficients for tan
-    1.33333333333201242699e-01,   //           20
-    5.39682539762260521377e-02,   //           21
-    2.18694882948595424599e-02,   //           22
-    8.86323982359930005737e-03,   //           23
-    3.59207910759131235356e-03,   //           24
-    1.45620945432529025516e-03,   //           25
-    5.88041240820264096874e-04,   //           26
-    2.46463134818469906812e-04,   //           27
-    7.81794442939557092300e-05,   //           28
-    7.14072491382608190305e-05,   //           29
-    -1.85586374855275456654e-05,  //           30
-    2.59073051863633712884e-05,   // T12       31
-    7.85398163397448278999e-01,   // pio4      32
-    3.06161699786838301793e-17,   // pio4lo    33
-    6.93147180369123816490e-01,   // ln2_hi    34
-    1.90821492927058770002e-10,   // ln2_lo    35
-    6.666666666666666666e-01,     // 2/3       36
-    6.666666666666735130e-01,     // LP1       37  coefficients for log1p
-    3.999999999940941908e-01,     //           38
-    2.857142874366239149e-01,     //           39
-    2.222219843214978396e-01,     //           40
-    1.818357216161805012e-01,     //           41
-    1.531383769920937332e-01,     //           42
-    1.479819860511658591e-01,     // LP7       43
-    7.09782712893383973096e+02,   //           44  overflow threshold for expm1
-    1.44269504088896338700e+00,   // 1/ln2     45
-    -3.33333333333331316428e-02,  // Q1        46  coefficients for expm1
-    1.58730158725481460165e-03,   //           47
-    -7.93650757867487942473e-05,  //           48
-    4.00821782732936239552e-06,   //           49
-    -2.01099218183624371326e-07,  // Q5        50
-    710.4758600739439,            //           51  overflow threshold sinh, cosh
-    4.34294481903251816668e-01,   // ivln10    52  coefficients for log10
-    3.01029995663611771306e-01,   // log10_2hi 53
-    3.69423907715893078616e-13,   // log10_2lo 54
-    5.99999999999994648725e-01,   // L1        55  coefficients for log2
-    4.28571428578550184252e-01,   //           56
-    3.33333329818377432918e-01,   //           57
-    2.72728123808534006489e-01,   //           58
-    2.30660745775561754067e-01,   //           59
-    2.06975017800338417784e-01,   // L6        60
-    9.61796693925975554329e-01,   // cp        61  2/(3*ln(2))
-    9.61796700954437255859e-01,   // cp_h      62
-    -7.02846165095275826516e-09,  // cp_l      63
-    5.84962487220764160156e-01,   // dp_h      64
-    1.35003920212974897128e-08    // dp_l      65
-};
-
 
 // Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi
 static const int two_over_pi[] = {
@@ -126,7 +60,7 @@
 };
 
 
-int __kernel_rem_pio2(double* x, double* y, int e0, int nx) {
+INLINE(int __kernel_rem_pio2(double* x, double* y, int e0, int nx)) {
   static const int32_t jk = 3;
   double fw;
   int32_t jx = nx - 1;
@@ -135,12 +69,12 @@
   int32_t q0 = e0 - 24 * (jv + 1);
   int32_t m = jx + jk;
 
-  double f[10];
+  double f[20];
   for (int i = 0, j = jv - jx; i <= m; i++, j++) {
     f[i] = (j < 0) ? zero : static_cast<double>(two_over_pi[j]);
   }
 
-  double q[10];
+  double q[20];
   for (int i = 0; i <= jk; i++) {
     fw = 0.0;
     for (int j = 0; j <= jx; j++) fw += x[j] * f[jx + i - j];
@@ -151,7 +85,7 @@
 
 recompute:
 
-  int32_t iq[10];
+  int32_t iq[20];
   double z = q[jz];
   for (int i = 0, j = jz; j > 0; i++, j--) {
     fw = static_cast<double>(static_cast<int32_t>(twon24 * z));
@@ -242,7 +176,7 @@
     fw *= twon24;
   }
 
-  double fq[10];
+  double fq[20];
   for (int i = jz; i >= 0; i--) {
     fw = 0.0;
     for (int k = 0; k <= jk && k <= jz - i; k++) fw += PIo2[k] * q[i + k];
@@ -264,7 +198,7 @@
   int32_t ix = hx & 0x7fffffff;
 
   if (ix >= 0x7ff00000) {
-    *y = base::OS::nan_value();
+    *y = std::numeric_limits<double>::quiet_NaN();
     return 0;
   }
 
@@ -290,5 +224,5 @@
   }
   return n;
 }
-}
-}  // namespace v8::internal
+}  // namespace internal
+}  // namespace v8