about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-04-11 16:35:45 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-04-11 16:35:45 +0200
commite83232fcf6de74abb47160a470ebb9ca7450e266 (patch)
tree9b340d07caf491a229e52474610e6ca198703701
parentece7ea36d90c77373fe966e3d67873e112c56aa9 (diff)
downloadbox64-e83232fcf6de74abb47160a470ebb9ca7450e266.tar.gz
box64-e83232fcf6de74abb47160a470ebb9ca7450e266.zip
Fixed 0F E3 opcode
-rw-r--r--src/emu/x64run0f.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c
index 48abfda9..3d5712f1 100644
--- a/src/emu/x64run0f.c
+++ b/src/emu/x64run0f.c
@@ -1351,15 +1351,12 @@ int Run0F(x64emu_t *emu, rex_t rex)
                     GM->sd[i] >>= tmp8u;

             }

             break;

-        case 0xE3:                   /* PSRAQ Gm, Em */

+        case 0xE3:                   /* PAVGW Gm, Em */

             nextop = F8;

             GETEM(0);

             GETGM;

-            if(EM->q>63)

-                tmp8u = 64;

-            else

-                tmp8u = EM->ub[0];

-            GM->sq >>= tmp8u;

+            for(int i=0; i<4; ++i)

+                GM->uw[i] = ((uint32_t)GM->uw[i]+EM->uw[i]+1)>>1;

             break;

         case 0xE4:                   /* PMULHUW Gm, Em */

             nextop = F8;