[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. 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: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#66497}
Showing
Please
register
or
sign in
to comment