Index: src/ia32/lithium-ia32.cc |
diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc |
index 650a85414bce1cff07edcbbca51f32f2023f11a0..e02b65e30f983b74aed1ead2cc35c7da95312627 100644 |
--- a/src/ia32/lithium-ia32.cc |
+++ b/src/ia32/lithium-ia32.cc |
@@ -27,17 +27,17 @@ void LInstruction::VerifyCall() { |
// outputs because all registers are blocked by the calling convention. |
// Inputs operands must use a fixed register or use-at-start policy or |
// a non-register policy. |
- ASSERT(Output() == NULL || |
+ DCHECK(Output() == NULL || |
LUnallocated::cast(Output())->HasFixedPolicy() || |
!LUnallocated::cast(Output())->HasRegisterPolicy()); |
for (UseIterator it(this); !it.Done(); it.Advance()) { |
LUnallocated* operand = LUnallocated::cast(it.Current()); |
- ASSERT(operand->HasFixedPolicy() || |
+ DCHECK(operand->HasFixedPolicy() || |
operand->IsUsedAtStart()); |
} |
for (TempIterator it(this); !it.Done(); it.Advance()) { |
LUnallocated* operand = LUnallocated::cast(it.Current()); |
- ASSERT(operand->HasFixedPolicy() ||!operand->HasRegisterPolicy()); |
+ DCHECK(operand->HasFixedPolicy() ||!operand->HasRegisterPolicy()); |
} |
} |
#endif |
@@ -357,7 +357,7 @@ LOperand* LPlatformChunk::GetNextSpillSlot(RegisterKind kind) { |
if (kind == DOUBLE_REGISTERS) { |
return LDoubleStackSlot::Create(index, zone()); |
} else { |
- ASSERT(kind == GENERAL_REGISTERS); |
+ DCHECK(kind == GENERAL_REGISTERS); |
return LStackSlot::Create(index, zone()); |
} |
} |
@@ -404,7 +404,7 @@ void LStoreKeyed::PrintDataTo(StringStream* stream) { |
} |
if (value() == NULL) { |
- ASSERT(hydrogen()->IsConstantHoleStore() && |
+ DCHECK(hydrogen()->IsConstantHoleStore() && |
hydrogen()->value()->representation().IsDouble()); |
stream->Add("<the hole(nan)>"); |
} else { |
@@ -429,7 +429,7 @@ void LTransitionElementsKind::PrintDataTo(StringStream* stream) { |
LPlatformChunk* LChunkBuilder::Build() { |
- ASSERT(is_unused()); |
+ DCHECK(is_unused()); |
chunk_ = new(zone()) LPlatformChunk(info(), graph()); |
LPhase phase("L_Building chunk", chunk_); |
status_ = BUILDING; |
@@ -437,7 +437,7 @@ LPlatformChunk* LChunkBuilder::Build() { |
// Reserve the first spill slot for the state of dynamic alignment. |
if (info()->IsOptimizing()) { |
int alignment_state_index = chunk_->GetNextSpillIndex(GENERAL_REGISTERS); |
- ASSERT_EQ(alignment_state_index, 0); |
+ DCHECK_EQ(alignment_state_index, 0); |
USE(alignment_state_index); |
} |
@@ -663,7 +663,7 @@ LInstruction* LChunkBuilder::MarkAsCall(LInstruction* instr, |
LInstruction* LChunkBuilder::AssignPointerMap(LInstruction* instr) { |
- ASSERT(!instr->HasPointerMap()); |
+ DCHECK(!instr->HasPointerMap()); |
instr->set_pointer_map(new(zone()) LPointerMap(zone())); |
return instr; |
} |
@@ -684,14 +684,14 @@ LUnallocated* LChunkBuilder::TempRegister() { |
LOperand* LChunkBuilder::FixedTemp(Register reg) { |
LUnallocated* operand = ToUnallocated(reg); |
- ASSERT(operand->HasFixedPolicy()); |
+ DCHECK(operand->HasFixedPolicy()); |
return operand; |
} |
LOperand* LChunkBuilder::FixedTemp(XMMRegister reg) { |
LUnallocated* operand = ToUnallocated(reg); |
- ASSERT(operand->HasFixedPolicy()); |
+ DCHECK(operand->HasFixedPolicy()); |
return operand; |
} |
@@ -720,8 +720,8 @@ LInstruction* LChunkBuilder::DoDeoptimize(HDeoptimize* instr) { |
LInstruction* LChunkBuilder::DoShift(Token::Value op, |
HBitwiseBinaryOperation* instr) { |
if (instr->representation().IsSmiOrInteger32()) { |
- ASSERT(instr->left()->representation().Equals(instr->representation())); |
- ASSERT(instr->right()->representation().Equals(instr->representation())); |
+ DCHECK(instr->left()->representation().Equals(instr->representation())); |
+ DCHECK(instr->right()->representation().Equals(instr->representation())); |
LOperand* left = UseRegisterAtStart(instr->left()); |
HValue* right_value = instr->right(); |
@@ -762,9 +762,9 @@ LInstruction* LChunkBuilder::DoShift(Token::Value op, |
LInstruction* LChunkBuilder::DoArithmeticD(Token::Value op, |
HArithmeticBinaryOperation* instr) { |
- ASSERT(instr->representation().IsDouble()); |
- ASSERT(instr->left()->representation().IsDouble()); |
- ASSERT(instr->right()->representation().IsDouble()); |
+ DCHECK(instr->representation().IsDouble()); |
+ DCHECK(instr->left()->representation().IsDouble()); |
+ DCHECK(instr->right()->representation().IsDouble()); |
if (op == Token::MOD) { |
LOperand* left = UseRegisterAtStart(instr->BetterLeftOperand()); |
LOperand* right = UseRegisterAtStart(instr->BetterRightOperand()); |
@@ -783,8 +783,8 @@ LInstruction* LChunkBuilder::DoArithmeticT(Token::Value op, |
HBinaryOperation* instr) { |
HValue* left = instr->left(); |
HValue* right = instr->right(); |
- ASSERT(left->representation().IsTagged()); |
- ASSERT(right->representation().IsTagged()); |
+ DCHECK(left->representation().IsTagged()); |
+ DCHECK(right->representation().IsTagged()); |
LOperand* context = UseFixed(instr->context(), esi); |
LOperand* left_operand = UseFixed(left, edx); |
LOperand* right_operand = UseFixed(right, eax); |
@@ -795,7 +795,7 @@ LInstruction* LChunkBuilder::DoArithmeticT(Token::Value op, |
void LChunkBuilder::DoBasicBlock(HBasicBlock* block, HBasicBlock* next_block) { |
- ASSERT(is_building()); |
+ DCHECK(is_building()); |
current_block_ = block; |
next_block_ = next_block; |
if (block->IsStartBlock()) { |
@@ -804,13 +804,13 @@ void LChunkBuilder::DoBasicBlock(HBasicBlock* block, HBasicBlock* next_block) { |
} else if (block->predecessors()->length() == 1) { |
// We have a single predecessor => copy environment and outgoing |
// argument count from the predecessor. |
- ASSERT(block->phis()->length() == 0); |
+ DCHECK(block->phis()->length() == 0); |
HBasicBlock* pred = block->predecessors()->at(0); |
HEnvironment* last_environment = pred->last_environment(); |
- ASSERT(last_environment != NULL); |
+ DCHECK(last_environment != NULL); |
// Only copy the environment, if it is later used again. |
if (pred->end()->SecondSuccessor() == NULL) { |
- ASSERT(pred->end()->FirstSuccessor() == block); |
+ DCHECK(pred->end()->FirstSuccessor() == block); |
} else { |
if (pred->end()->FirstSuccessor()->block_id() > block->block_id() || |
pred->end()->SecondSuccessor()->block_id() > block->block_id()) { |
@@ -818,7 +818,7 @@ void LChunkBuilder::DoBasicBlock(HBasicBlock* block, HBasicBlock* next_block) { |
} |
} |
block->UpdateEnvironment(last_environment); |
- ASSERT(pred->argument_count() >= 0); |
+ DCHECK(pred->argument_count() >= 0); |
argument_count_ = pred->argument_count(); |
} else { |
// We are at a state join => process phis. |
@@ -870,7 +870,7 @@ void LChunkBuilder::VisitInstruction(HInstruction* current) { |
if (current->OperandCount() == 0) { |
instr = DefineAsRegister(new(zone()) LDummy()); |
} else { |
- ASSERT(!current->OperandAt(0)->IsControlInstruction()); |
+ DCHECK(!current->OperandAt(0)->IsControlInstruction()); |
instr = DefineAsRegister(new(zone()) |
LDummyUse(UseAny(current->OperandAt(0)))); |
} |
@@ -893,7 +893,7 @@ void LChunkBuilder::VisitInstruction(HInstruction* current) { |
} |
argument_count_ += current->argument_delta(); |
- ASSERT(argument_count_ >= 0); |
+ DCHECK(argument_count_ >= 0); |
if (instr != NULL) { |
AddInstruction(instr, current); |
@@ -935,7 +935,7 @@ void LChunkBuilder::AddInstruction(LInstruction* instr, |
LUnallocated* operand = LUnallocated::cast(it.Current()); |
if (operand->HasFixedPolicy()) ++fixed; |
} |
- ASSERT(fixed == 0 || used_at_start == 0); |
+ DCHECK(fixed == 0 || used_at_start == 0); |
} |
#endif |
@@ -1000,7 +1000,7 @@ LInstruction* LChunkBuilder::DoDebugBreak(HDebugBreak* instr) { |
LInstruction* LChunkBuilder::DoCompareMap(HCompareMap* instr) { |
- ASSERT(instr->value()->representation().IsTagged()); |
+ DCHECK(instr->value()->representation().IsTagged()); |
LOperand* value = UseRegisterAtStart(instr->value()); |
return new(zone()) LCmpMapAndBranch(value); |
} |
@@ -1210,8 +1210,8 @@ LInstruction* LChunkBuilder::DoMathAbs(HUnaryMathOperation* instr) { |
LInstruction* LChunkBuilder::DoMathLog(HUnaryMathOperation* instr) { |
- ASSERT(instr->representation().IsDouble()); |
- ASSERT(instr->value()->representation().IsDouble()); |
+ DCHECK(instr->representation().IsDouble()); |
+ DCHECK(instr->value()->representation().IsDouble()); |
LOperand* input = UseRegisterAtStart(instr->value()); |
return MarkAsCall(DefineSameAsFirst(new(zone()) LMathLog(input)), instr); |
} |
@@ -1225,8 +1225,8 @@ LInstruction* LChunkBuilder::DoMathClz32(HUnaryMathOperation* instr) { |
LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) { |
- ASSERT(instr->representation().IsDouble()); |
- ASSERT(instr->value()->representation().IsDouble()); |
+ DCHECK(instr->representation().IsDouble()); |
+ DCHECK(instr->value()->representation().IsDouble()); |
LOperand* value = UseTempRegister(instr->value()); |
LOperand* temp1 = TempRegister(); |
LOperand* temp2 = TempRegister(); |
@@ -1301,9 +1301,9 @@ LInstruction* LChunkBuilder::DoShl(HShl* instr) { |
LInstruction* LChunkBuilder::DoBitwise(HBitwise* instr) { |
if (instr->representation().IsSmiOrInteger32()) { |
- ASSERT(instr->left()->representation().Equals(instr->representation())); |
- ASSERT(instr->right()->representation().Equals(instr->representation())); |
- ASSERT(instr->CheckFlag(HValue::kTruncatingToInt32)); |
+ DCHECK(instr->left()->representation().Equals(instr->representation())); |
+ DCHECK(instr->right()->representation().Equals(instr->representation())); |
+ DCHECK(instr->CheckFlag(HValue::kTruncatingToInt32)); |
LOperand* left = UseRegisterAtStart(instr->BetterLeftOperand()); |
LOperand* right = UseOrConstantAtStart(instr->BetterRightOperand()); |
@@ -1315,9 +1315,9 @@ LInstruction* LChunkBuilder::DoBitwise(HBitwise* instr) { |
LInstruction* LChunkBuilder::DoDivByPowerOf2I(HDiv* instr) { |
- ASSERT(instr->representation().IsSmiOrInteger32()); |
- ASSERT(instr->left()->representation().Equals(instr->representation())); |
- ASSERT(instr->right()->representation().Equals(instr->representation())); |
+ DCHECK(instr->representation().IsSmiOrInteger32()); |
+ DCHECK(instr->left()->representation().Equals(instr->representation())); |
+ DCHECK(instr->right()->representation().Equals(instr->representation())); |
LOperand* dividend = UseRegister(instr->left()); |
int32_t divisor = instr->right()->GetInteger32Constant(); |
LInstruction* result = DefineAsRegister(new(zone()) LDivByPowerOf2I( |
@@ -1333,9 +1333,9 @@ LInstruction* LChunkBuilder::DoDivByPowerOf2I(HDiv* instr) { |
LInstruction* LChunkBuilder::DoDivByConstI(HDiv* instr) { |
- ASSERT(instr->representation().IsInteger32()); |
- ASSERT(instr->left()->representation().Equals(instr->representation())); |
- ASSERT(instr->right()->representation().Equals(instr->representation())); |
+ DCHECK(instr->representation().IsInteger32()); |
+ DCHECK(instr->left()->representation().Equals(instr->representation())); |
+ DCHECK(instr->right()->representation().Equals(instr->representation())); |
LOperand* dividend = UseRegister(instr->left()); |
int32_t divisor = instr->right()->GetInteger32Constant(); |
LOperand* temp1 = FixedTemp(eax); |
@@ -1352,9 +1352,9 @@ LInstruction* LChunkBuilder::DoDivByConstI(HDiv* instr) { |
LInstruction* LChunkBuilder::DoDivI(HDiv* instr) { |
- ASSERT(instr->representation().IsSmiOrInteger32()); |
- ASSERT(instr->left()->representation().Equals(instr->representation())); |
- ASSERT(instr->right()->representation().Equals(instr->representation())); |
+ DCHECK(instr->representation().IsSmiOrInteger32()); |
+ DCHECK(instr->left()->representation().Equals(instr->representation())); |
+ DCHECK(instr->right()->representation().Equals(instr->representation())); |
LOperand* dividend = UseFixed(instr->left(), eax); |
LOperand* divisor = UseRegister(instr->right()); |
LOperand* temp = FixedTemp(edx); |
@@ -1401,9 +1401,9 @@ LInstruction* LChunkBuilder::DoFlooringDivByPowerOf2I(HMathFloorOfDiv* instr) { |
LInstruction* LChunkBuilder::DoFlooringDivByConstI(HMathFloorOfDiv* instr) { |
- ASSERT(instr->representation().IsInteger32()); |
- ASSERT(instr->left()->representation().Equals(instr->representation())); |
- ASSERT(instr->right()->representation().Equals(instr->representation())); |
+ DCHECK(instr->representation().IsInteger32()); |
+ DCHECK(instr->left()->representation().Equals(instr->representation())); |
+ DCHECK(instr->right()->representation().Equals(instr->representation())); |
LOperand* dividend = UseRegister(instr->left()); |
int32_t divisor = instr->right()->GetInteger32Constant(); |
LOperand* temp1 = FixedTemp(eax); |
@@ -1428,9 +1428,9 @@ LInstruction* LChunkBuilder::DoFlooringDivByConstI(HMathFloorOfDiv* instr) { |
LInstruction* LChunkBuilder::DoFlooringDivI(HMathFloorOfDiv* instr) { |
- ASSERT(instr->representation().IsSmiOrInteger32()); |
- ASSERT(instr->left()->representation().Equals(instr->representation())); |
- ASSERT(instr->right()->representation().Equals(instr->representation())); |
+ DCHECK(instr->representation().IsSmiOrInteger32()); |
+ DCHECK(instr->left()->representation().Equals(instr->representation())); |
+ DCHECK(instr->right()->representation().Equals(instr->representation())); |
LOperand* dividend = UseFixed(instr->left(), eax); |
LOperand* divisor = UseRegister(instr->right()); |
LOperand* temp = FixedTemp(edx); |
@@ -1457,9 +1457,9 @@ LInstruction* LChunkBuilder::DoMathFloorOfDiv(HMathFloorOfDiv* instr) { |
LInstruction* LChunkBuilder::DoModByPowerOf2I(HMod* instr) { |
- ASSERT(instr->representation().IsSmiOrInteger32()); |
- ASSERT(instr->left()->representation().Equals(instr->representation())); |
- ASSERT(instr->right()->representation().Equals(instr->representation())); |
+ DCHECK(instr->representation().IsSmiOrInteger32()); |
+ DCHECK(instr->left()->representation().Equals(instr->representation())); |
+ DCHECK(instr->right()->representation().Equals(instr->representation())); |
LOperand* dividend = UseRegisterAtStart(instr->left()); |
int32_t divisor = instr->right()->GetInteger32Constant(); |
LInstruction* result = DefineSameAsFirst(new(zone()) LModByPowerOf2I( |
@@ -1473,9 +1473,9 @@ LInstruction* LChunkBuilder::DoModByPowerOf2I(HMod* instr) { |
LInstruction* LChunkBuilder::DoModByConstI(HMod* instr) { |
- ASSERT(instr->representation().IsSmiOrInteger32()); |
- ASSERT(instr->left()->representation().Equals(instr->representation())); |
- ASSERT(instr->right()->representation().Equals(instr->representation())); |
+ DCHECK(instr->representation().IsSmiOrInteger32()); |
+ DCHECK(instr->left()->representation().Equals(instr->representation())); |
+ DCHECK(instr->right()->representation().Equals(instr->representation())); |
LOperand* dividend = UseRegister(instr->left()); |
int32_t divisor = instr->right()->GetInteger32Constant(); |
LOperand* temp1 = FixedTemp(eax); |
@@ -1490,9 +1490,9 @@ LInstruction* LChunkBuilder::DoModByConstI(HMod* instr) { |
LInstruction* LChunkBuilder::DoModI(HMod* instr) { |
- ASSERT(instr->representation().IsSmiOrInteger32()); |
- ASSERT(instr->left()->representation().Equals(instr->representation())); |
- ASSERT(instr->right()->representation().Equals(instr->representation())); |
+ DCHECK(instr->representation().IsSmiOrInteger32()); |
+ DCHECK(instr->left()->representation().Equals(instr->representation())); |
+ DCHECK(instr->right()->representation().Equals(instr->representation())); |
LOperand* dividend = UseFixed(instr->left(), eax); |
LOperand* divisor = UseRegister(instr->right()); |
LOperand* temp = FixedTemp(edx); |
@@ -1525,8 +1525,8 @@ LInstruction* LChunkBuilder::DoMod(HMod* instr) { |
LInstruction* LChunkBuilder::DoMul(HMul* instr) { |
if (instr->representation().IsSmiOrInteger32()) { |
- ASSERT(instr->left()->representation().Equals(instr->representation())); |
- ASSERT(instr->right()->representation().Equals(instr->representation())); |
+ DCHECK(instr->left()->representation().Equals(instr->representation())); |
+ DCHECK(instr->right()->representation().Equals(instr->representation())); |
LOperand* left = UseRegisterAtStart(instr->BetterLeftOperand()); |
LOperand* right = UseOrConstant(instr->BetterRightOperand()); |
LOperand* temp = NULL; |
@@ -1549,8 +1549,8 @@ LInstruction* LChunkBuilder::DoMul(HMul* instr) { |
LInstruction* LChunkBuilder::DoSub(HSub* instr) { |
if (instr->representation().IsSmiOrInteger32()) { |
- ASSERT(instr->left()->representation().Equals(instr->representation())); |
- ASSERT(instr->right()->representation().Equals(instr->representation())); |
+ DCHECK(instr->left()->representation().Equals(instr->representation())); |
+ DCHECK(instr->right()->representation().Equals(instr->representation())); |
LOperand* left = UseRegisterAtStart(instr->left()); |
LOperand* right = UseOrConstantAtStart(instr->right()); |
LSubI* sub = new(zone()) LSubI(left, right); |
@@ -1569,8 +1569,8 @@ LInstruction* LChunkBuilder::DoSub(HSub* instr) { |
LInstruction* LChunkBuilder::DoAdd(HAdd* instr) { |
if (instr->representation().IsSmiOrInteger32()) { |
- ASSERT(instr->left()->representation().Equals(instr->representation())); |
- ASSERT(instr->right()->representation().Equals(instr->representation())); |
+ DCHECK(instr->left()->representation().Equals(instr->representation())); |
+ DCHECK(instr->right()->representation().Equals(instr->representation())); |
// Check to see if it would be advantageous to use an lea instruction rather |
// than an add. This is the case when no overflow check is needed and there |
// are multiple uses of the add's inputs, so using a 3-register add will |
@@ -1593,9 +1593,9 @@ LInstruction* LChunkBuilder::DoAdd(HAdd* instr) { |
} else if (instr->representation().IsDouble()) { |
return DoArithmeticD(Token::ADD, instr); |
} else if (instr->representation().IsExternal()) { |
- ASSERT(instr->left()->representation().IsExternal()); |
- ASSERT(instr->right()->representation().IsInteger32()); |
- ASSERT(!instr->CheckFlag(HValue::kCanOverflow)); |
+ DCHECK(instr->left()->representation().IsExternal()); |
+ DCHECK(instr->right()->representation().IsInteger32()); |
+ DCHECK(!instr->CheckFlag(HValue::kCanOverflow)); |
bool use_lea = LAddI::UseLea(instr); |
LOperand* left = UseRegisterAtStart(instr->left()); |
HValue* right_candidate = instr->right(); |
@@ -1617,14 +1617,14 @@ LInstruction* LChunkBuilder::DoMathMinMax(HMathMinMax* instr) { |
LOperand* left = NULL; |
LOperand* right = NULL; |
if (instr->representation().IsSmiOrInteger32()) { |
- ASSERT(instr->left()->representation().Equals(instr->representation())); |
- ASSERT(instr->right()->representation().Equals(instr->representation())); |
+ DCHECK(instr->left()->representation().Equals(instr->representation())); |
+ DCHECK(instr->right()->representation().Equals(instr->representation())); |
left = UseRegisterAtStart(instr->BetterLeftOperand()); |
right = UseOrConstantAtStart(instr->BetterRightOperand()); |
} else { |
- ASSERT(instr->representation().IsDouble()); |
- ASSERT(instr->left()->representation().IsDouble()); |
- ASSERT(instr->right()->representation().IsDouble()); |
+ DCHECK(instr->representation().IsDouble()); |
+ DCHECK(instr->left()->representation().IsDouble()); |
+ DCHECK(instr->right()->representation().IsDouble()); |
left = UseRegisterAtStart(instr->left()); |
right = UseRegisterAtStart(instr->right()); |
} |
@@ -1634,11 +1634,11 @@ LInstruction* LChunkBuilder::DoMathMinMax(HMathMinMax* instr) { |
LInstruction* LChunkBuilder::DoPower(HPower* instr) { |
- ASSERT(instr->representation().IsDouble()); |
+ DCHECK(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()); |
+ DCHECK(instr->left()->representation().IsDouble()); |
LOperand* left = UseFixedDouble(instr->left(), xmm2); |
LOperand* right = exponent_type.IsDouble() ? |
UseFixedDouble(instr->right(), xmm1) : |
@@ -1650,8 +1650,8 @@ LInstruction* LChunkBuilder::DoPower(HPower* instr) { |
LInstruction* LChunkBuilder::DoCompareGeneric(HCompareGeneric* instr) { |
- ASSERT(instr->left()->representation().IsSmiOrTagged()); |
- ASSERT(instr->right()->representation().IsSmiOrTagged()); |
+ DCHECK(instr->left()->representation().IsSmiOrTagged()); |
+ DCHECK(instr->right()->representation().IsSmiOrTagged()); |
LOperand* context = UseFixed(instr->context(), esi); |
LOperand* left = UseFixed(instr->left(), edx); |
LOperand* right = UseFixed(instr->right(), eax); |
@@ -1664,15 +1664,15 @@ LInstruction* LChunkBuilder::DoCompareNumericAndBranch( |
HCompareNumericAndBranch* instr) { |
Representation r = instr->representation(); |
if (r.IsSmiOrInteger32()) { |
- ASSERT(instr->left()->representation().Equals(r)); |
- ASSERT(instr->right()->representation().Equals(r)); |
+ DCHECK(instr->left()->representation().Equals(r)); |
+ DCHECK(instr->right()->representation().Equals(r)); |
LOperand* left = UseRegisterOrConstantAtStart(instr->left()); |
LOperand* right = UseOrConstantAtStart(instr->right()); |
return new(zone()) LCompareNumericAndBranch(left, right); |
} else { |
- ASSERT(r.IsDouble()); |
- ASSERT(instr->left()->representation().IsDouble()); |
- ASSERT(instr->right()->representation().IsDouble()); |
+ DCHECK(r.IsDouble()); |
+ DCHECK(instr->left()->representation().IsDouble()); |
+ DCHECK(instr->right()->representation().IsDouble()); |
LOperand* left; |
LOperand* right; |
if (CanBeImmediateConstant(instr->left()) && |
@@ -1714,28 +1714,28 @@ LInstruction* LChunkBuilder::DoCompareMinusZeroAndBranch( |
LInstruction* LChunkBuilder::DoIsObjectAndBranch(HIsObjectAndBranch* instr) { |
- ASSERT(instr->value()->representation().IsSmiOrTagged()); |
+ DCHECK(instr->value()->representation().IsSmiOrTagged()); |
LOperand* temp = TempRegister(); |
return new(zone()) LIsObjectAndBranch(UseRegister(instr->value()), temp); |
} |
LInstruction* LChunkBuilder::DoIsStringAndBranch(HIsStringAndBranch* instr) { |
- ASSERT(instr->value()->representation().IsTagged()); |
+ DCHECK(instr->value()->representation().IsTagged()); |
LOperand* temp = TempRegister(); |
return new(zone()) LIsStringAndBranch(UseRegister(instr->value()), temp); |
} |
LInstruction* LChunkBuilder::DoIsSmiAndBranch(HIsSmiAndBranch* instr) { |
- ASSERT(instr->value()->representation().IsTagged()); |
+ DCHECK(instr->value()->representation().IsTagged()); |
return new(zone()) LIsSmiAndBranch(Use(instr->value())); |
} |
LInstruction* LChunkBuilder::DoIsUndetectableAndBranch( |
HIsUndetectableAndBranch* instr) { |
- ASSERT(instr->value()->representation().IsTagged()); |
+ DCHECK(instr->value()->representation().IsTagged()); |
return new(zone()) LIsUndetectableAndBranch( |
UseRegisterAtStart(instr->value()), TempRegister()); |
} |
@@ -1743,8 +1743,8 @@ LInstruction* LChunkBuilder::DoIsUndetectableAndBranch( |
LInstruction* LChunkBuilder::DoStringCompareAndBranch( |
HStringCompareAndBranch* instr) { |
- ASSERT(instr->left()->representation().IsTagged()); |
- ASSERT(instr->right()->representation().IsTagged()); |
+ DCHECK(instr->left()->representation().IsTagged()); |
+ DCHECK(instr->right()->representation().IsTagged()); |
LOperand* context = UseFixed(instr->context(), esi); |
LOperand* left = UseFixed(instr->left(), edx); |
LOperand* right = UseFixed(instr->right(), eax); |
@@ -1758,7 +1758,7 @@ LInstruction* LChunkBuilder::DoStringCompareAndBranch( |
LInstruction* LChunkBuilder::DoHasInstanceTypeAndBranch( |
HHasInstanceTypeAndBranch* instr) { |
- ASSERT(instr->value()->representation().IsTagged()); |
+ DCHECK(instr->value()->representation().IsTagged()); |
return new(zone()) LHasInstanceTypeAndBranch( |
UseRegisterAtStart(instr->value()), |
TempRegister()); |
@@ -1767,7 +1767,7 @@ LInstruction* LChunkBuilder::DoHasInstanceTypeAndBranch( |
LInstruction* LChunkBuilder::DoGetCachedArrayIndex( |
HGetCachedArrayIndex* instr) { |
- ASSERT(instr->value()->representation().IsTagged()); |
+ DCHECK(instr->value()->representation().IsTagged()); |
LOperand* value = UseRegisterAtStart(instr->value()); |
return DefineAsRegister(new(zone()) LGetCachedArrayIndex(value)); |
@@ -1776,7 +1776,7 @@ LInstruction* LChunkBuilder::DoGetCachedArrayIndex( |
LInstruction* LChunkBuilder::DoHasCachedArrayIndexAndBranch( |
HHasCachedArrayIndexAndBranch* instr) { |
- ASSERT(instr->value()->representation().IsTagged()); |
+ DCHECK(instr->value()->representation().IsTagged()); |
return new(zone()) LHasCachedArrayIndexAndBranch( |
UseRegisterAtStart(instr->value())); |
} |
@@ -1784,7 +1784,7 @@ LInstruction* LChunkBuilder::DoHasCachedArrayIndexAndBranch( |
LInstruction* LChunkBuilder::DoClassOfTestAndBranch( |
HClassOfTestAndBranch* instr) { |
- ASSERT(instr->value()->representation().IsTagged()); |
+ DCHECK(instr->value()->representation().IsTagged()); |
return new(zone()) LClassOfTestAndBranch(UseRegister(instr->value()), |
TempRegister(), |
TempRegister()); |
@@ -1912,7 +1912,7 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { |
} |
return AssignEnvironment(DefineSameAsFirst(new(zone()) LCheckSmi(value))); |
} else { |
- ASSERT(to.IsInteger32()); |
+ DCHECK(to.IsInteger32()); |
if (val->type().IsSmi() || val->representation().IsSmi()) { |
LOperand* value = UseRegister(val); |
return DefineSameAsFirst(new(zone()) LSmiUntag(value, false)); |
@@ -1939,7 +1939,7 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { |
return AssignEnvironment( |
DefineAsRegister(new(zone()) LDoubleToSmi(value))); |
} else { |
- ASSERT(to.IsInteger32()); |
+ DCHECK(to.IsInteger32()); |
bool truncating = instr->CanTruncateToInt32(); |
bool needs_temp = !truncating; |
LOperand* value = needs_temp ? UseTempRegister(val) : UseRegister(val); |
@@ -1972,7 +1972,7 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { |
} |
return result; |
} else { |
- ASSERT(to.IsDouble()); |
+ DCHECK(to.IsDouble()); |
if (val->CheckFlag(HInstruction::kUint32)) { |
return DefineAsRegister(new(zone()) LUint32ToDouble(UseRegister(val))); |
} else { |
@@ -2042,7 +2042,7 @@ LInstruction* LChunkBuilder::DoClampToUint8(HClampToUint8* instr) { |
LOperand* reg = UseFixed(value, eax); |
return DefineFixed(new(zone()) LClampIToUint8(reg), eax); |
} else { |
- ASSERT(input_rep.IsSmiOrTagged()); |
+ DCHECK(input_rep.IsSmiOrTagged()); |
LOperand* reg = UseFixed(value, eax); |
// Register allocator doesn't (yet) support allocation of double |
// temps. Reserve xmm1 explicitly. |
@@ -2055,7 +2055,7 @@ LInstruction* LChunkBuilder::DoClampToUint8(HClampToUint8* instr) { |
LInstruction* LChunkBuilder::DoDoubleBits(HDoubleBits* instr) { |
HValue* value = instr->value(); |
- ASSERT(value->representation().IsDouble()); |
+ DCHECK(value->representation().IsDouble()); |
return DefineAsRegister(new(zone()) LDoubleBits(UseRegister(value))); |
} |
@@ -2193,7 +2193,7 @@ LInstruction* LChunkBuilder::DoLoadRoot(HLoadRoot* instr) { |
LInstruction* LChunkBuilder::DoLoadKeyed(HLoadKeyed* instr) { |
- ASSERT(instr->key()->representation().IsSmiOrInteger32()); |
+ DCHECK(instr->key()->representation().IsSmiOrInteger32()); |
ElementsKind elements_kind = instr->elements_kind(); |
bool clobbers_key = ExternalArrayOpRequiresTemp( |
instr->key()->representation(), elements_kind); |
@@ -2206,7 +2206,7 @@ LInstruction* LChunkBuilder::DoLoadKeyed(HLoadKeyed* instr) { |
LOperand* obj = UseRegisterAtStart(instr->elements()); |
result = DefineAsRegister(new(zone()) LLoadKeyed(obj, key)); |
} else { |
- ASSERT( |
+ DCHECK( |
(instr->representation().IsInteger32() && |
!(IsDoubleOrFloatElementsKind(instr->elements_kind()))) || |
(instr->representation().IsDouble() && |
@@ -2264,8 +2264,8 @@ LOperand* LChunkBuilder::GetStoreKeyedValueOperand(HStoreKeyed* instr) { |
LInstruction* LChunkBuilder::DoStoreKeyed(HStoreKeyed* instr) { |
if (!instr->is_typed_elements()) { |
- ASSERT(instr->elements()->representation().IsTagged()); |
- ASSERT(instr->key()->representation().IsInteger32() || |
+ DCHECK(instr->elements()->representation().IsTagged()); |
+ DCHECK(instr->key()->representation().IsInteger32() || |
instr->key()->representation().IsSmi()); |
if (instr->value()->representation().IsDouble()) { |
@@ -2275,7 +2275,7 @@ LInstruction* LChunkBuilder::DoStoreKeyed(HStoreKeyed* instr) { |
LOperand* key = UseRegisterOrConstantAtStart(instr->key()); |
return new(zone()) LStoreKeyed(object, key, val); |
} else { |
- ASSERT(instr->value()->representation().IsSmiOrTagged()); |
+ DCHECK(instr->value()->representation().IsSmiOrTagged()); |
bool needs_write_barrier = instr->NeedsWriteBarrier(); |
LOperand* obj = UseRegister(instr->elements()); |
@@ -2293,12 +2293,12 @@ LInstruction* LChunkBuilder::DoStoreKeyed(HStoreKeyed* instr) { |
} |
ElementsKind elements_kind = instr->elements_kind(); |
- ASSERT( |
+ DCHECK( |
(instr->value()->representation().IsInteger32() && |
!IsDoubleOrFloatElementsKind(elements_kind)) || |
(instr->value()->representation().IsDouble() && |
IsDoubleOrFloatElementsKind(elements_kind))); |
- ASSERT((instr->is_fixed_typed_array() && |
+ DCHECK((instr->is_fixed_typed_array() && |
instr->elements()->representation().IsTagged()) || |
(instr->is_external() && |
instr->elements()->representation().IsExternal())); |
@@ -2321,9 +2321,9 @@ LInstruction* LChunkBuilder::DoStoreKeyedGeneric(HStoreKeyedGeneric* instr) { |
LOperand* key = UseFixed(instr->key(), KeyedStoreIC::NameRegister()); |
LOperand* value = UseFixed(instr->value(), KeyedStoreIC::ValueRegister()); |
- ASSERT(instr->object()->representation().IsTagged()); |
- ASSERT(instr->key()->representation().IsTagged()); |
- ASSERT(instr->value()->representation().IsTagged()); |
+ DCHECK(instr->object()->representation().IsTagged()); |
+ DCHECK(instr->key()->representation().IsTagged()); |
+ DCHECK(instr->value()->representation().IsTagged()); |
LStoreKeyedGeneric* result = |
new(zone()) LStoreKeyedGeneric(context, object, key, value); |
@@ -2375,9 +2375,9 @@ LInstruction* LChunkBuilder::DoStoreNamedField(HStoreNamedField* instr) { |
? UseRegister(instr->object()) |
: UseTempRegister(instr->object()); |
} else if (is_external_location) { |
- ASSERT(!is_in_object); |
- ASSERT(!needs_write_barrier); |
- ASSERT(!needs_write_barrier_for_map); |
+ DCHECK(!is_in_object); |
+ DCHECK(!needs_write_barrier); |
+ DCHECK(!needs_write_barrier_for_map); |
obj = UseRegisterOrConstant(instr->object()); |
} else { |
obj = needs_write_barrier_for_map |
@@ -2485,7 +2485,7 @@ LInstruction* LChunkBuilder::DoFunctionLiteral(HFunctionLiteral* instr) { |
LInstruction* LChunkBuilder::DoOsrEntry(HOsrEntry* instr) { |
- ASSERT(argument_count_ == 0); |
+ DCHECK(argument_count_ == 0); |
allocator_->MarkAsOsrEntry(); |
current_block_->last_environment()->set_ast_id(instr->ast_id()); |
return AssignEnvironment(new(zone()) LOsrEntry); |
@@ -2498,7 +2498,7 @@ LInstruction* LChunkBuilder::DoParameter(HParameter* instr) { |
int spill_index = chunk()->GetParameterStackSlot(instr->index()); |
return DefineAsSpilled(result, spill_index); |
} else { |
- ASSERT(info()->IsStub()); |
+ DCHECK(info()->IsStub()); |
CodeStubInterfaceDescriptor* descriptor = |
info()->code_stub()->GetInterfaceDescriptor(); |
int index = static_cast<int>(instr->index()); |
@@ -2609,7 +2609,7 @@ LInstruction* LChunkBuilder::DoStackCheck(HStackCheck* instr) { |
LOperand* context = UseFixed(instr->context(), esi); |
return MarkAsCall(new(zone()) LStackCheck(context), instr); |
} else { |
- ASSERT(instr->is_backwards_branch()); |
+ DCHECK(instr->is_backwards_branch()); |
LOperand* context = UseAny(instr->context()); |
return AssignEnvironment( |
AssignPointerMap(new(zone()) LStackCheck(context))); |
@@ -2645,7 +2645,7 @@ LInstruction* LChunkBuilder::DoLeaveInlined(HLeaveInlined* instr) { |
if (env->entry()->arguments_pushed()) { |
int argument_count = env->arguments_environment()->parameter_count(); |
pop = new(zone()) LDrop(argument_count); |
- ASSERT(instr->argument_delta() == -argument_count); |
+ DCHECK(instr->argument_delta() == -argument_count); |
} |
HEnvironment* outer = current_block_->last_environment()-> |