[PULL 00/25] hex queue

Brian Cain posted 25 patches 1 week, 3 days ago
There is a newer version of this series
docs/system/hexagon/emulation.rst            |   8 +-
configs/targets/hexagon-softmmu.mak          |   2 +-
include/hw/hexagon/hexagon_tlb.h             |   5 +-
target/hexagon/cpu.h                         |   6 +-
target/hexagon/cpu_helper.h                  |   1 +
target/hexagon/gen_tcg.h                     |  10 +
target/hexagon/gen_tcg_hvx.h                 | 242 ++++----
target/hexagon/gen_tcg_sys.h                 |   2 +-
target/hexagon/helper.h                      |   2 +-
target/hexagon/hex_mmu.h                     |   2 +-
target/hexagon/internal.h                    |   4 +
target/hexagon/mmvec/hvx_ieee_fp.h           |   3 +
target/hexagon/mmvec/macros.h                | 119 +++-
target/hexagon/mmvec/mmvec.h                 |  94 ++-
target/hexagon/mmvec/mmvec_qfloat.h          | 133 +++++
target/hexagon/sys_macros.h                  |   7 +-
target/hexagon/translate.h                   |  22 +-
target/hexagon/reg_fields_def.h.inc          |   2 +
hw/hexagon/hexagon_hvx_context.c             |   5 +
hw/hexagon/hexagon_tlb.c                     |  27 +-
linux-user/hexagon/cpu_loop.c                |   4 +
linux-user/hexagon/elfload.c                 |   9 +
target/hexagon/cpu.c                         |  41 +-
target/hexagon/cpu_helper.c                  |  25 +-
target/hexagon/gdbstub.c                     |  67 ++-
target/hexagon/genptr.c                      |  32 +-
target/hexagon/hex_interrupts.c              |   4 +-
target/hexagon/hex_mmu.c                     |  22 +-
target/hexagon/hexswi.c                      |   2 +-
target/hexagon/machine.c                     |   2 -
target/hexagon/mmvec/hvx_ieee_fp.c           |  24 +
target/hexagon/mmvec/hvx_qfloat.c            | 832 +++++++++++++++++++++++++++
target/hexagon/mmvec/system_ext_mmvec.c      |  14 +-
target/hexagon/op_helper.c                   |  59 +-
target/hexagon/translate.c                   |  73 ++-
tests/tcg/hexagon/atomics.c                  |  40 ++
tests/tcg/hexagon/check_rev_gating.c         |  12 +-
tests/tcg/hexagon/hvx_ext.c                  | 248 ++++++++
tests/tcg/hexagon/multiple-writes.c          | 107 +++-
tests/tcg/hexagon/qfloat_v81.c               | 119 ++++
tests/tcg/hexagon/v81_hvx.c                  | 259 +++++++++
target/hexagon/tag_rev_info.c.inc            |  54 ++
gdbstub/gdb-xml/hexagon-sys.xml              | 157 +++++
target/hexagon/gen_tcg_funcs.py              |   2 +-
target/hexagon/hex_common.py                 |  96 +++-
target/hexagon/imported/mmvec/encode_ext.def |  63 +-
target/hexagon/imported/mmvec/ext.idef       | 235 ++++++++
target/hexagon/meson.build                   |   1 +
tests/functional/hexagon/test_systests.py    |   3 +
tests/tcg/hexagon/meson.build                |  25 +
50 files changed, 3019 insertions(+), 308 deletions(-)
create mode 100644 target/hexagon/mmvec/mmvec_qfloat.h
create mode 100644 target/hexagon/mmvec/hvx_qfloat.c
create mode 100644 tests/tcg/hexagon/hvx_ext.c
create mode 100644 tests/tcg/hexagon/qfloat_v81.c
create mode 100644 tests/tcg/hexagon/v81_hvx.c
create mode 100644 gdbstub/gdb-xml/hexagon-sys.xml
[PULL 00/25] hex queue
Posted by Brian Cain 1 week, 3 days ago
The following changes since commit 615ece3c406b262996e569f29ea6eed0d81c4d8d:

  Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging (2026-10-09 15:49:53 +0200)

are available in the Git repository at:

  https://github.com/qualcomm/qemu tags/pull-hex-20261011

for you to fetch changes up to 48166a6c9ed117fe35a5202acf8e49a9bc36f220:

  target/hexagon: implement nmi (2026-10-11 21:09:30 -0700)

----------------------------------------------------------------
Hexagon: HVX-floating point, gdbstub-sys, etc

* HVX floating point
* gdbstub support for system registers
* other: get rid of *next_PC, EXCP_YIELD for pause(), implement nmi,
ll/sc+tlb fixes, barriers.

