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

Issue 2024002: Pass key and receiver in registers for keyed load IC on ARM... (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

Pass key and receiver in registers for keyed load IC on ARM The calling convention for keyed load IC's on ARM now passes the key and receiver in registers r0 and r1. The code path in the ARM full compiler for handling keyed property load now has the same structure as for ia32 where the keyed load IC is also called with key end receiver in registers. This change have been tested with an exhaustive combinations of the flags --special-command="@ --nofull-compiler" --special-command="@ --always-full-compiler" --special-command="@ --noenable-vfp3" to the test runner. Committed: http://code.google.com/p/v8/source/detail?r=4608

Patch Set 1 #

Patch Set 2 : '' #

Total comments: 14

Patch Set 3 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+258 lines, -193 lines) Patch
M src/arm/codegen-arm.cc View 1 2 6 chunks +26 lines, -15 lines 0 comments Download
M src/arm/full-codegen-arm.cc View 1 2 6 chunks +35 lines, -24 lines 0 comments Download
M src/arm/ic-arm.cc View 1 2 14 chunks +136 lines, -128 lines 0 comments Download
M src/arm/macro-assembler-arm.h View 2 chunks +6 lines, -3 lines 0 comments Download
M src/arm/stub-cache-arm.cc View 1 2 13 chunks +7 lines, -20 lines 0 comments Download
M src/arm/virtual-frame-arm.h View 1 2 2 chunks +5 lines, -2 lines 0 comments Download
M src/arm/virtual-frame-arm.cc View 1 2 2 chunks +43 lines, -1 line 0 comments Download

Messages

Total messages: 3 (0 generated)
Søren Thygesen Gjesse
10 years, 7 months ago (2010-05-06 14:13:17 UTC) #1
Erik Corry
LGTM with comments. http://codereview.chromium.org/2024002/diff/8001/9002 File src/arm/codegen-arm.cc (right): http://codereview.chromium.org/2024002/diff/8001/9002#newcode5749 src/arm/codegen-arm.cc:5749: if (VirtualFrame::SpilledScope::is_spilled()) { Can't we move ...
10 years, 7 months ago (2010-05-07 08:53:25 UTC) #2
Søren Thygesen Gjesse
10 years, 7 months ago (2010-05-07 10:16:11 UTC) #3
http://codereview.chromium.org/2024002/diff/8001/9002
File src/arm/codegen-arm.cc (right):

http://codereview.chromium.org/2024002/diff/8001/9002#newcode5749
src/arm/codegen-arm.cc:5749: if (VirtualFrame::SpilledScope::is_spilled()) {
On 2010/05/07 08:53:25, Erik Corry wrote:
> Can't we move this into Dup2()?

Done. It needs a temporary register, which is why I did not do it in the first
place, but I can see the virtual frame can use ip.

http://codereview.chromium.org/2024002/diff/8001/9006
File src/arm/ic-arm.cc (right):

http://codereview.chromium.org/2024002/diff/8001/9006#newcode1064
src/arm/ic-arm.cc:1064: GenerateUInt2Double(masm, value, loword, r4, 0);
On 2010/05/07 08:53:25, Erik Corry wrote:
> value -> hiword

Done.

http://codereview.chromium.org/2024002/diff/8001/9006#newcode1069
src/arm/ic-arm.cc:1069: GenerateUInt2Double(masm, value, loword, r4, 1);
On 2010/05/07 08:53:25, Erik Corry wrote:
> value -> hiword

Done.

http://codereview.chromium.org/2024002/diff/8001/9006#newcode1075
src/arm/ic-arm.cc:1075: // more. Also OK to clobber r1.
On 2010/05/07 08:53:25, Erik Corry wrote:
> OK to clobber r1 if the allocation succeeds, but AllocateHeapNumber seems to
> clobber r1 regardless!

Good catch! Removed the comment on both r0 and r1 and used r2 and r3 instead.

Fixed all the other uses AllocateHeapNumber below to avoid clobbering r0 and r1
before any possible bailouts to the slow case.

http://codereview.chromium.org/2024002/diff/8001/9004
File src/arm/virtual-frame-arm.cc (right):

http://codereview.chromium.org/2024002/diff/8001/9004#newcode542
src/arm/virtual-frame-arm.cc:542: __ push(r1);
On 2010/05/07 08:53:25, Erik Corry wrote:
> Oops!

Done. This path is not hit by the tests.

http://codereview.chromium.org/2024002/diff/8001/9004#newcode548
src/arm/virtual-frame-arm.cc:548: __ push(r1);
On 2010/05/07 08:53:25, Erik Corry wrote:
> Hmmm.

What a mess - fixed. Also this path is not hit by the tests.

http://codereview.chromium.org/2024002/diff/8001/9004#newcode554
src/arm/virtual-frame-arm.cc:554: __ push(r0);
On 2010/05/07 08:53:25, Erik Corry wrote:
> I don't get it.

And fixed again. Also this path is not hit by the tests.

Powered by Google App Engine
This is Rietveld 408576698