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
Fri Feb 7 07:38:47 PST 2014


Hi,

 

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.

 

Oliver
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140207/676fdfd3/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gpr-stack-split-after-cprc-on-stack.patch
Type: application/octet-stream
Size: 14074 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140207/676fdfd3/attachment.obj>


More information about the cfe-commits mailing list