Major bug fixes. Granularity of disabling interrupts was not wide enough for dynamic wrappers. Modified stack switching stuff to only clobber rax, as it was interfering with rbx of some code calling into the dynamic wrapper. Added some CPU reset debugging code in (toggle-able by CONFIG_DEBUG_CPU_RESET iirc). The main culprit behind Granary's past CPU resets seems to be the GS access in kernel_get_cpu_state, which would cause a cascading failure of interrupts. This is perhaps related to NMIs, so right now Granary lets NMIs be handled completely natively. Fixed a minor bug in a basic block extension optimisation. Changed the user space address detection mechanism slightly in the watchpoints system, although this change remains untested. Updated the user space address checker of Granry (for exception table pacification) to ignore memcpy if the basic block's starting address is that of memcpy. Overall, solid progress.