| Index: src/mips/macro-assembler-mips.cc
|
| diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc
|
| index ea08a552be5dc82a65983d26b430862f65bce29b..60a369faf2e5008c99c07658b0f235ee52436a5b 100644
|
| --- a/src/mips/macro-assembler-mips.cc
|
| +++ b/src/mips/macro-assembler-mips.cc
|
| @@ -256,7 +256,7 @@ void MacroAssembler::RecordWrite(Register object,
|
| if (emit_debug_code()) {
|
| lw(at, MemOperand(address));
|
| Assert(
|
| - eq, "Wrong address or value passed to RecordWrite", at, Operand(value));
|
| + eq, kWrongAddressOrValuePassedToRecordWrite, at, Operand(value));
|
| }
|
|
|
| Label done;
|
| @@ -358,7 +358,7 @@ void MacroAssembler::CheckAccessGlobalProxy(Register holder_reg,
|
| lw(scratch, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
| // In debug mode, make sure the lexical context is set.
|
| #ifdef DEBUG
|
| - Check(ne, "we should not have an empty lexical context",
|
| + Check(ne, kWeShouldNotHaveAnEmptyLexicalContext,
|
| scratch, Operand(zero_reg));
|
| #endif
|
|
|
| @@ -374,7 +374,7 @@ void MacroAssembler::CheckAccessGlobalProxy(Register holder_reg,
|
| // Read the first word and compare to the native_context_map.
|
| lw(holder_reg, FieldMemOperand(scratch, HeapObject::kMapOffset));
|
| LoadRoot(at, Heap::kNativeContextMapRootIndex);
|
| - Check(eq, "JSGlobalObject::native_context should be a native context.",
|
| + Check(eq, kJSGlobalObjectNative_contextShouldBeANativeContext,
|
| holder_reg, Operand(at));
|
| pop(holder_reg); // Restore holder.
|
| }
|
| @@ -388,12 +388,12 @@ void MacroAssembler::CheckAccessGlobalProxy(Register holder_reg,
|
| push(holder_reg); // Temporarily save holder on the stack.
|
| mov(holder_reg, at); // Move at to its holding place.
|
| LoadRoot(at, Heap::kNullValueRootIndex);
|
| - Check(ne, "JSGlobalProxy::context() should not be null.",
|
| + Check(ne, kJSGlobalProxyContextShouldNotBeNull,
|
| holder_reg, Operand(at));
|
|
|
| lw(holder_reg, FieldMemOperand(holder_reg, HeapObject::kMapOffset));
|
| LoadRoot(at, Heap::kNativeContextMapRootIndex);
|
| - Check(eq, "JSGlobalObject::native_context should be a native context.",
|
| + Check(eq, kJSGlobalObjectNative_contextShouldBeANativeContext,
|
| holder_reg, Operand(at));
|
| // Restore at is not needed. at is reloaded below.
|
| pop(holder_reg); // Restore holder.
|
| @@ -2938,7 +2938,7 @@ void MacroAssembler::Allocate(int object_size,
|
| // immediately below so this use of t9 does not cause difference with
|
| // respect to register content between debug and release mode.
|
| lw(t9, MemOperand(topaddr));
|
| - Check(eq, "Unexpected allocation top", result, Operand(t9));
|
| + Check(eq, kUnexpectedAllocationTop, result, Operand(t9));
|
| }
|
| // Load allocation limit into t9. Result already contains allocation top.
|
| lw(t9, MemOperand(topaddr, limit - top));
|
| @@ -3008,7 +3008,7 @@ void MacroAssembler::Allocate(Register object_size,
|
| // immediately below so this use of t9 does not cause difference with
|
| // respect to register content between debug and release mode.
|
| lw(t9, MemOperand(topaddr));
|
| - Check(eq, "Unexpected allocation top", result, Operand(t9));
|
| + Check(eq, kUnexpectedAllocationTop, result, Operand(t9));
|
| }
|
| // Load allocation limit into t9. Result already contains allocation top.
|
| lw(t9, MemOperand(topaddr, limit - top));
|
| @@ -3028,7 +3028,7 @@ void MacroAssembler::Allocate(Register object_size,
|
| // Update allocation top. result temporarily holds the new top.
|
| if (emit_debug_code()) {
|
| And(t9, scratch2, Operand(kObjectAlignmentMask));
|
| - Check(eq, "Unaligned allocation in new space", t9, Operand(zero_reg));
|
| + Check(eq, kUnalignedAllocationInNewSpace, t9, Operand(zero_reg));
|
| }
|
| sw(scratch2, MemOperand(topaddr));
|
|
|
| @@ -3050,7 +3050,7 @@ void MacroAssembler::UndoAllocationInNewSpace(Register object,
|
| // Check that the object un-allocated is below the current top.
|
| li(scratch, Operand(new_space_allocation_top));
|
| lw(scratch, MemOperand(scratch));
|
| - Check(less, "Undo allocation of non allocated memory",
|
| + Check(less, kUndoAllocationOfNonAllocatedMemory,
|
| object, Operand(scratch));
|
| #endif
|
| // Write the address of the object to un-allocate as the current top.
|
| @@ -3303,7 +3303,7 @@ void MacroAssembler::CopyBytes(Register src,
|
| bind(&word_loop);
|
| if (emit_debug_code()) {
|
| And(scratch, src, kPointerSize - 1);
|
| - Assert(eq, "Expecting alignment for CopyBytes",
|
| + Assert(eq, kExpectingAlignmentForCopyBytes,
|
| scratch, Operand(zero_reg));
|
| }
|
| Branch(&byte_loop, lt, length, Operand(kPointerSize));
|
| @@ -4029,7 +4029,7 @@ void MacroAssembler::CallApiFunctionAndReturn(ExternalReference function,
|
| sw(s0, MemOperand(s3, kNextOffset));
|
| if (emit_debug_code()) {
|
| lw(a1, MemOperand(s3, kLevelOffset));
|
| - Check(eq, "Unexpected level after return from api call", a1, Operand(s2));
|
| + Check(eq, kUnexpectedLevelAfterReturnFromApiCall, a1, Operand(s2));
|
| }
|
| Subu(s2, s2, Operand(1));
|
| sw(s2, MemOperand(s3, kLevelOffset));
|
| @@ -4383,10 +4383,10 @@ void MacroAssembler::DecrementCounter(StatsCounter* counter, int value,
|
| // -----------------------------------------------------------------------------
|
| // Debugging.
|
|
|
| -void MacroAssembler::Assert(Condition cc, const char* msg,
|
| +void MacroAssembler::Assert(Condition cc, BailoutReason reason,
|
| Register rs, Operand rt) {
|
| if (emit_debug_code())
|
| - Check(cc, msg, rs, rt);
|
| + Check(cc, reason, rs, rt);
|
| }
|
|
|
|
|
| @@ -4394,7 +4394,7 @@ void MacroAssembler::AssertRegisterIsRoot(Register reg,
|
| Heap::RootListIndex index) {
|
| if (emit_debug_code()) {
|
| LoadRoot(at, index);
|
| - Check(eq, "Register did not match expected root", reg, Operand(at));
|
| + Check(eq, kRegisterDidNotMatchExpectedRoot, reg, Operand(at));
|
| }
|
| }
|
|
|
| @@ -4411,24 +4411,24 @@ void MacroAssembler::AssertFastElements(Register elements) {
|
| Branch(&ok, eq, elements, Operand(at));
|
| LoadRoot(at, Heap::kFixedCOWArrayMapRootIndex);
|
| Branch(&ok, eq, elements, Operand(at));
|
| - Abort("JSObject with fast elements map has slow elements");
|
| + Abort(kJSObjectWithFastElementsMapHasSlowElements);
|
| bind(&ok);
|
| pop(elements);
|
| }
|
| }
|
|
|
|
|
| -void MacroAssembler::Check(Condition cc, const char* msg,
|
| +void MacroAssembler::Check(Condition cc, BailoutReason reason,
|
| Register rs, Operand rt) {
|
| Label L;
|
| Branch(&L, cc, rs, rt);
|
| - Abort(msg);
|
| + Abort(reason);
|
| // Will not return here.
|
| bind(&L);
|
| }
|
|
|
|
|
| -void MacroAssembler::Abort(const char* msg) {
|
| +void MacroAssembler::Abort(BailoutReason reason) {
|
| Label abort_start;
|
| bind(&abort_start);
|
| // We want to pass the msg string like a smi to avoid GC
|
| @@ -4436,6 +4436,7 @@ void MacroAssembler::Abort(const char* msg) {
|
| // properly. Instead, we pass an aligned pointer that is
|
| // a proper v8 smi, but also pass the alignment difference
|
| // from the real pointer as a smi.
|
| + const char* msg = GetBailoutReason(reason);
|
| intptr_t p1 = reinterpret_cast<intptr_t>(msg);
|
| intptr_t p0 = (p1 & ~kSmiTagMask) + kSmiTag;
|
| ASSERT(reinterpret_cast<Object*>(p0)->IsSmi());
|
| @@ -4579,7 +4580,7 @@ void MacroAssembler::LoadGlobalFunctionInitialMap(Register function,
|
| CheckMap(map, scratch, Heap::kMetaMapRootIndex, &fail, DO_SMI_CHECK);
|
| Branch(&ok);
|
| bind(&fail);
|
| - Abort("Global functions must have initial map");
|
| + Abort(kGlobalFunctionsMustHaveInitialMap);
|
| bind(&ok);
|
| }
|
| }
|
| @@ -4862,7 +4863,7 @@ void MacroAssembler::AssertNotSmi(Register object) {
|
| if (emit_debug_code()) {
|
| STATIC_ASSERT(kSmiTag == 0);
|
| andi(at, object, kSmiTagMask);
|
| - Check(ne, "Operand is a smi", at, Operand(zero_reg));
|
| + Check(ne, kOperandIsASmi, at, Operand(zero_reg));
|
| }
|
| }
|
|
|
| @@ -4871,7 +4872,7 @@ void MacroAssembler::AssertSmi(Register object) {
|
| if (emit_debug_code()) {
|
| STATIC_ASSERT(kSmiTag == 0);
|
| andi(at, object, kSmiTagMask);
|
| - Check(eq, "Operand is a smi", at, Operand(zero_reg));
|
| + Check(eq, kOperandIsASmi, at, Operand(zero_reg));
|
| }
|
| }
|
|
|
| @@ -4880,11 +4881,11 @@ void MacroAssembler::AssertString(Register object) {
|
| if (emit_debug_code()) {
|
| STATIC_ASSERT(kSmiTag == 0);
|
| And(t0, object, Operand(kSmiTagMask));
|
| - Check(ne, "Operand is a smi and not a string", t0, Operand(zero_reg));
|
| + Check(ne, kOperandIsASmiAndNotAString, t0, Operand(zero_reg));
|
| push(object);
|
| lw(object, FieldMemOperand(object, HeapObject::kMapOffset));
|
| lbu(object, FieldMemOperand(object, Map::kInstanceTypeOffset));
|
| - Check(lo, "Operand is not a string", object, Operand(FIRST_NONSTRING_TYPE));
|
| + Check(lo, kOperandIsNotAString, object, Operand(FIRST_NONSTRING_TYPE));
|
| pop(object);
|
| }
|
| }
|
| @@ -4894,11 +4895,11 @@ void MacroAssembler::AssertName(Register object) {
|
| if (emit_debug_code()) {
|
| STATIC_ASSERT(kSmiTag == 0);
|
| And(t0, object, Operand(kSmiTagMask));
|
| - Check(ne, "Operand is a smi and not a name", t0, Operand(zero_reg));
|
| + Check(ne, kOperandIsASmiAndNotAName, t0, Operand(zero_reg));
|
| push(object);
|
| lw(object, FieldMemOperand(object, HeapObject::kMapOffset));
|
| lbu(object, FieldMemOperand(object, Map::kInstanceTypeOffset));
|
| - Check(le, "Operand is not a name", object, Operand(LAST_NAME_TYPE));
|
| + Check(le, kOperandIsNotAName, object, Operand(LAST_NAME_TYPE));
|
| pop(object);
|
| }
|
| }
|
| @@ -4906,11 +4907,11 @@ void MacroAssembler::AssertName(Register object) {
|
|
|
| void MacroAssembler::AssertRootValue(Register src,
|
| Heap::RootListIndex root_value_index,
|
| - const char* message) {
|
| + BailoutReason reason) {
|
| if (emit_debug_code()) {
|
| ASSERT(!src.is(at));
|
| LoadRoot(at, root_value_index);
|
| - Check(eq, message, src, Operand(at));
|
| + Check(eq, reason, src, Operand(at));
|
| }
|
| }
|
|
|
| @@ -5127,7 +5128,7 @@ void MacroAssembler::PatchRelocatedValue(Register li_location,
|
| // At this point scratch is a lui(at, ...) instruction.
|
| if (emit_debug_code()) {
|
| And(scratch, scratch, kOpcodeMask);
|
| - Check(eq, "The instruction to patch should be a lui.",
|
| + Check(eq, kTheInstructionToPatchShouldBeALui,
|
| scratch, Operand(LUI));
|
| lw(scratch, MemOperand(li_location));
|
| }
|
| @@ -5139,7 +5140,7 @@ void MacroAssembler::PatchRelocatedValue(Register li_location,
|
| // scratch is now ori(at, ...).
|
| if (emit_debug_code()) {
|
| And(scratch, scratch, kOpcodeMask);
|
| - Check(eq, "The instruction to patch should be an ori.",
|
| + Check(eq, kTheInstructionToPatchShouldBeAnOri,
|
| scratch, Operand(ORI));
|
| lw(scratch, MemOperand(li_location, kInstrSize));
|
| }
|
| @@ -5156,7 +5157,7 @@ void MacroAssembler::GetRelocatedValue(Register li_location,
|
| lw(value, MemOperand(li_location));
|
| if (emit_debug_code()) {
|
| And(value, value, kOpcodeMask);
|
| - Check(eq, "The instruction should be a lui.",
|
| + Check(eq, kTheInstructionShouldBeALui,
|
| value, Operand(LUI));
|
| lw(value, MemOperand(li_location));
|
| }
|
| @@ -5167,7 +5168,7 @@ void MacroAssembler::GetRelocatedValue(Register li_location,
|
| lw(scratch, MemOperand(li_location, kInstrSize));
|
| if (emit_debug_code()) {
|
| And(scratch, scratch, kOpcodeMask);
|
| - Check(eq, "The instruction should be an ori.",
|
| + Check(eq, kTheInstructionShouldBeAnOri,
|
| scratch, Operand(ORI));
|
| lw(scratch, MemOperand(li_location, kInstrSize));
|
| }
|
|
|