diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-05-01 10:42:41 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-05-01 10:42:41 +0200 |
| commit | 9791016c74066e10f7a85773bf838340be75c427 (patch) | |
| tree | 1f0083394cf678a9a09748775edf84159b690825 /src | |
| parent | ced115713230688aafe9b8c8025215bef79d6fcd (diff) | |
| download | box64-9791016c74066e10f7a85773bf838340be75c427.tar.gz box64-9791016c74066e10f7a85773bf838340be75c427.zip | |
[INTERP] VMASKMOVP[S/D] opcodes have no register only path
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64runavx660f38.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/emu/x64runavx660f38.c b/src/emu/x64runavx660f38.c index 31d7b513..65886c86 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; |