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