target/i386: reimplement 0x0f 0x50-0x5f, add AVX
commit03b4588070b647398acd4d6a654836bba554c800
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 1 Sep 2022 12:27:55 +0000 (1 14:27 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 18 Oct 2022 11:58:05 +0000 (18 13:58 +0200)
treea6aa41de86b3f10a84b3968645d9ffeb9ac22f56
parent1d0efbdb35f619db9178e862742335d7c472c1a4
target/i386: reimplement 0x0f 0x50-0x5f, add AVX

These are mostly floating-point SSE operations.  The odd ones out
are MOVMSK and CVTxx2yy, the others are straightforward.

Unary operations are a bit special in AVX because they have 2 operands
for PD/PS operands (VEX.vvvv must be 1111b), and 3 operands for SD/SS.
They are handled using X86_OP_GROUP3 for compactness.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
target/i386/tcg/decode-new.c.inc
target/i386/tcg/emit.c.inc
target/i386/tcg/translate.c