Index: src/ia32/debug-ia32.cc |
=================================================================== |
--- src/ia32/debug-ia32.cc (revision 2860) |
+++ src/ia32/debug-ia32.cc (working copy) |
@@ -36,9 +36,7 @@ |
#ifdef ENABLE_DEBUGGER_SUPPORT |
-// A debug break in the frame exit code is identified by a call instruction. |
bool BreakLocationIterator::IsDebugBreakAtReturn() { |
- // Opcode E8 is call. |
return Debug::IsDebugBreakAtReturn(rinfo()); |
} |
@@ -49,7 +47,7 @@ |
void BreakLocationIterator::SetDebugBreakAtReturn() { |
ASSERT(Debug::kIa32JSReturnSequenceLength >= |
Debug::kIa32CallInstructionLength); |
- rinfo()->PatchCodeWithCall(Debug::debug_break_return_entry()->entry(), |
+ rinfo()->PatchCodeWithCall(Debug::debug_break_return()->entry(), |
Debug::kIa32JSReturnSequenceLength - Debug::kIa32CallInstructionLength); |
} |
@@ -61,11 +59,11 @@ |
} |
-// Check whether the JS frame exit code has been patched with a debug break. |
+// A debug break in the frame exit code is identified by the JS frame exit code |
+// having been patched with a call instruction. |
bool Debug::IsDebugBreakAtReturn(RelocInfo* rinfo) { |
ASSERT(RelocInfo::IsJSReturn(rinfo->rmode())); |
- // Opcode E8 is call. |
- return (*(rinfo->pc()) == 0xE8); |
+ return rinfo->IsCallInstruction(); |
} |
@@ -194,17 +192,6 @@ |
} |
-void Debug::GenerateReturnDebugBreakEntry(MacroAssembler* masm) { |
- // OK to clobber ebx as we are returning from a JS function through the code |
- // generated by CodeGenerator::GenerateReturnSequence() |
- ExternalReference debug_break_return = |
- ExternalReference(Debug_Address::DebugBreakReturn()); |
- __ mov(ebx, Operand::StaticVariable(debug_break_return)); |
- __ add(Operand(ebx), Immediate(Code::kHeaderSize - kHeapObjectTag)); |
- __ jmp(Operand(ebx)); |
-} |
- |
- |
void Debug::GenerateStubNoRegistersDebugBreak(MacroAssembler* masm) { |
// Register state for stub CallFunction (from CallFunctionStub in ic-ia32.cc). |
// ----------- S t a t e ------------- |