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

Issue 7307030: Implement ICs for FastDoubleArray loads and stores (Closed)

Created:
9 years, 5 months ago by danno
Modified:
9 years, 5 months ago
CC:
v8-dev, Jakob Kummerow
Visibility:
Public.

Description

Implement ICs for FastDoubleArray loads and stores Implemented on ia32, x64, ARM. Stubbed out with UNIMPLEMENTED on MIPS. BUG=none TEST=unbox-double-arrays.js Committed: http://code.google.com/p/v8/source/detail?r=8637

Patch Set 1 : Implement ia32 #

Patch Set 2 : merge with latest #

Patch Set 3 : make ia32 work #

Patch Set 4 : implement x64 #

Patch Set 5 : Implement ARM and stub out MIPS #

Patch Set 6 : Fix nit #

Total comments: 30

Patch Set 7 : review feedback #

Total comments: 12

Patch Set 8 : review feedback #

Patch Set 9 : fix asserts #

Unified diffs Side-by-side diffs Delta from patch set Stats (+846 lines, -88 lines) Patch
M src/arm/macro-assembler-arm.cc View 1 2 3 4 5 6 7 8 1 chunk +3 lines, -0 lines 0 comments Download
M src/arm/stub-cache-arm.cc View 1 2 3 4 5 6 7 2 chunks +188 lines, -0 lines 0 comments Download
M src/assembler.h View 1 2 3 4 5 6 2 chunks +4 lines, -2 lines 0 comments Download
M src/assembler.cc View 1 2 3 4 5 6 7 3 chunks +12 lines, -4 lines 0 comments Download
M src/code-stubs.cc View 1 2 3 2 chunks +3 lines, -2 lines 0 comments Download
M src/globals.h View 1 2 3 4 2 chunks +3 lines, -1 line 0 comments Download
M src/ia32/lithium-codegen-ia32.cc View 1 2 3 2 chunks +4 lines, -2 lines 0 comments Download
M src/ia32/macro-assembler-ia32.cc View 1 2 3 4 5 6 7 8 1 chunk +3 lines, -0 lines 0 comments Download
M src/ia32/stub-cache-ia32.cc View 1 2 3 4 5 6 7 2 chunks +157 lines, -0 lines 0 comments Download
M src/mips/stub-cache-mips.cc View 1 2 3 4 2 chunks +13 lines, -0 lines 0 comments Download
M src/objects.h View 1 2 1 chunk +3 lines, -17 lines 0 comments Download
M src/objects.cc View 1 2 3 4 5 6 11 chunks +35 lines, -19 lines 0 comments Download
M src/objects-inl.h View 1 2 3 4 5 6 1 chunk +15 lines, -0 lines 0 comments Download
M src/stub-cache.h View 1 2 chunks +5 lines, -0 lines 0 comments Download
M src/v8globals.h View 1 2 3 4 5 6 7 1 chunk +15 lines, -0 lines 0 comments Download
M src/x64/macro-assembler-x64.cc View 1 2 3 4 5 6 7 8 1 chunk +3 lines, -0 lines 0 comments Download
M src/x64/stub-cache-x64.cc View 1 2 3 4 5 6 7 2 chunks +136 lines, -0 lines 0 comments Download
M test/mjsunit/unbox-double-arrays.js View 1 2 3 4 5 6 1 chunk +244 lines, -41 lines 0 comments Download

Messages

