[llvm-commits] CVS: llvm/docs/LangRef.html

Chris Lattner lattner at cs.uiuc.edu
Thu Feb 12 12:11:02 PST 2004


Changes in directory llvm/docs:

LangRef.html updated: 1.44 -> 1.45

---
Log message:

Add support for the llvm.memmove intrinsic.
Patch graciously contributed by Reid Spencer!



---
Diffs of the changes:  (+48 -1)

Index: llvm/docs/LangRef.html
diff -u llvm/docs/LangRef.html:1.44 llvm/docs/LangRef.html:1.45
--- llvm/docs/LangRef.html:1.44	Thu Feb 12 11:01:32 2004
+++ llvm/docs/LangRef.html	Thu Feb 12 12:09:57 2004
@@ -98,6 +98,7 @@
       <li><a href="#int_libc">Standard C Library Intrinsics</a>
         <ol>
           <li><a href="#i_memcpy">'<tt>llvm.memcpy</tt>' Intrinsic</a></li>
+          <li><a href="#i_memmove">'<tt>llvm.memmove</tt>' Intrinsic</a></li>
         </ol>
       </li>
       <li><a href="#int_debugger">Debugger intrinsics</a>
@@ -1790,6 +1791,52 @@
 </div>
 
 
+<!-- _______________________________________________________________________ -->
+<div class="doc_subsubsection">
+  <a name="i_memmove">'<tt>llvm.memmove</tt>' Intrinsic</a>
+</div>
+
+<div class="doc_text">
+
+<h5>Syntax:</h5>
+<pre>
+  call void (sbyte*, sbyte*, uint, uint)* %llvm.memmove(sbyte* <dest>, sbyte* <src>,
+                                                       uint <len>, uint <align>)
+</pre>
+
+<h5>Overview:</h5>
+
+<p>
+The '<tt>llvm.memmove</tt>' intrinsic moves a block of memory from the source
+location to the destination location. It is similar to the '<tt>llvm.memcpy</tt>' 
+intrinsic but allows the two memory locations to overlap.
+</p>
+
+<p>
+Note that, unlike the standard libc function, the <tt>llvm.memmove</tt> intrinsic
+does not return a value, and takes an extra alignment argument.
+</p>
+
+<h5>Arguments:</h5>
+
+<p>
+The first argument is a pointer to the destination, the second is a pointer to
+the source.  The third argument is an (arbitrarily sized) integer argument
+specifying the number of bytes to copy, and the fourth argument is the alignment
+of the source and destination locations.
+</p>
+
+<h5>Semantics:</h5>
+
+<p>
+The '<tt>llvm.memmove</tt>' intrinsic copies a block of memory from the source
+location to the destination location, which may overlap.  It
+copies "len" bytes of memory over.  If the argument is known to be aligned to
+some boundary, this can be specified as the fourth argument, otherwise it should
+be set to 0 or 1.
+</p>
+</div>
+
 
 <!-- ======================================================================= -->
 <div class="doc_subsection">
@@ -1811,6 +1858,6 @@
 <div class="doc_footer">
 <address><a href="mailto:sabre at nondot.org">Chris Lattner</a></address>
 <a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a> <br>
-Last modified: $Date: 2004/02/12 17:01:32 $ </div>
+Last modified: $Date: 2004/02/12 18:09:57 $ </div>
 </body>
 </html>





More information about the llvm-commits mailing list