[PATCH] gas: Add AArch64 Windows SEH (pdata/xdata) support

Jan Beulich jbeulich@suse.com
Wed Aug 5 05:52:25 GMT 2026


On 04.08.2026 20:02, trcrsired wrote:
> Implement Windows exception-handling (SEH) unwind info generation for
> the aarch64-w64-mingw32 target in GAS.
> 
> The existing obj-coff-seh.c only handled x64.  This adds full AArch64
> support:
> 
> * .seh_proc/.seh_endprologue and all AArch64 unwind directives
>   (.seh_alloc_stack, .seh_save_fplr/x, .seh_save_reg/p/p_x,
>   .seh_save_freg/p/p_x, .seh_save_lrpair, .seh_set_fp, .seh_add_fp,
>   .seh_handler, etc.)
> * Correct xdata header layout (FunctionLength / CodeWords / EpilogCount /
>   E / X bits) matching the MS ARM64 format
> * Emit the xdata extension word when CodeWords==0 and EpilogCount==0 so
>   Windows exception parsers do not misread the next entry
> * Correct opcode encodings for register save pairs (save_regp etc.)
> * Function length computed from fragment positions instead of
>   resolve_expression, which failed across fragments

This submission is a little irritating, because work towards the same
goal is already at v12 [1]. Furthermore, work like this would require
an S-o-b of yours, in turn (I think) requiring a real name.

Jan

[1] https://sourceware.org/pipermail/binutils/2026-July/150254.html


More information about the Binutils mailing list