llvm-project
f3aa84c8 - [win][x64] Unwind v2: Avoid non-terminator instructions after terminator by using different psuedo for splitting frame infos (#177007)

Commit
43 days ago
[win][x64] Unwind v2: Avoid non-terminator instructions after terminator by using different psuedo for splitting frame infos (#177007) After merging #159206 the new tests added would fail when verifying machine code instructions with: ``` *** Bad machine code: Non-terminator instruction after the first terminator *** - function: has_funclet - basic block: %bb.4 call.block.4 (0x8000f837e8) - instruction: SEH_SplitChained First terminator was: RET64 $eax *** Bad machine code: Non-terminator instruction after the first terminator *** - function: has_funclet - basic block: %bb.4 call.block.4 (0x8000f837e8) - instruction: SEH_EndPrologue First terminator was: RET64 $eax ``` This change removes `SEH_SplitChained` and replaces it with `SEH_SplitChainedAtEndOfBlock` which acts as a marker to `X86AsmPrinter` to emit the `.seh_splitchained` directive (and `.seh_endprolog`) when the current block has finished.
Author
Parents
Loading