Index: src/mips/full-codegen-mips.cc |
diff --git a/src/mips/full-codegen-mips.cc b/src/mips/full-codegen-mips.cc |
index 1d8c7cc9dc59d2a250e42c95bae16c2949b777f5..639f57fd63da76d08dde2e871654326cda0c12b8 100644 |
--- a/src/mips/full-codegen-mips.cc |
+++ b/src/mips/full-codegen-mips.cc |
@@ -50,13 +50,13 @@ class JumpPatchSite BASE_EMBEDDED { |
} |
~JumpPatchSite() { |
- ASSERT(patch_site_.is_bound() == info_emitted_); |
+ DCHECK(patch_site_.is_bound() == info_emitted_); |
} |
// When initially emitting this ensure that a jump is always generated to skip |
// the inlined smi code. |
void EmitJumpIfNotSmi(Register reg, Label* target) { |
- ASSERT(!patch_site_.is_bound() && !info_emitted_); |
+ DCHECK(!patch_site_.is_bound() && !info_emitted_); |
Assembler::BlockTrampolinePoolScope block_trampoline_pool(masm_); |
__ bind(&patch_site_); |
__ andi(at, reg, 0); |
@@ -68,7 +68,7 @@ class JumpPatchSite BASE_EMBEDDED { |
// the inlined smi code. |
void EmitJumpIfSmi(Register reg, Label* target) { |
Assembler::BlockTrampolinePoolScope block_trampoline_pool(masm_); |
- ASSERT(!patch_site_.is_bound() && !info_emitted_); |
+ DCHECK(!patch_site_.is_bound() && !info_emitted_); |
__ bind(&patch_site_); |
__ andi(at, reg, 0); |
// Never taken before patched. |
@@ -160,7 +160,7 @@ void FullCodeGenerator::Generate() { |
{ Comment cmnt(masm_, "[ Allocate locals"); |
int locals_count = info->scope()->num_stack_slots(); |
// Generators allocate locals, if any, in context slots. |
- ASSERT(!info->function()->is_generator() || locals_count == 0); |
+ DCHECK(!info->function()->is_generator() || locals_count == 0); |
if (locals_count > 0) { |
if (locals_count >= 128) { |
Label ok; |
@@ -301,9 +301,9 @@ void FullCodeGenerator::Generate() { |
// constant. |
if (scope()->is_function_scope() && scope()->function() != NULL) { |
VariableDeclaration* function = scope()->function(); |
- ASSERT(function->proxy()->var()->mode() == CONST || |
+ DCHECK(function->proxy()->var()->mode() == CONST || |
function->proxy()->var()->mode() == CONST_LEGACY); |
- ASSERT(function->proxy()->var()->location() != Variable::UNALLOCATED); |
+ DCHECK(function->proxy()->var()->location() != Variable::UNALLOCATED); |
VisitVariableDeclaration(function); |
} |
VisitDeclarations(scope()->declarations()); |
@@ -322,9 +322,9 @@ void FullCodeGenerator::Generate() { |
} |
{ Comment cmnt(masm_, "[ Body"); |
- ASSERT(loop_depth() == 0); |
+ DCHECK(loop_depth() == 0); |
VisitStatements(function()->body()); |
- ASSERT(loop_depth() == 0); |
+ DCHECK(loop_depth() == 0); |
} |
} |
@@ -338,7 +338,7 @@ void FullCodeGenerator::Generate() { |
void FullCodeGenerator::ClearAccumulator() { |
- ASSERT(Smi::FromInt(0) == 0); |
+ DCHECK(Smi::FromInt(0) == 0); |
__ mov(v0, zero_reg); |
} |
@@ -373,7 +373,7 @@ void FullCodeGenerator::EmitBackEdgeBookkeeping(IterationStatement* stmt, |
Assembler::BlockTrampolinePoolScope block_trampoline_pool(masm_); |
Comment cmnt(masm_, "[ Back edge bookkeeping"); |
Label ok; |
- ASSERT(back_edge_target->is_bound()); |
+ DCHECK(back_edge_target->is_bound()); |
int distance = masm_->SizeOfCodeGeneratedSince(back_edge_target); |
int weight = Min(kMaxBackEdgeWeight, |
Max(1, distance / kCodeSizeMultiplier)); |
@@ -452,7 +452,7 @@ void FullCodeGenerator::EmitReturnSequence() { |
#ifdef DEBUG |
// Check that the size of the code used for returning is large enough |
// for the debugger's requirements. |
- ASSERT(Assembler::kJSReturnSequenceInstructions <= |
+ DCHECK(Assembler::kJSReturnSequenceInstructions <= |
masm_->InstructionsGeneratedSince(&check_exit_codesize)); |
#endif |
} |
@@ -460,18 +460,18 @@ void FullCodeGenerator::EmitReturnSequence() { |
void FullCodeGenerator::EffectContext::Plug(Variable* var) const { |
- ASSERT(var->IsStackAllocated() || var->IsContextSlot()); |
+ DCHECK(var->IsStackAllocated() || var->IsContextSlot()); |
} |
void FullCodeGenerator::AccumulatorValueContext::Plug(Variable* var) const { |
- ASSERT(var->IsStackAllocated() || var->IsContextSlot()); |
+ DCHECK(var->IsStackAllocated() || var->IsContextSlot()); |
codegen()->GetVar(result_register(), var); |
} |
void FullCodeGenerator::StackValueContext::Plug(Variable* var) const { |
- ASSERT(var->IsStackAllocated() || var->IsContextSlot()); |
+ DCHECK(var->IsStackAllocated() || var->IsContextSlot()); |
codegen()->GetVar(result_register(), var); |
__ push(result_register()); |
} |
@@ -542,7 +542,7 @@ void FullCodeGenerator::TestContext::Plug(Handle<Object> lit) const { |
true, |
true_label_, |
false_label_); |
- ASSERT(!lit->IsUndetectableObject()); // There are no undetectable literals. |
+ DCHECK(!lit->IsUndetectableObject()); // There are no undetectable literals. |
if (lit->IsUndefined() || lit->IsNull() || lit->IsFalse()) { |
if (false_label_ != fall_through_) __ Branch(false_label_); |
} else if (lit->IsTrue() || lit->IsJSObject()) { |
@@ -569,7 +569,7 @@ void FullCodeGenerator::TestContext::Plug(Handle<Object> lit) const { |
void FullCodeGenerator::EffectContext::DropAndPlug(int count, |
Register reg) const { |
- ASSERT(count > 0); |
+ DCHECK(count > 0); |
__ Drop(count); |
} |
@@ -577,7 +577,7 @@ void FullCodeGenerator::EffectContext::DropAndPlug(int count, |
void FullCodeGenerator::AccumulatorValueContext::DropAndPlug( |
int count, |
Register reg) const { |
- ASSERT(count > 0); |
+ DCHECK(count > 0); |
__ Drop(count); |
__ Move(result_register(), reg); |
} |
@@ -585,7 +585,7 @@ void FullCodeGenerator::AccumulatorValueContext::DropAndPlug( |
void FullCodeGenerator::StackValueContext::DropAndPlug(int count, |
Register reg) const { |
- ASSERT(count > 0); |
+ DCHECK(count > 0); |
if (count > 1) __ Drop(count - 1); |
__ sw(reg, MemOperand(sp, 0)); |
} |
@@ -593,7 +593,7 @@ void FullCodeGenerator::StackValueContext::DropAndPlug(int count, |
void FullCodeGenerator::TestContext::DropAndPlug(int count, |
Register reg) const { |
- ASSERT(count > 0); |
+ DCHECK(count > 0); |
// For simplicity we always test the accumulator register. |
__ Drop(count); |
__ Move(result_register(), reg); |
@@ -604,7 +604,7 @@ void FullCodeGenerator::TestContext::DropAndPlug(int count, |
void FullCodeGenerator::EffectContext::Plug(Label* materialize_true, |
Label* materialize_false) const { |
- ASSERT(materialize_true == materialize_false); |
+ DCHECK(materialize_true == materialize_false); |
__ bind(materialize_true); |
} |
@@ -640,8 +640,8 @@ void FullCodeGenerator::StackValueContext::Plug( |
void FullCodeGenerator::TestContext::Plug(Label* materialize_true, |
Label* materialize_false) const { |
- ASSERT(materialize_true == true_label_); |
- ASSERT(materialize_false == false_label_); |
+ DCHECK(materialize_true == true_label_); |
+ DCHECK(materialize_false == false_label_); |
} |
@@ -707,7 +707,7 @@ void FullCodeGenerator::Split(Condition cc, |
MemOperand FullCodeGenerator::StackOperand(Variable* var) { |
- ASSERT(var->IsStackAllocated()); |
+ DCHECK(var->IsStackAllocated()); |
// Offset is negative because higher indexes are at lower addresses. |
int offset = -var->index() * kPointerSize; |
// Adjust by a (parameter or local) base offset. |
@@ -721,7 +721,7 @@ MemOperand FullCodeGenerator::StackOperand(Variable* var) { |
MemOperand FullCodeGenerator::VarOperand(Variable* var, Register scratch) { |
- ASSERT(var->IsContextSlot() || var->IsStackAllocated()); |
+ DCHECK(var->IsContextSlot() || var->IsStackAllocated()); |
if (var->IsContextSlot()) { |
int context_chain_length = scope()->ContextChainLength(var->scope()); |
__ LoadContext(scratch, context_chain_length); |
@@ -743,10 +743,10 @@ void FullCodeGenerator::SetVar(Variable* var, |
Register src, |
Register scratch0, |
Register scratch1) { |
- ASSERT(var->IsContextSlot() || var->IsStackAllocated()); |
- ASSERT(!scratch0.is(src)); |
- ASSERT(!scratch0.is(scratch1)); |
- ASSERT(!scratch1.is(src)); |
+ DCHECK(var->IsContextSlot() || var->IsStackAllocated()); |
+ DCHECK(!scratch0.is(src)); |
+ DCHECK(!scratch0.is(scratch1)); |
+ DCHECK(!scratch1.is(src)); |
MemOperand location = VarOperand(var, scratch0); |
__ sw(src, location); |
// Emit the write barrier code if the location is in the heap. |
@@ -784,7 +784,7 @@ void FullCodeGenerator::PrepareForBailoutBeforeSplit(Expression* expr, |
void FullCodeGenerator::EmitDebugCheckDeclarationContext(Variable* variable) { |
// The variable in the declaration always resides in the current function |
// context. |
- ASSERT_EQ(0, scope()->ContextChainLength(variable->scope())); |
+ DCHECK_EQ(0, scope()->ContextChainLength(variable->scope())); |
if (generate_debug_code_) { |
// Check that we're not inside a with or catch context. |
__ lw(a1, FieldMemOperand(cp, HeapObject::kMapOffset)); |
@@ -840,7 +840,7 @@ void FullCodeGenerator::VisitVariableDeclaration( |
Comment cmnt(masm_, "[ VariableDeclaration"); |
__ li(a2, Operand(variable->name())); |
// Declaration nodes are always introduced in one of four modes. |
- ASSERT(IsDeclaredVariableMode(mode)); |
+ DCHECK(IsDeclaredVariableMode(mode)); |
PropertyAttributes attr = |
IsImmutableVariableMode(mode) ? READ_ONLY : NONE; |
__ li(a1, Operand(Smi::FromInt(attr))); |
@@ -852,7 +852,7 @@ void FullCodeGenerator::VisitVariableDeclaration( |
__ LoadRoot(a0, Heap::kTheHoleValueRootIndex); |
__ Push(cp, a2, a1, a0); |
} else { |
- ASSERT(Smi::FromInt(0) == 0); |
+ DCHECK(Smi::FromInt(0) == 0); |
__ mov(a0, zero_reg); // Smi::FromInt(0) indicates no initial value. |
__ Push(cp, a2, a1, a0); |
} |
@@ -921,8 +921,8 @@ void FullCodeGenerator::VisitFunctionDeclaration( |
void FullCodeGenerator::VisitModuleDeclaration(ModuleDeclaration* declaration) { |
Variable* variable = declaration->proxy()->var(); |
- ASSERT(variable->location() == Variable::CONTEXT); |
- ASSERT(variable->interface()->IsFrozen()); |
+ DCHECK(variable->location() == Variable::CONTEXT); |
+ DCHECK(variable->interface()->IsFrozen()); |
Comment cmnt(masm_, "[ ModuleDeclaration"); |
EmitDebugCheckDeclarationContext(variable); |
@@ -1221,7 +1221,7 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) { |
// For proxies, no filtering is done. |
// TODO(rossberg): What if only a prototype is a proxy? Not specified yet. |
- ASSERT_EQ(Smi::FromInt(0), 0); |
+ DCHECK_EQ(Smi::FromInt(0), 0); |
__ Branch(&update_each, eq, a2, Operand(zero_reg)); |
// Convert the entry to a string or (smi) 0 if it isn't a property |
@@ -1403,7 +1403,7 @@ void FullCodeGenerator::EmitLoadGlobalCheckExtensions(VariableProxy* proxy, |
MemOperand FullCodeGenerator::ContextSlotOperandCheckExtensions(Variable* var, |
Label* slow) { |
- ASSERT(var->IsContextSlot()); |
+ DCHECK(var->IsContextSlot()); |
Register context = cp; |
Register next = a3; |
Register temp = t0; |
@@ -1498,7 +1498,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) { |
// always looked up dynamically, i.e. in that case |
// var->location() == LOOKUP. |
// always holds. |
- ASSERT(var->scope() != NULL); |
+ DCHECK(var->scope() != NULL); |
// Check if the binding really needs an initialization check. The check |
// can be skipped in the following situation: we have a LET or CONST |
@@ -1521,8 +1521,8 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) { |
skip_init_check = false; |
} else { |
// Check that we always have valid source position. |
- ASSERT(var->initializer_position() != RelocInfo::kNoPosition); |
- ASSERT(proxy->position() != RelocInfo::kNoPosition); |
+ DCHECK(var->initializer_position() != RelocInfo::kNoPosition); |
+ DCHECK(proxy->position() != RelocInfo::kNoPosition); |
skip_init_check = var->mode() != CONST_LEGACY && |
var->initializer_position() < proxy->position(); |
} |
@@ -1543,7 +1543,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) { |
__ bind(&done); |
} else { |
// Uninitalized const bindings outside of harmony mode are unholed. |
- ASSERT(var->mode() == CONST_LEGACY); |
+ DCHECK(var->mode() == CONST_LEGACY); |
__ LoadRoot(a0, Heap::kUndefinedValueRootIndex); |
__ Movz(v0, a0, at); // Conditional move: Undefined if TheHole. |
} |
@@ -1683,14 +1683,14 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) { |
case ObjectLiteral::Property::CONSTANT: |
UNREACHABLE(); |
case ObjectLiteral::Property::MATERIALIZED_LITERAL: |
- ASSERT(!CompileTimeValue::IsCompileTimeValue(property->value())); |
+ DCHECK(!CompileTimeValue::IsCompileTimeValue(property->value())); |
// Fall through. |
case ObjectLiteral::Property::COMPUTED: |
if (key->value()->IsInternalizedString()) { |
if (property->emit_store()) { |
VisitForAccumulatorValue(value); |
__ mov(StoreIC::ValueRegister(), result_register()); |
- ASSERT(StoreIC::ValueRegister().is(a0)); |
+ DCHECK(StoreIC::ValueRegister().is(a0)); |
__ li(StoreIC::NameRegister(), Operand(key->value())); |
__ lw(StoreIC::ReceiverRegister(), MemOperand(sp)); |
CallStoreIC(key->LiteralFeedbackId()); |
@@ -1749,7 +1749,7 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) { |
} |
if (expr->has_function()) { |
- ASSERT(result_saved); |
+ DCHECK(result_saved); |
__ lw(a0, MemOperand(sp)); |
__ push(a0); |
__ CallRuntime(Runtime::kToFastProperties, 1); |
@@ -1775,7 +1775,7 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
int length = subexprs->length(); |
Handle<FixedArray> constant_elements = expr->constant_elements(); |
- ASSERT_EQ(2, constant_elements->length()); |
+ DCHECK_EQ(2, constant_elements->length()); |
ElementsKind constant_elements_kind = |
static_cast<ElementsKind>(Smi::cast(constant_elements->get(0))->value()); |
bool has_fast_elements = |
@@ -1850,7 +1850,7 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
void FullCodeGenerator::VisitAssignment(Assignment* expr) { |
- ASSERT(expr->target()->IsValidReferenceExpression()); |
+ DCHECK(expr->target()->IsValidReferenceExpression()); |
Comment cmnt(masm_, "[ Assignment"); |
@@ -1981,7 +1981,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) { |
__ bind(&suspend); |
VisitForAccumulatorValue(expr->generator_object()); |
- ASSERT(continuation.pos() > 0 && Smi::IsValid(continuation.pos())); |
+ DCHECK(continuation.pos() > 0 && Smi::IsValid(continuation.pos())); |
__ li(a1, Operand(Smi::FromInt(continuation.pos()))); |
__ sw(a1, FieldMemOperand(v0, JSGeneratorObject::kContinuationOffset)); |
__ sw(cp, FieldMemOperand(v0, JSGeneratorObject::kContextOffset)); |
@@ -2055,7 +2055,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) { |
const int generator_object_depth = kPointerSize + handler_size; |
__ lw(a0, MemOperand(sp, generator_object_depth)); |
__ push(a0); // g |
- ASSERT(l_continuation.pos() > 0 && Smi::IsValid(l_continuation.pos())); |
+ DCHECK(l_continuation.pos() > 0 && Smi::IsValid(l_continuation.pos())); |
__ li(a1, Operand(Smi::FromInt(l_continuation.pos()))); |
__ sw(a1, FieldMemOperand(a0, JSGeneratorObject::kContinuationOffset)); |
__ sw(cp, FieldMemOperand(a0, JSGeneratorObject::kContextOffset)); |
@@ -2209,7 +2209,7 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator, |
__ push(a2); |
__ Branch(&push_operand_holes); |
__ bind(&call_resume); |
- ASSERT(!result_register().is(a1)); |
+ DCHECK(!result_register().is(a1)); |
__ Push(a1, result_register()); |
__ Push(Smi::FromInt(resume_mode)); |
__ CallRuntime(Runtime::kResumeJSGeneratorObject, 3); |
@@ -2261,7 +2261,7 @@ void FullCodeGenerator::EmitCreateIteratorResult(bool done) { |
__ pop(a2); |
__ li(a3, Operand(isolate()->factory()->ToBoolean(done))); |
__ li(t0, Operand(isolate()->factory()->empty_fixed_array())); |
- ASSERT_EQ(map->instance_size(), 5 * kPointerSize); |
+ DCHECK_EQ(map->instance_size(), 5 * kPointerSize); |
__ sw(a1, FieldMemOperand(v0, HeapObject::kMapOffset)); |
__ sw(t0, FieldMemOperand(v0, JSObject::kPropertiesOffset)); |
__ sw(t0, FieldMemOperand(v0, JSObject::kElementsOffset)); |
@@ -2378,7 +2378,7 @@ void FullCodeGenerator::EmitInlineSmiBinaryOp(BinaryOperation* expr, |
__ Branch(&done, ne, v0, Operand(zero_reg)); |
__ Addu(scratch2, right, left); |
__ Branch(&stub_call, lt, scratch2, Operand(zero_reg)); |
- ASSERT(Smi::FromInt(0) == 0); |
+ DCHECK(Smi::FromInt(0) == 0); |
__ mov(v0, zero_reg); |
break; |
} |
@@ -2414,7 +2414,7 @@ void FullCodeGenerator::EmitBinaryOp(BinaryOperation* expr, |
void FullCodeGenerator::EmitAssignment(Expression* expr) { |
- ASSERT(expr->IsValidReferenceExpression()); |
+ DCHECK(expr->IsValidReferenceExpression()); |
// Left-hand side can only be a property, a global or a (parameter or local) |
// slot. |
@@ -2484,13 +2484,13 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var, Token::Value op) { |
} else if (op == Token::INIT_CONST_LEGACY) { |
// Const initializers need a write barrier. |
- ASSERT(!var->IsParameter()); // No const parameters. |
+ DCHECK(!var->IsParameter()); // No const parameters. |
if (var->IsLookupSlot()) { |
__ li(a0, Operand(var->name())); |
__ Push(v0, cp, a0); // Context and name. |
__ CallRuntime(Runtime::kInitializeLegacyConstLookupSlot, 3); |
} else { |
- ASSERT(var->IsStackAllocated() || var->IsContextSlot()); |
+ DCHECK(var->IsStackAllocated() || var->IsContextSlot()); |
Label skip; |
MemOperand location = VarOperand(var, a1); |
__ lw(a2, location); |
@@ -2502,8 +2502,8 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var, Token::Value op) { |
} else if (var->mode() == LET && op != Token::INIT_LET) { |
// Non-initializing assignment to let variable needs a write barrier. |
- ASSERT(!var->IsLookupSlot()); |
- ASSERT(var->IsStackAllocated() || var->IsContextSlot()); |
+ DCHECK(!var->IsLookupSlot()); |
+ DCHECK(var->IsStackAllocated() || var->IsContextSlot()); |
Label assign; |
MemOperand location = VarOperand(var, a1); |
__ lw(a3, location); |
@@ -2526,7 +2526,7 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var, Token::Value op) { |
} else { |
// Assignment to var or initializing assignment to let/const in harmony |
// mode. |
- ASSERT((var->IsStackAllocated() || var->IsContextSlot())); |
+ DCHECK((var->IsStackAllocated() || var->IsContextSlot())); |
MemOperand location = VarOperand(var, a1); |
if (generate_debug_code_ && op == Token::INIT_LET) { |
// Check for an uninitialized let binding. |
@@ -2544,8 +2544,8 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var, Token::Value op) { |
void FullCodeGenerator::EmitNamedPropertyAssignment(Assignment* expr) { |
// Assignment to a property, using a named store IC. |
Property* prop = expr->target()->AsProperty(); |
- ASSERT(prop != NULL); |
- ASSERT(prop->key()->IsLiteral()); |
+ DCHECK(prop != NULL); |
+ DCHECK(prop->key()->IsLiteral()); |
// Record source code position before IC call. |
SetSourcePosition(expr->position()); |
@@ -2571,7 +2571,7 @@ void FullCodeGenerator::EmitKeyedPropertyAssignment(Assignment* expr) { |
// - a2 is the receiver. |
__ mov(KeyedStoreIC::ValueRegister(), result_register()); |
__ Pop(KeyedStoreIC::ReceiverRegister(), KeyedStoreIC::NameRegister()); |
- ASSERT(KeyedStoreIC::ValueRegister().is(a0)); |
+ DCHECK(KeyedStoreIC::ValueRegister().is(a0)); |
Handle<Code> ic = strict_mode() == SLOPPY |
? isolate()->builtins()->KeyedStoreIC_Initialize() |
@@ -2630,7 +2630,7 @@ void FullCodeGenerator::EmitCallWithLoadIC(Call* expr) { |
__ Push(isolate()->factory()->undefined_value()); |
} else { |
// Load the function from the receiver. |
- ASSERT(callee->IsProperty()); |
+ DCHECK(callee->IsProperty()); |
__ lw(LoadIC::ReceiverRegister(), MemOperand(sp, 0)); |
EmitNamedPropertyLoad(callee->AsProperty()); |
PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG); |
@@ -2653,7 +2653,7 @@ void FullCodeGenerator::EmitKeyedCallWithLoadIC(Call* expr, |
Expression* callee = expr->expression(); |
// Load the function from the receiver. |
- ASSERT(callee->IsProperty()); |
+ DCHECK(callee->IsProperty()); |
__ lw(LoadIC::ReceiverRegister(), MemOperand(sp, 0)); |
__ Move(LoadIC::NameRegister(), v0); |
EmitKeyedPropertyLoad(callee->AsProperty()); |
@@ -2784,7 +2784,7 @@ void FullCodeGenerator::VisitCall(Call* expr) { |
__ bind(&slow); |
// Call the runtime to find the function to call (returned in v0) |
// and the object holding it (returned in v1). |
- ASSERT(!context_register().is(a2)); |
+ DCHECK(!context_register().is(a2)); |
__ li(a2, Operand(proxy->name())); |
__ Push(context_register(), a2); |
__ CallRuntime(Runtime::kLoadLookupSlot, 2); |
@@ -2820,7 +2820,7 @@ void FullCodeGenerator::VisitCall(Call* expr) { |
EmitKeyedCallWithLoadIC(expr, property->key()); |
} |
} else { |
- ASSERT(call_type == Call::OTHER_CALL); |
+ DCHECK(call_type == Call::OTHER_CALL); |
// Call to an arbitrary expression not handled specially above. |
{ PreservePositionScope scope(masm()->positions_recorder()); |
VisitForStackValue(callee); |
@@ -2833,7 +2833,7 @@ void FullCodeGenerator::VisitCall(Call* expr) { |
#ifdef DEBUG |
// RecordJSReturnSite should have been called. |
- ASSERT(expr->return_is_recorded_); |
+ DCHECK(expr->return_is_recorded_); |
#endif |
} |
@@ -2867,7 +2867,7 @@ void FullCodeGenerator::VisitCallNew(CallNew* expr) { |
// Record call targets in unoptimized code. |
if (FLAG_pretenuring_call_new) { |
EnsureSlotContainsAllocationSite(expr->AllocationSiteFeedbackSlot()); |
- ASSERT(expr->AllocationSiteFeedbackSlot() == |
+ DCHECK(expr->AllocationSiteFeedbackSlot() == |
expr->CallNewFeedbackSlot() + 1); |
} |
@@ -2883,7 +2883,7 @@ void FullCodeGenerator::VisitCallNew(CallNew* expr) { |
void FullCodeGenerator::EmitIsSmi(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
VisitForAccumulatorValue(args->at(0)); |
@@ -2904,7 +2904,7 @@ void FullCodeGenerator::EmitIsSmi(CallRuntime* expr) { |
void FullCodeGenerator::EmitIsNonNegativeSmi(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
VisitForAccumulatorValue(args->at(0)); |
@@ -2925,7 +2925,7 @@ void FullCodeGenerator::EmitIsNonNegativeSmi(CallRuntime* expr) { |
void FullCodeGenerator::EmitIsObject(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
VisitForAccumulatorValue(args->at(0)); |
@@ -2956,7 +2956,7 @@ void FullCodeGenerator::EmitIsObject(CallRuntime* expr) { |
void FullCodeGenerator::EmitIsSpecObject(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
VisitForAccumulatorValue(args->at(0)); |
@@ -2979,7 +2979,7 @@ void FullCodeGenerator::EmitIsSpecObject(CallRuntime* expr) { |
void FullCodeGenerator::EmitIsUndetectableObject(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
VisitForAccumulatorValue(args->at(0)); |
@@ -3004,7 +3004,7 @@ void FullCodeGenerator::EmitIsUndetectableObject(CallRuntime* expr) { |
void FullCodeGenerator::EmitIsStringWrapperSafeForDefaultValueOf( |
CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
VisitForAccumulatorValue(args->at(0)); |
@@ -3091,7 +3091,7 @@ void FullCodeGenerator::EmitIsStringWrapperSafeForDefaultValueOf( |
void FullCodeGenerator::EmitIsFunction(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
VisitForAccumulatorValue(args->at(0)); |
@@ -3114,7 +3114,7 @@ void FullCodeGenerator::EmitIsFunction(CallRuntime* expr) { |
void FullCodeGenerator::EmitIsMinusZero(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
VisitForAccumulatorValue(args->at(0)); |
@@ -3144,7 +3144,7 @@ void FullCodeGenerator::EmitIsMinusZero(CallRuntime* expr) { |
void FullCodeGenerator::EmitIsArray(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
VisitForAccumulatorValue(args->at(0)); |
@@ -3167,7 +3167,7 @@ void FullCodeGenerator::EmitIsArray(CallRuntime* expr) { |
void FullCodeGenerator::EmitIsRegExp(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
VisitForAccumulatorValue(args->at(0)); |
@@ -3188,7 +3188,7 @@ void FullCodeGenerator::EmitIsRegExp(CallRuntime* expr) { |
void FullCodeGenerator::EmitIsConstructCall(CallRuntime* expr) { |
- ASSERT(expr->arguments()->length() == 0); |
+ DCHECK(expr->arguments()->length() == 0); |
Label materialize_true, materialize_false; |
Label* if_true = NULL; |
@@ -3220,7 +3220,7 @@ void FullCodeGenerator::EmitIsConstructCall(CallRuntime* expr) { |
void FullCodeGenerator::EmitObjectEquals(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 2); |
+ DCHECK(args->length() == 2); |
// Load the two objects into registers and perform the comparison. |
VisitForStackValue(args->at(0)); |
@@ -3243,7 +3243,7 @@ void FullCodeGenerator::EmitObjectEquals(CallRuntime* expr) { |
void FullCodeGenerator::EmitArguments(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
// ArgumentsAccessStub expects the key in a1 and the formal |
// parameter count in a0. |
@@ -3257,7 +3257,7 @@ void FullCodeGenerator::EmitArguments(CallRuntime* expr) { |
void FullCodeGenerator::EmitArgumentsLength(CallRuntime* expr) { |
- ASSERT(expr->arguments()->length() == 0); |
+ DCHECK(expr->arguments()->length() == 0); |
Label exit; |
// Get the number of formal parameters. |
__ li(v0, Operand(Smi::FromInt(info_->scope()->num_parameters()))); |
@@ -3279,7 +3279,7 @@ void FullCodeGenerator::EmitArgumentsLength(CallRuntime* expr) { |
void FullCodeGenerator::EmitClassOf(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
Label done, null, function, non_function_constructor; |
VisitForAccumulatorValue(args->at(0)); |
@@ -3341,7 +3341,7 @@ void FullCodeGenerator::EmitSubString(CallRuntime* expr) { |
// Load the arguments on the stack and call the stub. |
SubStringStub stub(isolate()); |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 3); |
+ DCHECK(args->length() == 3); |
VisitForStackValue(args->at(0)); |
VisitForStackValue(args->at(1)); |
VisitForStackValue(args->at(2)); |
@@ -3354,7 +3354,7 @@ void FullCodeGenerator::EmitRegExpExec(CallRuntime* expr) { |
// Load the arguments on the stack and call the stub. |
RegExpExecStub stub(isolate()); |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 4); |
+ DCHECK(args->length() == 4); |
VisitForStackValue(args->at(0)); |
VisitForStackValue(args->at(1)); |
VisitForStackValue(args->at(2)); |
@@ -3366,7 +3366,7 @@ void FullCodeGenerator::EmitRegExpExec(CallRuntime* expr) { |
void FullCodeGenerator::EmitValueOf(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
VisitForAccumulatorValue(args->at(0)); // Load the object. |
@@ -3386,8 +3386,8 @@ void FullCodeGenerator::EmitValueOf(CallRuntime* expr) { |
void FullCodeGenerator::EmitDateField(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 2); |
- ASSERT_NE(NULL, args->at(1)->AsLiteral()); |
+ DCHECK(args->length() == 2); |
+ DCHECK_NE(NULL, args->at(1)->AsLiteral()); |
Smi* index = Smi::cast(*(args->at(1)->AsLiteral()->value())); |
VisitForAccumulatorValue(args->at(0)); // Load the object. |
@@ -3433,7 +3433,7 @@ void FullCodeGenerator::EmitDateField(CallRuntime* expr) { |
void FullCodeGenerator::EmitOneByteSeqStringSetChar(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT_EQ(3, args->length()); |
+ DCHECK_EQ(3, args->length()); |
Register string = v0; |
Register index = a1; |
@@ -3470,7 +3470,7 @@ void FullCodeGenerator::EmitOneByteSeqStringSetChar(CallRuntime* expr) { |
void FullCodeGenerator::EmitTwoByteSeqStringSetChar(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT_EQ(3, args->length()); |
+ DCHECK_EQ(3, args->length()); |
Register string = v0; |
Register index = a1; |
@@ -3508,7 +3508,7 @@ void FullCodeGenerator::EmitTwoByteSeqStringSetChar(CallRuntime* expr) { |
void FullCodeGenerator::EmitMathPow(CallRuntime* expr) { |
// Load the arguments on the stack and call the runtime function. |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 2); |
+ DCHECK(args->length() == 2); |
VisitForStackValue(args->at(0)); |
VisitForStackValue(args->at(1)); |
MathPowStub stub(isolate(), MathPowStub::ON_STACK); |
@@ -3519,7 +3519,7 @@ void FullCodeGenerator::EmitMathPow(CallRuntime* expr) { |
void FullCodeGenerator::EmitSetValueOf(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 2); |
+ DCHECK(args->length() == 2); |
VisitForStackValue(args->at(0)); // Load the object. |
VisitForAccumulatorValue(args->at(1)); // Load the value. |
@@ -3548,7 +3548,7 @@ void FullCodeGenerator::EmitSetValueOf(CallRuntime* expr) { |
void FullCodeGenerator::EmitNumberToString(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT_EQ(args->length(), 1); |
+ DCHECK_EQ(args->length(), 1); |
// Load the argument into a0 and call the stub. |
VisitForAccumulatorValue(args->at(0)); |
@@ -3562,7 +3562,7 @@ void FullCodeGenerator::EmitNumberToString(CallRuntime* expr) { |
void FullCodeGenerator::EmitStringCharFromCode(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
VisitForAccumulatorValue(args->at(0)); |
@@ -3581,7 +3581,7 @@ void FullCodeGenerator::EmitStringCharFromCode(CallRuntime* expr) { |
void FullCodeGenerator::EmitStringCharCodeAt(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 2); |
+ DCHECK(args->length() == 2); |
VisitForStackValue(args->at(0)); |
VisitForAccumulatorValue(args->at(1)); |
@@ -3628,7 +3628,7 @@ void FullCodeGenerator::EmitStringCharCodeAt(CallRuntime* expr) { |
void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 2); |
+ DCHECK(args->length() == 2); |
VisitForStackValue(args->at(0)); |
VisitForAccumulatorValue(args->at(1)); |
@@ -3677,7 +3677,7 @@ void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) { |
void FullCodeGenerator::EmitStringAdd(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT_EQ(2, args->length()); |
+ DCHECK_EQ(2, args->length()); |
VisitForStackValue(args->at(0)); |
VisitForAccumulatorValue(args->at(1)); |
@@ -3691,7 +3691,7 @@ void FullCodeGenerator::EmitStringAdd(CallRuntime* expr) { |
void FullCodeGenerator::EmitStringCompare(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT_EQ(2, args->length()); |
+ DCHECK_EQ(2, args->length()); |
VisitForStackValue(args->at(0)); |
VisitForStackValue(args->at(1)); |
@@ -3704,7 +3704,7 @@ void FullCodeGenerator::EmitStringCompare(CallRuntime* expr) { |
void FullCodeGenerator::EmitCallFunction(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() >= 2); |
+ DCHECK(args->length() >= 2); |
int arg_count = args->length() - 2; // 2 ~ receiver and function. |
for (int i = 0; i < arg_count + 1; i++) { |
@@ -3737,7 +3737,7 @@ void FullCodeGenerator::EmitCallFunction(CallRuntime* expr) { |
void FullCodeGenerator::EmitRegExpConstructResult(CallRuntime* expr) { |
RegExpConstructResultStub stub(isolate()); |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 3); |
+ DCHECK(args->length() == 3); |
VisitForStackValue(args->at(0)); |
VisitForStackValue(args->at(1)); |
VisitForAccumulatorValue(args->at(2)); |
@@ -3751,9 +3751,9 @@ void FullCodeGenerator::EmitRegExpConstructResult(CallRuntime* expr) { |
void FullCodeGenerator::EmitGetFromCache(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT_EQ(2, args->length()); |
+ DCHECK_EQ(2, args->length()); |
- ASSERT_NE(NULL, args->at(0)->AsLiteral()); |
+ DCHECK_NE(NULL, args->at(0)->AsLiteral()); |
int cache_id = Smi::cast(*(args->at(0)->AsLiteral()->value()))->value(); |
Handle<FixedArray> jsfunction_result_caches( |
@@ -3826,7 +3826,7 @@ void FullCodeGenerator::EmitHasCachedArrayIndex(CallRuntime* expr) { |
void FullCodeGenerator::EmitGetCachedArrayIndex(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 1); |
+ DCHECK(args->length() == 1); |
VisitForAccumulatorValue(args->at(0)); |
__ AssertString(v0); |
@@ -3844,7 +3844,7 @@ void FullCodeGenerator::EmitFastAsciiArrayJoin(CallRuntime* expr) { |
empty_separator_loop, one_char_separator_loop, |
one_char_separator_loop_entry, long_separator_loop; |
ZoneList<Expression*>* args = expr->arguments(); |
- ASSERT(args->length() == 2); |
+ DCHECK(args->length() == 2); |
VisitForStackValue(args->at(1)); |
VisitForAccumulatorValue(args->at(0)); |
@@ -4005,7 +4005,7 @@ void FullCodeGenerator::EmitFastAsciiArrayJoin(CallRuntime* expr) { |
__ CopyBytes(string, result_pos, string_length, scratch1); |
// End while (element < elements_end). |
__ Branch(&empty_separator_loop, lt, element, Operand(elements_end)); |
- ASSERT(result.is(v0)); |
+ DCHECK(result.is(v0)); |
__ Branch(&done); |
// One-character separator case. |
@@ -4037,7 +4037,7 @@ void FullCodeGenerator::EmitFastAsciiArrayJoin(CallRuntime* expr) { |
__ CopyBytes(string, result_pos, string_length, scratch1); |
// End while (element < elements_end). |
__ Branch(&one_char_separator_loop, lt, element, Operand(elements_end)); |
- ASSERT(result.is(v0)); |
+ DCHECK(result.is(v0)); |
__ Branch(&done); |
// Long separator case (separator is more than one character). Entry is at the |
@@ -4066,7 +4066,7 @@ void FullCodeGenerator::EmitFastAsciiArrayJoin(CallRuntime* expr) { |
__ CopyBytes(string, result_pos, string_length, scratch1); |
// End while (element < elements_end). |
__ Branch(&long_separator_loop, lt, element, Operand(elements_end)); |
- ASSERT(result.is(v0)); |
+ DCHECK(result.is(v0)); |
__ Branch(&done); |
__ bind(&bailout); |
@@ -4077,7 +4077,7 @@ void FullCodeGenerator::EmitFastAsciiArrayJoin(CallRuntime* expr) { |
void FullCodeGenerator::EmitDebugIsActive(CallRuntime* expr) { |
- ASSERT(expr->arguments()->length() == 0); |
+ DCHECK(expr->arguments()->length() == 0); |
ExternalReference debug_is_active = |
ExternalReference::debug_is_active_address(isolate()); |
__ li(at, Operand(debug_is_active)); |
@@ -4168,7 +4168,7 @@ void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) { |
Variable* var = proxy->var(); |
// Delete of an unqualified identifier is disallowed in strict mode |
// but "delete this" is allowed. |
- ASSERT(strict_mode() == SLOPPY || var->is_this()); |
+ DCHECK(strict_mode() == SLOPPY || var->is_this()); |
if (var->IsUnallocated()) { |
__ lw(a2, GlobalObjectOperand()); |
__ li(a1, Operand(var->name())); |
@@ -4183,7 +4183,7 @@ void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) { |
} else { |
// Non-global variable. Call the runtime to try to delete from the |
// context where the variable was introduced. |
- ASSERT(!context_register().is(a2)); |
+ DCHECK(!context_register().is(a2)); |
__ li(a2, Operand(var->name())); |
__ Push(context_register(), a2); |
__ CallRuntime(Runtime::kDeleteLookupSlot, 2); |
@@ -4224,7 +4224,7 @@ void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) { |
// for control and plugging the control flow into the context, |
// because we need to prepare a pair of extra administrative AST ids |
// for the optimizing compiler. |
- ASSERT(context()->IsAccumulatorValue() || context()->IsStackValue()); |
+ DCHECK(context()->IsAccumulatorValue() || context()->IsStackValue()); |
Label materialize_true, materialize_false, done; |
VisitForControl(expr->expression(), |
&materialize_false, |
@@ -4261,7 +4261,7 @@ void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) { |
void FullCodeGenerator::VisitCountOperation(CountOperation* expr) { |
- ASSERT(expr->expression()->IsValidReferenceExpression()); |
+ DCHECK(expr->expression()->IsValidReferenceExpression()); |
Comment cmnt(masm_, "[ CountOperation"); |
SetSourcePosition(expr->position()); |
@@ -4280,7 +4280,7 @@ void FullCodeGenerator::VisitCountOperation(CountOperation* expr) { |
// Evaluate expression and get value. |
if (assign_type == VARIABLE) { |
- ASSERT(expr->expression()->AsVariableProxy()->var() != NULL); |
+ DCHECK(expr->expression()->AsVariableProxy()->var() != NULL); |
AccumulatorValueContext context(this); |
EmitVariableLoad(expr->expression()->AsVariableProxy()); |
} else { |
@@ -4446,8 +4446,8 @@ void FullCodeGenerator::VisitCountOperation(CountOperation* expr) { |
void FullCodeGenerator::VisitForTypeofValue(Expression* expr) { |
- ASSERT(!context()->IsEffect()); |
- ASSERT(!context()->IsTest()); |
+ DCHECK(!context()->IsEffect()); |
+ DCHECK(!context()->IsTest()); |
VariableProxy* proxy = expr->AsVariableProxy(); |
if (proxy != NULL && proxy->var()->IsUnallocated()) { |
Comment cmnt(masm_, "[ Global variable"); |
@@ -4673,7 +4673,7 @@ Register FullCodeGenerator::context_register() { |
void FullCodeGenerator::StoreToFrameField(int frame_offset, Register value) { |
- ASSERT_EQ(POINTER_SIZE_ALIGN(frame_offset), frame_offset); |
+ DCHECK_EQ(POINTER_SIZE_ALIGN(frame_offset), frame_offset); |
__ sw(value, MemOperand(fp, frame_offset)); |
} |
@@ -4698,7 +4698,7 @@ void FullCodeGenerator::PushFunctionArgumentForContextAllocation() { |
// code. Fetch it from the context. |
__ lw(at, ContextOperand(cp, Context::CLOSURE_INDEX)); |
} else { |
- ASSERT(declaration_scope->is_function_scope()); |
+ DCHECK(declaration_scope->is_function_scope()); |
__ lw(at, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); |
} |
__ push(at); |
@@ -4709,12 +4709,12 @@ void FullCodeGenerator::PushFunctionArgumentForContextAllocation() { |
// Non-local control flow support. |
void FullCodeGenerator::EnterFinallyBlock() { |
- ASSERT(!result_register().is(a1)); |
+ DCHECK(!result_register().is(a1)); |
// Store result register while executing finally block. |
__ push(result_register()); |
// Cook return address in link register to stack (smi encoded Code* delta). |
__ Subu(a1, ra, Operand(masm_->CodeObject())); |
- ASSERT_EQ(1, kSmiTagSize + kSmiShiftSize); |
+ DCHECK_EQ(1, kSmiTagSize + kSmiShiftSize); |
STATIC_ASSERT(0 == kSmiTag); |
__ Addu(a1, a1, Operand(a1)); // Convert to smi. |
@@ -4744,7 +4744,7 @@ void FullCodeGenerator::EnterFinallyBlock() { |
void FullCodeGenerator::ExitFinallyBlock() { |
- ASSERT(!result_register().is(a1)); |
+ DCHECK(!result_register().is(a1)); |
// Restore pending message from stack. |
__ pop(a1); |
ExternalReference pending_message_script = |
@@ -4770,7 +4770,7 @@ void FullCodeGenerator::ExitFinallyBlock() { |
// Uncook return address and return. |
__ pop(result_register()); |
- ASSERT_EQ(1, kSmiTagSize + kSmiShiftSize); |
+ DCHECK_EQ(1, kSmiTagSize + kSmiShiftSize); |
__ sra(a1, a1, 1); // Un-smi-tag value. |
__ Addu(at, a1, Operand(masm_->CodeObject())); |
__ Jump(at); |
@@ -4858,16 +4858,16 @@ BackEdgeTable::BackEdgeState BackEdgeTable::GetBackEdgeState( |
Address branch_address = pc - 6 * kInstrSize; |
Address pc_immediate_load_address = pc - 4 * kInstrSize; |
- ASSERT(Assembler::IsBeq(Assembler::instr_at(pc - 5 * kInstrSize))); |
+ DCHECK(Assembler::IsBeq(Assembler::instr_at(pc - 5 * kInstrSize))); |
if (!Assembler::IsAddImmediate(Assembler::instr_at(branch_address))) { |
- ASSERT(reinterpret_cast<uint32_t>( |
+ DCHECK(reinterpret_cast<uint32_t>( |
Assembler::target_address_at(pc_immediate_load_address)) == |
reinterpret_cast<uint32_t>( |
isolate->builtins()->InterruptCheck()->entry())); |
return INTERRUPT; |
} |
- ASSERT(Assembler::IsAddImmediate(Assembler::instr_at(branch_address))); |
+ DCHECK(Assembler::IsAddImmediate(Assembler::instr_at(branch_address))); |
if (reinterpret_cast<uint32_t>( |
Assembler::target_address_at(pc_immediate_load_address)) == |
@@ -4876,7 +4876,7 @@ BackEdgeTable::BackEdgeState BackEdgeTable::GetBackEdgeState( |
return ON_STACK_REPLACEMENT; |
} |
- ASSERT(reinterpret_cast<uint32_t>( |
+ DCHECK(reinterpret_cast<uint32_t>( |
Assembler::target_address_at(pc_immediate_load_address)) == |
reinterpret_cast<uint32_t>( |
isolate->builtins()->OsrAfterStackCheck()->entry())); |