2 Oct
2022
2 Oct
'22
7:44 a.m.
On ARM and ARM64, each SEH opcode is supposed to map to exactly one instruction; the operation of writing x29+x30 with a stack offset with writeback is called ".seh_save_fplr_x". Using the right opcode would fix inconsistent unwinding if we would unwind from near the end of the prologue (which is implausible here). However, clang/LLVM might also get checking for mismatches between SEH opcodes and the prolog/epilog ranges (https://reviews.llvm.org/D131394), mainly to guard against inconsistencies in the unwind info generated by the compiler, but that would trigger on this handwritten function too. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/998