pujitha24 opened PR #14956 from pujitha24:auto/issue-14945 to bytecodealliance:main:
Issue: https://github.com/bytecodealliance/wasmtime/issues/14945
On aarch64, an
i128argument that doesn't fit in the remaining integer registers goes on the stack, but the next-register counter wasn't advanced. A followingi64was then assigned tox7. AAPCS64 C.13 (and clang/gcc, including on Darwin) pass it on the stack. This sets the counter to 8 in that case, forsystem_vandapple_aarch64arguments only.Cranelift-to-Cranelift calls were self-consistent, so this only affects signatures shared with C/Rust code. Wasmtime doesn't pass
i128across calls.Testing: new cases in
isa/aarch64/call.clif(previously compiled tomov x0, x7, now a stack load). The aarch64 and runtests filetest directories pass.Disclosure: I used an AI tool (Claude) to help prepare this change.
This PR was written in part with the assistance of generative AI.
Fixes #14945
pujitha24 removed the review request for wasmtime-compiler-reviewers from PR #14956.
pujitha24 requested cfallin for a review on PR #14956.
pujitha24 requested wasmtime-compiler-reviewers for a review on PR #14956.
github-actions[bot] added the label cranelift on PR #14956.
github-actions[bot] added the label cranelift:area:aarch64 on PR #14956.
:thumbs_up: cfallin submitted PR review:
Thanks for this fix!
cfallin added PR #14956 cranelift: aarch64: pass args after a stack-passed i128 on the stack to the merge queue.
:check: cfallin merged PR #14956.
cfallin removed PR #14956 cranelift: aarch64: pass args after a stack-passed i128 on the stack from the merge queue.
Last updated: Oct 31 2026 at 23:03 UTC