about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-08-08 05:21:52 +0800
committerGitHub <noreply@github.com>2025-08-07 23:21:52 +0200
commit1535907f2df715f10f18ab5941fa59cee0b55cb8 (patch)
tree4035429771b21781c29aeab02538bcd65dc567b6 /src
parent9eb1642ec828ff23fc46a1849ef37ab0688ff528 (diff)
downloadbox64-1535907f2df715f10f18ab5941fa59cee0b55cb8.tar.gz
box64-1535907f2df715f10f18ab5941fa59cee0b55cb8.zip
[LA64_DYNAREC] Fixed AVX VPBLENDW opcodes (#2917)
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/la64/dynarec_la64_avx_66_0f3a.c24
1 files changed, 6 insertions, 18 deletions
diff --git a/src/dynarec/la64/dynarec_la64_avx_66_0f3a.c b/src/dynarec/la64/dynarec_la64_avx_66_0f3a.c
index 13a4d75b..41157301 100644
--- a/src/dynarec/la64/dynarec_la64_avx_66_0f3a.c
+++ b/src/dynarec/la64/dynarec_la64_avx_66_0f3a.c
@@ -320,24 +320,12 @@ uintptr_t dynarec64_AVX_66_0F3A(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t i
             GETGY_empty_VYEY_xy(v0, v1, v2, 1);
             u8 = F8;
             d0 = fpu_get_scratch(dyn);
-            if (vex.l) {
-                // 256bits fast path
-                if (u8 == 0) {
-                    if (v0 != v1) XVOR_V(v0, v1, v1);
-                    break;
-                } else if (u8 == 0xFF) {
-                    if (v0 != v2) XVOR_V(v0, v2, v2);
-                    break;
-                }
-            } else {
-                // VEX.128 128bits fast path
-                if ((u8 & 0xf) == 0) {
-                    if (v0 != v1) VOR_V(v0, v1, v1);
-                    break;
-                } else if ((u8 & 0xf) == 0xF) {
-                    if (v0 != v2) VOR_V(v0, v2, v2);
-                    break;
-                }
+            if (u8 == 0) {
+                if (v0 != v1) VOR_Vxy(v0, v1, v1);
+                break;
+            } else if (u8 == 0xFF) {
+                if (v0 != v2) VOR_Vxy(v0, v2, v2);
+                break;
             }
             tmp64u = 0;
             for (int i = 0; i < 8; i++) {