Chromium Code Reviews| Index: src/assembler.cc |
| =================================================================== |
| --- src/assembler.cc (revision 11248) |
| +++ src/assembler.cc (working copy) |
| @@ -1153,6 +1153,22 @@ |
| double power_double_double(double x, double y) { |
| +#ifdef __MINGW64_VERSION_MAJOR |
| + if ((x == 0.0 || isinf(x)) && isfinite(y)) { |
| + double f; |
| + |
| + if (modf(y, &f) != 0.0) |
| + return (x == 0.0) ^ (y > 0) ? V8_INFINITY : 0; |
| + } |
| + |
| + if (x == 2.0) { |
| + int y_int = static_cast<int>(y); |
| + |
| + if (y == y_int) |
| + return ldexp(1.0, y); |
|
alexeif
2012/04/17 16:40:13
nit: y_int
|
| + } |
| +#endif |
| + |
| // The checks for special cases can be dropped in ia32 because it has already |
| // been done in generated code before bailing out here. |
| if (isnan(y) || ((x == 1 || x == -1) && isinf(y))) return OS::nan_value(); |