[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