Added local continuation to the Win32 port.
To implement local continuation it is necessary to distiguish between registers with stack-specific content and "other" content. Unfortunately this isn't that easy with VC++ - just two examples:
1. /GZ includes "Call Stack Validation" which turns ESI into a stack-specific register which it otherwise isn't.
2. /Oy does "Frame-Pointer Omission" which turns EBP into a non-stack-specific register which it otherwise is.
Basically this means that with VC++ a specific implementation of local continuation only works with certain compiler options - and perhaps certain compiler versions :-(
4 files changed