Preview of new calling conventions: cextcc and csretextcc to handle explicit
authorReid Spencer <rspencer@reidspencer.com>
Thu, 28 Dec 2006 16:55:55 +0000 (16:55 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Thu, 28 Dec 2006 16:55:55 +0000 (16:55 +0000)
sign and zero extension in function calls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32764 91177308-0d34-0410-b5e6-96231b3b80d8

docs/LangRef.html

index 35585f252b8a156dc75f1a512515710aea7b1f8f..3af8b68a228ad65c877c7b0df0e7a6dc6fa64922 100644 (file)
@@ -519,9 +519,26 @@ the future:</p>
   <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 @@ the future:</p>
   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