LGTM
http://codereview.chromium.org/6602007/diff/1/src/x64/code-stubs-x64.cc File src/x64/code-stubs-x64.cc (right): http://codereview.chromium.org/6602007/diff/1/src/x64/code-stubs-x64.cc#newcode2090 src/x64/code-stubs-x64.cc:2090: CpuFeatures::Scope use_sse2(SSE2); No need to have SSE2 scopes in X64. http://codereview.chromium.org/6602007/diff/1/src/x64/code-stubs-x64.cc#newcode2154 src/x64/code-stubs-x64.cc:2154: __ movl(rcx, Immediate(0x7FB00000)); Could you detect infinity by adding the value to itself and see that it doesn't change? (Need to filter out zero at the beginning then, ofcourse). Or subtract it from itself and not get zero (but NaN)? http://codereview.chromium.org/6602007/diff/1/src/x64/code-stubs-x64.cc#newcode2160 src/x64/code-stubs-x64.cc:2160: __ movsd(xmm1, xmm3); It's worth noticing that if xmm1 is very small, the division might give Infinity - but that's the correct result for the operation. http://codereview.chromium.org/6602007/diff/1/src/x64/code-stubs-x64.cc#newcode2163 src/x64/code-stubs-x64.cc:2163: // exponent (or both) is a heapnumber - no matter what we should now work Capitalize exponent. http://codereview.chromium.org/6602007/diff/1/src/x64/code-stubs-x64.cc#newcode2189 src/x64/code-stubs-x64.cc:2189: __ j(greater_equal, &call_runtime); If the value isn't -Infinity, won't the result be NaN/Infinity too. We shouldn't need to go to runtime. It's only if it's -Infinity that we need to do something (and I have no idea what :). http://codereview.chromium.org/6602007/diff/1/src/x64/code-stubs-x64.cc#newcode2197 src/x64/code-stubs-x64.cc:2197: __ movl(rcx, Immediate(0xBF000000)); Is this smaller than loading the exact representation of 1/2 as 64-bit? http://codereview.chromium.org/6602007/ -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
