Open Bug 985065 Opened 6 years ago Updated 2 months ago

BaldrMonkey: callee-saved registers

Categories

(Core :: Javascript: WebAssembly, enhancement, P5)

enhancement

Tracking

()

REOPENED

People

(Reporter: sunfish, Unassigned)

References

(Blocks 1 open bug)

Details

Callee-saved registers help reduce spilling around non-inlined calls. Odin should especially be able to use callee-saved registers especially when calling from asm.js to asm.js.

Fixing this will require making sure asm.js code saves callee-saved registers as needed, make sure call sequences don't clobber callee-saved registers, and teaching the register allocation to be aware of more than just isCall().
Would you want to follow the system ABI here, or define custom conventions?
Custom conventions I expect, because it'll keep the generated code more consistent across platforms, and because we can do custom optimizations if needed. It'd be nice to avoid gratuitous deviations from the system ABI if we can help it though.
This applies to Baldr too and would be nice to have at some point.
Priority: -- → P5
Blocks: wasm
Summary: OdinMonkey: callee-saved registers → BaldrMonkey: callee-saved registers
Blocks: wasm-perf
No longer blocks: wasm
Per policy at https://wiki.mozilla.org/Bug_Triage/Projects/Bug_Handling/Bug_Husbandry#Inactive_Bugs. If this bug is not an enhancement request or a bug not present in a supported release of Firefox, then it may be reopened.
Status: NEW → RESOLVED
Closed: Last year
Resolution: --- → INACTIVE
Status: RESOLVED → REOPENED
Resolution: INACTIVE → ---
Component: JavaScript Engine: JIT → Javascript: WebAssembly
You need to log in before you can comment on or make changes to this bug.