From 813ed6f9a166faa85cf4e27cbb76a780be487cea Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sun, 11 Jul 2021 18:21:38 +0200 Subject: Fixed 66 0F 3A 0E opcode (for #33) --- src/emu/x64run660f.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/emu/x64run660f.c b/src/emu/x64run660f.c index 5439ff5f..3cee8e65 100644 --- a/src/emu/x64run660f.c +++ b/src/emu/x64run660f.c @@ -279,17 +279,6 @@ int Run660F(x64emu_t *emu, rex_t rex) } break; - case 0x0E: /* PBLENDW Gx, Ex, Ib */ - nextop = F8; - GETEX(1); - GETGX; - tmp8u = F8; - for (int i=0; i<8; ++i) { - if(tmp8u&(1<uw[i] = EX->uw[i]; - } - break; - case 0x17: // PTEST GX, EX nextop = F8; GETEX(0); @@ -371,7 +360,7 @@ int Run660F(x64emu_t *emu, rex_t rex) } break; - case 0x3A: // these are some SSE3 opcodes + case 0x3A: // these are some SSE3 & SSE4.x opcodes opcode = F8; switch(opcode) { case 0x0B: // ROUNDSD Gx, Ex, u8 @@ -399,6 +388,16 @@ int Run660F(x64emu_t *emu, rex_t rex) } break; + case 0x0E: /* PBLENDW Gx, Ex, Ib */ + nextop = F8; + GETEX(1); + GETGX; + tmp8u = F8; + for (int i=0; i<8; ++i) { + if(tmp8u&(1<uw[i] = EX->uw[i]; + } + break; case 0x0F: // PALIGNR GX, EX, u8 nextop = F8; GETEX(1); -- cgit 1.4.1