The following changes since commit 278238505d28d292927bff7683f39fb4fbca7fd1:
Merge tag 'pull-tcg-20230511-2' of https://gitlab.com/rth7680/qemu into staging (2023-05-11 11:44:23 +0100) are available in the Git repository at: https://github.com/quic/qemu tags/pull-hex-20230512-1 for you to fetch changes up to a1c042e1cc4c1da209f7c3e04aec5e622c7bcdc0: Hexagon (linux-user/hexagon): handle breakpoints (2023-05-12 14:43:14 -0700) ---------------------------------------------------------------- This PR can be broken down into the following parts - Add support for new architecture versions v68/v69/v71/v73 - Short-circuit writes to temporaries when packet semantics permit this - Move bookkeeping items from CPUHexagonState to DisasContext - Correct '-cpu help' output and handling of unknown Hexagon versions - Enable LLDB debugging - Miscellaneous fixes and improvements ---------------------------------------------------------------- Brian Cain (1): Hexagon (gdbstub): fix p3:0 read and write via stub Marco Liebel (1): Remove test_vshuff from hvx_misc tests Matheus Tavares Bernardino (9): Hexagon (target/hexagon/*.py): raise exception on reg parsing error Hexagon: list available CPUs with `-cpu help` Hexagon: append eflags to unknown cpu model string Hexagon (iclass): update J4_hintjumpr slot constraints Hexagon (decode): look for pkts with multiple insns at the same slot gdbstub: only send stop-reply packets when allowed to gdbstub: add test for untimely stop-reply packets Hexagon: add core gdbstub xml data for LLDB Hexagon (linux-user/hexagon): handle breakpoints Paolo Bonzini (1): target/hexagon: fix = vs. == mishap Taylor Simpson (32): Hexagon (target/hexagon) Add support for v68/v69/v71/v73 Hexagon (target/hexagon) Add v68 scalar instructions Hexagon (tests/tcg/hexagon) Add v68 scalar tests Hexagon (target/hexagon) Add v68 HVX instructions Hexagon (tests/tcg/hexagon) Add v68 HVX tests Hexagon (target/hexagon) Add v69 HVX instructions Hexagon (tests/tcg/hexagon) Add v69 HVX tests Hexagon (target/hexagon) Add v73 scalar instructions Hexagon (tests/tcg/hexagon) Add v73 scalar tests meson.build Add CONFIG_HEXAGON_IDEF_PARSER Hexagon (target/hexagon) Add DisasContext arg to gen_log_reg_write Hexagon (target/hexagon) Add overrides for loop setup instructions Hexagon (target/hexagon) Add overrides for allocframe/deallocframe Hexagon (target/hexagon) Add overrides for clr[tf]new Hexagon (target/hexagon) Remove log_reg_write from op_helper.[ch] Hexagon (target/hexagon) Eliminate uses of log_pred_write function Hexagon (target/hexagon) Clean up pred_written usage Hexagon (target/hexagon) Don't overlap dest writes with source reads Hexagon (target/hexagon) Mark registers as read during packet analysis Hexagon (target/hexagon) Short-circuit packet register writes Hexagon (target/hexagon) Short-circuit packet predicate writes Hexagon (target/hexagon) Short-circuit packet HVX writes Hexagon (target/hexagon) Short-circuit more HVX single instruction packets Hexagon (target/hexagon) Add overrides for disabled idef-parser insns Hexagon (target/hexagon) Make special new_value for USR Hexagon (target/hexagon) Move new_value to DisasContext Hexagon (target/hexagon) Move new_pred_value to DisasContext Hexagon (target/hexagon) Move pred_written to DisasContext Hexagon (target/hexagon) Move pkt_has_store_s1 to DisasContext Hexagon (target/hexagon) Move items to DisasContext Hexagon (target/hexagon) Additional instructions handled by idef-parser Hexagon (gdbstub): add HVX support MAINTAINERS | 1 + configure | 2 +- configs/targets/hexagon-linux-user.mak | 1 + meson.build | 1 + gdbstub/internals.h | 5 + linux-user/hexagon/target_elf.h | 20 +- target/hexagon/cpu.h | 17 +- target/hexagon/gen_tcg.h | 138 +++++++- target/hexagon/gen_tcg_hvx.h | 35 +++ target/hexagon/genptr.h | 6 +- target/hexagon/helper.h | 6 +- target/hexagon/idef-parser/parser-helpers.h | 2 +- target/hexagon/internal.h | 2 + target/hexagon/macros.h | 57 ++-- target/hexagon/mmvec/macros.h | 9 +- target/hexagon/op_helper.h | 16 +- target/hexagon/translate.h | 52 ++- target/hexagon/attribs_def.h.inc | 22 +- gdbstub/gdbstub.c | 37 ++- gdbstub/softmmu.c | 13 +- gdbstub/user.c | 24 +- linux-user/hexagon/cpu_loop.c | 3 + target/hexagon/arch.c | 3 +- target/hexagon/cpu.c | 42 ++- target/hexagon/decode.c | 30 +- target/hexagon/gdbstub.c | 84 +++++ target/hexagon/genptr.c | 347 +++++++++++++++++---- target/hexagon/iclass.c | 6 +- target/hexagon/idef-parser/parser-helpers.c | 67 ++-- target/hexagon/op_helper.c | 154 ++++++--- target/hexagon/translate.c | 275 +++++++++++----- tests/tcg/hexagon/fpstuff.c | 54 ++++ tests/tcg/hexagon/hvx_misc.c | 66 ++-- tests/tcg/hexagon/invalid-slots.c | 29 ++ tests/tcg/hexagon/misc.c | 47 +++ tests/tcg/hexagon/read_write_overlap.c | 136 ++++++++ tests/tcg/hexagon/v68_hvx.c | 90 ++++++ tests/tcg/hexagon/v68_scalar.c | 186 +++++++++++ tests/tcg/hexagon/v69_hvx.c | 318 +++++++++++++++++++ tests/tcg/hexagon/v73_scalar.c | 96 ++++++ tests/tcg/hexagon/v6mpy_ref.c.inc | 161 ++++++++++ gdb-xml/hexagon-core.xml | 84 +++++ gdb-xml/hexagon-hvx.xml | 96 ++++++ target/hexagon/README | 14 +- target/hexagon/gen_analyze_funcs.py | 81 +++-- target/hexagon/gen_helper_funcs.py | 23 +- target/hexagon/gen_helper_protos.py | 12 +- target/hexagon/gen_idef_parser_funcs.py | 21 +- target/hexagon/gen_tcg_funcs.py | 99 +++--- target/hexagon/hex_common.py | 19 +- target/hexagon/idef-parser/idef-parser.lex | 38 ++- target/hexagon/idef-parser/idef-parser.y | 6 +- target/hexagon/imported/branch.idef | 7 +- target/hexagon/imported/encode_pp.def | 21 +- target/hexagon/imported/ldst.idef | 20 +- target/hexagon/imported/mmvec/encode_ext.def | 16 +- target/hexagon/imported/mmvec/ext.idef | 321 ++++++++++++++++++- tests/guest-debug/run-test.py | 16 +- tests/tcg/hexagon/Makefile.target | 21 ++ tests/tcg/multiarch/system/Makefile.softmmu-target | 16 +- 60 files changed, 3095 insertions(+), 496 deletions(-) create mode 100644 tests/tcg/hexagon/invalid-slots.c create mode 100644 tests/tcg/hexagon/read_write_overlap.c create mode 100644 tests/tcg/hexagon/v68_hvx.c create mode 100644 tests/tcg/hexagon/v68_scalar.c create mode 100644 tests/tcg/hexagon/v69_hvx.c create mode 100644 tests/tcg/hexagon/v73_scalar.c create mode 100644 tests/tcg/hexagon/v6mpy_ref.c.inc create mode 100644 gdb-xml/hexagon-core.xml create mode 100644 gdb-xml/hexagon-hvx.xml