The idea here is that we emit code that cages code pointers to the JIT region so that JIT execution does not escape to not-JIT'ed regions except to known destinations. For functions that the JIT'ed code needs to call out to in C++ code space, provide a whitelist of allowable entry points. Finally, verify that the emitted instructions follow the designed restrictions. This change is currently only implemented for ARM64 hardware.
<rdar://problem/56044895>
Created attachment 392652 [details] Draft patch This patch does not build for non-ARM64 platforms. It also doesn't generate the WebKit and WebCore whitelists.
Created attachment 409448 [details] Work in progress patch