Reviewers: Vyacheslav Egorov,
Description:
ARM: Fix bug in r4820 related to code for additional break positions.
These issues where unly revealed in debug mode
Please review this at http://codereview.chromium.org/2733006/show
SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/
Affected files:
M src/arm/assembler-arm-inl.h
M src/arm/debug-arm.cc
Index: src/arm/assembler-arm-inl.h
===================================================================
--- src/arm/assembler-arm-inl.h (revision 4825)
+++ src/arm/assembler-arm-inl.h (working copy)
@@ -116,9 +116,10 @@
Address RelocInfo::call_address() {
- ASSERT(IsPatchedReturnSequence());
- // The 2 instructions offset assumes patched return sequence.
- ASSERT(IsJSReturn(rmode()));
+ ASSERT(IsPatchedReturnSequence() || IsPatchedDebugBreakSlotSequence());
+ // The 2 instructions offset assumes patched debug break slot or return
+ // sequence.
+ ASSERT(IsJSReturn(rmode()) || IsDebugBreakSlot(rmode()));
return Memory::Address_at(pc_ + 2 * Assembler::kInstrSize);
}
Index: src/arm/debug-arm.cc
===================================================================
--- src/arm/debug-arm.cc (revision 4825)
+++ src/arm/debug-arm.cc (working copy)
@@ -263,7 +263,9 @@
void Debug::GenerateSlot(MacroAssembler* masm) {
- // Generate enough nop's to make space for a call instruction.
+ // Generate enough nop's to make space for a call instruction. Avoid
emitting
+ // the constant pool in the debug break slot code.
+ Assembler::BlockConstPoolScope block_const_pool(masm);
Label check_codesize;
__ bind(&check_codesize);
__ RecordDebugBreakSlot();
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev