Expand description
Helpers for generating DWARF LSDA data for Cranelift-compiled functions.
The structures and encoding implemented here mirror what LLVM produces for Wasm exception handling so that Wasmerβs libunwind personalities can parse the tables without any runtime changes.
StructsΒ§
- Action
Table π - Call
Site πDesc - Compact
Unwind Entry Data - Function
Lsda Data - Fully encoded LSDA bytes for a single function, together with pending tag relocations that will be resolved once the global tag section is built.
- TagRelocation
- Relocation information for an LSDA entry that references a tag constant.
- Type
Table π
EnumsΒ§
- Exception
Type π
ConstantsΒ§
- STACK_
SIZE_ πUNIT - UNWIND_
ARM64_ πFRAMELESS_ STACK_ SIZE_ SHIFT - UNWIND_
ARM64_ πFRAME_ D8_ D9_ PAIR - UNWIND_
ARM64_ πFRAME_ D10_ D11_ PAIR - UNWIND_
ARM64_ πFRAME_ D12_ D13_ PAIR - UNWIND_
ARM64_ πFRAME_ D14_ D15_ PAIR - UNWIND_
ARM64_ πFRAME_ X19_ X20_ PAIR - UNWIND_
ARM64_ πFRAME_ X21_ X22_ PAIR - UNWIND_
ARM64_ πFRAME_ X23_ X24_ PAIR - UNWIND_
ARM64_ πFRAME_ X25_ X26_ PAIR - UNWIND_
ARM64_ πFRAME_ X27_ X28_ PAIR - UNWIND_
ARM64_ πMODE_ FRAME - UNWIND_
ARM64_ πMODE_ FRAMELESS
FunctionsΒ§
- build_
compact_ unwind_ section - Build the 64-bit Mach-O
__compact_unwindsection consumed by the runtime compact-unwind publisher. - build_
function_ lsda - Build the LSDA for a single function given the finalized Cranelift call-site metadata.
- build_
lsda_ section - Build the LSDA custom section and record the offset for each function.
- build_
tag_ section - Build the global tag section and a tag->offset map.
- compact_
unwind_ encoding_ aarch64 - encode_
action_ πtable - encode_
call_ πsite_ table - uleb128_
len π - write_
encoded_ πoffset