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

Issue 92121: Materializing a frame element on the stack by pushing it can cause the... (Closed)

Created:
11 years, 8 months ago by Kevin Millikin (Chromium)
Modified:
9 years, 7 months ago
Reviewers:
Kasper Lund
CC:
v8-dev
Visibility:
Public.

Description

Materializing a frame element on the stack by pushing it can cause the stack pointer to change by more than one in a corner case. If we push a constant smi larger than 16 bits, we push it via a temporary register. Allocating the temporary can cause a register to be spilled from the frame somewhere above the stack pointer. As a fix, do not use pushes to materialize ranges of elements of size larger than one. Committed: http://code.google.com/p/v8/source/detail?r=1785

Patch Set 1 #

Patch Set 2 : '' #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+38 lines, -194 lines) Patch
M src/arm/virtual-frame-arm.cc View 1 1 chunk +10 lines, -0 lines 1 comment Download
M src/ia32/virtual-frame-ia32.cc View 2 chunks +23 lines, -1 line 0 comments Download
M src/virtual-frame.cc View 2 chunks +5 lines, -31 lines 0 comments Download
M test/cctest/test-log-ia32.cc View 2 chunks +0 lines, -162 lines 0 comments Download

Messages

Total messages: 2 (0 generated)
Kevin Millikin (Chromium)
I've removed a test that relied on patching generated code and was broken by this ...
11 years, 8 months ago (2009-04-24 11:08:54 UTC) #1
Kasper Lund
11 years, 8 months ago (2009-04-24 11:21:22 UTC) #2
LGTM.

http://codereview.chromium.org/92121/diff/10/1008
File src/arm/virtual-frame-arm.cc (right):

http://codereview.chromium.org/92121/diff/10/1008#newcode77
Line 77: for (int i = begin; i < end; i++) {
i <= end

Powered by Google App Engine
This is Rietveld 408576698