This patch adds emulation for instructions protected by User-Mode Instruction Prevention (currently implemented by AMD Ryzen 3000 CPUs and some rare Intel CPUs).
Changes from previous RFC patch that was sent: emulation is now done from the signal handler rather than in an exception handler, and tests are included for every instruction and operand size/type.
Brendan Shanks (2): ntdll: Add emulation for UMIP instructions ntdll/tests: Add tests for UMIP instructions
dlls/ntdll/Makefile.in | 1 + dlls/ntdll/signal_i386.c | 6 + dlls/ntdll/signal_x86_64.c | 6 + dlls/ntdll/tests/Makefile.in | 1 + dlls/ntdll/tests/umip.c | 301 ++++++++++++++ dlls/ntdll/umip.c | 739 +++++++++++++++++++++++++++++++++++ dlls/ntdll/umip.h | 21 + 7 files changed, 1075 insertions(+) create mode 100644 dlls/ntdll/tests/umip.c create mode 100644 dlls/ntdll/umip.c create mode 100644 dlls/ntdll/umip.h