This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SVE] Scalable arguments and returns passed in Z regs
AbandonedPublic

Authored by huntergr on Jun 5 2018, 5:24 AM.

Details

Summary

This adds the initial part of the calling convention for SVE,
mainly to make writing unit tests easier.

Data arguments are passed in registers Z0-Z7.
Predicate arguments are passed in registers P0-P3.

Return values use the same set.

This does not yet implement callee preserved registers, as the
number may change before the PCS is fully standardized.

More details on the (proposed) SVE procedure call standard can be found here:
http://infocenter.arm.com/help/topic/com.arm.doc.ecm0665628/abi_sve_aapcs64_100986_0000_00_en.pdf

Adds the defined legal integer and predicate types to
AArch64ISelLowering.

Part of the initial SVE codegen series, rfc will be posted soon.

Diff Detail