about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-26 22:43:07 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-26 22:43:07 +0100
commitc33368bfb49f0391cbb9fa31f93197030a4f175a (patch)
tree30a8163ffec3c66ce4bbca3bfa08e17fa9a9d796 /src
parent886999bc5b24d90fa609e514566279a870d71de0 (diff)
downloadbox64-c33368bfb49f0391cbb9fa31f93197030a4f175a.tar.gz
box64-c33368bfb49f0391cbb9fa31f93197030a4f175a.zip
Added 0F 18 opcode
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run0f.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c
index b6e3bd20..667dbb1f 100644
--- a/src/emu/x64run0f.c
+++ b/src/emu/x64run0f.c
@@ -104,6 +104,22 @@ int Run0F(x64emu_t *emu, rex_t rex)
             GETGX;

             EX->q[0] = GX->q[1];

             break;

+        case 0x18:                       /* PREFETCHh Ed */

+            nextop = F8;

+            GETED(0);

+            if(MODREG) {

+            } else

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

+                case 0: //PREFETCHnta

+                case 1: //PREFETCH1

+                case 2: //PREFETCH2

+                case 3: //PREFETCH3

+                    __builtin_prefetch((void*)ED, 0, 0); // ignoring wich level of cache

+                    break;

+                default:    //NOP

+                    break;

+            }

+            break;

 

         case 0x1F:                      /* NOP (multi-byte) */

             nextop = F8;