From ef46db650e1b9294a964aae62e1f4426756cd1c1 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 6 Mar 2021 11:31:47 +0100 Subject: Added (F2/F3) REX AB (REP) STOSD opcode --- src/emu/x64run.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src') diff --git a/src/emu/x64run.c b/src/emu/x64run.c index a15fec13..03d40a1d 100755 --- a/src/emu/x64run.c +++ b/src/emu/x64run.c @@ -427,6 +427,28 @@ x64emurun: test32(emu, R_EAX, F32); break; + case 0xAB: /* (REP) STOSD */ + if(rex.w) + tmp8s = ACCESS_FLAG(F_DF)?-4:+4; + else + tmp8s = ACCESS_FLAG(F_DF)?-8:+8; + tmp64u = (rep)?R_RCX:1L; + if((rex.w)) + while(tmp64u) { + *(uint32_t*)R_RDI = R_EAX; + R_EDI += tmp8s; + --tmp64u; + } + else + while(tmp64u) { + *(uint64_t*)R_RDI = R_RAX; + R_EDI += tmp8s; + --tmp64u; + } + if(rep) + R_RCX = tmp64u; + break; + case 0xB8: /* MOV EAX,Id */ case 0xB9: /* MOV ECX,Id */ case 0xBA: /* MOV EDX,Id */ -- cgit 1.4.1