• Andreas Haas's avatar
    [wasm] Refactor AtomicWait implementation · 77d4e230
    Andreas Haas authored
    The existing implementation included aspects that are not
    straight-forward to implement in Liftoff and seemed inefficient:
    * Convert the timeout in WebAssembly code from I64 to F64, just to
      convert it back in the runtime.
      * On 32-bit platforms this conversion needs an additional C-call.
    * Split the I64 expected value from I64 into two I32 values in the
      wasm-compiler.
      * Ideally the int64-lowering takes care of 32-bit specific handling.
    
    With this CL the timeout and the expected value are passed as I64 to
    the runtime (a builtin moves the I64 into a bigint for that). The
    int64-lowering takes care of 32-bit platforms. There are special
    builtins for 32-bit platforms, but they are written such that ideally
    also the int64-lowering could create them.
    
    R=jkummerow@chromium.org, binji@chromium.org
    
    Bug: v8:10108
    Change-Id: I2dbba5839779961b1c5bde4c23fc3f38f1895a52
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071867
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Reviewed-by: 's avatarBen Smith <binji@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#66497}
    77d4e230
Name
Last commit
Last update
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...
.flake8 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...
COMMON_OWNERS Loading commit data...
DEPS Loading commit data...
ENG_REVIEW_OWNERS Loading commit data...
INFRA_OWNERS Loading commit data...
INTL_OWNERS 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...
MIPS_OWNERS Loading commit data...
OWNERS Loading commit data...
PPC_OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
S390_OWNERS Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...