diff options
| -rw-r--r-- | src/emu/x64run67.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/emu/x64run67.c b/src/emu/x64run67.c index 7db5494f..c5a1f221 100644 --- a/src/emu/x64run67.c +++ b/src/emu/x64run67.c @@ -43,6 +43,21 @@ int Run67(x64emu_t *emu, rex_t rex) switch(opcode) { + case 0x89: /* MOV Ed,Gd */ + nextop = F8; + GETED32(0); + GETGD; + if(rex.w) { + ED->q[0] = GD->q[0]; + } else { + //if ED is a reg, than the opcode works like movzx + if(MODREG) + ED->q[0] = GD->dword[0]; + else + ED->dword[0] = GD->dword[0]; + } + break; + case 0x8D: /* LEA Gd,M */ nextop = F8; GETED32(0); |