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

Issue 391079: Re-enable using push instructions for syncing the virtual frame.... (Closed)

Created:
11 years, 1 month ago by fschneider
Modified:
9 years, 6 months ago
Reviewers:
Kasper Lund
CC:
v8-dev
Visibility:
Public.

Description

Re-enable using push instructions for syncing the virtual frame. This change fixes the problem with the original version of this approach (r3032) that may lead to a corrupted stack if we would invoke spilling during syncing a large SMI constant (unsafe SMIs) in the virtual frame. The new code for storing unsafe SMI constants does not use an extra temporary register. This prevents the compiler from ever having to spill during a virutal frame sync operation. For storing a large SMI constant we previously generated: mov ecx, (large_smi & 0x0000ffff) xor ecx, (large_smi & 0xffff0000) push ecx we now generate: push (large_smi & 0x0000ffff) or [esp], (large_smi & 0xffff0000) Not using a temporary register avoids spilling within an nvocation of VirtualFrame::SyncRange. Committed: http://code.google.com/p/v8/source/detail?r=3313

Patch Set 1 #

Patch Set 2 : '' #

Total comments: 2

Patch Set 3 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+38 lines, -25 lines) Patch
M src/ia32/codegen-ia32.h View 1 2 1 chunk +4 lines, -2 lines 0 comments Download
M src/ia32/codegen-ia32.cc View 1 2 1 chunk +18 lines, -2 lines 0 comments Download
M src/ia32/register-allocator-ia32.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M src/ia32/virtual-frame-ia32.cc View 1 2 6 chunks +14 lines, -19 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
fschneider
11 years, 1 month ago (2009-11-16 22:02:51 UTC) #1
Kasper Lund
LGTM, but you need to fix that name... http://codereview.chromium.org/391079/diff/2003/3003 File src/ia32/codegen-ia32.h (right): http://codereview.chromium.org/391079/diff/2003/3003#newcode474 Line 474: ...
11 years, 1 month ago (2009-11-16 22:09:18 UTC) #2
fschneider
11 years, 1 month ago (2009-11-16 23:08:37 UTC) #3
http://codereview.chromium.org/391079/diff/2003/3003
File src/ia32/codegen-ia32.h (right):

http://codereview.chromium.org/391079/diff/2003/3003#newcode474
Line 474: void LoadUnsafeSmi(int offset, Handle<Object> value);
On 2009/11/16 22:09:18, Kasper Lund wrote:
> This seems like pretty unfortunate overloading. Isn't it really more like
> StoreUnsafeSmiInLocal?

Done.

Powered by Google App Engine
This is Rietveld 408576698