From 7a95dcd6b6bf51cde91d0cc2a17107b49d17a376 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Fri, 16 Apr 2021 15:46:03 +0200 Subject: Added E0..E3 opcodes ([DYNAREC] too) --- src/emu/x64run.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/emu') 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 -- cgit 1.4.1