x86emul: support AVX512{F,ER} reciprocal insns
authorJan Beulich <jbeulich@suse.com>
Fri, 24 May 2019 08:27:24 +0000 (10:27 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 24 May 2019 08:27:24 +0000 (10:27 +0200)
commit2f44d1b3a2c73c89450ccba9e4205a1583348265
tree0e0217fc636775434dfabd0a4dba8ce0c3b21ad8
parent42ad3d019a6cffa302786d290126e0f8097e064a
x86emul: support AVX512{F,ER} reciprocal insns

Also include the only other AVX512ER insn pair, VEXP2P{D,S}.

Note that despite the replacement of the SHA insns' table slots there's
no need to special case their decoding: Their insn-specific code already
sets op_bytes (as was required due to simd_other), and TwoOp is of no
relevance for legacy encoded SIMD insns.

The raising of #UD when EVEX.L'L is 3 for AVX512ER scalar insns is done
to be on the safe side. The SDM does not clarify behavior there, and
it's even more ambiguous here (without AVX512VL in the picture).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
tools/tests/x86_emulator/Makefile
tools/tests/x86_emulator/evex-disp8.c
tools/tests/x86_emulator/simd.c
tools/tests/x86_emulator/simd.h
tools/tests/x86_emulator/test_x86_emulator.c
tools/tests/x86_emulator/x86-emulate.h
xen/arch/x86/x86_emulate/x86_emulate.c
xen/include/asm-x86/cpufeature.h