Revision: 18097
Author:   [email protected]
Date:     Wed Nov 27 10:07:57 2013 UTC
Log: Avoid trying to decode the raw inline constant which is part of the aged code prologue.

BUG=v8:3007
LOG=N
[email protected]

Review URL: https://codereview.chromium.org/88303003
http://code.google.com/p/v8/source/detail?r=18097

Modified:
 /branches/bleeding_edge/src/arm/constants-arm.h
 /branches/bleeding_edge/src/arm/disasm-arm.cc

=======================================
--- /branches/bleeding_edge/src/arm/constants-arm.h Thu Sep 12 10:37:42 2013 UTC +++ /branches/bleeding_edge/src/arm/constants-arm.h Wed Nov 27 10:07:57 2013 UTC
@@ -49,6 +49,9 @@
   ASSERT((instr & kConstantPoolMarkerMask) == kConstantPoolMarker);
   return ((instr >> 4) & 0xfff0) | (instr & 0xf);
 }
+
+// Used in code age prologue - ldr(pc, MemOperand(pc, -4))
+const int kCodeAgeJumpInstruction = 0xe51ff004;

 // Number of registers in normal ARM mode.
 const int kNumRegisters = 16;
=======================================
--- /branches/bleeding_edge/src/arm/disasm-arm.cc Fri Aug 30 08:16:04 2013 UTC +++ /branches/bleeding_edge/src/arm/disasm-arm.cc Wed Nov 27 10:07:57 2013 UTC
@@ -1679,6 +1679,14 @@
                                     "constant pool begin (length %d)",
DecodeConstantPoolLength(instruction_bits));
     return Instruction::kInstrSize;
+  } else if (instruction_bits == kCodeAgeJumpInstruction) {
+    // The code age prologue has a constant immediatly following the jump
+    // instruction.
+ Instruction* target = Instruction::At(instr_ptr + Instruction::kInstrSize);
+    DecodeType2(instr);
+    OS::SNPrintF(out_buffer_ + out_buffer_pos_,
+                 " (0x%08x)", target->InstructionBits());
+    return 2 * Instruction::kInstrSize;
   }
   switch (instr->TypeValue()) {
     case 0:

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to