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

Issue 2018005: Fix inlined keyed property load 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

Fix inlined keyed property load on ARM The change r4608 accidently disabled the inlined keyed load as the key/receiver registers was mixed up. Also make sure that the registers for the keyed load IC is not clobbered before bailout to deferred code. This adds one instriction to the inlined code path. Committed: http://code.google.com/p/v8/source/detail?r=4629

Patch Set 1 #

Patch Set 2 : '' #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+7 lines, -9 lines) Patch
M src/arm/codegen-arm.cc View 1 3 chunks +6 lines, -8 lines 2 comments Download
M src/arm/ic-arm.cc View 1 chunk +1 line, -1 line 2 comments Download

Messages

Total messages: 3 (0 generated)
Søren Thygesen Gjesse
10 years, 7 months ago (2010-05-10 09:05:35 UTC) #1
Erik Corry
LGTM http://codereview.chromium.org/2018005/diff/4001/1003 File src/arm/codegen-arm.cc (right): http://codereview.chromium.org/2018005/diff/4001/1003#newcode5635 src/arm/codegen-arm.cc:5635: __ ldr(ip, Ip is a register that is ...
10 years, 7 months ago (2010-05-10 10:16:48 UTC) #2
Søren Thygesen Gjesse
10 years, 7 months ago (2010-05-10 10:45:26 UTC) #3
http://codereview.chromium.org/2018005/diff/4001/1003
File src/arm/codegen-arm.cc (right):

http://codereview.chromium.org/2018005/diff/4001/1003#newcode5635
src/arm/codegen-arm.cc:5635: __ ldr(ip,
On 2010/05/10 10:16:48, Erik Corry wrote:
> Ip is a register that is used behind our backs by the macro assembler.  We are
a
> little lax about not making the assumption that we can use it for other
things. 
> In this case we are expecting it to be preserved across four instructions, one
> of which is not even generated here (it's in the deferred object's Branch
> method).  I would feel better if we used VirtualFrame::scratch0() for this.

Done.

http://codereview.chromium.org/2018005/diff/4001/1004
File src/arm/ic-arm.cc (right):

http://codereview.chromium.org/2018005/diff/4001/1004#newcode642
src/arm/ic-arm.cc:642: inline_end_address - 19 * Assembler::kInstrSize;
On 2010/05/10 10:16:48, Erik Corry wrote:
> Can we give this 19/20 constant a name?

Added constant kInlinedKeyedLoadInstructionsAfterPatchSite to the ARM code
generator.

Powered by Google App Engine
This is Rietveld 408576698