Revision: 6252
Author: [email protected]
Date: Mon Jan 10 11:43:38 2011
Log: Update the bits reserved for the gap size in the depotimization table

On ARM the a constant pool can be emitted during the gap code generation which leads to larger gap code size

BUG=v8:1018
Review URL: http://codereview.chromium.org/6125004
http://code.google.com/p/v8/source/detail?r=6252

Modified:
 /branches/bleeding_edge/src/safepoint-table.h
 /branches/bleeding_edge/test/mozilla/mozilla.status

=======================================
--- /branches/bleeding_edge/src/safepoint-table.h       Tue Dec  7 03:31:57 2010
+++ /branches/bleeding_edge/src/safepoint-table.h       Mon Jan 10 11:43:38 2011
@@ -69,8 +69,15 @@
     return &Memory::uint8_at(entries_ + (index * entry_size_));
   }

-  class GapCodeSizeField: public BitField<unsigned, 0, 8> {};
-  class DeoptimizationIndexField: public BitField<int, 8, 24> {};
+  // Reserve 13 bits for the gap code size. On ARM a constant pool can be
+ // emitted when generating the gap code. The size of the const pool is less + // than what can be represented in 12 bits, so 13 bits gives room for having
+  // instructions before potentially emitting a constant pool.
+  static const int kGapCodeSizeBits = 13;
+  static const int kDeoptIndexBits = 32 - kGapCodeSizeBits;
+ class GapCodeSizeField: public BitField<unsigned, 0, kGapCodeSizeBits> {};
+  class DeoptimizationIndexField:
+      public BitField<int, kGapCodeSizeBits, kDeoptIndexBits> {};

   static bool HasRegisters(uint8_t* entry);
   static bool HasRegisterAt(uint8_t* entry, int reg_index);
@@ -114,7 +121,8 @@

 class Safepoint BASE_EMBEDDED {
  public:
-  static const int kNoDeoptimizationIndex = 0x00ffffff;
+  static const int kNoDeoptimizationIndex =
+      (1 << (SafepointTable::kDeoptIndexBits)) - 1;

   void DefinePointerSlot(int index) { indexes_->Add(index); }
   void DefinePointerRegister(Register reg) { registers_->Add(reg.code()); }
=======================================
--- /branches/bleeding_edge/test/mozilla/mozilla.status Mon Jan 10 04:01:28 2011 +++ /branches/bleeding_edge/test/mozilla/mozilla.status Mon Jan 10 11:43:38 2011
@@ -840,9 +840,6 @@
 js1_5/Regress/regress-416628: CRASH
 js1_5/Regress/regress-96128-n: PASS || CRASH

-# BUG(1032)
-ecma/Date/15.9.3.1-1.js: PASS || CRASH
-
 [ $fast == yes && $arch == arm ]

 # In fast mode on arm we try to skip all tests that would time out,

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to