From efdd052674cd50a96da33077760a40c0508506cd Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 8 Apr 2023 13:36:09 +0200 Subject: Added 66 0F 3A 41 opcode --- src/emu/x64run660f.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src') diff --git a/src/emu/x64run660f.c b/src/emu/x64run660f.c index 28d04cd8..005de14b 100644 --- a/src/emu/x64run660f.c +++ b/src/emu/x64run660f.c @@ -60,6 +60,7 @@ uintptr_t Run660F(x64emu_t *emu, rex_t rex, uintptr_t addr) uint64_t tmp64u; int64_t tmp64s, i64[4]; float tmpf; + double tmpd; #ifndef NOALIGN int is_nan; #endif @@ -977,6 +978,19 @@ uintptr_t Run660F(x64emu_t *emu, rex_t rex, uintptr_t addr) for(int i=0; i<4; ++i) GX->f[i] = (tmp8u&(1<d[0]*EX->d[0]; + if(tmp8u&(1<<(4+1))) + tmpd += GX->d[1]*EX->d[1]; + GX->d[0] = (tmp8u&(1<<(0)))?tmpd:0.0; + GX->d[1] = (tmp8u&(1<<(1)))?tmpd:0.0; + break; case 0x42: /* MPSADBW Gx, Ex, Ib */ nextop = F8; -- cgit 1.4.1