Skip to content

[x86/Linux] Exception Handling ABI #7398

@wateret

Description

@wateret

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    arch-x86documentationDocumentation bug or enhancement, does not impact product or test codeos-linuxLinux OS (any supported distro)os-tizen

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions