[PATCH] AAPCS: Cannot split argument between GPRs and the stack after a CPRC has been allocated to the stack

Oliver Stannard oliver.stannard at arm.com
Sat Feb 8 14:10:03 PST 2014


olista01 added you to the CC list for the revision "AAPCS: Cannot split argument between GPRs and the stack after a CPRC has been allocated to the stack".

Hi rengolin,

According to the AAPCS, arguments can only be split between GPRs and the stack if no prior arguments have been allocated to the stack. This situation  can occur if there a large number of floating-point arguments, not all of which can be allocated to VFP registers. Currently, llvm/clang does not understand this.
 
Unfortunately, since the llvm backend does not know about structs, this has to be fixed in clang. The attached patch extends a similar mechanism currently used for homogeneous aggregates, to insert dummy arguments to prevent the general-purpose registers being used incorrectly.

http://llvm-reviews.chandlerc.com/D2726

Files:
  lib/CodeGen/TargetInfo.cpp
  test/CodeGen/arm-aapcs-vfp.c
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D2726.1.patch
Type: text/x-patch
Size: 13237 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140208/905a3fd8/attachment.bin>


More information about the cfe-commits mailing list