Currently there is no EH ABI defined for x86/Linux so we need one. I'm going to start with @jkotas suggested in dotnet/coreclr#9384 (comment)
Which is:
There is actually a third variant used by CoreRT on all platforms. It was intentionally designed, taking the best parts from both AMD64 and ARM/ARM64. It would be nice to snap to CoreRT convention for Linux x86 where possible.
- First argument of all funclets is establisher frame, second argument is exception object (where applicable). Same as AMD64.
- For filter funclets the VM sets the frame register to be the same as the parent function. For second pass funclets the VM restores all non-volatile registers. Similar to ARM/ARM64.
- No PSP sym (it may be hard to not have PSP sym for CoreCLR - it is ok to skip it)
Currently there is no EH ABI defined for x86/Linux so we need one. I'm going to start with @jkotas suggested in dotnet/coreclr#9384 (comment)
Which is: