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

Issue 1719021: Add inlining of keyed store on ARM... (Closed)

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

Description

Add inlining of keyed store on ARM This ports the inlining of keyed store to the ARM port. As the inlined code does not handle the write barrier it only supports storing of smis. Committed: http://code.google.com/p/v8/source/detail?r=4531

Patch Set 1 #

Total comments: 10

Patch Set 2 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+172 lines, -20 lines) Patch
M src/arm/codegen-arm.h View 1 2 chunks +5 lines, -1 line 0 comments Download
M src/arm/codegen-arm.cc View 1 8 chunks +132 lines, -13 lines 0 comments Download
M src/arm/ic-arm.cc View 1 2 chunks +23 lines, -4 lines 0 comments Download
M src/arm/macro-assembler-arm.cc View 1 1 chunk +2 lines, -2 lines 0 comments Download
M src/arm/virtual-frame-arm.h View 1 1 chunk +4 lines, -0 lines 0 comments Download
M src/arm/virtual-frame-arm.cc View 1 1 chunk +6 lines, -0 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Søren Thygesen Gjesse
10 years, 8 months ago (2010-04-27 14:07:08 UTC) #1
Erik Corry
LGTM http://codereview.chromium.org/1719021/diff/1/2 File src/arm/codegen-arm.cc (right): http://codereview.chromium.org/1719021/diff/1/2#newcode5305 src/arm/codegen-arm.cc:5305: __ DecrementCounter(&Counters::keyed_store_inline, 1, r1, r2); Let's use VirtualFrame::scratch0() ...
10 years, 8 months ago (2010-04-28 09:40:03 UTC) #2
Søren Thygesen Gjesse
10 years, 8 months ago (2010-04-28 11:08:23 UTC) #3
http://codereview.chromium.org/1719021/diff/1/2
File src/arm/codegen-arm.cc (right):

http://codereview.chromium.org/1719021/diff/1/2#newcode5305
src/arm/codegen-arm.cc:5305: __ DecrementCounter(&Counters::keyed_store_inline,
1, r1, r2);
On 2010/04/28 09:40:04, Erik Corry wrote:
> Let's use VirtualFrame::scratch0() and scratch1() for these.

Done.

http://codereview.chromium.org/1719021/diff/1/2#newcode5310
src/arm/codegen-arm.cc:5310: // Call keyed load IC. It has all arguments on the
stack.
On 2010/04/28 09:40:04, Erik Corry wrote:
> Comment out of date.  Is the value still in r0 here?

Done.

http://codereview.chromium.org/1719021/diff/1/2#newcode5463
src/arm/codegen-arm.cc:5463: // Generate inlined version of the keyed store if
the code is in a loop
On 2010/04/28 09:40:04, Erik Corry wrote:
> We should assert that registers are spilled.

Done.

http://codereview.chromium.org/1719021/diff/1/2#newcode5489
src/arm/codegen-arm.cc:5489: // Load the receiver from the stack.
On 2010/04/28 09:40:04, Erik Corry wrote:
> Perhaps we could hoist this load so it can execute in parallel with the tst
and
> branch above.

Done.

http://codereview.chromium.org/1719021/diff/1/2#newcode5659
src/arm/codegen-arm.cc:5659: frame->EmitPop(r0);  // Value.
On 2010/04/28 09:40:04, Erik Corry wrote:
> Use FlushAllButCopyTOSToR0.

That doesn't work. We need SpillAllButTOSWithTOSInR0 (I think).

Powered by Google App Engine
This is Rietveld 408576698