From aba3bcc81a687a3c6cdc8be0367445c2c1f0a03e Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Fri, 26 Mar 2021 11:41:15 +0100 Subject: Added 66 8D and 66 E8 opcode --- src/emu/x64run66.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/emu/x64run66.c b/src/emu/x64run66.c index 8f93e27f..689897ce 100644 --- a/src/emu/x64run66.c +++ b/src/emu/x64run66.c @@ -33,6 +33,7 @@ int Run66(x64emu_t *emu, rex_t rex, int rep) uint8_t tmp8u, tmp8u2; int16_t tmp16s; uint16_t tmp16u, tmp16u2; + int32_t tmp32s; int64_t tmp64s; uint64_t tmp64u, tmp64u2, tmp64u3; reg64_t *oped, *opgd; @@ -225,6 +226,16 @@ int Run66(x64emu_t *emu, rex_t rex, int rep) GW->word[0] = EW->word[0]; break; + case 0x8D: /* LEA Gw,M */ + nextop = F8; + GETED(0); + GETGD; + if(rex.w) + GD->q[0] = (uint64_t)ED; + else + GD->word[0] = (uint16_t)(uintptr_t)ED; + break; + case 0x90: /* NOP */ break; @@ -540,6 +551,12 @@ int Run66(x64emu_t *emu, rex_t rex, int rep) case 0xDD: /* x87 opcdes */ return Run66DD(emu, rex); + case 0xE8: /* CALL Id */ + tmp32s = F32S; // call is relative + Push(emu, R_RIP); + R_RIP += tmp32s; + break; + case 0xF7: /* GRP3 Ew(,Iw) */ nextop = F8; tmp8u = (nextop>>3)&7; -- cgit 1.4.1