-
Thibaud Michaud authored
Use the existing generic js-to-wasm wrapper to handle arguments in the stack-switching export wrapper, by combining them into a single helper function parameterized by a boolean. If the stack_switch parameter is false, the generated js-to-wasm wrapper is the same as before. If the stack_switch parameter is true, we allocate and switch to the new stack before starting to process the parameters. To load the parameters, we also keep a pointer to the old stack. After the call, we convert the return value according to the return type as usual, and then switch back to the parent stack (which may be different than the original stack, but has a compatible stack frame layout). If the stack suspends during the call, control-flow jumps right before we deconstruct and leave the frame, and returns the Promise as an externref in the return register. R=ahaas@chromium.org,jkummerow@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: If3f8eaba8edebe6e98d4738f79f895fdb5322adc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3460410Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#79148}
921135c7