diff options
author | Chris Lattner <sabre@nondot.org> | 2004-02-12 18:10:10 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-02-12 18:10:10 +0000 |
commit | 0eb51b440c4ea7eba82964047221e17758de2057 (patch) | |
tree | bc271061cb7364813421d033d688ff4e7c549ce6 /docs | |
parent | 5ab827ff4a62faa276c8422df57d87d4b3eb2066 (diff) | |
download | external_llvm-0eb51b440c4ea7eba82964047221e17758de2057.zip external_llvm-0eb51b440c4ea7eba82964047221e17758de2057.tar.gz external_llvm-0eb51b440c4ea7eba82964047221e17758de2057.tar.bz2 |
Add support for the llvm.memmove intrinsic.
Patch graciously contributed by Reid Spencer!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11354 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r-- | docs/LangRef.html | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html index 7b03c45..20436ed 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -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 @@ be set to 0 or 1. </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"> |