• Clemens Hammacher's avatar
    [Liftoff] Fix stack pointer corruption · cc862e69
    Clemens Hammacher authored
    During a C call, a previous value of the stack pointer is stored in a
    platform specific callee saved register. Loading the out argument of the
    C call might overwrite the value in that register, if the destination
    register collides with the platform specific register. Hence, do first
    use that register to restore the previous stack pointer, and only then
    load the out argument.
    Similarly, when pushing arguments to the stack, do first push all
    values and then set the platform specific register in order to avoid
    overwriting an argument value held in that register.
    
    Drive-by: Fix offset computations for parameters pushed to the stack
    for c calls.
    
    R=titzer@chromium.org
    
    Bug: chromium:820802,chromium:820896,chromium:820807,v8:6600
    Change-Id: If4567467b7912454f0bd2cad5927233c98894b03
    Reviewed-on: https://chromium-review.googlesource.com/959064Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#51916}
    cc862e69
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...