about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-06 14:16:52 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-06 14:16:52 +0100
commit57d6539292327fef86cb7e765c95cbedebec5f29 (patch)
tree2cd8b09eab863b0a44710c29f9addbfbd6e25ede /src
parent64922731eca944cc10c89913c82d0a4617f2f590 (diff)
downloadbox64-57d6539292327fef86cb7e765c95cbedebec5f29.tar.gz
box64-57d6539292327fef86cb7e765c95cbedebec5f29.zip
Added (partial) 0F AE (M/S/L)FENCE opcodes
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run0f.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c
index 50867d5a..6c68434f 100644
--- a/src/emu/x64run0f.c
+++ b/src/emu/x64run0f.c
@@ -84,6 +84,23 @@ int Run0F(x64emu_t *emu, rex_t rex)
             my_cpuid(emu, tmp32u);

             break;

 

+        case 0xAE:                      /* Grp Ed (SSE) */

+            nextop = F8;

+            if((nextop&0xF8)==0xE8) {

+                return 0;                   /* LFENCE */

+            }

+            if((nextop&0xF8)==0xF0) {

+                return 0;                   /* MFENCE */

+            }

+            if((nextop&0xF8)==0xF8) {

+                return 0;                   /* SFENCE */

+            }

+            GETED;

+            switch((nextop>>3)&7) {

+                default:

+                    return 1;

+            }

+            break;

         case 0xAF:                      /* IMUL Gd,Ed */

             nextop = F8;

             GETED;