i386: Keep SEH enabled for Win64 sysv_abi functions
SEH is now kept enabled for Win64 functions compiled with SysV ABI, ensuring consistent exception handling.
On Win64, functions compiled with the SysV ABI were losing Structured Exception Handling (SEH) hooks due to TARGET_SEH depending on TARGET_64BIT_MS_ABI. This could result in inconsistent assembly code with .seh_handlerdata outside any .seh_proc block. This commit ensures that TARGET_SEH remains enabled for all 64-bit Windows functions when unwind tables are requested. This ensures consistent SEH prologue and handler state across ABI variants.
In Details
Structured Exception Handling (SEH) is a mechanism used on Windows to handle exceptions. The problem was that TARGET_SEH was incorrectly disabled for Win64 functions using the SysV ABI, leading to issues with exception handling. The commit modifies config/i386/cygming.h to fix this issue. Search terms: GCC i386 SEH Win64 SysV ABI.
For Context
Exception handling is a mechanism for dealing with errors that occur during program execution. On Windows, Structured Exception Handling (SEH) is used to handle these exceptions. This commit fixes an issue where SEH was not being correctly enabled for certain types of functions on 64-bit Windows, which could lead to crashes or incorrect behavior when exceptions occurred. Search terms: GCC i386 SEH Win64 SysV ABI.