LGTM
http://codereview.chromium.org/2673001/diff/3001/4001 File src/ia32/codegen-ia32.cc (right): http://codereview.chromium.org/2673001/diff/3001/4001#newcode11310 src/ia32/codegen-ia32.cc:11310: // First check for flat two byte string. "two-byte"? http://codereview.chromium.org/2673001/diff/3001/4001#newcode11311 src/ia32/codegen-ia32.cc:11311: __ and_(ebx, Would andb be enough? (Although I don't think it makes a difference at all when the register isn't rax, I still like to see the size of the value I'm working on.) http://codereview.chromium.org/2673001/diff/3001/4001#newcode11332 src/ia32/codegen-ia32.cc:11332: __ cmp(Operand(edx), Factory::empty_string()); Can you do a direct compare to memory? I.e., cmp(FieldOperand(eax, ConstString::kSecondOffset), Factory::empty_string()); http://codereview.chromium.org/2673001/diff/3001/4001#newcode12890 src/ia32/codegen-ia32.cc:12890: __ test(edi, Immediate(kStringEncodingMask)); Could you do an xor (or just an and) here to check that the asciiness/twobyteness is the same for both strings, instead of testing each for being two-byte? Or does it use too many registers? http://codereview.chromium.org/2673001/show -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
