X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=docs%2FExceptionHandling.html;h=d597ffb3c8b31703603ba85a1fed892f82ef147d;hb=a75ce9f5d2236d93c117e861e60e6f3f748c9555;hp=6f5a35c6b63d4f48380e73c0f4202cdcd3df9ed7;hpb=808b9ce756dacb0c139f8c9931a1078bc42c906f;p=oota-llvm.git diff --git a/docs/ExceptionHandling.html b/docs/ExceptionHandling.html index 6f5a35c6b63..d597ffb3c8b 100644 --- a/docs/ExceptionHandling.html +++ b/docs/ExceptionHandling.html @@ -39,6 +39,8 @@
  • llvm.eh.sjlj.setjmp
  • llvm.eh.sjlj.longjmp
  • llvm.eh.sjlj.lsda
  • +
  • llvm.eh.sjlj.callsite
  • +
  • llvm.eh.sjlj.dispatchsetup
  • Asm Table Formats
      @@ -295,15 +297,15 @@
    1. __cxa_begin_catch takes a exception structure reference as an argument and returns the value of the exception object.
    2. -
    3. __cxa_end_catch takes no arguments. This function: -

        +
      1. __cxa_end_catch takes no arguments. This function:

        +
        1. Locates the most recently caught exception and decrements its handler count,
        2. Removes the exception from the "caught" stack if the handler count goes to zero, and
        3. Destroys the exception if the handler count goes to zero, and the exception was not re-thrown by throw.
        4. -

        +

      Note: a rethrow from within the catch may replace this call with a __cxa_rethrow.

    4. @@ -403,7 +405,7 @@
      -  i8* %llvm.eh.exception( )
      +  i8* %llvm.eh.exception()
       

      This intrinsic returns a pointer to the exception structure.

      @@ -418,8 +420,7 @@
      -  i32 %llvm.eh.selector.i32(i8*, i8*, i8*, ...)
      -  i64 %llvm.eh.selector.i64(i8*, i8*, i8*, ...)
      +  i32 %llvm.eh.selector(i8*, i8*, ...)
       

      This intrinsic is used to compare the exception with the given type infos, @@ -451,8 +452,7 @@

      -  i32 %llvm.eh.typeid.for.i32(i8*)
      -  i64 %llvm.eh.typeid.for.i64(i8*)
      +  i32 %llvm.eh.typeid.for(i8*)
       

      This intrinsic returns the type info index in the exception table of the @@ -491,6 +491,26 @@

      + + + +
      + +
      +  void %llvm.eh.sjlj.setjmp(i8*)
      +
      + +

      The llvm.eh.sjlj.longjmp + intrinsic is used to implement __builtin_longjmp() for SJLJ + style exception handling. The single parameter is a pointer to a + buffer populated by + llvm.eh.sjlj.setjmp. The frame pointer and stack pointer + are restored from the buffer, then control is transfered to the + destination address.

      + +
      llvm.eh.sjlj.lsda @@ -499,7 +519,7 @@
      -  i8* %llvm.eh.sjlj.lsda( )
      +  i8* %llvm.eh.sjlj.lsda()
       

      Used for SJLJ based exception handling, the @@ -510,6 +530,41 @@

      + + + +
      + +
      +  void %llvm.eh.sjlj.callsite(i32)
      +
      + +

      For SJLJ based exception handling, the + llvm.eh.sjlj.callsite intrinsic identifies the callsite value + associated with the following invoke instruction. This is used to ensure + that landing pad entries in the LSDA are generated in the matching order.

      + +
      + + + + +
      + +
      +  void %llvm.eh.sjlj.dispatchsetup(i32)
      +
      + +

      For SJLJ based exception handling, the + llvm.eh.sjlj.dispatchsetup intrinsic is used by targets to do + any unwind-edge setup they need. By default, no action is taken.

      + +
      +