| Index: src/assembler.cc
|
| diff --git a/src/assembler.cc b/src/assembler.cc
|
| index bc05c01800dc51889ee58e31264d533045be84ff..e1cf13ff71a6a53604c0137d50784859f12e1c30 100644
|
| --- a/src/assembler.cc
|
| +++ b/src/assembler.cc
|
| @@ -1113,6 +1113,9 @@ double power_double_int(double x, int y) {
|
|
|
|
|
| double power_double_double(double x, double y) {
|
| + // The checks for special cases can be dropped in ia32 because it has already
|
| + // been done in generated code before bailing out here.
|
| +#if !defined(V8_TARGET_ARCH_IA32)
|
| int y_int = static_cast<int>(y);
|
| if (y == y_int) {
|
| return power_double_int(x, y_int); // Returns 1.0 for exponent 0.
|
| @@ -1121,6 +1124,7 @@ double power_double_double(double x, double y) {
|
| if (y == 0.5) return sqrt(x + 0.0); // -0 must be converted to +0.
|
| if (y == -0.5) return 1.0 / sqrt(x + 0.0);
|
| }
|
| +#endif
|
| if (isnan(y) || ((x == 1 || x == -1) && isinf(y))) {
|
| return OS::nan_value();
|
| }
|
|
|