Bug 1639153 - Part 3: Implement the algorithm for obtaining tls and use it for wasm...
commita99f833c45d88d4fcc057e1c09c6f6b4cfcf39d6
authorDmitry Bezhetskov <dbezhetskov@igalia.com>
Tue, 3 Nov 2020 10:22:41 +0000 (3 10:22 +0000)
committerDmitry Bezhetskov <dbezhetskov@igalia.com>
Tue, 3 Nov 2020 10:22:41 +0000 (3 10:22 +0000)
treee9148d1301f0dc2f26a915d748825d4ba4bf252d
parent5559874442efe82e2c8f66e7654edd0f140f3575
Bug 1639153 - Part 3: Implement the algorithm for obtaining tls and use it for wasm signal handling. r=lth

This is the third part of series of patches to Frame without tls pointer.
Here we preserve initial tls in all entry stubs and then use it to find a proper tls instance for a given frame.

To find the TlsData* for specific frame we start from a entry stub's tls
and then track tls through all possible cross-instance calls. This logic
is implemented in GetNearestEffectiveTls procedure.

Then, we use this new procedure to make singal handling free from Frame::tls.

Differential Revision: https://phabricator.services.mozilla.com/D83044
js/src/jit/MacroAssembler.cpp
js/src/jit/MacroAssembler.h
js/src/wasm/WasmFrameIter.cpp
js/src/wasm/WasmFrameIter.h
js/src/wasm/WasmSignalHandlers.cpp
js/src/wasm/WasmStubs.cpp
js/src/wasm/WasmTypes.h