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

Reply via email to