[llvm-commits] CVS: llvm/docs/LangRef.html
Reid Spencer
reid at x10sys.com
Thu Dec 28 08:56:10 PST 2006
Changes in directory llvm/docs:
LangRef.html updated: 1.179 -> 1.180
---
Log message:
Preview of new calling conventions: cextcc and csretextcc to handle explicit
sign and zero extension in function calls.
---
Diffs of the changes: (+27 -2)
LangRef.html | 29 +++++++++++++++++++++++++++--
1 files changed, 27 insertions(+), 2 deletions(-)
Index: llvm/docs/LangRef.html
diff -u llvm/docs/LangRef.html:1.179 llvm/docs/LangRef.html:1.180
--- llvm/docs/LangRef.html:1.179 Fri Dec 8 11:13:00 2006
+++ llvm/docs/LangRef.html Thu Dec 28 10:55:55 2006
@@ -519,9 +519,26 @@
<dd>This calling convention (the default if no other calling convention is
specified) matches the target C calling conventions. This calling convention
supports varargs function calls and tolerates some mismatch in the declared
- prototype and implemented declaration of the function (as does normal C).
+ prototype and implemented declaration of the function (as does normal C). For
+ integer arguments less than 32-bits, the value will be sign-extended to
+ 32-bits before the call is made. If zero-extension is required, use the
+ <tt>cextcc</tt> calling convention.
</dd>
+ <dt><b>"<tt>cextcc(bitmask)</tt>" - The C with explicit extend calling
+ convention </b>:</dt>
+ <dd>This calling convention is exactly like the C calling convention except
+ that it is parameterized to provide a <tt>bitmask</tt> that indicates how
+ integer arguments of less than 32-bits should be extended. A zero bit
+ indicates zero-extension while a 1-bit indicates sign-extension. The least
+ significant bit always corresponds to the return type of the function. The
+ bits in the <tt>bitmask</tt> are assigned to the integer parameters of the
+ function that are smaller than 32-bits. For example, a bitmask of value
+ 5 (0b0101) indicates that the return value is to be sign extended, the first
+ small integer argument is to be zero extended and the second small integer
+ argument is to be sign extended.</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
@@ -535,6 +552,14 @@
pointer to a struct as the first argument.
</dd>
+ <dt><b>"<tt>csretextcc(bitmask)</tt>" - The C struct return with explicit
+ extend calling convention</b>:</dt>
+ <dd>This calling convention is exactly like the <tt>csret</tt> calling
+ convention except that it is parameterized to provide a <tt>bitmask</tt>
+ that indicates how integer arguments of less than 32-bits should be extended.
+ A zero bit indicates zero-extension while a 1-bit indicates sign-extension.
+ </dd>
+
<dt><b>"<tt>fastcc</tt>" - The fast calling convention</b>:</dt>
<dd>This calling convention attempts to make calls as fast as possible
@@ -4468,7 +4493,7 @@
<a href="mailto:sabre at nondot.org">Chris Lattner</a><br>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2006/12/08 17:13:00 $
+ Last modified: $Date: 2006/12/28 16:55:55 $
</address>
</body>
</html>
More information about the llvm-commits
mailing list