[llvm-dev] LLVM SEH docs -- enregistration of locals in nonvolatile registers?

Jay K via llvm-dev llvm-dev at lists.llvm.org
Tue May 22 09:13:41 PDT 2018


https://llvm.org/docs/ExceptionHandling.html#wineh

> No variables live in to or out of the funclet can be allocated in registers.

I don't think this is quite true. though it might be a useful simplification.
Obviously it is true for volatile registers, but  I believe the funclet receives a CONTEXT
with the nonvolatiles restored. Obviously cumbersome to access, but it lets you enregister them across calls like  normal in the "original" function.

I  haven't seen Visual  C++ to such enregistration (nonvolatiles across calls in functions with EH), but  you  can do it in assembly.

nvlocala.asm here  http://jaykrell2.blogspot.com/2017/10/windows-amd64-abi-nuances-part-1.html

I should change it to print the nonvolatiles from context to demonstrate the point.

 - Jay


   


More information about the llvm-dev mailing list