Index: src/arm/macro-assembler-arm.cc |
=================================================================== |
--- src/arm/macro-assembler-arm.cc (revision 3149) |
+++ src/arm/macro-assembler-arm.cc (working copy) |
@@ -274,9 +274,7 @@ |
} |
-void MacroAssembler::EnterExitFrame(StackFrame::Type type) { |
- ASSERT(type == StackFrame::EXIT || type == StackFrame::EXIT_DEBUG); |
- |
+void MacroAssembler::EnterExitFrame(ExitFrame::Mode mode) { |
// Compute the argv pointer and keep it in a callee-saved register. |
// r0 is argc. |
add(r6, sp, Operand(r0, LSL, kPointerSizeLog2)); |
@@ -298,8 +296,11 @@ |
stm(db_w, sp, fp.bit() | ip.bit() | lr.bit()); |
mov(fp, Operand(sp)); // setup new frame pointer |
- // Push debug marker. |
- mov(ip, Operand(type == StackFrame::EXIT_DEBUG ? 1 : 0)); |
+ if (mode == ExitFrame::MODE_DEBUG) { |
+ mov(ip, Operand(Smi::FromInt(0))); |
+ } else { |
+ mov(ip, Operand(CodeObject())); |
+ } |
push(ip); |
// Save the frame pointer and the context in top. |
@@ -316,7 +317,7 @@ |
#ifdef ENABLE_DEBUGGER_SUPPORT |
// Save the state of all registers to the stack from the memory |
// location. This is needed to allow nested break points. |
- if (type == StackFrame::EXIT_DEBUG) { |
+ if (mode == ExitFrame::MODE_DEBUG) { |
// Use sp as base to push. |
CopyRegistersFromMemoryToStack(sp, kJSCallerSaved); |
} |
@@ -348,14 +349,14 @@ |
} |
-void MacroAssembler::LeaveExitFrame(StackFrame::Type type) { |
+void MacroAssembler::LeaveExitFrame(ExitFrame::Mode mode) { |
#ifdef ENABLE_DEBUGGER_SUPPORT |
// Restore the memory copy of the registers by digging them out from |
// the stack. This is needed to allow nested break points. |
- if (type == StackFrame::EXIT_DEBUG) { |
+ if (mode == ExitFrame::MODE_DEBUG) { |
// This code intentionally clobbers r2 and r3. |
const int kCallerSavedSize = kNumJSCallerSaved * kPointerSize; |
- const int kOffset = ExitFrameConstants::kDebugMarkOffset - kCallerSavedSize; |
+ const int kOffset = ExitFrameConstants::kCodeOffset - kCallerSavedSize; |
add(r3, fp, Operand(kOffset)); |
CopyRegistersFromStackToMemory(r3, r2, kJSCallerSaved); |
} |