X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FLangRef.html;h=7b70c43831eb2d4d8e38ec42caf2b87f46f2e65f;hb=312a68c4ce08b7ce6e6312383bd1db4ed4cfefcb;hp=65cb4ea968d5c94e322bdb039fdc725c8faa1383;hpb=c29b125a9993793bd0a9b4a89b255a71a45371ad;p=oota-llvm.git
diff --git a/docs/LangRef.html b/docs/LangRef.html
index 65cb4ea968d..7b70c43831e 100644
--- a/docs/LangRef.html
+++ b/docs/LangRef.html
@@ -295,7 +295,7 @@ These different primitive types fall into a few useful classifications:
signed | sbyte, short, int, long, float, double |
unsigned | ubyte, ushort, uint, ulong |
-integer | ubyte, sbyte, ushort, short, uint, int, ulong, long |
+integer | ubyte, sbyte, ushort, short, uint, int, ulong, long |
integral | bool, ubyte, sbyte, ushort, short, uint, int, ulong, long |
floating point | float, double |
first class | bool, ubyte, sbyte, ushort, short, uint, int, ulong, long, float, double, pointer |
@@ -1193,9 +1193,10 @@ argument is unsigned, zero bits shall fill the empty positions.
Example:
<result> = shr int 4, ubyte %var ; yields {int}:result = 4 >> %var
- <result> = shr int 4, ubyte 1 ; yields {int}:result = 2
+ <result> = shr uint 4, ubyte 1 ; yields {uint}:result = 2
<result> = shr int 4, ubyte 2 ; yields {int}:result = 1
- <result> = shr int 4, ubyte 3 ; yields {int}:result = 0
+ <result> = shr sbyte 4, ubyte 3 ; yields {sbyte}:result = 0
+ <result> = shr sbyte -2, ubyte 1 ; yields {sbyte}:result = -1
@@ -1697,7 +1698,7 @@ int %test(int %X, ...) {
%aq = alloca sbyte*
; Initialize variable argument processing
- call void (sbyte**, ...)* %llvm.va_start(sbyte** %ap, int %X)
+ call void (sbyte**)* %llvm.va_start(sbyte** %ap)
; Read a single integer argument
%tmp = va_arg sbyte** %ap, int
@@ -1718,7 +1719,7 @@ int %test(int %X, ...) {
Syntax:
- call void (va_list*, ...)* %llvm.va_start(<va_list>* <arglist>, <argument>)
+ call void (va_list*)* %llvm.va_start(<va_list>* <arglist>)
Overview:
@@ -1730,18 +1731,16 @@ invoked.
Arguments:
-The first argument is a pointer to a va_list element to initialize.
-The second argument is required to be the last LLVM argument before the
-ellipsis. In the future, this restriction may be relaxed (to allow it to be
-other arguments).
+The argument is a pointer to a va_list element to initialize.
Semantics:
The 'llvm.va_start' intrinsic works just like the va_start
macro available in C. In a target-dependent way, it initializes the
-va_list element the first argument points to, so that the next call to
-va_arg will produce the first variable argument passed to the
-function.
+va_list element the argument points to, so that the next call to
+va_arg will produce the first variable argument passed to the function.
+Unlike the C va_start macro, this intrinsic does not need to know the
+last argument of the function, the compiler can figure that out.
@@ -1812,7 +1811,7 @@ arbitrarily complex and require memory allocation, for example.
Chris Lattner
-Last modified: Thu May 8 00:06:36 CDT 2003
+Last modified: Wed Jun 18 16:29:55 CDT 2003