]> git.proxmox.com Git - mirror_qemu.git/commitdiff
target/i386: Introduce 256-bit vector helpers
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 1 Sep 2022 07:04:17 +0000 (09:04 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 18 Oct 2022 11:58:04 +0000 (13:58 +0200)
The new implementation of SSE will cover AVX from the get go, because
all the work for the helper functions is already done.  We just need to
build them.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
target/i386/helper.h
target/i386/ops_sse.h
target/i386/ops_sse_header.h
target/i386/tcg/fpu_helper.c

index 39a3c24182e569c092def4c3ee98d4a65b56368b..a2c2c085a37a25659ca1c78666f92a3380f3515c 100644 (file)
@@ -218,6 +218,8 @@ DEF_HELPER_3(movq, void, env, ptr, ptr)
 #include "ops_sse_header.h"
 #define SHIFT 1
 #include "ops_sse_header.h"
+#define SHIFT 2
+#include "ops_sse_header.h"
 
 DEF_HELPER_3(rclb, tl, env, tl, tl)
 DEF_HELPER_3(rclw, tl, env, tl, tl)
index 18d217ebf571746f60af8328f4c411c477f1e604..090ba013b3f9a02ce2aa847d6ea536ea136605b4 100644 (file)
 #define W(n) ZMM_W(n)
 #define L(n) ZMM_L(n)
 #define Q(n) ZMM_Q(n)
+#if SHIFT == 1
 #define SUFFIX _xmm
+#else
+#define SUFFIX _ymm
+#endif
 #endif
 
 #define LANE_WIDTH (SHIFT ? 16 : 8)
@@ -2379,6 +2383,7 @@ void glue(helper_aeskeygenassist, SUFFIX)(CPUX86State *env, Reg *d, Reg *s,
 
 #undef SSE_HELPER_S
 
+#undef LANE_WIDTH
 #undef SHIFT
 #undef XMM_ONLY
 #undef Reg
index e7866a8395f8f8e295a7d7c1b63607e46f0425fa..440f1c0e78e93188d964397ae18c89f0843e42a7 100644 (file)
 #define SUFFIX _mmx
 #else
 #define Reg ZMMReg
+#if SHIFT == 1
 #define SUFFIX _xmm
+#else
+#define SUFFIX _ymm
+#endif
 #endif
 
 #define dh_alias_Reg ptr
index 9b59026e37c5a0f7223794bd2f4f30602512fba9..5f3f7a1085e4e1e91ffc25ee83e5d39970e1f8d8 100644 (file)
@@ -3065,3 +3065,6 @@ void helper_movq(CPUX86State *env, void *d, void *s)
 
 #define SHIFT 1
 #include "ops_sse.h"
+
+#define SHIFT 2
+#include "ops_sse.h"