[PATCH v3 0/7] Define unwinding and SEH data structures for aarch64

Evgeny Karpov evgeny@kmaps.co
Thu Aug 14 07:41:40 GMT 2025


Hello,

Thank you for reviewing v2!
v3 addresses all comments on v2.

Changes in v3:
- Make the AArch64 implementation fully static.
- Fix ARM64_MAX_UNWIND_CODES and introduce AARCH64_MAX_UNWIND_CODES_SIZE.
- Add validation for the epilogue_scope array.
- Add an upper bound for the register number.
- Exclude changes in md_do_align.
- Refactor the AArch64 SEH implementation to emit .pdata/.xdata records at
  the end of assembly.
- Declare md_finish for AArch64 to trigger obj_coff_generate_pdata.
- Support different fragment ordering in frag_offset_ignore_align_p
- Change signed to unsigned.
- Replace Arm64 / arm64 with AArch64 / aarch64.
- Add references to the official documentation to clarify
  implementation.
- Add static and aarch64_ prefix.
- Rebase onto the current master.
- Fix comments.
- Correct code style and naming.

Regards,
Evgeny

Evgeny Karpov (7):
  Adjust pdata function table entries sorting for AArch64
  Define unwinding and SEH data structures for aarch64
  Adjust x64 SEH implementation for AArch64
  Add aarch64-specific SEH commands
  Write SEH records to pdata/xdata
  Support different fragment ordering in frag_offset_ignore_align_p
  aarch64: Emit pdata/xdata SEH records from md_finish

 bfd/peXXigen.c            |  11 +-
 gas/config/obj-coff-seh.c | 777 +++++++++++++++++++++++++++++++++++++-
 gas/config/obj-coff-seh.h | 204 +++++++++-
 gas/config/tc-aarch64.c   |  12 +
 gas/config/tc-aarch64.h   |   5 +
 gas/frags.c               |  23 +-
 6 files changed, 1002 insertions(+), 30 deletions(-)

-- 
2.39.5


More information about the Binutils mailing list