| Index: src/x64/lithium-x64.cc
|
| diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc
|
| index 46d5270faa57dc5c887edac44db5b5440073412a..0575166fa4b2a7b77a9527958dd48bb4bc0ee12d 100644
|
| --- a/src/x64/lithium-x64.cc
|
| +++ b/src/x64/lithium-x64.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
|
| @@ -352,7 +352,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());
|
| }
|
| }
|
| @@ -399,7 +399,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 {
|
| @@ -424,7 +424,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;
|
| @@ -645,7 +645,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;
|
| }
|
| @@ -666,14 +666,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;
|
| }
|
|
|
| @@ -702,8 +702,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();
|
| @@ -745,9 +745,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 = UseFixedDouble(instr->BetterRightOperand(), xmm1);
|
| @@ -766,8 +766,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(), rsi);
|
| LOperand* left_operand = UseFixed(left, rdx);
|
| LOperand* right_operand = UseFixed(right, rax);
|
| @@ -778,7 +778,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()) {
|
| @@ -787,13 +787,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()) {
|
| @@ -801,7 +801,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.
|
| @@ -853,7 +853,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))));
|
| }
|
| @@ -876,7 +876,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);
|
| @@ -918,7 +918,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
|
|
|
| @@ -982,7 +982,7 @@ LInstruction* LChunkBuilder::DoBranch(HBranch* 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);
|
| }
|
| @@ -1190,8 +1190,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);
|
| }
|
| @@ -1205,8 +1205,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();
|
| @@ -1281,9 +1281,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());
|
| @@ -1295,9 +1295,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(
|
| @@ -1313,9 +1313,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(rax);
|
| @@ -1332,9 +1332,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(), rax);
|
| LOperand* divisor = UseRegister(instr->right());
|
| LOperand* temp = FixedTemp(rdx);
|
| @@ -1381,9 +1381,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(rax);
|
| @@ -1408,9 +1408,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(), rax);
|
| LOperand* divisor = UseRegister(instr->right());
|
| LOperand* temp = FixedTemp(rdx);
|
| @@ -1437,9 +1437,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(
|
| @@ -1453,9 +1453,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(rax);
|
| @@ -1470,9 +1470,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(), rax);
|
| LOperand* divisor = UseRegister(instr->right());
|
| LOperand* temp = FixedTemp(rdx);
|
| @@ -1505,8 +1505,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());
|
| LMulI* mul = new(zone()) LMulI(left, right);
|
| @@ -1525,8 +1525,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);
|
| @@ -1550,8 +1550,8 @@ LInstruction* LChunkBuilder::DoAdd(HAdd* instr) {
|
| // are multiple uses of the add's inputs, so using a 3-register add will
|
| // preserve all input values for later uses.
|
| bool use_lea = LAddI::UseLea(instr);
|
| - 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());
|
| HValue* right_candidate = instr->BetterRightOperand();
|
| LOperand* right;
|
| @@ -1572,9 +1572,9 @@ LInstruction* LChunkBuilder::DoAdd(HAdd* instr) {
|
| }
|
| return result;
|
| } 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();
|
| @@ -1598,8 +1598,8 @@ LInstruction* LChunkBuilder::DoAdd(HAdd* instr) {
|
| LInstruction* LChunkBuilder::DoMathMinMax(HMathMinMax* instr) {
|
| LOperand* left = NULL;
|
| LOperand* right = NULL;
|
| - 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()));
|
| if (instr->representation().IsSmi()) {
|
| left = UseRegisterAtStart(instr->BetterLeftOperand());
|
| right = UseAtStart(instr->BetterRightOperand());
|
| @@ -1607,7 +1607,7 @@ LInstruction* LChunkBuilder::DoMathMinMax(HMathMinMax* instr) {
|
| left = UseRegisterAtStart(instr->BetterLeftOperand());
|
| right = UseOrConstantAtStart(instr->BetterRightOperand());
|
| } else {
|
| - ASSERT(instr->representation().IsDouble());
|
| + DCHECK(instr->representation().IsDouble());
|
| left = UseRegisterAtStart(instr->left());
|
| right = UseRegisterAtStart(instr->right());
|
| }
|
| @@ -1617,11 +1617,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) : UseFixed(instr->right(), rdx);
|
| @@ -1632,8 +1632,8 @@ LInstruction* LChunkBuilder::DoPower(HPower* instr) {
|
|
|
|
|
| LInstruction* LChunkBuilder::DoCompareGeneric(HCompareGeneric* 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(), rsi);
|
| LOperand* left = UseFixed(instr->left(), rdx);
|
| LOperand* right = UseFixed(instr->right(), rax);
|
| @@ -1646,15 +1646,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 (instr->left()->IsConstant() && instr->right()->IsConstant()) {
|
| @@ -1692,13 +1692,13 @@ LInstruction* LChunkBuilder::DoCompareMinusZeroAndBranch(
|
|
|
|
|
| LInstruction* LChunkBuilder::DoIsObjectAndBranch(HIsObjectAndBranch* instr) {
|
| - ASSERT(instr->value()->representation().IsTagged());
|
| + DCHECK(instr->value()->representation().IsTagged());
|
| return new(zone()) LIsObjectAndBranch(UseRegisterAtStart(instr->value()));
|
| }
|
|
|
|
|
| LInstruction* LChunkBuilder::DoIsStringAndBranch(HIsStringAndBranch* instr) {
|
| - ASSERT(instr->value()->representation().IsTagged());
|
| + DCHECK(instr->value()->representation().IsTagged());
|
| LOperand* value = UseRegisterAtStart(instr->value());
|
| LOperand* temp = TempRegister();
|
| return new(zone()) LIsStringAndBranch(value, temp);
|
| @@ -1706,14 +1706,14 @@ LInstruction* LChunkBuilder::DoIsStringAndBranch(HIsStringAndBranch* instr) {
|
|
|
|
|
| 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());
|
| LOperand* value = UseRegisterAtStart(instr->value());
|
| LOperand* temp = TempRegister();
|
| return new(zone()) LIsUndetectableAndBranch(value, temp);
|
| @@ -1723,8 +1723,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(), rsi);
|
| LOperand* left = UseFixed(instr->left(), rdx);
|
| LOperand* right = UseFixed(instr->right(), rax);
|
| @@ -1737,7 +1737,7 @@ LInstruction* LChunkBuilder::DoStringCompareAndBranch(
|
|
|
| LInstruction* LChunkBuilder::DoHasInstanceTypeAndBranch(
|
| HHasInstanceTypeAndBranch* instr) {
|
| - ASSERT(instr->value()->representation().IsTagged());
|
| + DCHECK(instr->value()->representation().IsTagged());
|
| LOperand* value = UseRegisterAtStart(instr->value());
|
| return new(zone()) LHasInstanceTypeAndBranch(value);
|
| }
|
| @@ -1745,7 +1745,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));
|
| @@ -1754,7 +1754,7 @@ LInstruction* LChunkBuilder::DoGetCachedArrayIndex(
|
|
|
| LInstruction* LChunkBuilder::DoHasCachedArrayIndexAndBranch(
|
| HHasCachedArrayIndexAndBranch* instr) {
|
| - ASSERT(instr->value()->representation().IsTagged());
|
| + DCHECK(instr->value()->representation().IsTagged());
|
| LOperand* value = UseRegisterAtStart(instr->value());
|
| return new(zone()) LHasCachedArrayIndexAndBranch(value);
|
| }
|
| @@ -1872,7 +1872,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));
|
| @@ -1899,7 +1899,7 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) {
|
| return AssignEnvironment(
|
| DefineAsRegister(new(zone()) LDoubleToSmi(value)));
|
| } else {
|
| - ASSERT(to.IsInteger32());
|
| + DCHECK(to.IsInteger32());
|
| LOperand* value = UseRegister(val);
|
| LInstruction* result = DefineAsRegister(new(zone()) LDoubleToI(value));
|
| if (!instr->CanTruncateToInt32()) result = AssignEnvironment(result);
|
| @@ -1932,7 +1932,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 {
|
| @@ -1996,7 +1996,7 @@ LInstruction* LChunkBuilder::DoClampToUint8(HClampToUint8* instr) {
|
| } else if (input_rep.IsInteger32()) {
|
| return DefineSameAsFirst(new(zone()) LClampIToUint8(reg));
|
| } else {
|
| - ASSERT(input_rep.IsSmiOrTagged());
|
| + DCHECK(input_rep.IsSmiOrTagged());
|
| // Register allocator doesn't (yet) support allocation of double
|
| // temps. Reserve xmm1 explicitly.
|
| LClampTToUint8* result = new(zone()) LClampTToUint8(reg,
|
| @@ -2008,7 +2008,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)));
|
| }
|
|
|
| @@ -2159,7 +2159,7 @@ void LChunkBuilder::FindDehoistedKeyDefinitions(HValue* candidate) {
|
| // size is 64-bit. For x32 port, we sign extend the dehoisted key at the use
|
| // points and should not invoke this function. We can't use STATIC_ASSERT
|
| // here as the pointer size is 32-bit for x32.
|
| - ASSERT(kPointerSize == kInt64Size);
|
| + DCHECK(kPointerSize == kInt64Size);
|
| BitVector* dehoisted_key_ids = chunk_->GetDehoistedKeyIds();
|
| if (dehoisted_key_ids->Contains(candidate->id())) return;
|
| dehoisted_key_ids->Add(candidate->id());
|
| @@ -2171,7 +2171,7 @@ void LChunkBuilder::FindDehoistedKeyDefinitions(HValue* candidate) {
|
|
|
|
|
| LInstruction* LChunkBuilder::DoLoadKeyed(HLoadKeyed* instr) {
|
| - ASSERT((kPointerSize == kInt64Size &&
|
| + DCHECK((kPointerSize == kInt64Size &&
|
| instr->key()->representation().IsInteger32()) ||
|
| (kPointerSize == kInt32Size &&
|
| instr->key()->representation().IsSmiOrInteger32()));
|
| @@ -2197,7 +2197,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(elements_kind))) ||
|
| (instr->representation().IsDouble() &&
|
| @@ -2243,7 +2243,7 @@ LInstruction* LChunkBuilder::DoStoreKeyed(HStoreKeyed* instr) {
|
| }
|
|
|
| if (!instr->is_typed_elements()) {
|
| - ASSERT(instr->elements()->representation().IsTagged());
|
| + DCHECK(instr->elements()->representation().IsTagged());
|
| bool needs_write_barrier = instr->NeedsWriteBarrier();
|
| LOperand* object = NULL;
|
| LOperand* key = NULL;
|
| @@ -2255,7 +2255,7 @@ LInstruction* LChunkBuilder::DoStoreKeyed(HStoreKeyed* instr) {
|
| val = UseRegisterAtStart(instr->value());
|
| key = UseRegisterOrConstantAtStart(instr->key());
|
| } else {
|
| - ASSERT(value_representation.IsSmiOrTagged() ||
|
| + DCHECK(value_representation.IsSmiOrTagged() ||
|
| value_representation.IsInteger32());
|
| if (needs_write_barrier) {
|
| object = UseTempRegister(instr->elements());
|
| @@ -2271,12 +2271,12 @@ LInstruction* LChunkBuilder::DoStoreKeyed(HStoreKeyed* instr) {
|
| return new(zone()) LStoreKeyed(object, key, val);
|
| }
|
|
|
| - 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()));
|
| @@ -2308,9 +2308,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);
|
| @@ -2361,9 +2361,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
|
| @@ -2465,7 +2465,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);
|
| @@ -2478,7 +2478,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());
|
| @@ -2584,7 +2584,7 @@ LInstruction* LChunkBuilder::DoStackCheck(HStackCheck* instr) {
|
| LOperand* context = UseFixed(instr->context(), rsi);
|
| 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)));
|
| @@ -2620,7 +2620,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()->
|
|
|