148ef606a7
The existing implementation embedded an isolate-specific pointer to the thread-in-wasm flag in the wrapper code. However, when the module code is shared among multiple workers, this can mean that the workers share the same thread-in-wasm flag. With this change we load the pointer to the flag at runtime from the current isolate. Thereby the correct flag is used even when the same code is executed on different workers. Note that we could access the right flag address by going through the root register. However, changing the code generation to use the root register requires some inconvenient steps: * Pass the isolate to the pipeline again, which we don't want. * Change the WasmCallDescriptor to allow the use of the root register for wrappers but not for other code. To avoid these issues, and allow the CL to be easy to merge back, we got for the changes proposed here. R=mstarzinger@chromium.org, ishell@chromium.org Bug: v8:8533 Change-Id: If15565a7ad7cba835cfc1628e7a4d3fdef90a5c0 Reviewed-on: https://chromium-review.googlesource.com/c/1358518 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58044} |
||
---|---|---|
.. | ||
control-transfer-unittest.cc | ||
decoder-unittest.cc | ||
function-body-decoder-unittest.cc | ||
leb-helper-unittest.cc | ||
loop-assignment-analysis-unittest.cc | ||
module-decoder-unittest.cc | ||
OWNERS | ||
streaming-decoder-unittest.cc | ||
trap-handler-posix-unittest.cc | ||
trap-handler-win-unittest.cc | ||
trap-handler-x64-unittest.cc | ||
wasm-code-manager-unittest.cc | ||
wasm-macro-gen-unittest.cc | ||
wasm-module-builder-unittest.cc | ||
wasm-opcodes-unittest.cc |