Changes in directory llvm/docs:
LangRef.html updated: 1.133 -> 1.134 --- Log message: document the syntax of inline asm --- Diffs of the changes: (+56 -1) LangRef.html | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 56 insertions(+), 1 deletion(-) Index: llvm/docs/LangRef.html diff -u llvm/docs/LangRef.html:1.133 llvm/docs/LangRef.html:1.134 --- llvm/docs/LangRef.html:1.133 Mon Jan 23 18:37:10 2006 +++ llvm/docs/LangRef.html Wed Jan 25 17:47:57 2006 @@ -55,6 +55,11 @@ <li><a href="#constantexprs">Constant Expressions</a> </ol> </li> + <li><a href="#othervalues">Other Values</a> + <ol> + <li><a href="#inlineasm">Inline Assembler Expressions</a> + </ol> + </li> <li><a href="#instref">Instruction Reference</a> <ol> <li><a href="#terminators">Terminator Instructions</a> @@ -1145,6 +1150,56 @@ </div> <!-- *********************************************************************** --> +<div class="doc_section"> <a name="othervalues">Other Values</a> </div> +<!-- *********************************************************************** --> + +<!-- ======================================================================= --> +<div class="doc_subsection"> +<a name="inlineasm">Inline Assembler Expressions</a> +</div> + +<div class="doc_text"> + +<p> +LLVM supports inline assembler expressions (as opposed to <a href="#moduleasm"> +Module-Level Inline Assembly</a>) through the use of a special value. This +value represents the inline assembler as a string (containing the instructions +to emit), a list of operand constraints (stored as a string), and a flag that +indicates whether or not the inline asm expression has side effects. An example +inline assembler expression is: +</p> + +<pre> + int(int) asm "bswap $0", "=r,r" +</pre> + +<p> +Inline assembler expressions may <b>only</b> be used as the callee operand of +a <a href="#i_call"><tt>call</tt> instruction</a>. Thus, typically we have: +</p> + +<pre> + %X = call int asm "<a href="#i_bswap">bswap</a> $0", "=r,r"(int %Y) +</pre> + +<p> +Inline asms with side effects not visible in the constraint list must be marked +as having side effects. This is done through the use of the +'<tt>sideeffect</tt>' keyword, like so: +</p> + +<pre> + call void asm sideeffect "eieio", ""() +</pre> + +<p>TODO: The format of the asm and constraints string still need to be +documented here. Constraints on what can be done (e.g. duplication, moving, etc +need to be documented). +</p> + +</div> + +<!-- *********************************************************************** --> <div class="doc_section"> <a name="instref">Instruction Reference</a> </div> <!-- *********************************************************************** --> @@ -3679,7 +3734,7 @@ <a href="mailto:[EMAIL PROTECTED]">Chris Lattner</a><br> <a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br> - Last modified: $Date: 2006/01/24 00:37:10 $ + Last modified: $Date: 2006/01/25 23:47:57 $ </address> </body> </html> _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits