<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 3, 2016 at 4:03 PM, Keane, Erich via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Hi all-<br>
I am new to the list, so hopefully I'm not out of order asking this question.<br>
<br>
First, some background: I'm attempting to implement the regcall calling convention for the CFE for community contribution, (<a href="https://software.intel.com/en-us/node/522787" rel="noreferrer" target="_blank">https://software.intel.com/en-us/node/522787</a>) 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.<br>
<br>
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.<br>
<br>
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?<br></blockquote><div><br></div><div>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.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<br>
Thanks,<br>
Erich<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div><br></div></div>