From 49a854fa7e4a7204d9b9e1bcaeadd0182f64fa31 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 16 Nov 2024 13:44:36 +0100 Subject: [INTERPRETER] Fixed potential issue with 0F A3 opcode --- src/emu/x64run0f.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c index bac642b3..d7b0fe61 100644 --- a/src/emu/x64run0f.c +++ b/src/emu/x64run0f.c @@ -1125,19 +1125,19 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step) nextop = F8; GETED(0); GETGD; - tmp32s = GD->sdword[0]; - tmp8u=tmp32s&(rex.w?63:31); - tmp32s >>= (rex.w?6:5); + tmp64s = rex.w?GD->sq[0]:GD->sdword[0]; + tmp8u=tmp64s&(rex.w?63:31); + tmp64s >>= (rex.w?6:5); if(!MODREG) { #ifdef TEST_INTERPRETER - test->memaddr=((test->memaddr)+(tmp32s<<(rex.w?3:2))); + test->memaddr=((test->memaddr)+(tmp64s<<(rex.w?3:2))); if(rex.w) *(uint64_t*)test->mem = *(uint64_t*)test->memaddr; else *(uint32_t*)test->mem = *(uint32_t*)test->memaddr; #else - ED=(reg64_t*)(((uintptr_t)(ED))+(tmp32s<<(rex.w?3:2))); + ED=(reg64_t*)(((uintptr_t)(ED))+(tmp64s<<(rex.w?3:2))); #endif } if(rex.w) { -- cgit 1.4.1