[llvm-commits] calling convention support for ARM AAPCS VFP "homogenous aggregates"

Sandeep Patel deeppatel1987 at gmail.com
Wed Aug 5 03:15:52 PDT 2009


Attached is a patch to llvm-gcc to implement passing of homogenous
aggregates via FP registers per the ARM AAPCS VFP variant (a.k.a. hard
float).

1. The patch uses CallingConv::ID consistently instead of unsigned to
hold the CC.
2. The patch keeps track of the CC in all DefaultABIClient subclasses.
3. The patch passes the CC into
LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS and
LLVM_AGGREGATE_PARTIALLY_PASSED_IN_REGS.
4. The patch implements both macros in the ARM backend according to
the rules of the AAPCS spec.

Note: no code was imported to implement this. The structure of
vfp_arg_homogenous_aggregate_p was originally taken from the i386
classify_argument() function.

deep
-------------- next part --------------
A non-text attachment was scrubbed...
Name: deep-gcc-hard-float-homogeneous.diff
Type: application/octet-stream
Size: 27945 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20090805/02d0cbea/attachment.obj>


More information about the llvm-commits mailing list