From 9791016c74066e10f7a85773bf838340be75c427 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Thu, 1 May 2025 10:42:41 +0200 Subject: [PATCH] [INTERP] VMASKMOVP[S/D] opcodes have no register only path --- src/emu/x64runavx660f38.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/emu/x64runavx660f38.c b/src/emu/x64runavx660f38.c index 31d7b5134..65886c866 100644 --- a/src/emu/x64runavx660f38.c +++ b/src/emu/x64runavx660f38.c @@ -827,6 +827,8 @@ uintptr_t RunAVX_660F38(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step) break; case 0x2C: /*VMASKMOVPS Gx, Vx, Ex */ nextop = F8; + if(MODREG) + return 0; GETEX(0); GETGX; GETVX; @@ -843,6 +845,8 @@ uintptr_t RunAVX_660F38(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step) break; case 0x2D: /*VMASKMOVPD Gx, Vx, Ex */ nextop = F8; + if(MODREG) + return 0; GETEX(0); GETGX; GETVX; @@ -859,6 +863,8 @@ uintptr_t RunAVX_660F38(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step) break; case 0x2E: /*VMASKMOVPS Ex, Vx, Gx */ nextop = F8; + if(MODREG) + return 0; GETEX(0); GETGX; GETVX; @@ -879,6 +885,8 @@ uintptr_t RunAVX_660F38(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step) break; case 0x2F: /*VMASKMOVPD Ex, Vx, Gx */ nextop = F8; + if(MODREG) + return 0; GETEX(0); GETGX; GETVX;