diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-04-16 15:46:03 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-04-16 15:46:03 +0200 |
| commit | 7a95dcd6b6bf51cde91d0cc2a17107b49d17a376 (patch) | |
| tree | f0689a01a5897f6a851e07cc9f148ff21746a488 /src/emu | |
| parent | 47d0c04b30fe953db0d7dd77b6c46a5f62f4464b (diff) | |
| download | box64-7a95dcd6b6bf51cde91d0cc2a17107b49d17a376.tar.gz box64-7a95dcd6b6bf51cde91d0cc2a17107b49d17a376.zip | |
Added E0..E3 opcodes ([DYNAREC] too)
Diffstat (limited to 'src/emu')
| -rwxr-xr-x | src/emu/x64run.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/emu/x64run.c b/src/emu/x64run.c index c08c1ac0..1fcc6d2f 100755 --- a/src/emu/x64run.c +++ b/src/emu/x64run.c @@ -1146,6 +1146,35 @@ x64emurun: if(emu->quit) goto fini; break; + case 0xE0: /* LOOPNZ */ + CHECK_FLAGS(emu); + tmp8s = F8S; + --R_RCX; // don't update flags + if(R_RCX && !ACCESS_FLAG(F_ZF)) + R_RIP += tmp8s; + STEP + break; + case 0xE1: /* LOOPZ */ + CHECK_FLAGS(emu); + tmp8s = F8S; + --R_RCX; // don't update flags + if(R_RCX && ACCESS_FLAG(F_ZF)) + R_RIP += tmp8s; + STEP + break; + case 0xE2: /* LOOP */ + tmp8s = F8S; + --R_RCX; // don't update flags + if(R_RCX) + R_RIP += tmp8s; + STEP + break; + case 0xE3: /* JECXZ */ + tmp8s = F8S; + if(!R_RCX) + R_RIP += tmp8s; + STEP + break; case 0xE8: /* CALL Id */ tmp32s = F32S; // call is relative |