• Clemens Hammacher's avatar
    [Liftoff][ia32] Avoid register overwrite on 64 bit shift · c83af36f
    Clemens Hammacher authored
    On ia32, the implementation of 64-bit shifts first moved {src} into
    {dst}, then {amount} into {ecx}. This fails if {dst} overlaps {amount},
    because {amount} would be overwritten before being used. Just changing
    the order to these two moves would also not be correct, since {src} can
    contain {ecx}.
    Thus, implement this via a general parallel register move, which
    resolves cycles automatically.
    
    R=titzer@chromium.org
    
    Bug: v8:7589, v8:6600
    Change-Id: I2556b9aa66a89a067372b7713dbbb3d71d2f923f
    Reviewed-on: https://chromium-review.googlesource.com/981134
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#52327}
    c83af36f
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...