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

Issue 10820053: Fix kStoreBufferBlockProcessRuntimeEntry call sequence. (Closed)

Created:
8 years, 4 months ago by Vyacheslav Egorov (Google)
Modified:
8 years, 4 months ago
Reviewers:
siva
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Fix kStoreBufferBlockProcessRuntimeEntry calling sequence. Poping of volatile registers was performed without taking into account the fact that stack pointer could have been modified to ensure correct alignment _after_ volatile registers were pushed. Enable --use-ssa on x64 again. BUG=4221 Committed: https://code.google.com/p/dart/source/detail?r=10007

Patch Set 1 #

Patch Set 2 : always restore stack pointer #

Total comments: 6

Patch Set 3 : Address Siva's comments #

Patch Set 4 : remove meaningless assertion #

Unified diffs Side-by-side diffs Delta from patch set Stats (+81 lines, -68 lines) Patch
M runtime/vm/assembler_ia32.h View 1 chunk +5 lines, -3 lines 0 comments Download
M runtime/vm/assembler_ia32.cc View 1 2 3 1 chunk +28 lines, -8 lines 0 comments Download
M runtime/vm/assembler_x64.h View 1 chunk +6 lines, -3 lines 0 comments Download
M runtime/vm/assembler_x64.cc View 1 2 3 1 chunk +32 lines, -27 lines 0 comments Download
M runtime/vm/compiler.cc View 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/stub_code_ia32.cc View 2 chunks +5 lines, -13 lines 0 comments Download
M runtime/vm/stub_code_x64.cc View 2 chunks +4 lines, -13 lines 0 comments Download

Messages

Total messages: 4 (0 generated)
Vyacheslav Egorov (Google)
Please take a look.
8 years, 4 months ago (2012-07-27 17:52:26 UTC) #1
Vyacheslav Egorov (Google)
Amended my patch. Actually our runtime functions are following C calling convention (caller cleans up ...
8 years, 4 months ago (2012-07-27 18:46:30 UTC) #2
siva
lgtm https://chromiumcodereview.appspot.com/10820053/diff/2002/runtime/vm/assembler_ia32.cc File runtime/vm/assembler_ia32.cc (right): https://chromiumcodereview.appspot.com/10820053/diff/2002/runtime/vm/assembler_ia32.cc#newcode1531 runtime/vm/assembler_ia32.cc:1531: // Preserve volatile registers. ASSERT(kNumberOfVolatileRegisters == 3); or ...
8 years, 4 months ago (2012-07-27 20:41:21 UTC) #3
Vyacheslav Egorov (Google)
8 years, 4 months ago (2012-07-30 10:36:38 UTC) #4
Thanks for the review. I addressed your comments in a slightly different
fashion: by declaring an array of registers to save restore (to guarantee that
we restore registers in the correct order as well). 

Landing.

Powered by Google App Engine
This is Rietveld 408576698