The following changes since commit af531756d25541a1b3b3d9a14e72e7fedd941a2e:
Merge remote-tracking branch 'remotes/philmd/tags/renesas-20211030' into staging (2021-10-30 11:31:41 -0700) are available in the git repository at: https://github.com/quic/qemu tags/pull-hex-20211031 for you to fetch changes up to 325837222d78fc882a168397284da83b0954f2c1: Hexagon HVX (tests/tcg/hexagon) histogram test (2021-10-31 11:26:32 -0500) ---------------------------------------------------------------- This series adds support for the Hexagon Vector eXtensions (HVX) These instructions are documented here https://developer.qualcomm.com/downloads/qualcomm-hexagon-v66-hvx-programmer-s-reference-manual Hexagon HVX is a wide vector engine with 128 byte vectors. See patch 01 Hexagon HVX README for more information. ---------------------------------------------------------------- Taylor Simpson (30): Hexagon HVX (target/hexagon) README Hexagon HVX (target/hexagon) add Hexagon Vector eXtensions (HVX) to core Hexagon HVX (target/hexagon) register names Hexagon HVX (target/hexagon) instruction attributes Hexagon HVX (target/hexagon) macros Hexagon HVX (target/hexagon) import macro definitions Hexagon HVX (target/hexagon) semantics generator Hexagon HVX (target/hexagon) semantics generator - part 2 Hexagon HVX (target/hexagon) C preprocessor for decode tree Hexagon HVX (target/hexagon) instruction utility functions Hexagon HVX (target/hexagon) helper functions Hexagon HVX (target/hexagon) TCG generation Hexagon HVX (target/hexagon) helper overrides infrastructure Hexagon HVX (target/hexagon) helper overrides for histogram instructions Hexagon HVX (target/hexagon) helper overrides - vector assign & cmov Hexagon HVX (target/hexagon) helper overrides - vector add & sub Hexagon HVX (target/hexagon) helper overrides - vector shifts Hexagon HVX (target/hexagon) helper overrides - vector max/min Hexagon HVX (target/hexagon) helper overrides - vector logical ops Hexagon HVX (target/hexagon) helper overrides - vector compares Hexagon HVX (target/hexagon) helper overrides - vector splat and abs Hexagon HVX (target/hexagon) helper overrides - vector loads Hexagon HVX (target/hexagon) helper overrides - vector stores Hexagon HVX (target/hexagon) import semantics Hexagon HVX (target/hexagon) instruction decoding Hexagon HVX (target/hexagon) import instruction encodings Hexagon HVX (tests/tcg/hexagon) vector_add_int test Hexagon HVX (tests/tcg/hexagon) hvx_misc test Hexagon HVX (tests/tcg/hexagon) scatter_gather test Hexagon HVX (tests/tcg/hexagon) histogram test target/hexagon/cpu.h | 35 +- target/hexagon/gen_tcg_hvx.h | 903 +++++++++ target/hexagon/helper.h | 16 + target/hexagon/hex_arch_types.h | 5 + target/hexagon/hex_regs.h | 1 + target/hexagon/insn.h | 3 + target/hexagon/internal.h | 3 + target/hexagon/macros.h | 22 + target/hexagon/mmvec/decode_ext_mmvec.h | 24 + target/hexagon/mmvec/macros.h | 354 ++++ target/hexagon/mmvec/mmvec.h | 82 + target/hexagon/mmvec/system_ext_mmvec.h | 25 + target/hexagon/translate.h | 61 + tests/tcg/hexagon/hvx_histogram_input.h | 717 +++++++ tests/tcg/hexagon/hvx_histogram_row.h | 24 + target/hexagon/attribs_def.h.inc | 22 + target/hexagon/cpu.c | 80 +- target/hexagon/decode.c | 28 +- target/hexagon/gen_dectree_import.c | 13 + target/hexagon/gen_semantics.c | 33 + target/hexagon/genptr.c | 188 ++ target/hexagon/mmvec/decode_ext_mmvec.c | 236 +++ target/hexagon/mmvec/system_ext_mmvec.c | 47 + target/hexagon/op_helper.c | 282 ++- target/hexagon/translate.c | 239 ++- tests/tcg/hexagon/hvx_histogram.c | 88 + tests/tcg/hexagon/hvx_misc.c | 469 +++++ tests/tcg/hexagon/scatter_gather.c | 1011 ++++++++++ tests/tcg/hexagon/vector_add_int.c | 61 + target/hexagon/README | 81 +- target/hexagon/gen_helper_funcs.py | 115 +- target/hexagon/gen_helper_protos.py | 19 +- target/hexagon/gen_tcg_funcs.py | 257 ++- target/hexagon/hex_common.py | 13 + target/hexagon/imported/allext.idef | 25 + target/hexagon/imported/allext_macros.def | 25 + target/hexagon/imported/allextenc.def | 20 + target/hexagon/imported/allidefs.def | 1 + target/hexagon/imported/encode.def | 1 + target/hexagon/imported/macros.def | 88 + target/hexagon/imported/mmvec/encode_ext.def | 794 ++++++++ target/hexagon/imported/mmvec/ext.idef | 2606 ++++++++++++++++++++++++++ target/hexagon/imported/mmvec/macros.def | 842 +++++++++ target/hexagon/meson.build | 15 +- tests/tcg/hexagon/Makefile.target | 12 + tests/tcg/hexagon/hvx_histogram_row.S | 294 +++ 46 files changed, 10233 insertions(+), 47 deletions(-) create mode 100644 target/hexagon/gen_tcg_hvx.h create mode 100644 target/hexagon/mmvec/decode_ext_mmvec.h create mode 100644 target/hexagon/mmvec/macros.h create mode 100644 target/hexagon/mmvec/mmvec.h create mode 100644 target/hexagon/mmvec/system_ext_mmvec.h create mode 100644 tests/tcg/hexagon/hvx_histogram_input.h create mode 100644 tests/tcg/hexagon/hvx_histogram_row.h create mode 100644 target/hexagon/mmvec/decode_ext_mmvec.c create mode 100644 target/hexagon/mmvec/system_ext_mmvec.c create mode 100644 tests/tcg/hexagon/hvx_histogram.c create mode 100644 tests/tcg/hexagon/hvx_misc.c create mode 100644 tests/tcg/hexagon/scatter_gather.c create mode 100644 tests/tcg/hexagon/vector_add_int.c create mode 100644 target/hexagon/imported/allext.idef create mode 100644 target/hexagon/imported/allext_macros.def create mode 100644 target/hexagon/imported/allextenc.def create mode 100644 target/hexagon/imported/mmvec/encode_ext.def create mode 100644 target/hexagon/imported/mmvec/ext.idef create mode 100755 target/hexagon/imported/mmvec/macros.def create mode 100644 tests/tcg/hexagon/hvx_histogram_row.S