mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-05-10 17:12:41 +02:00
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.