diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-09-08 11:53:21 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-09-08 11:53:21 +0200 |
| commit | e5c1e3a2a26036c73e076bb4c7151f7c7d9d150b (patch) | |
| tree | 574fe3bdb96917e383614b3d75f3de6363b4c864 | |
| parent | e7d2cf55389b45afe37beb6c4996c99412da1605 (diff) | |
| download | box64-e5c1e3a2a26036c73e076bb4c7151f7c7d9d150b.tar.gz box64-e5c1e3a2a26036c73e076bb4c7151f7c7d9d150b.zip | |
[INTERP] Small fixes in a few rarely used opcodes
| -rw-r--r-- | src/emu/x64run.c | 5 |
1 files changed, 4 insertions, 1 deletions
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 { |