Author: [email protected]
Date: Tue Jun 30 04:09:57 2009
New Revision: 2303

Modified:
    branches/bleeding_edge/src/mark-compact.cc
    branches/bleeding_edge/src/spaces.cc
    branches/bleeding_edge/src/spaces.h
    branches/bleeding_edge/src/x64/frames-x64.h

Log:
X64: Fix bad value in stack layout constants.
Remove references to Array:kHeaderSize.

Review URL: http://codereview.chromium.org/150098


Modified: branches/bleeding_edge/src/mark-compact.cc
==============================================================================
--- branches/bleeding_edge/src/mark-compact.cc  (original)
+++ branches/bleeding_edge/src/mark-compact.cc  Tue Jun 30 04:09:57 2009
@@ -1141,7 +1141,7 @@
        // We give non-live objects a map that will correctly give their  
size,
        // since their existing map might not be live after the collection.
        int size = object->Size();
-      if (size >= Array::kHeaderSize) {
+      if (size >= ByteArray::kHeaderSize) {
          object->set_map(Heap::byte_array_map());
          ByteArray::cast(object)->set_length(ByteArray::LengthFor(size));
        } else {

Modified: branches/bleeding_edge/src/spaces.cc
==============================================================================
--- branches/bleeding_edge/src/spaces.cc        (original)
+++ branches/bleeding_edge/src/spaces.cc        Tue Jun 30 04:09:57 2009
@@ -1265,7 +1265,7 @@
    // If the block is too small (eg, one or two words), to hold both a size
    // field and a next pointer, we give it a filler map that gives it the
    // correct size.
-  if (size_in_bytes > Array::kHeaderSize) {
+  if (size_in_bytes > ByteArray::kHeaderSize) {
      set_map(Heap::byte_array_map());
      ByteArray::cast(this)->set_length(ByteArray::LengthFor(size_in_bytes));
    } else if (size_in_bytes == kPointerSize) {

Modified: branches/bleeding_edge/src/spaces.h
==============================================================================
--- branches/bleeding_edge/src/spaces.h (original)
+++ branches/bleeding_edge/src/spaces.h Tue Jun 30 04:09:57 2009
@@ -1270,7 +1270,7 @@
    inline void set_next(Address next);

   private:
-  static const int kNextOffset = Array::kHeaderSize;
+  static const int kNextOffset =  
POINTER_SIZE_ALIGN(ByteArray::kHeaderSize);

    DISALLOW_IMPLICIT_CONSTRUCTORS(FreeListNode);
  };
@@ -1304,7 +1304,8 @@
   private:
    // The size range of blocks, in bytes. (Smaller allocations are allowed,  
but
    // will always result in waste.)
-  static const int kMinBlockSize = Array::kHeaderSize + kPointerSize;
+  static const int kMinBlockSize =
+      POINTER_SIZE_ALIGN(ByteArray::kHeaderSize) + kPointerSize;
    static const int kMaxBlockSize = Page::kMaxHeapObjectSize;

    // The identity of the owning space, for building allocation Failure

Modified: branches/bleeding_edge/src/x64/frames-x64.h
==============================================================================
--- branches/bleeding_edge/src/x64/frames-x64.h (original)
+++ branches/bleeding_edge/src/x64/frames-x64.h Tue Jun 30 04:09:57 2009
@@ -59,12 +59,7 @@

  class EntryFrameConstants : public AllStatic {
   public:
-  static const int kCallerFPOffset      = -6 * kPointerSize;
-
-  static const int kFunctionArgOffset   = +3 * kPointerSize;
-  static const int kReceiverArgOffset   = +4 * kPointerSize;
-  static const int kArgcOffset          = +5 * kPointerSize;
-  static const int kArgvOffset          = +6 * kPointerSize;
+  static const int kCallerFPOffset      = -10 * kPointerSize;
  };



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

Reply via email to