ProtectFunction's thunk saved all of XMM2-15 and RBX around every call,
but the callee preserves XMM6-15 on Windows and RBX everywhere. On
Windows that drops ten 16-byte saves and loads from each protected call.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Disabled block linking in this mode, can re-enable with some more work later.
To enable W^X on other platforms than iOS, simply change PlatformIsWXExclusive.
This may even be more near active memory anyway, but it reduces the "64
bit address out of range" RIP issues a bit too. It's currently impossible
to enable appverif memory checks and jit in 64-bit...
Avoided the 32-bit path because I'm less sure about alignment.