about summary refs log tree commit diff stats
path: root/src/emu
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu')
-rw-r--r--src/emu/x64run0f.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c
index d6c0a0e2..f96dfe0d 100644
--- a/src/emu/x64run0f.c
+++ b/src/emu/x64run0f.c
@@ -1598,7 +1598,13 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step)
                 GM->sw[i] = (tmp32s>32767)?32767:((tmp32s<-32768)?-32768:tmp32s);

             }

             break;

-

+        case 0xEA:                  /* PMINSW Gm,Em */

+            nextop = F8;

+            GETEM(0);

+            GETGM;

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

+                GM->sw[i] = (GM->sw[i]<EM->sw[i])?GM->sw[i]:EM->sw[i];

+            break;

         case 0xEB:                   /* POR Gm, Em */

             nextop = F8;

             GETEM(0);

@@ -1623,7 +1629,13 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step)
                 GM->sw[i] = (tmp32s>32767)?32767:((tmp32s<-32768)?-32768:tmp32s);

             }

             break;

-

+        case 0xEE:                  /* PMAXSW Gm,Em */

+            nextop = F8;

+            GETEM(0);

+            GETGM;

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

+                GM->sw[i] = (GM->sw[i]>EM->sw[i])?GM->sw[i]:EM->sw[i];

+            break;

         case 0xEF:                   /* PXOR Gm, Em */

             nextop = F8;

             GETEM(0);