From f97cd1a0ef092d942eb1a82343dde759d819e6b1 Mon Sep 17 00:00:00 2001 From: "mstarzinger@chromium.org" Date: Mon, 30 Jan 2012 11:10:14 +0000 Subject: [PATCH] MIPS: Fix and adapt debugger for new call target caches. Port of r10540. R=yangguo@chromium.org TEST=mjsunit/debug-stepout-scope Review URL: https://chromiumcodereview.appspot.com/9225055 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/mips/debug-mips.cc | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/src/mips/debug-mips.cc b/src/mips/debug-mips.cc index 1aa62cac4..26b343c87 100644 --- a/src/mips/debug-mips.cc +++ b/src/mips/debug-mips.cc @@ -243,15 +243,6 @@ void Debug::GenerateCallICDebugBreak(MacroAssembler* masm) { } -void Debug::GenerateConstructCallDebugBreak(MacroAssembler* masm) { - // Calling convention for construct call (from builtins-mips.cc). - // -- a0 : number of arguments (not smi) - // -- a1 : constructor function - // -- a2 : cache cell for call target - Generate_DebugBreakCallHelper(masm, a1.bit() | a2.bit(), a0.bit()); -} - - void Debug::GenerateReturnDebugBreak(MacroAssembler* masm) { // In places other than IC call sites it is expected that v0 is TOS which // is an object - this is not generally the case so this should be used with @@ -269,6 +260,37 @@ void Debug::GenerateCallFunctionStubDebugBreak(MacroAssembler* masm) { } +void Debug::GenerateCallFunctionStubRecordDebugBreak(MacroAssembler* masm) { + // Register state for CallFunctionStub (from code-stubs-mips.cc). + // ----------- S t a t e ------------- + // -- a1 : function + // -- a2 : cache cell for call target + // ----------------------------------- + Generate_DebugBreakCallHelper(masm, a1.bit() | a2.bit(), 0); +} + + +void Debug::GenerateCallConstructStubDebugBreak(MacroAssembler* masm) { + // Calling convention for CallConstructStub (from code-stubs-mips.cc). + // ----------- S t a t e ------------- + // -- a0 : number of arguments (not smi) + // -- a1 : constructor function + // ----------------------------------- + Generate_DebugBreakCallHelper(masm, a1.bit() , a0.bit()); +} + + +void Debug::GenerateCallConstructStubRecordDebugBreak(MacroAssembler* masm) { + // Calling convention for CallConstructStub (from code-stubs-mips.cc). + // ----------- S t a t e ------------- + // -- a0 : number of arguments (not smi) + // -- a1 : constructor function + // -- a2 : cache cell for call target + // ----------------------------------- + Generate_DebugBreakCallHelper(masm, a1.bit() | a2.bit(), a0.bit()); +} + + void Debug::GenerateSlot(MacroAssembler* masm) { // Generate enough nop's to make space for a call instruction. Avoid emitting // the trampoline pool in the debug break slot code. -- 2.34.1