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 patch: an access violation exception is now raised if the emulated instruction tries to write to an invalid memory address, tests were added for this behavior, and all tests are now in exception.c.
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 | 19 + dlls/ntdll/signal_x86_64.c | 19 + dlls/ntdll/tests/exception.c | 375 +++++++++++++++++ dlls/ntdll/umip.c | 780 +++++++++++++++++++++++++++++++++++ dlls/ntdll/umip.h | 21 + 6 files changed, 1215 insertions(+) create mode 100644 dlls/ntdll/umip.c create mode 100644 dlls/ntdll/umip.h