diff options
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; |