mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 18:23:57 -06:00
target/i386: Introduce 256-bit vector helpers
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>
This commit is contained in:
parent
6e0cac782a
commit
b98f886c8f
4 changed files with 14 additions and 0 deletions
|
@ -218,6 +218,8 @@ DEF_HELPER_3(movq, void, env, ptr, ptr)
|
||||||
#include "ops_sse_header.h"
|
#include "ops_sse_header.h"
|
||||||
#define SHIFT 1
|
#define SHIFT 1
|
||||||
#include "ops_sse_header.h"
|
#include "ops_sse_header.h"
|
||||||
|
#define SHIFT 2
|
||||||
|
#include "ops_sse_header.h"
|
||||||
|
|
||||||
DEF_HELPER_3(rclb, tl, env, tl, tl)
|
DEF_HELPER_3(rclb, tl, env, tl, tl)
|
||||||
DEF_HELPER_3(rclw, tl, env, tl, tl)
|
DEF_HELPER_3(rclw, tl, env, tl, tl)
|
||||||
|
|
|
@ -35,7 +35,11 @@
|
||||||
#define W(n) ZMM_W(n)
|
#define W(n) ZMM_W(n)
|
||||||
#define L(n) ZMM_L(n)
|
#define L(n) ZMM_L(n)
|
||||||
#define Q(n) ZMM_Q(n)
|
#define Q(n) ZMM_Q(n)
|
||||||
|
#if SHIFT == 1
|
||||||
#define SUFFIX _xmm
|
#define SUFFIX _xmm
|
||||||
|
#else
|
||||||
|
#define SUFFIX _ymm
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define LANE_WIDTH (SHIFT ? 16 : 8)
|
#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 SSE_HELPER_S
|
||||||
|
|
||||||
|
#undef LANE_WIDTH
|
||||||
#undef SHIFT
|
#undef SHIFT
|
||||||
#undef XMM_ONLY
|
#undef XMM_ONLY
|
||||||
#undef Reg
|
#undef Reg
|
||||||
|
|
|
@ -21,7 +21,11 @@
|
||||||
#define SUFFIX _mmx
|
#define SUFFIX _mmx
|
||||||
#else
|
#else
|
||||||
#define Reg ZMMReg
|
#define Reg ZMMReg
|
||||||
|
#if SHIFT == 1
|
||||||
#define SUFFIX _xmm
|
#define SUFFIX _xmm
|
||||||
|
#else
|
||||||
|
#define SUFFIX _ymm
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define dh_alias_Reg ptr
|
#define dh_alias_Reg ptr
|
||||||
|
|
|
@ -3065,3 +3065,6 @@ void helper_movq(CPUX86State *env, void *d, void *s)
|
||||||
|
|
||||||
#define SHIFT 1
|
#define SHIFT 1
|
||||||
#include "ops_sse.h"
|
#include "ops_sse.h"
|
||||||
|
|
||||||
|
#define SHIFT 2
|
||||||
|
#include "ops_sse.h"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue