On Mon, 18 Apr 2022 at 18:48, Paul Brook <p...@nowt.org> wrote: > > Add TCG translation of guest AVX/AVX2 instructions > This comprises: > > * VEX encodings of most (all?) "legacy" SSE operations. > These typically add an extra source operand, and clear the unused half > of the destination register (SSE encodings leave this unchanged) > Previously we were incorrectly translating VEX encoded instructions > as if they were legacy SSE encodings. > * 256-bit variants of many instructions. AVX adds floating point > operations. AVX2 adds integer operations. > * A few new instructions (VBROADCAST, VGATHER, VZERO) > > Signed-off-by: Paul Brook <p...@nowt.org> > --- > target/i386/cpu.c | 8 +- > target/i386/helper.h | 2 + > target/i386/ops_sse.h | 2606 ++++++++++++++++++++++++---------- > target/i386/ops_sse_header.h | 364 +++-- > target/i386/tcg/fpu_helper.c | 3 + > target/i386/tcg/translate.c | 1902 +++++++++++++++++++------ > 6 files changed, 3597 insertions(+), 1288 deletions(-)
Massively too large for a single patch, I'm afraid. This needs to be split, probably into at least twenty patches, which each are a reviewable chunk of code that does one coherent thing. (Also I think Paolo may have been looking at AVX implementation?) thanks -- PMM