[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