From e5c1e3a2a26036c73e076bb4c7151f7c7d9d150b Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Mon, 8 Sep 2025 11:53:21 +0200 Subject: [INTERP] Small fixes in a few rarely used opcodes --- src/emu/x64run.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/emu/x64run.c b/src/emu/x64run.c index 34bd0368..fc5188e2 100644 --- a/src/emu/x64run.c +++ b/src/emu/x64run.c @@ -371,7 +371,7 @@ x64emurun: if(rex.is32bits) { R_AX = aas16(emu, R_AX); } else { - EmitSignal(emu, X64_SIGILL, (void*)R_RIP, 0); + unimp = 1; goto fini; } break; @@ -1813,6 +1813,7 @@ x64emurun: addr += tmp8s; } else if(rex.is32bits || rex.is67) { --R_ECX; // don't update flags + if(rex.is67) emu->regs[_CX].dword[1] = 0; if(R_ECX && !ACCESS_FLAG(F_ZF)) addr += tmp8s; } else { @@ -1831,6 +1832,7 @@ x64emurun: addr += tmp8s; } else if(rex.is32bits || rex.is67) { --R_ECX; // don't update flags + if(rex.is67) emu->regs[_CX].dword[1] = 0; if(R_ECX && ACCESS_FLAG(F_ZF)) addr += tmp8s; } else { @@ -1848,6 +1850,7 @@ x64emurun: addr += tmp8s; } else if(rex.is32bits || rex.is67) { --R_ECX; // don't update flags + if(rex.is67) emu->regs[_CX].dword[1] = 0; if(R_ECX) addr += tmp8s; } else { -- cgit 1.4.1