Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
[JSC] Disable wasm tail-call because of several necessary things
https://bugs.webkit.org/show_bug.cgi?id=251656 rdar://104987053 Reviewed by Mark Lam. This change disables wasm tail-calls since we still need several things to make it work correctly. 1. All wasm function calls need to adjust stack-pointer after the call. This is necessary thing for the support of tail-call, but currently it is not done yet. Since tail-call can adjust the stack-pointer of the caller, the stack-pointer value can become different after the tail-call happens from the caller's view. Since B3 etc. are freely accessing to stack slots via stack-pointer, and since stack-pointer needs to be the same during the procedure, the adjustment is required to make things work. In JS world, we are doing this adjustment: BaselineJIT's resetSP for example. Previously, since wasm does not have tail-calls, wasm call is not doing this adjustment. Now, we should do that. 2. We should not change offset of StackSlots. This is not a supported operation by B3 / Air. For now, we disable wasm tail-call. * Source/JavaScriptCore/runtime/OptionsList.h: Canonical link: https://commits.webkit.org/259801@main
- Loading branch information