Marco Liebel (20):
target/hexagon: manage HLX contexts through CCR
target/hexagon: add HLX attributes and exception cause
target/hexagon: add an HLX instruction trace event
target/hexagon: generate the opcode translator table
target/hexagon: add HLX register classes to generators
target/hexagon: add HLX helper support
target/hexagon: emit basic HLX vector operations inline
target/hexagon: add HLX unsigned saturating gvec operations
target/hexagon: add HLX compare and average gvec operations
target/hexagon: add HLX absdiff and sign-fill gvec operations
target/hexagon: translate packets with HLX instructions
target/hexagon: add HLX packet slot and resource checks
target/hexagon: decode HLX packets and add load and store
target/hexagon: add HLX common ALU instructions
target/hexagon: add HLX paired ALU instructions
target/hexagon: add HLX shift, average and lookup instructions
target/hexagon: add HLX multiply instructions
target/hexagon: expose HLX registers through the gdbstub
tests/tcg/hexagon: add HLX instruction tests
tests/functional/hexagon: add HLX system-mode tests
configs/targets/hexagon-linux-user.mak | 2 +-
configs/targets/hexagon-softmmu.mak | 2 +-
gdbstub/gdb-xml/hexagon-hlx.xml | 51 +
hw/hexagon/hex-subsys.c | 16 +
hw/hexagon/hexagon_hlx.c | 113 +
hw/hexagon/meson.build | 1 +
include/hw/hexagon/hexagon.h | 1 +
include/hw/hexagon/hexagon_hlx.h | 33 +
meson.build | 1 +
target/hexagon/attribs_def.h.inc | 23 +
target/hexagon/cpu.c | 34 +
target/hexagon/cpu.h | 24 +
target/hexagon/cpu_bits.h | 1 +
target/hexagon/cpu_helper.c | 36 +
target/hexagon/cpu_helper.h | 1 +
target/hexagon/decode.c | 118 +-
target/hexagon/gdbstub.c | 51 +
target/hexagon/gen_decodetree.py | 6 +-
target/hexagon/gen_dectree_import.c | 9 +-
target/hexagon/gen_helper_funcs.py | 86 +-
target/hexagon/gen_helper_protos.py | 7 +-
target/hexagon/gen_hlx_ext.py | 25 +
target/hexagon/gen_idef_parser_funcs.py | 3 +
target/hexagon/gen_tcg_func_table.py | 29 +
target/hexagon/gen_tcg_funcs.py | 7 +-
target/hexagon/gen_trans_funcs.py | 4 +-
target/hexagon/genptr.c | 23 +-
target/hexagon/helper.h | 36 +
target/hexagon/hex_common.py | 708 +++++-
target/hexagon/hexswi.c | 1 +
target/hexagon/hlx/decode_ext_hlx.c | 117 +
target/hexagon/hlx/decode_ext_hlx.h | 14 +
target/hexagon/hlx/hlx.h | 64 +
target/hexagon/hlx_gvec_tables.c | 286 +++
target/hexagon/hlx_gvec_tables.h | 25 +
target/hexagon/hlx_helper.c | 236 ++
target/hexagon/imported/allext.idef | 6 +
target/hexagon/imported/allextenc.def | 4 +
target/hexagon/imported/hlx/encode_ext.def | 180 ++
target/hexagon/imported/hlx_ext.idef | 540 +++++
target/hexagon/insn.h | 2 +
target/hexagon/internal.h | 2 +
target/hexagon/machine.c | 47 +-
target/hexagon/macros.h | 56 +
target/hexagon/meson.build | 53 +
target/hexagon/mmvec/macros.h | 5 +
target/hexagon/op_helper.c | 13 +
target/hexagon/opcodes.h | 1 +
target/hexagon/reg_fields_def.h.inc | 2 +
target/hexagon/trace-events | 6 +
target/hexagon/trace.h | 2 +
target/hexagon/translate.c | 128 +-
target/hexagon/translate.h | 48 +
tests/functional/hexagon/meson.build | 2 +
tests/functional/hexagon/test_hlx.py | 49 +
tests/tcg/hexagon/check_rev_gating.c | 10 +-
tests/tcg/hexagon/hlx_abs_cmp.c | 570 +++++
tests/tcg/hexagon/hlx_arith_h.c | 197 ++
tests/tcg/hexagon/hlx_arith_w.c | 695 ++++++
tests/tcg/hexagon/hlx_asm.h | 2286 ++++++++++++++++++++
tests/tcg/hexagon/hlx_assign_conv.c | 354 +++
tests/tcg/hexagon/hlx_basic.c | 119 +
tests/tcg/hexagon/hlx_lanes.c | 455 ++++
tests/tcg/hexagon/hlx_logical.c | 275 +++
tests/tcg/hexagon/hlx_lut_ilog2.c | 289 +++
tests/tcg/hexagon/hlx_mem.c | 258 +++
tests/tcg/hexagon/hlx_minmax_avg.c | 801 +++++++
tests/tcg/hexagon/hlx_mpy.c | 375 ++++
tests/tcg/hexagon/hlx_mpy_adv.c | 452 ++++
tests/tcg/hexagon/hlx_reg_writes.c | 151 ++
tests/tcg/hexagon/hlx_shift.c | 545 +++++
tests/tcg/hexagon/hlx_shift_acc.c | 275 +++
tests/tcg/hexagon/hlx_test.h | 162 ++
tests/tcg/hexagon/meson.build | 16 +
74 files changed, 11548 insertions(+), 77 deletions(-)
create mode 100644 gdbstub/gdb-xml/hexagon-hlx.xml
create mode 100644 hw/hexagon/hexagon_hlx.c
create mode 100644 include/hw/hexagon/hexagon_hlx.h
create mode 100755 target/hexagon/gen_hlx_ext.py
create mode 100755 target/hexagon/gen_tcg_func_table.py
create mode 100644 target/hexagon/hlx/decode_ext_hlx.c
create mode 100644 target/hexagon/hlx/decode_ext_hlx.h
create mode 100644 target/hexagon/hlx/hlx.h
create mode 100644 target/hexagon/hlx_gvec_tables.c
create mode 100644 target/hexagon/hlx_gvec_tables.h
create mode 100644 target/hexagon/hlx_helper.c
create mode 100644 target/hexagon/imported/hlx/encode_ext.def
create mode 100644 target/hexagon/imported/hlx_ext.idef
create mode 100644 target/hexagon/trace-events
create mode 100644 target/hexagon/trace.h
create mode 100755 tests/functional/hexagon/test_hlx.py
create mode 100644 tests/tcg/hexagon/hlx_abs_cmp.c
create mode 100644 tests/tcg/hexagon/hlx_arith_h.c
create mode 100644 tests/tcg/hexagon/hlx_arith_w.c
create mode 100644 tests/tcg/hexagon/hlx_asm.h
create mode 100644 tests/tcg/hexagon/hlx_assign_conv.c
create mode 100644 tests/tcg/hexagon/hlx_basic.c
create mode 100644 tests/tcg/hexagon/hlx_lanes.c
create mode 100644 tests/tcg/hexagon/hlx_logical.c
create mode 100644 tests/tcg/hexagon/hlx_lut_ilog2.c
create mode 100644 tests/tcg/hexagon/hlx_mem.c
create mode 100644 tests/tcg/hexagon/hlx_minmax_avg.c
create mode 100644 tests/tcg/hexagon/hlx_mpy.c
create mode 100644 tests/tcg/hexagon/hlx_mpy_adv.c
create mode 100644 tests/tcg/hexagon/hlx_reg_writes.c
create mode 100644 tests/tcg/hexagon/hlx_shift.c
create mode 100644 tests/tcg/hexagon/hlx_shift_acc.c
create mode 100644 tests/tcg/hexagon/hlx_test.h
--
2.43.0