diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-02-17 21:14:10 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-17 14:14:10 +0100 |
| commit | 9ec7930eb1618cb7ebbdd769681ffe4e6c3e0d4d (patch) | |
| tree | 6adcb14324476ea3860d7249e5e979e7ca22b025 | |
| parent | 26dd597a1b27fe8e3be0df1f3640428d2791e497 (diff) | |
| download | box64-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.c | 1 | ||||
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_660f.c | 3 | ||||
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_660f.c | 1 | ||||
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_660f_vector.c | 1 | ||||
| -rw-r--r-- | src/emu/x64run660f.c | 1 |
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); |