Changed according to suggestions and also applied those to the ia32 code.
Please take another look. http://codereview.chromium.org/8054043/diff/8001/src/x64/ic-x64.cc File src/x64/ic-x64.cc (right): http://codereview.chromium.org/8054043/diff/8001/src/x64/ic-x64.cc#newcode668 src/x64/ic-x64.cc:668: __ CheckMap(rbx, FACTORY->fixed_array_map(), Using CompareRoot instead. On 2011/09/29 10:18:55, fschneider wrote:
Use masm->isolate()->factory() instead. FACTORY exands into Isolate::Current()->factory which is usually more expensive.
http://codereview.chromium.org/8054043/diff/8001/src/x64/ic-x64.cc#newcode675 src/x64/ic-x64.cc:675: __ CheckMap(rbx, FACTORY->fixed_double_array_map(), &slow, DONT_DO_SMI_CHECK); Loaded the map into rdi first. However, I'm not entirely sure what you had in mind to avoid duplicating code. I don't see how the duplicate code for the increment of the length field can be avoided. On 2011/09/29 10:18:55, fschneider wrote:
You should combine the two map checks to avoid duplicating the code
afterwards.
Somehow I prefer the lower level instructions to these complicated macro-instructions. This way you can load the map into a register only
once and
save a memory access.
http://codereview.chromium.org/8054043/ -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
