On 2010/09/23 02:23:51, Dmitry Titov wrote:
2. The Code alignment shifted on x64 after I've added Heap pointer to Page
header. This only happens on x64 because Page uses MAP_POINTER_ALIGN to align its header and it is 32 bytes on 32-bit host and 8 bytes on 64-bit host, but code alignment is always required to be 32 bytes (thus some asserts fail). I'm
not sure why we need generated code blocks to be 32 bytes aligned (is it a
guess
on cache line size?), likely for the different reasons then Maps that need
this
to be able to produce an index of a map in the page during GC. So I left it 32-byte aligned on 32-bit host and 8 byte-aligned on 64-bit host. Wonder if
this
is right.

I think we should avoid doing semantical changes. Cache line size is 64, so
using our old alignment we only waste 25% on average. Please add
CODE_POINTER_ALIGN macro like MAP_POINTER_ALIGN and make Page use both. We
should port it back to bleeding_edge.

http://codereview.chromium.org/3397021/show

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

Reply via email to