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. *** Known checkpatch issues *** The following are known checkpatch errors in the series target/hexagon/gen_semantics.c Suspicious ; after while (0) tests/tcg/hexagon/hvx_misc.c Spaces around operator in macro invocation Taylor Simpson (20): 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) support in gdbstub 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) 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/arch.h | 1 + target/hexagon/cpu.h | 35 +- target/hexagon/helper.h | 1 + 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 | 478 +++++ target/hexagon/mmvec/mmvec.h | 83 + target/hexagon/mmvec/system_ext_mmvec.h | 35 + target/hexagon/translate.h | 54 + 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/arch.c | 9 + target/hexagon/cpu.c | 72 +- target/hexagon/decode.c | 28 +- target/hexagon/gdbstub.c | 66 + target/hexagon/gen_dectree_import.c | 13 + target/hexagon/gen_semantics.c | 33 + target/hexagon/genptr.c | 111 ++ target/hexagon/mmvec/decode_ext_mmvec.c | 235 +++ target/hexagon/mmvec/system_ext_mmvec.c | 119 ++ target/hexagon/op_helper.c | 74 +- target/hexagon/translate.c | 199 ++ tests/tcg/hexagon/hvx_histogram.c | 88 + tests/tcg/hexagon/hvx_misc.c | 331 ++++ tests/tcg/hexagon/scatter_gather.c | 1011 ++++++++++ tests/tcg/hexagon/vector_add_int.c | 61 + target/hexagon/README | 83 +- target/hexagon/gen_helper_funcs.py | 111 +- target/hexagon/gen_helper_protos.py | 16 +- target/hexagon/gen_tcg_funcs.py | 254 ++- target/hexagon/hex_common.py | 9 +- 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 | 2 + tests/tcg/hexagon/Makefile.target | 12 + tests/tcg/hexagon/hvx_histogram_row.S | 294 +++ 48 files changed, 9110 insertions(+), 31 deletions(-) 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 -- 2.7.4