mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-25 17:00:46 +01:00
Follow-up to #2327. Split off from #2176 and improved. 32-bit signals are a bit more complex than 64-bit due to behaviour changing depending on if `rt_sigaction` and `sigaction` syscall is used and if `SA_SIGINFO` is passed in to the flags. With `SA_SIGINFO` used, both turn in to an `RT` frame, which is encoded differently than without `SA_SIGINFO`. Additionally 32-bit signals support both regular Linux stack ABI and `regparm(3)` ABI. Without `SA_SIGINFO` then `siginfo_t` is removed from the signal handler arguments, but most of the rest still remains. Also two of the arguments to the signal handler are forced to be nullptr with `regparm(3)`.