LGTM

http://codereview.chromium.org/1695007/diff/1/2
File src/ia32/codegen-ia32.cc (right):

http://codereview.chromium.org/1695007/diff/1/2#newcode6541
src/ia32/codegen-ia32.cc:6541:
Could these constants be put into the JSFunctionResultCache class.

http://codereview.chromium.org/1695007/diff/1/2#newcode6545
src/ia32/codegen-ia32.cc:6545: // dst_ keeps the finger key as smi as
well.
Could you put a comment here saying what registers/variables holds which
values (and whether they are tagged or not)?

http://codereview.chromium.org/1695007/diff/1/2#newcode6556
src/ia32/codegen-ia32.cc:6556: __ cmp(key_, FieldOperand(cache_,
Add a STATIC_ASSERT(kSmiTagSize == 1 && kSmiTag == 0);
to ensure that using times_half_pointer_size does the right thing (so
that if it ever stops being true, we will know to look here for code
that needs changing).

http://codereview.chromium.org/1695007/diff/1/2#newcode6606
src/ia32/codegen-ia32.cc:6606: // slow path this optimization would
hardly matter much.
What do you mean by "slow path".

http://codereview.chromium.org/1695007/diff/1/2#newcode6612
src/ia32/codegen-ia32.cc:6612: __ cmp(ebx, FieldOperand(ecx,
kFingerOffset));
Of you have a register for it, you might want to read the finger offset
here, instead of comparing to it here and reading it again two
instructions down.

http://codereview.chromium.org/1695007/diff/1/2#newcode6625
src/ia32/codegen-ia32.cc:6625: __ add(FieldOperand(ecx,
kCacheSizeOffset), Immediate(2 << 1));
use kEntrySizeSmi for constant.
Also add the constant in a register and write it back instead of using a
read-modify-write operation.
You seem to have edx free at this point.

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

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

Reply via email to