about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/dynarec/arm64/dynarec_arm64_64.c10
-rw-r--r--src/emu/x64run64.c17
2 files changed, 25 insertions, 2 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_64.c b/src/dynarec/arm64/dynarec_arm64_64.c
index e67b879c..bfb5702f 100644
--- a/src/dynarec/arm64/dynarec_arm64_64.c
+++ b/src/dynarec/arm64/dynarec_arm64_64.c
@@ -380,7 +380,12 @@ uintptr_t dynarec64_64(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                 }
             }
             break;
-
+        case 0x64:
+            addr = dynarec64_64(dyn, addr, ip, ninst, rex, rep, _FS, ok, need_epilog);
+            break;
+        case 0x65:
+            addr = dynarec64_64(dyn, addr, ip, ninst, rex, rep, _GS, ok, need_epilog);
+            break;
         case 0x66:
             addr = dynarec64_6664(dyn, addr, ip, ninst, rex, seg, ok, need_epilog);
             break;
@@ -669,6 +674,9 @@ uintptr_t dynarec64_64(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                 }
             }
             break;
+        case 0x90:
+            INST_NAME("NOP");
+            break;
 
         case 0xA1:
             INST_NAME("MOV EAX,FS:Od");
diff --git a/src/emu/x64run64.c b/src/emu/x64run64.c
index a9941291..c39ff5e7 100644
--- a/src/emu/x64run64.c
+++ b/src/emu/x64run64.c
@@ -335,7 +335,20 @@ uintptr_t Run64(x64emu_t *emu, rex_t rex, int seg, uintptr_t addr)
                         GD->sdword[0] = ED->sdword[0];  // meh?

             }

             break;

-

+        case 0x64:                      /* FS: prefix */

+            #ifdef TEST_INTERPRETER

+            return Test64(test, rex, _FS, addr);

+            #else

+            return Run64(emu, rex, _FS, addr);

+            #endif

+            break;

+        case 0x65:                      /* GS: prefix */

+            #ifdef TEST_INTERPRETER

+            return Test64(test, rex, _GS, addr);

+            #else

+            return Run64(emu, rex, _GS, addr);

+            #endif

+            break;

         case 0x66:

             return Run6664(emu, rex, seg, addr);

         case 0x67:

@@ -477,6 +490,8 @@ uintptr_t Run64(x64emu_t *emu, rex_t rex, int seg, uintptr_t addr)
                 }

             }

             break;

+        case 0x90:                      /* NOP */

+            break;

 

         case 0xA1:                      /* MOV EAX,FS:Od */

             if(rex.is32bits) {