about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-05-30 20:25:01 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-05-30 20:25:01 +0200
commite367a2bcc95a8ad1f292a231bffe12a8d2dcea84 (patch)
treeb416280bdd1aa6c52ba4e816cebaae0c65f2421b /src
parenta02283264a50176fbb1f5f2220cbe0591f846bc2 (diff)
downloadbox64-e367a2bcc95a8ad1f292a231bffe12a8d2dcea84.tar.gz
box64-e367a2bcc95a8ad1f292a231bffe12a8d2dcea84.zip
[ARM64_DYNAREC] Added AVX.66.0F 64-66 opcodes
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_avx_66_0f.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_avx_66_0f.c b/src/dynarec/arm64/dynarec_arm64_avx_66_0f.c
index e98210e2..7b1af9e2 100644
--- a/src/dynarec/arm64/dynarec_arm64_avx_66_0f.c
+++ b/src/dynarec/arm64/dynarec_arm64_avx_66_0f.c
@@ -119,6 +119,37 @@ uintptr_t dynarec64_AVX_66_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip,
             } else YMM0(gd);
             break;
 
+        case 0x64:
+            INST_NAME("VPCMPGTB Gx,Vx, Ex");
+            nextop = F8;
+            GETGX_empty_VXEX(v0, v2, v1, 0);
+            VCMGTQ_8(v0, v2, v1);
+            if(vex.l) {
+                GETGY_empty_VYEY(v0, v2, v1);
+                VCMGTQ_8(v0, v2, v1);
+            } else YMM0(gd);
+            break;
+        case 0x65:
+            INST_NAME("VPCMPGTW Gx, Vx, Ex");
+            nextop = F8;
+            GETGX_empty_VXEX(v0, v2, v1, 0);
+            VCMGTQ_16(v0, v2, v1);
+            if(vex.l) {
+                GETGY_empty_VYEY(v0, v2, v1);
+                VCMGTQ_16(v0, v2, v1);
+            } else YMM0(gd);
+            break;
+        case 0x66:
+            INST_NAME("VPCMPGTD Gx, Vx, Ex");
+            nextop = F8;
+            GETGX_empty_VXEX(v0, v2, v1, 0);
+            VCMGTQ_32(v0, v2, v1);
+            if(vex.l) {
+                GETGY_empty_VYEY(v0, v2, v1);
+                VCMGTQ_32(v0, v2, v1);
+            } else YMM0(gd);
+            break;
+
         case 0x6B:
             INST_NAME("PACKSSDW Gx,Ex");
             nextop = F8;