[llvm-dev] How to call an (x86) cleanup/catchpad funclet

Carlo Kok via llvm-dev llvm-dev at lists.llvm.org
Tue Apr 5 00:57:34 PDT 2016

Op 2016-04-05 om 01:35 schreef Reid Kleckner:
> For 32-bit x86, set EBP to the address of the end of the SEH
> registration node before calling any funclet. The prologue does 'addl
> $12, %ebp' to recompute the real frame pointer from that address. The
> return value of the catch handler is the label that you should jump to
> with EBP set in the same manner. The code at that label will take care
> of restoring other registers.

thanks! that works.

> Also, unless you absolutely need to be compatible with MSVC exceptions,
> don't use funclets for your new personality. Use landingpads. They are
> better and will get you better code.

ah ke, but landingpads won't let me catch SEH exceptions will they?

Carlo Kok
RemObjects Software

More information about the llvm-dev mailing list