From 223de50ec94de8b0bf0bce39fcd235c74992d135 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Wed, 23 Apr 2025 18:20:38 +0200 Subject: [INTERP] Fex fixes and small cosmetic changes to some partial (V)MOV opcodes --- src/emu/x64run660f.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) (limited to 'src/emu/x64run660f.c') diff --git a/src/emu/x64run660f.c b/src/emu/x64run660f.c index 0ccc466c..b16a276e 100644 --- a/src/emu/x64run660f.c +++ b/src/emu/x64run660f.c @@ -137,15 +137,19 @@ uintptr_t Run660F(x64emu_t *emu, rex_t rex, uintptr_t addr) break; case 0x12: /* MOVLPD Gx, Eq */ nextop = F8; - GETE8(0); - GETGX; - GX->q[0] = ED->q[0]; + if(!MODREG) { + GETE8(0); + GETGX; + GX->q[0] = ED->q[0]; + } break; case 0x13: /* MOVLPD Eq, Gx */ nextop = F8; - GETE8(0); - GETGX; - ED->q[0] = GX->q[0]; + if(!MODREG) { + GETE8(0); + GETGX; + ED->q[0] = GX->q[0]; + } break; case 0x14: /* UNPCKLPD Gx, Ex */ nextop = F8; @@ -162,15 +166,19 @@ uintptr_t Run660F(x64emu_t *emu, rex_t rex, uintptr_t addr) break; case 0x16: /* MOVHPD Gx, Ed */ nextop = F8; - GETE8(0); - GETGX; - GX->q[1] = ED->q[0]; + if(!MODREG) { + GETE8(0); + GETGX; + GX->q[1] = ED->q[0]; + } break; case 0x17: /* MOVHPD Ed, Gx */ nextop = F8; - GETE8(0); - GETGX; - ED->q[0] = GX->q[1]; + if(!MODREG) { + GETE8(0); + GETGX; + ED->q[0] = GX->q[1]; + } break; case 0x18: -- cgit 1.4.1