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

Issue 3357022: Handle both global and local variables potentially shadowed by... (Closed)

Created:
10 years, 3 months ago by Mads Ager (chromium)
Modified:
9 years, 7 months ago
CC:
v8-dev
Visibility:
Public.

Description

Handle both global and local variables potentially shadowed by eval-introduced variables in full-codegen. Make sure that x64 assembler records source positions for calls. Committed: http://code.google.com/p/v8/source/detail?r=5441

Patch Set 1 #

Patch Set 2 : '' #

Total comments: 12
Unified diffs Side-by-side diffs Delta from patch set Stats (+390 lines, -42 lines) Patch
M src/arm/full-codegen-arm.cc View 4 chunks +129 lines, -14 lines 10 comments Download
M src/full-codegen.h View 1 chunk +5 lines, -0 lines 0 comments Download
M src/ia32/full-codegen-ia32.cc View 4 chunks +127 lines, -14 lines 0 comments Download
M src/x64/assembler-x64.cc View 1 chunk +1 line, -0 lines 0 comments Download
M src/x64/full-codegen-x64.cc View 4 chunks +128 lines, -14 lines 2 comments Download

Messages

Total messages: 3 (0 generated)
Mads Ager (chromium)
10 years, 3 months ago (2010-09-09 14:01:55 UTC) #1
Søren Thygesen Gjesse
LGTM http://codereview.chromium.org/3357022/diff/9001/7002 File src/arm/full-codegen-arm.cc (right): http://codereview.chromium.org/3357022/diff/9001/7002#newcode900 src/arm/full-codegen-arm.cc:900: // Walk the rest of the chain using ...
10 years, 3 months ago (2010-09-10 07:44:24 UTC) #2
Mads Ager (chromium)
10 years, 3 months ago (2010-09-10 10:51:42 UTC) #3
http://codereview.chromium.org/3357022/diff/9001/7002
File src/arm/full-codegen-arm.cc (right):

http://codereview.chromium.org/3357022/diff/9001/7002#newcode900
src/arm/full-codegen-arm.cc:900: // Walk the rest of the chain using a single
register without
On 2010/09/10 07:44:24, Søren Gjesse wrote:
> delete "using a single register"

Done.

http://codereview.chromium.org/3357022/diff/9001/7002#newcode901
src/arm/full-codegen-arm.cc:901: // clobbering esi.
On 2010/09/10 07:44:24, Søren Gjesse wrote:
> esi -> cp

Done.

http://codereview.chromium.org/3357022/diff/9001/7002#newcode933
src/arm/full-codegen-arm.cc:933: if (potential_slot->var()->mode() ==
Variable::CONST) {
On 2010/09/10 07:44:24, Søren Gjesse wrote:
> Line 1071 below could use the same pattern (a conditional LoadRoot instead a
> jump around it).

Good catch. Done. :)

http://codereview.chromium.org/3357022/diff/9001/7002#newcode1819
src/arm/full-codegen-arm.cc:1819: __ CallRuntime(Runtime::kLoadContextSlot, 2);
On 2010/09/10 07:44:24, Søren Gjesse wrote:
> Maybe change these two pushes to Push(r0, r1). It cannot generate an stm
> instruction in this case, but anyway.

Done.

http://codereview.chromium.org/3357022/diff/9001/7002#newcode1834
src/arm/full-codegen-arm.cc:1834: __ ldr(r1, FieldMemOperand(r1,
GlobalObject::kGlobalReceiverOffset));
On 2010/09/10 07:44:24, Søren Gjesse wrote:
> Maybe change to Push(r0, r1), or even better have
> EmitDynamicLoadFromSlotFastCase return result in r1 and load global receiver
in
> r0 to use Push(r1, r0) which will generate an stm instruction.

That would be neat. I made it Push(r0, r1) for now. It makes it simpler in other
cases that it returns the result in the same register as the runtime context
slot lookup.

http://codereview.chromium.org/3357022/diff/9001/7006
File src/x64/full-codegen-x64.cc (right):

http://codereview.chromium.org/3357022/diff/9001/7006#newcode964
src/x64/full-codegen-x64.cc:964: // clobbering esi.
On 2010/09/10 07:44:24, Søren Gjesse wrote:
> esi -> rsi

Done.

Powered by Google App Engine
This is Rietveld 408576698