wow64: Use the right SEH opcode in raise_exception on arm64.
commit4934c1276232a9ac9cad1bdf750c5ac099944180
authorMartin Storsjö <martin@martin.st>
Sat, 1 Oct 2022 20:49:29 +0000 (1 23:49 +0300)
committerAlexandre Julliard <julliard@winehq.org>
Mon, 10 Oct 2022 09:01:32 +0000 (10 11:01 +0200)
treef9865006e9d135a4d0972f29c01c32643911a053
parentfd64cbc02e20d104847b384c5bad55e38659f31a
wow64: Use the right SEH opcode in raise_exception on arm64.

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.
dlls/wow64/process.c