about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-02-17 21:14:10 +0800
committerGitHub <noreply@github.com>2025-02-17 14:14:10 +0100
commit9ec7930eb1618cb7ebbdd769681ffe4e6c3e0d4d (patch)
tree6adcb14324476ea3860d7249e5e979e7ca22b025
parent26dd597a1b27fe8e3be0df1f3640428d2791e497 (diff)
downloadbox64-9ec7930eb1618cb7ebbdd769681ffe4e6c3e0d4d.tar.gz
box64-9ec7930eb1618cb7ebbdd769681ffe4e6c3e0d4d.zip
[INTERP] Added 66 0F 19 NOP opcode ([DYNAREC] too) (#2375)
-rw-r--r--src/dynarec/arm64/dynarec_arm64_660f.c1
-rw-r--r--src/dynarec/la64/dynarec_la64_660f.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_660f.c1
-rw-r--r--src/dynarec/rv64/dynarec_rv64_660f_vector.c1
-rw-r--r--src/emu/x64run660f.c1
5 files changed, 6 insertions, 1 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_660f.c b/src/dynarec/arm64/dynarec_arm64_660f.c
index 2306d1f3..a1fa87ec 100644
--- a/src/dynarec/arm64/dynarec_arm64_660f.c
+++ b/src/dynarec/arm64/dynarec_arm64_660f.c
@@ -168,6 +168,7 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
             SMWRITE2();

             break;

 

+        case 0x19:

         case 0x1F:

             INST_NAME("NOP (multibyte)");

             nextop = F8;

diff --git a/src/dynarec/la64/dynarec_la64_660f.c b/src/dynarec/la64/dynarec_la64_660f.c
index 0c19b1c5..abe0a4fb 100644
--- a/src/dynarec/la64/dynarec_la64_660f.c
+++ b/src/dynarec/la64/dynarec_la64_660f.c
@@ -172,6 +172,7 @@ uintptr_t dynarec64_660F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int
             VSTELM_D(v0, ed, 0, 1);
             SMWRITE2();
             break;
+        case 0x19:
         case 0x1F:
             INST_NAME("NOP (multibyte)");
             nextop = F8;
@@ -508,7 +509,7 @@ uintptr_t dynarec64_660F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int
                     GETEX(q1, 0, 0);
                     GETGX_empty(q0);
                     VSEQ_D(q0, q0, q1);
-                    break;                
+                    break;
                 case 0x2B:
                     INST_NAME("PACKUSDW Gx, Ex"); // SSE4 opcode!
                     nextop = F8;
diff --git a/src/dynarec/rv64/dynarec_rv64_660f.c b/src/dynarec/rv64/dynarec_rv64_660f.c
index 98c00e29..14aca05f 100644
--- a/src/dynarec/rv64/dynarec_rv64_660f.c
+++ b/src/dynarec/rv64/dynarec_rv64_660f.c
@@ -146,6 +146,7 @@ uintptr_t dynarec64_660F(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int
             LD(x3, gback, gdoffset + 8);
             SD(x3, wback, fixedaddress);
             break;
+        case 0x19:
         case 0x1F:
             INST_NAME("NOP (multibyte)");
             nextop = F8;
diff --git a/src/dynarec/rv64/dynarec_rv64_660f_vector.c b/src/dynarec/rv64/dynarec_rv64_660f_vector.c
index 41960c73..038f6f3f 100644
--- a/src/dynarec/rv64/dynarec_rv64_660f_vector.c
+++ b/src/dynarec/rv64/dynarec_rv64_660f_vector.c
@@ -190,6 +190,7 @@ uintptr_t dynarec64_660F_vector(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t i
             SD(x5, ed, fixedaddress);
             SMWRITE2();
             break;
+        case 0x19:
         case 0x1F:
             return 0;
         case 0x28:
diff --git a/src/emu/x64run660f.c b/src/emu/x64run660f.c
index 372d4a64..7d4a36a0 100644
--- a/src/emu/x64run660f.c
+++ b/src/emu/x64run660f.c
@@ -174,6 +174,7 @@ uintptr_t Run660F(x64emu_t *emu, rex_t rex, uintptr_t addr)
         ED->q[0] = GX->q[1];

         break;

 

+    case 0x19:

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

         nextop = F8;

         FAKEED(0);