http://codereview.chromium.org/2885018/diff/1/5 File src/x64/macro-assembler-x64.cc (right):
http://codereview.chromium.org/2885018/diff/1/5#newcode559 src/x64/macro-assembler-x64.cc:559: //imul(dst, kSmiConstantRegister, Immediate(value)); Ack, yes. http://codereview.chromium.org/2885018/diff/1/5#newcode727 src/x64/macro-assembler-x64.cc:727: // Make mask 0x8000000000000001 and test that both bits are zero. I used lea instead of movl(.., Immediate(3)) since the latter is actually longer (the immediate must be 4 bytes). I don't want to use more rotates than necessary (although concern for the P4 might not be that necessary these days), and the second rotate clobbers the flags from the src. I think the first one is probably the best one. http://codereview.chromium.org/2885018/diff/1/5#newcode775 src/x64/macro-assembler-x64.cc:775: cmpq(kScratchRegister, src); Good one! http://codereview.chromium.org/2885018/diff/1/5#newcode886 src/x64/macro-assembler-x64.cc:886: subq(src1, kScratchRegister); The current version should be slightly better on an i7, due to cmp/j macro-op fusion (sadly it doesn't exist on earlier chips in 64-bit mode). http://codereview.chromium.org/2885018/diff/1/9 File test/cctest/test-macro-assembler-x64.cc (right): http://codereview.chromium.org/2885018/diff/1/9#newcode103 test/cctest/test-macro-assembler-x64.cc:103: __ pop(v8::internal::kSmiConstantRegister); Sure. http://codereview.chromium.org/2885018/show -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
