From b669177c834219b154fe7cc4cdde085697e58c04 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Fri, 28 Oct 2022 11:35:03 +0200 Subject: Added 66 0F 7D opcode --- src/emu/x64run660f.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/emu/x64run660f.c b/src/emu/x64run660f.c index 7561fff2..a4fff7a7 100644 --- a/src/emu/x64run660f.c +++ b/src/emu/x64run660f.c @@ -1345,7 +1345,31 @@ uintptr_t Run660F(x64emu_t *emu, rex_t rex, uintptr_t addr) #endif } break; - + case 0x7D: /* HSUBPD Gx, Ex */ + nextop = F8; + GETEX(0); + GETGX; + #ifndef NOALIGN + is_nan = isnan(GX->d[0]) || isnan(GX->d[1]); + #endif + GX->d[0] -= GX->d[1]; + #ifndef NOALIGN + if(!is_nan && isnan(GX->d[0])) + GX->d[0] = -NAN; + #endif + if(EX==GX) { + GX->d[1] = GX->d[0]; + } else { + #ifndef NOALIGN + is_nan = isnan(EX->d[0]) || isnan(EX->d[1]); + #endif + GX->d[1] = EX->d[0] - EX->d[1]; + #ifndef NOALIGN + if(!is_nan && isnan(GX->d[1])) + GX->d[1] = -NAN; + #endif + } + break; case 0x7E: /* MOVD Ed, Gx */ nextop = F8; GETED(0); -- cgit 1.4.1