about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-24 14:42:20 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-24 14:42:20 +0100
commitc4198554adbb0d9f99b1e0b06929a3fc3980331f (patch)
tree3cc953820e24e55407f7dfc0cf44f462ccf3659f
parented45a8d6662b9d4e170734d51f7f39d21f762335 (diff)
downloadbox64-c4198554adbb0d9f99b1e0b06929a3fc3980331f.tar.gz
box64-c4198554adbb0d9f99b1e0b06929a3fc3980331f.zip
[DYNAREC] Added 66 0F F8..FE opcodes
-rwxr-xr-xsrc/dynarec/dynarec_arm64_660f.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/dynarec/dynarec_arm64_660f.c b/src/dynarec/dynarec_arm64_660f.c
index 9d8bc079..4d5dc0de 100755
--- a/src/dynarec/dynarec_arm64_660f.c
+++ b/src/dynarec/dynarec_arm64_660f.c
@@ -821,6 +821,56 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
             VUMULL_32(v0, q0, q1);

             break;

 

+        case 0xF8:

+            INST_NAME("PSUBB Gx,Ex");

+            nextop = F8;

+            GETGX(v0);

+            GETEX(q0, 0);

+            VSUBQ_8(v0, v0, q0);

+            break;

+        case 0xF9:

+            INST_NAME("PSUBW Gx,Ex");

+            nextop = F8;

+            GETGX(v0);

+            GETEX(q0, 0);

+            VSUBQ_16(v0, v0, q0);

+            break;

+        case 0xFA:

+            INST_NAME("PSUBD Gx,Ex");

+            nextop = F8;

+            GETGX(v0);

+            GETEX(q0, 0);

+            VSUBQ_32(v0, v0, q0);

+            break;

+        case 0xFB:

+            INST_NAME("PSUBQ Gx,Ex");

+            nextop = F8;

+            GETGX(v0);

+            GETEX(q0, 0);

+            VSUBQ_64(v0, v0, q0);

+            break;

+        case 0xFC:

+            INST_NAME("PADDB Gx,Ex");

+            nextop = F8;

+            GETGX(v0);

+            GETEX(q0, 0);

+            VADDQ_8(v0, v0, q0);

+            break;

+        case 0xFD:

+            INST_NAME("PADDW Gx,Ex");

+            nextop = F8;

+            GETGX(v0);

+            GETEX(q0, 0);

+            VADDQ_16(v0, v0, q0);

+            break;

+        case 0xFE:

+            INST_NAME("PADDD Gx,Ex");

+            nextop = F8;

+            GETGX(v0);

+            GETEX(q0, 0);

+            VADDQ_32(v0, v0, q0);

+            break;

+

         default:

             DEFAULT;

     }