LGTM.
http://codereview.chromium.org/6469052/diff/1/src/x64/lithium-codegen-x64.cc File src/x64/lithium-codegen-x64.cc (right): http://codereview.chromium.org/6469052/diff/1/src/x64/lithium-codegen-x64.cc#newcode2352 src/x64/lithium-codegen-x64.cc:2352: // We need special handling for non-flat strings. ... special handling for non-sequential strings. (External strings are also flat). http://codereview.chromium.org/6469052/diff/1/src/x64/lithium-codegen-x64.cc#newcode2378 src/x64/lithium-codegen-x64.cc:2378: // Check for 1-byte or 2-byte string. You call it 1-byte string here and ASCII string below. Perhaps use either ASCII and UC16, or ASCII and TwoByte. http://codereview.chromium.org/6469052/diff/1/src/x64/lithium-codegen-x64.cc#newcode2390 src/x64/lithium-codegen-x64.cc:2390: SeqTwoByteString::kHeaderSize + 2 * const_index)); Use kUC16Size instead of 2. http://codereview.chromium.org/6469052/diff/1/src/x64/lithium-codegen-x64.cc#newcode2445 src/x64/lithium-codegen-x64.cc:2445: __ Integer32ToSmi(rax, rax); Should be SmiToInteger32. http://codereview.chromium.org/6469052/diff/1/src/x64/lithium-codegen-x64.cc#newcode2448 src/x64/lithium-codegen-x64.cc:2448: __ PopSafepointRegisters(); We could make an alternative version: PopSafepointRegistersExcept(Register to_omit) and then just move the result from rax to result before popping the rest. Can't say if it'll be worth it, though. http://codereview.chromium.org/6469052/diff/1/src/x64/lithium-codegen-x64.cc#newcode2825 src/x64/lithium-codegen-x64.cc:2825: // Result will be in eax. eax->rax http://codereview.chromium.org/6469052/ -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
