diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-05-17 20:42:01 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-05-17 20:42:01 +0200 |
| commit | 66b3303f2218fb9711e52148b0a6e2bfd680bc50 (patch) | |
| tree | d4629f67d9f59a2db695a58390b54e37bd18558f /src | |
| parent | 47c3fad83bd3dfedd30625abf74e2e8c085c8be7 (diff) | |
| download | box64-66b3303f2218fb9711e52148b0a6e2bfd680bc50.tar.gz box64-66b3303f2218fb9711e52148b0a6e2bfd680bc50.zip | |
[DYNAREC] Added 66 0F D3/F3 opcodes
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/dynarec_arm64_660f.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/dynarec/dynarec_arm64_660f.c b/src/dynarec/dynarec_arm64_660f.c index 6a6196fe..526c62ca 100755 --- a/src/dynarec/dynarec_arm64_660f.c +++ b/src/dynarec/dynarec_arm64_660f.c @@ -1085,6 +1085,16 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n break; + case 0xD3: + INST_NAME("PSRLQ Gx,Ex"); + nextop = F8; + GETGX(q0); + GETEX(q1, 0); + v0 = fpu_get_scratch(dyn); + NEG_64(v0, q1); + VMOVeD(v0, 1, v0, 0); + USHLQ_64(q0, q0, v0); + break; case 0xD4: INST_NAME("PADDQ Gx,Ex"); nextop = F8; @@ -1327,7 +1337,16 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n VMOVeD(v0, 1, v0, 0); SSHLQ_32(q0, q0, v0); break; - + case 0xF3: + INST_NAME("PSLLQ Gx,Ex"); + nextop = F8; + GETGX(q0); + GETEX(q1, 0); + v0 = fpu_get_scratch(dyn); + VMOVQ(v0, q1); + VMOVeD(v0, 1, v0, 0); + USHLQ_64(q0, q0, v0); + break; case 0xF4: INST_NAME("PMULUDQ Gx,Ex"); nextop = F8; |