Closed Bug 1407535 (Rabaldr-ARM64) Opened 3 years ago Closed 3 years ago
[meta] ARM64 support for wasm baseline (Rabaldr)
A fairly modest amount of effort is necessary to support WebAssembly on aarch64 with a baseline-only strategy. At least the following work items: * stubs for calling in and calling out * interrupt / signal handling for OOB handling * huge-memory support * register assignment, architecture strategies, frame layouts, etc * port the baseline compiler by instantiating its porting APIs, generalizing * fill in many assembler macros that are now MOZ_CRASH, this includes some hard OOL cases (non-trivial amounts of logic) * resolve the simulator situation wrt atomics (useless, last we looked) The baseline compiler is becoming large enough that it is also time to refactor it a bit, so that work should happen first.
WIP. Adds most of the ARM64 support to wasm baseline (all except some atomics support and two OOL cases). Initial work on masm and other issues.
Rollup patch - enough support to actually compile and run some code. (An old Smalltalk joke holds that your engine works when it can execute "3+4" correctly. This queue can do that.)
Assignee: nobody → lhansen
Attachment #8936114 - Attachment is obsolete: true
Status: NEW → ASSIGNED
Work in progress.
Attachment #8944369 - Attachment is obsolete: true
I have some stubs work left but won't do that until the stubs rewrite lands.
Alias: Rabaldr → Rabaldr-ARM64
Depends on: 1319203
Summary: [meta] Wasm: arm64 / aarch64 support for baseline (Rabaldr) → [meta] ARM64 support for wasm baseline (Rabaldr)
Attachment #8950861 - Attachment is obsolete: true
Try run for final patch queue is green: https://treeherder.mozilla.org/#/jobs?repo=try&revision=fed7d260309c153fc78ec295297a601a37926319 Hardware testing is green. Waiting on a couple of minor reviews; basically ready to land.
... and it runs my wasm raytracer demo on my Nexus 5X. My work here is done.
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.