diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-02-08 00:01:08 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-07 17:01:08 +0100 |
| commit | 16f0adec6fa029699145f639e5bb3a7c0950ace4 (patch) | |
| tree | f4b967b92dbdb5b402b7adf1c9f2d1b15472750e /src | |
| parent | ba6ff73c6922322b2b37a6c7063bc1645c00cfab (diff) | |
| download | box64-16f0adec6fa029699145f639e5bb3a7c0950ace4.tar.gz box64-16f0adec6fa029699145f639e5bb3a7c0950ace4.zip | |
[LA64_DYNAREC] Added more opcodes (#2324)
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_66.c | 6 | ||||
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_f30f.c | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/dynarec/la64/dynarec_la64_66.c b/src/dynarec/la64/dynarec_la64_66.c index 4d9b0034..bf9cc495 100644 --- a/src/dynarec/la64/dynarec_la64_66.c +++ b/src/dynarec/la64/dynarec_la64_66.c @@ -530,6 +530,12 @@ uintptr_t dynarec64_66(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int ni BSTRINSz(gd, x2, 15, 0); } break; + case 0x98: + INST_NAME("CBW"); + SLLI_D(x1, xRAX, 56); + SRAI_D(x1, x1, 56); + BSTRINSz(xRAX, x1, 15, 0); + break; case 0xA4: if (rep) { INST_NAME("REP MOVSB"); diff --git a/src/dynarec/la64/dynarec_la64_f30f.c b/src/dynarec/la64/dynarec_la64_f30f.c index 8d704f44..3ef072c2 100644 --- a/src/dynarec/la64/dynarec_la64_f30f.c +++ b/src/dynarec/la64/dynarec_la64_f30f.c @@ -87,6 +87,13 @@ uintptr_t dynarec64_F30F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int GETGX_empty(q0); VPACKEV_W(q0, q1, q1); break; + case 0x16: + INST_NAME("MOVSHDUP Gx, Ex"); + nextop = F8; + GETEX(q1, 0, 0); + GETGX_empty(q0); + VPACKOD_W(q0, q1, q1); + break; case 0x1E: INST_NAME("NOP / ENDBR32 / ENDBR64"); nextop = F8; |