qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v6 00/26] tcg: generic vector operations


From: Richard Henderson
Subject: [Qemu-devel] [PATCH v6 00/26] tcg: generic vector operations
Date: Tue, 21 Nov 2017 22:25:08 +0100

Quite a lot has changed since last time.

The representation has changed such that the vector length and element
size is stored in the TCGOp structure.  The functions have changed such
that the element size is passed explicitly rather than being encoded in
the function name.

I've added additional operations for multiply, immediate shifts, compares,
element interleaves, and widening.  I believe this is all we'll need for
implementing ARM SVE, so I'll leave off for now.

This has been tested vs aa64 risu on both x86_64 and aa64 hosts.


r~


Richard Henderson (26):
  tcg: Remove TCGV_UNUSED* and TCGV_IS_UNUSED*
  tcg: Dynamically allocate TCGOps
  tcg: Generalize TCGOp parameters
  tcg: Add types and basic operations for host vectors
  tcg: Add generic vector expanders
  tcg: Allow multiple word entries into the constant pool
  tcg: Add tcg_signed_cond
  target/arm: Align vector registers
  target/arm: Use vector infrastructure for aa64 add/sub/logic
  target/arm: Use vector infrastructure for aa64 mov/not/neg
  target/arm: Use vector infrastructure for aa64 dup/movi
  tcg/i386: Add vector operations
  tcg: Add tcg_expand_vec_op and tcg-target.opc.h
  tcg: Add generic vector ops for interleave
  target/arm: Use vector infrastructure for aa64 zip/uzp/trn/xtn
  tcg: Add generic vector ops for constant shifts
  target/arm: Use vector infrastructure for aa64 constant shifts
  tcg: Add generic vector ops for comparisons
  target/arm: Use vector infrastructure for aa64 compares
  tcg/i386: Add vector operations/expansions for shift/cmp/interleave
  tcg: Add generic vector ops for multiplication
  target/arm: Use vector infrastructure for aa64 multiplies
  tcg: Add generic vector ops for extension
  target/arm: Use vector infrastructure for aa64 widening shifts
  tcg/i386: Add vector operations/expansions for mul/extend
  tcg/aarch64: Add vector operations

 Makefile.target               |    4 +-
 accel/tcg/tcg-runtime.h       |  102 +++
 include/exec/gen-icount.h     |    9 +-
 include/qemu/queue.h          |    5 +
 target/arm/cpu.h              |    2 +-
 target/arm/translate.h        |   10 +-
 tcg/aarch64/tcg-target.h      |   30 +-
 tcg/aarch64/tcg-target.opc.h  |    3 +
 tcg/i386/tcg-target.h         |   46 +-
 tcg/i386/tcg-target.opc.h     |   11 +
 tcg/tcg-gvec-desc.h           |   49 +
 tcg/tcg-op-gvec.h             |  219 +++++
 tcg/tcg-op.h                  |   55 +-
 tcg/tcg-opc.h                 |   59 ++
 tcg/tcg.h                     |  135 ++-
 accel/tcg/tcg-runtime-gvec.c  |  616 +++++++++++++
 target/alpha/translate.c      |   22 +-
 target/arm/translate-a64.c    | 1135 ++++++++++++++++-------
 target/arm/translate.c        |   31 +-
 target/cris/translate.c       |    4 +-
 target/hppa/translate.c       |   63 +-
 target/i386/translate.c       |   13 +-
 target/lm32/translate.c       |    2 -
 target/m68k/translate.c       |   14 +-
 target/microblaze/translate.c |    4 -
 target/mips/translate.c       |    2 +-
 target/nios2/translate.c      |    6 +-
 target/ppc/translate.c        |    2 +-
 target/s390x/translate.c      |   42 +-
 target/sh4/translate.c        |    2 +-
 target/sparc/translate.c      |    2 +-
 target/tilegx/translate.c     |   10 +-
 target/unicore32/translate.c  |    4 +-
 tcg/aarch64/tcg-target.inc.c  |  674 +++++++++++++-
 tcg/i386/tcg-target.inc.c     | 1325 +++++++++++++++++++++++++--
 tcg/optimize.c                |   20 +-
 tcg/tcg-op-gvec.c             | 2010 +++++++++++++++++++++++++++++++++++++++++
 tcg/tcg-op-vec.c              |  566 ++++++++++++
 tcg/tcg-op.c                  |   24 -
 tcg/tcg-pool.inc.c            |  115 ++-
 tcg/tcg.c                     |  286 ++++--
 accel/tcg/Makefile.objs       |    2 +-
 tcg/README                    |  148 +++
 43 files changed, 7107 insertions(+), 776 deletions(-)
 create mode 100644 tcg/aarch64/tcg-target.opc.h
 create mode 100644 tcg/i386/tcg-target.opc.h
 create mode 100644 tcg/tcg-gvec-desc.h
 create mode 100644 tcg/tcg-op-gvec.h
 create mode 100644 accel/tcg/tcg-runtime-gvec.c
 create mode 100644 tcg/tcg-op-gvec.c
 create mode 100644 tcg/tcg-op-vec.c

-- 
2.13.6




reply via email to

[Prev in Thread] Current Thread [Next in Thread]