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) { |