Total messages: 6 (0 generated)
danno
Please review.
9 years, 5 months ago (2011-07-12 08:20:09 UTC) #1
Mads Ager (chromium)
http://codereview.chromium.org/7307030/diff/12005/src/apiutils.h File src/apiutils.h (right): http://codereview.chromium.org/7307030/diff/12005/src/apiutils.h#newcode31 src/apiutils.h:31: #include "objects.h" Why do you need an extra include ...
9 years, 5 months ago (2011-07-12 12:03:26 UTC) #2
Rodolph Perfetta
drive by comments. http://codereview.chromium.org/7307030/diff/12005/src/arm/stub-cache-arm.cc File src/arm/stub-cache-arm.cc (right): http://codereview.chromium.org/7307030/diff/12005/src/arm/stub-cache-arm.cc#newcode4208 src/arm/stub-cache-arm.cc:4208: __ add(r5, r4, Operand(1), SetCC); 0x7FFFFFFF ...
9 years, 5 months ago (2011-07-12 14:00:30 UTC) #3
danno
Thanks for the helpful comments. Should be much better now, please take another look. http://codereview.chromium.org/7307030/diff/12005/src/apiutils.h ...
9 years, 5 months ago (2011-07-13 08:59:52 UTC) #4
Mads Ager (chromium)
LGTM with a couple of nits. http://codereview.chromium.org/7307030/diff/21002/src/arm/stub-cache-arm.cc File src/arm/stub-cache-arm.cc (right): http://codereview.chromium.org/7307030/diff/21002/src/arm/stub-cache-arm.cc#newcode4210 src/arm/stub-cache-arm.cc:4210: __ cmp(scratch, Operand(0x7FFFFFFF)); ...
9 years, 5 months ago (2011-07-13 09:43:09 UTC) #5
danno
9 years, 5 months ago (2011-07-13 14:11:03 UTC) #6
feedback addressed and committed.

http://codereview.chromium.org/7307030/diff/21002/src/arm/stub-cache-arm.cc
File src/arm/stub-cache-arm.cc (right):

http://codereview.chromium.org/7307030/diff/21002/src/arm/stub-cache-arm.cc#n...
src/arm/stub-cache-arm.cc:4210: __ cmp(scratch, Operand(0x7FFFFFFF));
On 2011/07/13 09:43:09, Mads Ager wrote:
> Can you use kHoleNaNUpper32 here?

Done.

http://codereview.chromium.org/7307030/diff/21002/src/arm/stub-cache-arm.cc#n...
src/arm/stub-cache-arm.cc:4360: __ ldr(scratch3, FieldMemOperand(value_reg,
HeapNumber::kExponentOffset));
On 2011/07/13 09:43:09, Mads Ager wrote:
> Are scratch2 and scratch3 used for anything but exponent and mantissa? If not,
> those would be better names for them.

Done.

http://codereview.chromium.org/7307030/diff/21002/src/assembler.cc
File src/assembler.cc (right):

http://codereview.chromium.org/7307030/diff/21002/src/assembler.cc#newcode50
src/assembler.cc:50: #include "v8.h"
On 2011/07/13 09:43:09, Mads Ager wrote:
> This is already included above.

Done.

http://codereview.chromium.org/7307030/diff/21002/src/ia32/stub-cache-ia32.cc
File src/ia32/stub-cache-ia32.cc (right):

http://codereview.chromium.org/7307030/diff/21002/src/ia32/stub-cache-ia32.cc...
src/ia32/stub-cache-ia32.cc:3822: __ fld_d(FieldOperand(ecx, eax, times_4,
FixedDoubleArray::kHeaderSize));
On 2011/07/13 09:43:09, Mads Ager wrote:
> Would it be worth it to check for SSE2 here as well as in the stores and use
xmm
> registers? We should probably see if it makes a difference.

Done.

http://codereview.chromium.org/7307030/diff/21002/src/ia32/stub-cache-ia32.cc...
src/ia32/stub-cache-ia32.cc:3830: __ ffree();
On 2011/07/13 09:43:09, Mads Ager wrote:
> Maybe add a short comment like: Pop double from FPU stack and enter the
runtime
> system to allocate result.

Done.

http://codereview.chromium.org/7307030/diff/21002/src/ia32/stub-cache-ia32.cc...
src/ia32/stub-cache-ia32.cc:3931: __ cmp(FieldOperand(eax, offset),
Immediate(0x7ff00000));
On 2011/07/13 09:43:09, Mads Ager wrote:
> You had a comment about this constant in the ARM code. We should probably name
> this constant as well.

Done.

Powered by Google App Engine
This is Rietveld 408576698