[PATCH] D115918: [MS][NFC] Remove SEH chaininfo assembler macros

Reid Kleckner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 6 14:00:31 PST 2022


rnk added a comment.

I think the intended usage model is supposed to be something like this:

  .section .text, ...
  .seh_proc foo
    push ...
    push ...
  .seh_endprologue
    j...
    ret
  
  .pushsection .text$cold, ...  # switch to new section (discontiguous)
  .seh_startchained # implicitly references the open unwind info for foo
  .seh_endprologue
    mov ...  # cold code moved out of line to separate section
    mov ...
  .seh_endchained # end chained region
  
  .popsection # return to main text section
  .seh_endproc # main end label is in main section

The test doesn't do a good job representing proper usage, since it puts everything in the same section (.text) and the chained region has no code in it.

What do you think of the example? Is that a possible way that one could set up correct chained unwind info with the directives as they are? Unfortunately, I'm not familiar with these. As you can see, the compiler doesn't use them, they are only implemented at the assembler level.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D115918/new/

https://reviews.llvm.org/D115918



More information about the llvm-commits mailing list