mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Document 'inreg' & 'sret'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33600 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9adeaa2f59
commit
34d6dea849
@ -530,19 +530,6 @@ the future:</p>
|
|||||||
prototype and implemented declaration of the function (as does normal C).
|
prototype and implemented declaration of the function (as does normal C).
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt><b>"<tt>csretcc</tt>" - The C struct return calling convention</b>:</dt>
|
|
||||||
|
|
||||||
<dd>This calling convention matches the target C calling conventions, except
|
|
||||||
that functions with this convention are required to take a pointer as their
|
|
||||||
first argument, and the return type of the function must be void. This is
|
|
||||||
used for C functions that return aggregates by-value. In this case, the
|
|
||||||
function has been transformed to take a pointer to the struct as the first
|
|
||||||
argument to the function. For targets where the ABI specifies specific
|
|
||||||
behavior for structure-return calls, the calling convention can be used to
|
|
||||||
distinguish between struct return functions and other functions that take a
|
|
||||||
pointer to a struct as the first argument.
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><b>"<tt>fastcc</tt>" - The fast calling convention</b>:</dt>
|
<dt><b>"<tt>fastcc</tt>" - The fast calling convention</b>:</dt>
|
||||||
|
|
||||||
<dd>This calling convention attempts to make calls as fast as possible
|
<dd>This calling convention attempts to make calls as fast as possible
|
||||||
@ -743,14 +730,15 @@ a power of 2.</p>
|
|||||||
<dt><tt>sext</tt></dt>
|
<dt><tt>sext</tt></dt>
|
||||||
<dd>This indicates that the parameter should be sign extended just before
|
<dd>This indicates that the parameter should be sign extended just before
|
||||||
a call to this function.</dd>
|
a call to this function.</dd>
|
||||||
|
<dt><tt>inreg</tt></dt>
|
||||||
|
<dd>This indicates that the parameter should be placed in register (if
|
||||||
|
possible) during assembling function call. It's currently supported in x86
|
||||||
|
backend only.</dd>
|
||||||
|
<dt><tt>sret</tt></dt>
|
||||||
|
<dd>This indicates, that the parameter is special hidden pointer to struct
|
||||||
|
to return. Usually such parameter needs special handling during codegen.</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<p>The current motivation for parameter attributes is to enable the sign and
|
|
||||||
zero extend information necessary for the C calling convention to be passed
|
|
||||||
from the front end to LLVM. The <tt>zext</tt> and <tt>sext</tt> attributes
|
|
||||||
are used by the code generator to perform the required extension. However,
|
|
||||||
parameter attributes are an orthogonal feature to calling conventions and
|
|
||||||
may be used for other purposes in the future.</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- ======================================================================= -->
|
<!-- ======================================================================= -->
|
||||||
|
Loading…
Reference in New Issue
Block a user