[cfe-dev] lib/CodeGen/TargetInfo.cpp help, attempting regcall implementation-
David Majnemer via cfe-dev
cfe-dev at lists.llvm.org
Wed Aug 3 22:35:01 PDT 2016
On Wed, Aug 3, 2016 at 4:03 PM, Keane, Erich via cfe-dev <
cfe-dev at lists.llvm.org> wrote:
> Hi all-
> I am new to the list, so hopefully I'm not out of order asking this
> First, some background: I'm attempting to implement the regcall calling
> convention for the CFE for community contribution, (
> https://software.intel.com/en-us/node/522787) and am having a difficult
> time understanding the lib/CodeGen/TargetInfo.cpp implementation. The idea
> here is that a function would pass as many parameters/return values as
> possible via registers rather than putting some on the stack. The advantage
> is that the convention opens as many as 16 SSE and 11 Int registers (on
> x64) for this functionality rather than 8/6.
> At the moment, I've got the keyword added, and most of the CFE
> infrastructure added, however I'm having trouble with the ABIInfo classes.
> Is there a guide on how these work, and what is expected of them? The
> documentation for these classes seems to be pretty weak, so I'm hoping that
> there exists a bit of a guide to this.
> I see that the 3 architectures that I'm interested in (X86_64ABIInfo,
> X86_32ABIInfo, Win86_64ABIInfo) are all implemented significantly
> differently, and with many assumptions regarding VectorCall, so I'm curious
> as to why they seem to be so different?
X86_64ABIInfo is implemented in a way which directly mirrors the AMD64
psABI whereas WinX86_64ABIInfo implements logic which mirrors the
requirements of Microsoft's x64 ABI.
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev