bjorn3 opened PR #4634 from aarch64_sret
to main
:
AArch64 requires the struct return address argument to be stored in the x8 register. This register is never used for regular arguments.
According to https://github.com/Gankra/abi-checker cg_clif with this PR matches the abi of LLVM for big structs.
Marking as draft as the test fails with:
Register allocation error for vcode VCode { Entry block: 0 Block 0: (original IR block: block0) (instruction range: 0 .. 6) Inst 0: mov %v128, x8 Inst 1: mov %v129, %v128 Inst 2: mov %v129, %v128 Inst 3: mov x8, %v129 Inst 4: mov x0, %v130 Inst 5: ret } Error: EntryLivein CLIF for error: function %f17(i64 sret) -> i64 fast { block0(v0: i64): return v0 }
bjorn3 updated PR #4634 from aarch64_sret
to main
.
bjorn3 updated PR #4634 from aarch64_sret
to main
.
bjorn3 has marked PR #4634 as ready for review.
cfallin submitted PR review.
cfallin merged PR #4634.
Last updated: Nov 22 2024 at 17:03 UTC