| Index: src/mips/macro-assembler-mips.cc
|
| diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc
|
| index 1667ee4ddc6b739f8e1cdfc7e8ad88fcb8e43985..c62b9f532294afaf37c23770b929c32c7132a7b9 100644
|
| --- a/src/mips/macro-assembler-mips.cc
|
| +++ b/src/mips/macro-assembler-mips.cc
|
| @@ -4346,16 +4346,8 @@ void MacroAssembler::Check(Condition cc, BailoutReason reason,
|
| void MacroAssembler::Abort(BailoutReason reason) {
|
| Label abort_start;
|
| bind(&abort_start);
|
| - // We want to pass the msg string like a smi to avoid GC
|
| - // problems, however msg is not guaranteed to be aligned
|
| - // 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());
|
| #ifdef DEBUG
|
| + const char* msg = GetBailoutReason(reason);
|
| if (msg != NULL) {
|
| RecordComment("Abort message: ");
|
| RecordComment(msg);
|
| @@ -4367,18 +4359,16 @@ void MacroAssembler::Abort(BailoutReason reason) {
|
| }
|
| #endif
|
|
|
| - li(a0, Operand(p0));
|
| - push(a0);
|
| - li(a0, Operand(Smi::FromInt(p1 - p0)));
|
| + li(a0, Operand(Smi::FromInt(reason)));
|
| push(a0);
|
| // Disable stub call restrictions to always allow calls to abort.
|
| if (!has_frame_) {
|
| // We don't actually want to generate a pile of code for this, so just
|
| // claim there is a stack frame, without generating one.
|
| FrameScope scope(this, StackFrame::NONE);
|
| - CallRuntime(Runtime::kAbort, 2);
|
| + CallRuntime(Runtime::kAbort, 1);
|
| } else {
|
| - CallRuntime(Runtime::kAbort, 2);
|
| + CallRuntime(Runtime::kAbort, 1);
|
| }
|
| // Will not return here.
|
| if (is_trampoline_pool_blocked()) {
|
| @@ -4386,8 +4376,8 @@ void MacroAssembler::Abort(BailoutReason reason) {
|
| // instructions generated, we insert padding here to keep the size
|
| // of the Abort macro constant.
|
| // Currently in debug mode with debug_code enabled the number of
|
| - // generated instructions is 14, so we use this as a maximum value.
|
| - static const int kExpectedAbortInstructions = 14;
|
| + // generated instructions is 10, so we use this as a maximum value.
|
| + static const int kExpectedAbortInstructions = 10;
|
| int abort_instructions = InstructionsGeneratedSince(&abort_start);
|
| ASSERT(abort_instructions <= kExpectedAbortInstructions);
|
| while (abort_instructions++ < kExpectedAbortInstructions) {
|
|
|