diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-10-10 16:38:04 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-10 10:38:04 +0200 |
| commit | 6250f03b098619bc6c2dabaedf8560775cdb9bdf (patch) | |
| tree | 696ab6b35d6f91d33e861aed8031c3d33d602d1d | |
| parent | 535798a7301442c1a1da3bd05c283ea62da48609 (diff) | |
| download | box64-6250f03b098619bc6c2dabaedf8560775cdb9bdf.tar.gz box64-6250f03b098619bc6c2dabaedf8560775cdb9bdf.zip | |
[DYNAREC][INTERP] Added a few multibyte nops (#3046)
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_0f.c | 5 | ||||
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_660f.c | 5 | ||||
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_0f.c | 5 | ||||
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_660f.c | 5 | ||||
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_0f.c | 5 | ||||
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_660f.c | 5 | ||||
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_660f_vector.c | 5 | ||||
| -rw-r--r-- | src/emu/x64run0f.c | 5 | ||||
| -rw-r--r-- | src/emu/x64run660f.c | 5 |
9 files changed, 45 insertions, 0 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c index efbff4fc..446822c0 100644 --- a/src/dynarec/arm64/dynarec_arm64_0f.c +++ b/src/dynarec/arm64/dynarec_arm64_0f.c @@ -393,6 +393,11 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin break; case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: case 0x1F: INST_NAME("NOP (multibyte)"); nextop = F8; diff --git a/src/dynarec/arm64/dynarec_arm64_660f.c b/src/dynarec/arm64/dynarec_arm64_660f.c index 800a2091..e486161f 100644 --- a/src/dynarec/arm64/dynarec_arm64_660f.c +++ b/src/dynarec/arm64/dynarec_arm64_660f.c @@ -164,6 +164,11 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n case 0x18: case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: case 0x1F: INST_NAME("NOP (multibyte)"); nextop = F8; diff --git a/src/dynarec/la64/dynarec_la64_0f.c b/src/dynarec/la64/dynarec_la64_0f.c index 6e27e59b..c4dcf9da 100644 --- a/src/dynarec/la64/dynarec_la64_0f.c +++ b/src/dynarec/la64/dynarec_la64_0f.c @@ -247,6 +247,11 @@ uintptr_t dynarec64_0F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int ni } break; case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: 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 2a82cea1..dd3d4468 100644 --- a/src/dynarec/la64/dynarec_la64_660f.c +++ b/src/dynarec/la64/dynarec_la64_660f.c @@ -172,6 +172,11 @@ uintptr_t dynarec64_660F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int break; case 0x18: case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: case 0x1F: INST_NAME("NOP (multibyte)"); nextop = F8; diff --git a/src/dynarec/rv64/dynarec_rv64_0f.c b/src/dynarec/rv64/dynarec_rv64_0f.c index f7b71b29..5cee64c1 100644 --- a/src/dynarec/rv64/dynarec_rv64_0f.c +++ b/src/dynarec/rv64/dynarec_rv64_0f.c @@ -310,6 +310,11 @@ uintptr_t dynarec64_0F(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni break; case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: case 0x1F: INST_NAME("NOP (multibyte)"); nextop = F8; diff --git a/src/dynarec/rv64/dynarec_rv64_660f.c b/src/dynarec/rv64/dynarec_rv64_660f.c index b7a8205f..8d1db074 100644 --- a/src/dynarec/rv64/dynarec_rv64_660f.c +++ b/src/dynarec/rv64/dynarec_rv64_660f.c @@ -146,6 +146,11 @@ uintptr_t dynarec64_660F(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int break; case 0x18: case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: 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 3b6f0b54..97c14cb4 100644 --- a/src/dynarec/rv64/dynarec_rv64_660f_vector.c +++ b/src/dynarec/rv64/dynarec_rv64_660f_vector.c @@ -204,6 +204,11 @@ uintptr_t dynarec64_660F_vector(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t i break; case 0x18: case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: case 0x1F: return 0; case 0x28: diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c index ee66c0ce..9895f3db 100644 --- a/src/emu/x64run0f.c +++ b/src/emu/x64run0f.c @@ -302,6 +302,11 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step) break; case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: case 0x1F: /* NOP (multi-byte) */ nextop = F8; FAKEED(0); diff --git a/src/emu/x64run660f.c b/src/emu/x64run660f.c index c3405bc5..8b801b92 100644 --- a/src/emu/x64run660f.c +++ b/src/emu/x64run660f.c @@ -183,6 +183,11 @@ uintptr_t Run660F(x64emu_t *emu, rex_t rex, uintptr_t addr) case 0x18: case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: case 0x1F: /* NOP (multi-byte) */ nextop = F8; FAKEED(0); |