diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2006-12-28 16:55:55 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2006-12-28 16:55:55 +0000 |
commit | 6f85b9d74345b5a4bc085a243847deed717adaf5 (patch) | |
tree | 3f71650eef90c8ac3961def8b3e036fe6e4e6e5f /docs | |
parent | da4842e266becaca6ca4b46428c277fc5fbadc7a (diff) | |
download | llvm-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.html | 27 |
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 |