LGTM, if the disassembly is tested in the relevant cctest.


http://codereview.chromium.org/6049008/diff/3001/src/ia32/assembler-ia32.h
File src/ia32/assembler-ia32.h (right):

http://codereview.chromium.org/6049008/diff/3001/src/ia32/assembler-ia32.h#newcode929
src/ia32/assembler-ia32.h:929: void punpckldq(XMMRegister dst,
XMMRegister src);
Seems like not all these ended up being needed.  We normally don't add
them unless we use them somewhere.

http://codereview.chromium.org/6049008/diff/3001/src/ia32/lithium-codegen-ia32.cc
File src/ia32/lithium-codegen-ia32.cc (right):

http://codereview.chromium.org/6049008/diff/3001/src/ia32/lithium-codegen-ia32.cc#newcode2247
src/ia32/lithium-codegen-ia32.cc:2247: ExternalReference one_half =
ExternalReference::address_of_one_half();
Here's how to load a constant into an XMM register.

http://codereview.chromium.org/6049008/diff/3001/src/ia32/lithium-codegen-ia32.cc#newcode2904
src/ia32/lithium-codegen-ia32.cc:2904: __ psllq(xmm_scratch, kDoubleSize
* kBitsPerByte - 1);
It might be faster to load xmm_scratch using the technique above?

http://codereview.chromium.org/6049008/diff/3001/src/ia32/lithium-codegen-ia32.cc#newcode2925
src/ia32/lithium-codegen-ia32.cc:2925: // Don't handle big (or special)
exponents.
Could you add a comment describing the range handled?

http://codereview.chromium.org/6049008/diff/3001/src/ia32/lithium-codegen-ia32.cc#newcode2938
src/ia32/lithium-codegen-ia32.cc:2938: __ sub(result_reg,
Operand(temp_reg));
ooh, nice!

http://codereview.chromium.org/6049008/

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

Reply via email to