Revision: 4827
Author: [email protected]
Date: Wed Jun  9 00:40:35 2010
Log: ARM: Fix bug in r4820 related to code for additional break positions.

These issues where unly revealed in debug mode
Review URL: http://codereview.chromium.org/2733006
http://code.google.com/p/v8/source/detail?r=4827

Modified:
 /branches/bleeding_edge/src/arm/assembler-arm-inl.h
 /branches/bleeding_edge/src/arm/debug-arm.cc

=======================================
--- /branches/bleeding_edge/src/arm/assembler-arm-inl.h Tue Jun 8 05:20:24 2010 +++ /branches/bleeding_edge/src/arm/assembler-arm-inl.h Wed Jun 9 00:40:35 2010
@@ -116,9 +116,10 @@


 Address RelocInfo::call_address() {
-  ASSERT(IsPatchedReturnSequence());
-  // The 2 instructions offset assumes patched return sequence.
-  ASSERT(IsJSReturn(rmode()));
+  // The 2 instructions offset assumes patched debug break slot or return
+  // sequence.
+  ASSERT((IsJSReturn(rmode()) && IsPatchedReturnSequence()) ||
+         (IsDebugBreakSlot(rmode()) && IsPatchedDebugBreakSlotSequence()));
   return Memory::Address_at(pc_ + 2 * Assembler::kInstrSize);
 }

=======================================
--- /branches/bleeding_edge/src/arm/debug-arm.cc        Tue Jun  8 05:04:49 2010
+++ /branches/bleeding_edge/src/arm/debug-arm.cc        Wed Jun  9 00:40:35 2010
@@ -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