----------------------------------------------------------------
Brian Cain (25):
      target/hexagon: pass the packet PC to lock implementations
      target/hexagon: stage the PC in the PC register, drop next_PC
      target/hexagon: drop wait_next_pc
      tests/functional/hexagon: add bestwait systest
      gdbstub/gdb-xml: Add hexagon sys regs
      target/hexagon: gdbstub - Add sys reg support
      target/hexagon: derive HVX storage sizes from types
      target/hexagon: Allow temporary HVX write and future write
      tests/tcg/hexagon: Cover HVX vector write conflicts
      target/hexagon: add v81 HVX compare, align, and convert instructions
      target/hexagon: fix V6_vcmov reserved-bit encoding
      target/hexagon: use vector payload size for HVX operations
      target/hexagon: use object stride for HVX pair operations
      target/hexagon: reserve internal HVX vector state for QFloat
      target/hexagon: add the QFloat logic
      target/hexagon: select QFloat inst semantics by rev
      linux-user/hexagon: add v75-v81 HWCAPs
      tests/tcg/hexagon: add v81, ext-QFloat tests
      target/hexagon: emit explicit TCG memory barriers
      target/hexagon: clear LL/SC reservations at context boundaries
      hw/hexagon: protect the shared architectural TLB
      target/hexagon: publish TLB updates before flushing
      tests/tcg/hexagon: cover LL/SC reservation clearing
      target/hexagon: yield on system-mode pause
      target/hexagon: implement nmi

 docs/system/hexagon/emulation.rst            |   8 +-
 configs/targets/hexagon-softmmu.mak          |   2 +-
 include/hw/hexagon/hexagon_tlb.h             |   5 +-
 target/hexagon/cpu.h                         |   6 +-
 target/hexagon/cpu_helper.h                  |   1 +
 target/hexagon/gen_tcg.h                     |  10 +
 target/hexagon/gen_tcg_hvx.h                 | 242 ++++----
 target/hexagon/gen_tcg_sys.h                 |   2 +-
 target/hexagon/helper.h                      |   2 +-
 target/hexagon/hex_mmu.h                     |   2 +-
 target/hexagon/internal.h                    |   4 +
 target/hexagon/mmvec/hvx_ieee_fp.h           |   3 +
 target/hexagon/mmvec/macros.h                | 119 +++-
 target/hexagon/mmvec/mmvec.h                 |  94 ++-
 target/hexagon/mmvec/mmvec_qfloat.h          | 133 +++++
 target/hexagon/sys_macros.h                  |   7 +-
 target/hexagon/translate.h                   |  22 +-
 target/hexagon/reg_fields_def.h.inc          |   2 +
 hw/hexagon/hexagon_hvx_context.c             |   5 +
 hw/hexagon/hexagon_tlb.c                     |  27 +-
 linux-user/hexagon/cpu_loop.c                |   4 +
 linux-user/hexagon/elfload.c                 |   9 +
 target/hexagon/cpu.c                         |  41 +-
 target/hexagon/cpu_helper.c                  |  25 +-
 target/hexagon/gdbstub.c                     |  67 ++-
 target/hexagon/genptr.c                      |  32 +-
 target/hexagon/hex_interrupts.c              |   4 +-
 target/hexagon/hex_mmu.c                     |  22 +-
 target/hexagon/hexswi.c                      |   2 +-
 target/hexagon/machine.c                     |   2 -
 target/hexagon/mmvec/hvx_ieee_fp.c           |  24 +
 target/hexagon/mmvec/hvx_qfloat.c            | 832 +++++++++++++++++++++++++++
 target/hexagon/mmvec/system_ext_mmvec.c      |  14 +-
 target/hexagon/op_helper.c                   |  59 +-
 target/hexagon/translate.c                   |  73 ++-
 tests/tcg/hexagon/atomics.c                  |  40 ++
 tests/tcg/hexagon/check_rev_gating.c         |  12 +-
 tests/tcg/hexagon/hvx_ext.c                  | 248 ++++++++
 tests/tcg/hexagon/multiple-writes.c          | 107 +++-
 tests/tcg/hexagon/qfloat_v81.c               | 119 ++++
 tests/tcg/hexagon/v81_hvx.c                  | 259 +++++++++
 target/hexagon/tag_rev_info.c.inc            |  54 ++
 gdbstub/gdb-xml/hexagon-sys.xml              | 157 +++++
 target/hexagon/gen_tcg_funcs.py              |   2 +-
 target/hexagon/hex_common.py                 |  96 +++-
 target/hexagon/imported/mmvec/encode_ext.def |  63 +-
 target/hexagon/imported/mmvec/ext.idef       | 235 ++++++++
 target/hexagon/meson.build                   |   1 +
 tests/functional/hexagon/test_systests.py    |   3 +
 tests/tcg/hexagon/meson.build                |  25 +
 50 files changed, 3019 insertions(+), 308 deletions(-)
 create mode 100644 target/hexagon/mmvec/mmvec_qfloat.h
 create mode 100644 target/hexagon/mmvec/hvx_qfloat.c
 create mode 100644 tests/tcg/hexagon/hvx_ext.c
 create mode 100644 tests/tcg/hexagon/qfloat_v81.c
 create mode 100644 tests/tcg/hexagon/v81_hvx.c
 create mode 100644 gdbstub/gdb-xml/hexagon-sys.xml
Re: [PULL 00/25] hex queue
Posted by Richard Henderson 1 week, 1 day ago
On 10/12/26 06:16, Brian Cain wrote:
> The following changes since commit 615ece3c406b262996e569f29ea6eed0d81c4d8d:
> 
>    Merge tag 'for-upstream' ofhttps://gitlab.com/bonzini/qemu into staging (2026-10-09 15:49:53 +0200)
> 
> are available in the Git repository at:
> 
>    https://github.com/qualcomm/qemu tags/pull-hex-20261011
> 
> for you to fetch changes up to 48166a6c9ed117fe35a5202acf8e49a9bc36f220:
> 
>    target/hexagon: implement nmi (2026-10-11 21:09:30 -0700)
> 
> ----------------------------------------------------------------
> Hexagon: HVX-floating point, gdbstub-sys, etc
> 
> * HVX floating point
> * gdbstub support for system registers
> * other: get rid of *next_PC, EXCP_YIELD for pause(), implement nmi,
> ll/sc+tlb fixes, barriers.

Applied, thanks.

r~