Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Issue 6315004: Truncate rather than round to nearest when performing float-to-integer... (Closed)

Created:
9 years, 11 months ago by Ken Russell (switch to Gerrit)
Modified:
9 years, 7 months ago
CC:
v8-dev
Visibility:
Public.

Description

Truncate rather than round to nearest when performing float-to-integer conversions for external array types, which implement the Typed Array spec. The new code paths are for SSE3 and SSE2 capable processors. The code for non-SSE2 processors is unchanged for now. The ARM port appears to already be correct. Moved the generation of the external array load and store intrinsics to the stub cache (on all platforms) so that they are generated at run time and can take advantage of CPU features. This functionality is covered by the array-unit-tests.html test in the WebGL conformance test suite: http://khronos.org/webgl/wiki/Testing/Conformance https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/array-unit-tests.html Manually verified all of the SSE3/SSE2/non-SSE2 code paths by enabling each in turn. Tested in Chromium on 32-bit Mac OS X and 64-bit Linux. BUG=http://code.google.com/p/chromium/issues/detail?id=50972 TEST=none (see above) Committed: http://code.google.com/p/v8/source/detail?r=6373

Patch Set 1 #

Total comments: 6

Patch Set 2 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1438 lines, -1359 lines) Patch
M src/arm/ic-arm.cc View 1 2 chunks +0 lines, -577 lines 0 comments Download
M src/arm/stub-cache-arm.cc View 1 1 chunk +597 lines, -0 lines 0 comments Download
M src/builtins.h View 1 2 chunks +0 lines, -14 lines 0 comments Download
M src/builtins.cc View 1 2 chunks +0 lines, -76 lines 0 comments Download
M src/heap.h View 1 1 chunk +3 lines, -1 line 0 comments Download
M src/ia32/ic-ia32.cc View 1 2 chunks +0 lines, -342 lines 0 comments Download
M src/ia32/stub-cache-ia32.cc View 1 1 chunk +389 lines, -0 lines 0 comments Download
M src/ic.h View 1 4 chunks +0 lines, -15 lines 0 comments Download
M src/ic.cc View 1 3 chunks +8 lines, -51 lines 0 comments Download
M src/mips/ic-mips.cc View 1 1 chunk +0 lines, -12 lines 0 comments Download
M src/mips/stub-cache-mips.cc View 1 1 chunk +14 lines, -0 lines 0 comments Download
M src/stub-cache.h View 1 2 chunks +18 lines, -0 lines 0 comments Download
M src/stub-cache.cc View 1 2 chunks +80 lines, -0 lines 0 comments Download
M src/x64/assembler-x64.h View 1 1 chunk +2 lines, -0 lines 0 comments Download
M src/x64/assembler-x64.cc View 1 2 chunks +22 lines, -0 lines 0 comments Download
M src/x64/disasm-x64.cc View 1 1 chunk +5 lines, -3 lines 0 comments Download
M src/x64/ic-x64.cc View 1 2 chunks +0 lines, -268 lines 0 comments Download
M src/x64/stub-cache-x64.cc View 1 1 chunk +300 lines, -0 lines 0 comments Download

Messages

Total messages: 6 (0 generated)
Ken Russell (switch to Gerrit)
Please review. Thanks.
9 years, 11 months ago (2011-01-14 01:03:36 UTC) #1
William Hesse
http://codereview.chromium.org/6315004/diff/1/src/ia32/stub-cache-ia32.cc File src/ia32/stub-cache-ia32.cc (right): http://codereview.chromium.org/6315004/diff/1/src/ia32/stub-cache-ia32.cc#newcode3574 src/ia32/stub-cache-ia32.cc:3574: __ pop(ecx); Why are SSE3 features used on ia32, ...
9 years, 11 months ago (2011-01-14 14:58:17 UTC) #2
Ken Russell (switch to Gerrit)
I also simplified the code in stub-cache.cc which constructed the name of the code stub, ...
9 years, 11 months ago (2011-01-14 22:37:25 UTC) #3
William Hesse
LGTM. Is there a bug filed for all cases where the spec is not implemented ...
9 years, 11 months ago (2011-01-17 09:34:14 UTC) #4
Ken Russell (switch to Gerrit)
On 2011/01/17 09:34:14, William Hesse wrote: > LGTM. Is there a bug filed for all ...
9 years, 11 months ago (2011-01-18 21:42:40 UTC) #5
Mads Ager (chromium)
9 years, 11 months ago (2011-01-19 08:06:47 UTC) #6
This does not compile on ARM. I fixed that in r6376. However, the tests do not
pass on ARM after the compile fix. I'll revert this now. To test with the arm
simulator please use: tools/test.py --simulator=arm

Powered by Google App Engine
This is Rietveld 408576698