diff options
author | Jim Grosbach <grosbach@apple.com> | 2009-05-14 00:46:35 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2009-05-14 00:46:35 +0000 |
commit | f95701286664df01a5683a71c9a02c056fed0aa7 (patch) | |
tree | 0c52d3994a8442264120c900acabea74965ae4f6 /docs | |
parent | e340e84196af8618b623d499a040150373ae5da4 (diff) | |
download | external_llvm-f95701286664df01a5683a71c9a02c056fed0aa7.zip external_llvm-f95701286664df01a5683a71c9a02c056fed0aa7.tar.gz external_llvm-f95701286664df01a5683a71c9a02c056fed0aa7.tar.bz2 |
Update the names of the exception handling sjlj instrinsics to
llvm.eh.sjlj.* for better clarity as to their purpose and scope. Add
a description of llvm.eh.sjlj.setjmp to ExceptionHandling.html.
(llvm.eh.sjlj.longjmp documentation coming when that implementation is
added).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71758 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r-- | docs/ExceptionHandling.html | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/docs/ExceptionHandling.html b/docs/ExceptionHandling.html index 24a3484..7676e09 100644 --- a/docs/ExceptionHandling.html +++ b/docs/ExceptionHandling.html @@ -31,6 +31,8 @@ <li><a href="#llvm_eh_exception"><tt>llvm.eh.exception</tt></a></li> <li><a href="#llvm_eh_selector"><tt>llvm.eh.selector</tt></a></li> <li><a href="#llvm_eh_typeid_for"><tt>llvm.eh.typeid.for</tt></a></li> + <li><a href="#llvm_eh_sjlj_setjmp"><tt>llvm.eh.sjlj.setjmp</tt></a></li> + <li><a href="#llvm_eh_sjlj_longjmp"><tt>llvm.eh.sjlj.longjmp</tt></a></li> </ol></li> <li><a href="#asm">Asm Table Formats</a> <ol> @@ -401,6 +403,30 @@ a reference to a type info.</p> </div> <!-- ======================================================================= --> +<div class="doc_subsubsection"> + <a name="llvm_eh_sjlj_setjmp">llvm.eh.sjlj.setjmp</a> +</div> + +<div class="doc_text"> +<pre> + i32 %<a href="#llvm_eh_sjlj_setjmp">llvm.eh.sjlj.setjmp</a>(i8*) +</pre> + +<p>The SJLJ exception handling uses this intrinsic to force register saving +for the current function and to store the address of the following instruction +for use as a destination address by <a href="#llvm_eh_sjlj_setjmp"> +<tt>llvm.eh.sjlj.longjmp</tt></a>. The buffer format and the overall functioning +of this intrinsic is compatible with the GCC <tt>__builtin_setjmp</tt> implementation, +allowing code built with the two compilers to interoperate.</p> + +<p>The single parameter is a pointer to a five word buffer in which the +calling context is saved. The front end places the frame pointer in the +first word, and the target implementation of this intrinsic should place the +destination address for a <a href="#llvm_eh_sjlj_longjmp"><tt> + llvm.eh.sjlj.longjmp</tt></a> in the second word. The following three words are available for use in a +target-specific manner.</p> + +<!-- ======================================================================= --> <div class="doc_section"> <a name="asm">Asm Table Formats</a> </div> |