• Martin Storsjö's avatar
    wow64: Use the right SEH opcode in raise_exception on arm64. · 4934c127
    Martin Storsjö authored
    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.
    4934c127
process.c 46.3 KB