• Tom Tan's avatar
    [Win][ARM64] Fix shift mask constant for LLP64 · 8dea08e8
    Tom Tan authored
    Windows ARM64 does cross build for V8 and runs snapshot tool on build host
    under simulator. Simulator is built with LLP64 data model so 0xFFFFL is 32-bit
    long by default. It causes problem for the expression "0xFFFFL << shift" when
    shift is 32, which actually does nothing on x64 because 0xFFFFL is only 32-bit.
    The issue happens for instruction "movk rd, NUM lsl 32" which is simulated in
    
    Simulator::VisitMoveWideImmediate. "0xFFFL << shift" acts as mask to clear bits
    32-47 of the orignal value in rd. Under LLP64, the mask happens unexpectedly to
    the lowest 16 bits of rd register and corrupts the result of rd. Specify 0xFFFFL
    as 64 bit as 0xFFFFLL fixes this problem.
    
    Bug: chromium:893460
    Change-Id: Ibd911ce595e83637432a3e1f79a9bf28fcbe09f6
    Reviewed-on: https://chromium-review.googlesource.com/c/1475330
    Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
    Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#59778}
    8dea08e8
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps 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...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes 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...