Index: src/arm/lithium-arm.cc |
diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc |
index 234177476685ec405740cacd2afa8ba4bd802efe..d816106206bfcacbd330935f0e9ab3c78660761a 100644 |
--- a/src/arm/lithium-arm.cc |
+++ b/src/arm/lithium-arm.cc |
@@ -1153,6 +1153,11 @@ LInstruction* LChunkBuilder::DoUnaryMathOperation(HUnaryMathOperation* instr) { |
LOperand* input = UseFixedDouble(instr->value(), d2); |
LUnaryMathOperation* result = new LUnaryMathOperation(input, NULL); |
return MarkAsCall(DefineFixedDouble(result, d2), instr); |
+ } if (op == kMathPowHalf) { |
+ LOperand* input = UseFixedDouble(instr->value(), d2); |
+ LOperand* temp = FixedTemp(d3); |
+ LUnaryMathOperation* result = new LUnaryMathOperation(input, temp); |
+ return DefineFixedDouble(result, d2); |
} else { |
LOperand* input = UseRegisterAtStart(instr->value()); |
LOperand* temp = (op == kMathFloor) ? TempRegister() : NULL; |
@@ -1166,8 +1171,6 @@ LInstruction* LChunkBuilder::DoUnaryMathOperation(HUnaryMathOperation* instr) { |
return DefineAsRegister(result); |
case kMathRound: |
return AssignEnvironment(DefineAsRegister(result)); |
- case kMathPowHalf: |
- return DefineAsRegister(result); |
default: |
UNREACHABLE(); |
return NULL; |