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

Issue 2116003: ARM: Pass arguments to keyed store IC in registers... (Closed)

Created:
10 years, 7 months ago by Søren Thygesen Gjesse
Modified:
9 years, 7 months ago
Reviewers:
Erik Corry
CC:
v8-dev
Visibility:
Public.

Description

ARM: Pass arguments to keyed store IC in registers The calling convention for keyed store IC on ARM is changed to receive the arguments value, key and receiver in registers r0, r1 and r2 instead of on the stack. When calling keyed store IC with a virtual frame the arguments are passed through the virtual frame and consumed by the call. Changed the register usage in the IC code to postpone spilling the registers holding value, key and receiver to the stack until making a call into the runtime system. Runs all the tests with: --special-command="@ --nofull-compiler" --special-command="@ --always-full-compiler" --special-command="@ --noenable-vfp3" Committed: http://code.google.com/p/v8/source/detail?r=4668

Patch Set 1 #

Patch Set 2 : '' #

Total comments: 9

Patch Set 3 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+295 lines, -263 lines) Patch
M src/arm/codegen-arm.h View 1 2 1 chunk +2 lines, -1 line 0 comments Download
M src/arm/codegen-arm.cc View 1 2 6 chunks +55 lines, -37 lines 0 comments Download
M src/arm/debug-arm.cc View 1 2 1 chunk +4 lines, -3 lines 0 comments Download
M src/arm/full-codegen-arm.cc View 1 2 5 chunks +24 lines, -11 lines 0 comments Download
M src/arm/ic-arm.cc View 1 2 12 chunks +196 lines, -198 lines 0 comments Download
M src/arm/stub-cache-arm.cc View 1 2 1 chunk +9 lines, -10 lines 0 comments Download
M src/arm/virtual-frame-arm.h View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M src/arm/virtual-frame-arm.cc View 1 2 1 chunk +3 lines, -1 line 0 comments Download

Messages

Total messages: 3 (0 generated)
Søren Thygesen Gjesse
10 years, 7 months ago (2010-05-17 18:15:26 UTC) #1
Erik Corry
Looks good to me. All those register changes made steam come out of my ears, ...
10 years, 7 months ago (2010-05-17 19:15:14 UTC) #2
Søren Thygesen Gjesse
10 years, 7 months ago (2010-05-18 06:56:52 UTC) #3
http://codereview.chromium.org/2116003/diff/10001/11005
File src/arm/ic-arm.cc (right):

http://codereview.chromium.org/2116003/diff/10001/11005#newcode1341
src/arm/ic-arm.cc:1341: __ add(r4, key, Operand(1 << (kSmiTagSize +
kSmiShiftSize)));
On 2010/05/17 19:15:15, Erik Corry wrote:
> Operand(Smi::FromInt(1))

Done.

http://codereview.chromium.org/2116003/diff/10001/11005#newcode1368
src/arm/ic-arm.cc:1368: __ b(eq, &exit);
On 2010/05/17 19:15:15, Erik Corry wrote:
> I think you might as well do a Ret(eq) here.

Done.

http://codereview.chromium.org/2116003/diff/10001/11005#newcode1555
src/arm/ic-arm.cc:1555: // r3: base pointer of external storage
On 2010/05/17 19:15:15, Erik Corry wrote:
> Full stop here and lots of other places.

Done.

http://codereview.chromium.org/2116003/diff/10001/11007
File src/arm/virtual-frame-arm.cc (right):

http://codereview.chromium.org/2116003/diff/10001/11007#newcode344
src/arm/virtual-frame-arm.cc:344: EmitPop(r2);
On 2010/05/17 19:15:15, Erik Corry wrote:
> This pop and the spillall should be swapped, since we plan to register
allocate
> r2 soon.

Done.

Powered by Google App Engine
This is Rietveld 408576698