Add HMX system emulation features and log the HMX opcodes as 'UNIMP' for
now.

"target/hexagon: implement mxclracc" is the sole patch without a R-b in v3.

In v3:
- Moved mxclracc effects to "commit" stage so there's no issue w/packet
replay/idempotency.
- Fixed potential null pointer deref by adding cpu->hmx link to TB_FLAGS.

In v2:
- Fixed the .introduced references in tag_rev_info.c.inc to use the correct
arch revision for the HMX opcodes.
- Fix the override for mxclracc.

v2: 
https://lore.kernel.org/qemu-devel/[email protected]/
v1: 
https://lore.kernel.org/qemu-devel/[email protected]/

Brian Cain (8):
  target/hexagon: add HMX attrs, state
  hw/hexagon: add the HMX context device
  target/hexagon: add per-CPU HMX configuration
  target/hexagon: import HMX instruction definitions
  target/hexagon: gate HMX exec on SSR:XE2
  hw/hexagon: describe HMX in the device tree
  hw/hexagon: migrate the HMX state
  target/hexagon: implement mxclracc

 include/hw/hexagon/hexagon.h               |   5 +
 include/hw/hexagon/hexagon_hmx_context.h   |  24 ++
 target/hexagon/cpu.h                       |   9 +
 target/hexagon/gen_tcg_hmx.h               |  13 +
 target/hexagon/helper.h                    |   2 +
 target/hexagon/hmx_config.h                |  17 +
 target/hexagon/hmx_state.h                 |  92 ++++++
 target/hexagon/insn.h                      |   1 +
 target/hexagon/translate.h                 |   2 +
 target/hexagon/attribs_def.h.inc           |  13 +
 hw/hexagon/hex-board.c                     |   6 +
 hw/hexagon/hex-subsys.c                    |  23 ++
 hw/hexagon/hexagon_hmx_context.c           | 157 +++++++++
 target/hexagon/cpu.c                       |  26 ++
 target/hexagon/decode.c                    |   3 +
 target/hexagon/genptr.c                    |   1 +
 target/hexagon/hmx_config.c                |  15 +
 target/hexagon/op_helper.c                 |  12 +
 target/hexagon/translate.c                 |  36 +++
 target/hexagon/tag_rev_info.c.inc          | 349 +++++++++++++++++++++
 hw/hexagon/meson.build                     |   1 +
 target/hexagon/gen_helper_funcs.py         |   3 +-
 target/hexagon/gen_idef_parser_funcs.py    |   6 +
 target/hexagon/hex_common.py               |   2 +
 target/hexagon/imported/allext.idef        |   6 +
 target/hexagon/imported/allextenc.def      |   4 +
 target/hexagon/imported/hmx/encode_ext.def | 149 +++++++++
 target/hexagon/imported/hmx/ext.idef       | 175 +++++++++++
 target/hexagon/meson.build                 |  18 +-
 tests/functional/hexagon/test_systests.py  |   3 +
 30 files changed, 1164 insertions(+), 9 deletions(-)
 create mode 100644 include/hw/hexagon/hexagon_hmx_context.h
 create mode 100644 target/hexagon/gen_tcg_hmx.h
 create mode 100644 target/hexagon/hmx_config.h
 create mode 100644 target/hexagon/hmx_state.h
 create mode 100644 hw/hexagon/hexagon_hmx_context.c
 create mode 100644 target/hexagon/hmx_config.c
 create mode 100644 target/hexagon/imported/hmx/encode_ext.def
 create mode 100644 target/hexagon/imported/hmx/ext.idef

-- 
2.34.1

Reply via email to