summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2006-12-28 16:55:55 +0000
committerReid Spencer <rspencer@reidspencer.com>2006-12-28 16:55:55 +0000
commit6f85b9d74345b5a4bc085a243847deed717adaf5 (patch)
tree3f71650eef90c8ac3961def8b3e036fe6e4e6e5f /docs
parentda4842e266becaca6ca4b46428c277fc5fbadc7a (diff)
downloadllvm-6f85b9d74345b5a4bc085a243847deed717adaf5.tar.gz
llvm-6f85b9d74345b5a4bc085a243847deed717adaf5.tar.bz2
llvm-6f85b9d74345b5a4bc085a243847deed717adaf5.tar.xz
Preview of new calling conventions: cextcc and csretextcc to handle explicit
sign and zero extension in function calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32764 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r--docs/LangRef.html27
1 files changed, 26 insertions, 1 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html
index 35585f252b..3af8b68a22 100644
--- a/docs/LangRef.html
+++ b/docs/LangRef.html
@@ -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