diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64run0f.c | 7 | ||||
| -rw-r--r-- | src/tools/my_cpuid.c | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c index 0364f4e9..bac642b3 100644 --- a/src/emu/x64run0f.c +++ b/src/emu/x64run0f.c @@ -386,6 +386,13 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step) R_RDX = tmp64u>>32; R_RAX = tmp64u&0xFFFFFFFF; break; + case 0x32: /* RDMSR */ + // priviledge instruction + #ifndef TEST_INTERPRETER + emit_signal(emu, SIGSEGV, (void*)R_RIP, 0xbad0); + STEP; + #endif + break; case 0x34: /* SYSENTER */ #ifndef TEST_INTERPRETER diff --git a/src/tools/my_cpuid.c b/src/tools/my_cpuid.c index 9a65f677..967d0585 100644 --- a/src/tools/my_cpuid.c +++ b/src/tools/my_cpuid.c @@ -249,6 +249,7 @@ void my_cpuid(x64emu_t* emu, uint32_t tmp32u) R_EDX = 1 // fpu | 1<<2 // debugging extension | 1<<4 // rdtsc + | 1<<5 // msr | 1<<8 // cmpxchg8 | 1<<11 // sep (sysenter & sysexit) | 1<<15 // cmov |