Index: src/ia32/lithium-ia32.cc |
diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc |
index 1f9714357e2f7f63c737c2e8f0b1d112ae81af9d..e3a3d7bcb026540b83aacd50479bdec384c8d4a9 100644 |
--- a/src/ia32/lithium-ia32.cc |
+++ b/src/ia32/lithium-ia32.cc |
@@ -460,6 +460,12 @@ int LChunk::NearestGapPos(int index) const { |
} |
+int LChunk::NearestNextGapPos(int index) const { |
+ while (!IsGapAt(index)) index++; |
+ return index; |
+} |
+ |
+ |
void LChunk::AddGapMove(int index, LOperand* from, LOperand* to) { |
GetGapAt(index)->GetOrCreateParallelMove(LGap::START)->AddMove(from, to); |
} |
@@ -1366,8 +1372,6 @@ LInstruction* LChunkBuilder::DoUnaryMathOperation(HUnaryMathOperation* instr) { |
return AssignEnvironment(DefineAsRegister(result)); |
case kMathSqrt: |
return DefineSameAsFirst(result); |
- case kMathPowHalf: |
- return AssignEnvironment(DefineSameAsFirst(result)); |
default: |
UNREACHABLE(); |
return NULL; |
@@ -1568,22 +1572,6 @@ LInstruction* LChunkBuilder::DoAdd(HAdd* instr) { |
} |
-LInstruction* LChunkBuilder::DoPower(HPower* instr) { |
- ASSERT(instr->representation().IsDouble()); |
- // We call a C function for double power. It can't trigger a GC. |
- // We need to use fixed result register for the call. |
- Representation exponent_type = instr->right()->representation(); |
- ASSERT(instr->left()->representation().IsDouble()); |
- LOperand* left = UseFixedDouble(instr->left(), xmm1); |
- LOperand* right = exponent_type.IsDouble() ? |
- UseFixedDouble(instr->right(), xmm2) : |
- UseFixed(instr->right(), eax); |
- LPower* result = new LPower(left, right); |
- return MarkAsCall(DefineFixedDouble(result, xmm1), instr, |
- CAN_DEOPTIMIZE_EAGERLY); |
-} |
- |
- |
LInstruction* LChunkBuilder::DoCompare(HCompare* instr) { |
Token::Value op = instr->token(); |
if (instr->left()->representation().IsInteger32()) { |