X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=docs%2FExceptionHandling.html;h=d597ffb3c8b31703603ba85a1fed892f82ef147d;hb=a75ce9f5d2236d93c117e861e60e6f3f748c9555;hp=ded9b36f1553a18129ea8ccc7902a31ae1196a50;hpb=61f6978e8b11cdaed65770bcd18cff203ff4e229;p=oota-llvm.git diff --git a/docs/ExceptionHandling.html b/docs/ExceptionHandling.html index ded9b36f155..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,17 @@
    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 -
        Locates the most recently caught exception and decrements its handler - count.
      -
        Removes the exception from the "caught" stack if the handler count goes - to zero.
      -
        Destroys the exception if the handler count goes to zero, and the - exception was not re-thrown by throw.
      - Note: a rethrow from within the catch may replace this call with - a __cxa_rethrow.
    4. +
    5. __cxa_end_catch takes no arguments. This function:

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

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

    6. @@ -401,7 +405,7 @@
      -  i8* %llvm.eh.exception( )
      +  i8* %llvm.eh.exception()
       

      This intrinsic returns a pointer to the exception structure.

      @@ -416,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, @@ -449,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 @@ -489,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 @@ -497,7 +519,7 @@
      -  i8* %llvm.eh.sjlj.lsda( )
      +  i8* %llvm.eh.sjlj.lsda()
       

      Used for SJLJ based exception handling, the @@ -508,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.

      + +
      +