LGTM.
"But I still think Carthage should be sacked!"

http://codereview.chromium.org/151198/diff/1/2
File src/spaces.h (right):

http://codereview.chromium.org/151198/diff/1/2#newcode233
Line 233: // This needs to be at least 32 * kBitsPerPointer, to align
start of rset.
Should probably be 32 (kBitsPerWord) * kBytesPerPointer.

It's not entirely true. What we align is the start of the part of the
RSet that is actively being used.
Coneceptually, we have a remembered set for the entire page, including
the part before the object start. In 32-bit mode we know that the first
64 bits of those are not used, so we can reuse them for something else,
effecitvely making the RSet start at offset 8.
Starting objects at offset 256 will mean that we don't use the first 32
bits of the RSet, so we can reuse the space. But we don't need that
space for anything else anyway, so we could start the object at byte 160
and the RSet at byte 32, and just know that we never set the first 20
bits of the RSet. The RSet is still aligned, we just have 20 more zero
bits at the beginning to ignore. On the other hand, it leaves 96 more
bytes in the page - room enough for six HeapNumbers.

http://codereview.chromium.org/151198

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

Reply via email to