Bug 166623

Summary: WebAssembly: avoid pinning registers when no Memory is present
Product: WebKit Reporter: JF Bastien <jfbastien>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED CONFIGURATION CHANGED    
Severity: Normal CC: jfbastien, keith_miller, sbarati
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 165282    
Bug Blocks: 161709    

Description JF Bastien 2016-12-30 12:05:11 PST
In bug #165282 I'm changing pinning so that we unconditionally pin registers for all Modules, even if we technically don't need to when no Memory is present. This makes it easier to implement the wasm -> wasm call thunks because the thunk needs to set up the callee's pinned registers and therefore necessarily clobbers the caller's values. The caller thinks these registers are callee-saved, but that's annoying to do because wasm -> wasm is a tail call. We could teach B3 that these calls clobber those registers.
Comment 1 JF Bastien 2017-04-04 15:56:31 PDT
To clarify: this is for memory and size pinned registers, if any.
Comment 2 JF Bastien 2017-04-14 16:22:45 PDT
Keith says this is done.