Files
ladybird/Libraries/LibJS/AsmIntGen/src
Andreas Kling 4780d25df5 AsmIntGen: Avoid aarch64 helper-call bridge moves
The named 3-operand call_helper form lets the allocator see the
helper input and output as distinct temporaries. On aarch64 those
values do not overlap: the input dies at the call boundary, and the
output is born from the return value.

Pin both temporaries to x0, which is both the first AAPCS64 argument
register and the return register. This lets the aarch64 codegen omit
the old mov x0, x1 bridge before named call_helper uses, while
leaving the legacy 1-operand convention alone.

Add an allocator test for the aarch64 pinning so the calling-convention
intent stays explicit.
2026-04-26 13:29:56 +02:00
..