Reviewers: , Description: Always 64-bit align floating point values in heap numbers. This is done by reserving 12 bytes for the 8-byte double precision heap number payload and then storing the actual number at an aligned address. The change doesn't seem to pay off, at least not enough to justify the complexity, so I won't be committing it. My benchmarking was on Intel 32 bit with SSE2. I'll leave it on the code review tool to serve as a starting point in case someone wants to implement something similar on an architecture where it pays off more or where unaligned loads are illegal. Known limitations:
* Doesn't work with snapshots. To fix this the serializer would have to move the doubles in the heap numbers so they are in the right place after deserialization. * Only implemented for IA32 and only tested on IA32+SSE2. Doubles are already aligned on x64 so getting it to compile on x64 should be simple enough. For ARM some work would be needed along similar lines to the IA32 changes. Please review this at http://codereview.chromium.org/460043 SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/heap.cc M src/ia32/codegen-ia32.cc M src/ia32/ic-ia32.cc M src/ia32/macro-assembler-ia32.h M src/mark-compact.cc M src/objects-inl.h M src/objects.h -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
