about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-05-17 20:42:01 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-05-17 20:42:01 +0200
commit66b3303f2218fb9711e52148b0a6e2bfd680bc50 (patch)
treed4629f67d9f59a2db695a58390b54e37bd18558f /src
parent47c3fad83bd3dfedd30625abf74e2e8c085c8be7 (diff)
downloadbox64-66b3303f2218fb9711e52148b0a6e2bfd680bc50.tar.gz
box64-66b3303f2218fb9711e52148b0a6e2bfd680bc50.zip
[DYNAREC] Added 66 0F D3/F3 opcodes
Diffstat (limited to 'src')
-rwxr-xr-xsrc/dynarec/dynarec_arm64_660f.c21
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;