Bug 166623
Summary: | WebAssembly: avoid pinning registers when no Memory is present | ||
---|---|---|---|
Product: | WebKit | Reporter: | JF Bastien <jfbastien> |
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED CONFIGURATION CHANGED | ||
Severity: | Normal | CC: | jfbastien, keith_miller, saam |
Priority: | P2 | ||
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Bug Depends on: | 165282 | ||
Bug Blocks: | 161709 |
JF Bastien
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.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
JF Bastien
To clarify: this is for memory and size pinned registers, if any.
JF Bastien
Keith says this is done.