• Andreas Haas's avatar
    Reland "[wasm] Refactor AtomicWait implementation" · 7ad6b04e
    Andreas Haas authored
    Stack parameters in the StubCallDescriptor were set to the wrong type. I
    changed it now so that for stack parameters that are specified in the
    CallInterfaceDescriptor, type specified type is used. All other
    parameters are assumed to be tagged, as it has been until now.
    
    Original change's description:
    > [wasm] Refactor AtomicWait implementation
    >
    > 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.
    
    Bug: v8:10108
    Change-Id: Ib87b543666708457c0d686208a86e46cdca3f9a2
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2080362Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#66533}
    7ad6b04e
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...