The following changes since commit e8d693e12af9cbb89d724baadfcc08559669e279:
tests/qtest: Do not use versioned pc-q35-5.2 machine anymore (2026-08-11 16:12:34 -0400)
are available in the Git repository at:
https://github.com/qualcomm/qemu tags/pull-hex-20260812v2-1
for you to fetch changes up to 2e555f5b44d1586517e44d47f73afa6062f48b93:
tests/hexagon: add tests for HVX bfloat (2026-08-11 23:45:45 -0700)
----------------------------------------------------------------
Hexagon queue
v2 fixes build errors introduced while mitigating a checkpatch
failure.
Fixes:
* ssub32_saturate, ssub64_saturate fixes
Features:
* l2vic device
* qtimer device
* HVX-IEEE instructions (v68+)
* HVX GVec overrides for v{avg*,absdiff,sadd,*}
----------------------------------------------------------------
Brian Cain (24):
hw/hexagon: add hex-subsys
hw/hexagon: move VTCM to the common machine state
hw/hexagon: move global registers to hex-subsys
hw/hexagon: move the TLB to hex-subsys
hw/hexagon: group the CPUs in a cluster
bitops.h: Add find_first_bit32()
hw/hexagon: extract get_reg_value/set_reg_value stubs in globalreg
hw/hexagon: connect l2vic device
hw/hexagon/virt: instantiate virtio-mmio transports
hw/hexagon/virt: add l2vic interrupt-controller and virtio-mmio FDT nodes
hw/hexagon/virt: connect pl011 UART interrupt
tests/qtest: add L2VIC qtest
tests/functional/hexagon: add arch_tests functional test
hw/timer: Add QCT QTimer device model
hw/hexagon: connect qtimer device
tests/qtest: add qct-qtimer qtest
tests/functional/hexagon: enable more arch_tests cases
host-utils: fix ssub32/64_saturate return type and clamp direction
target/hexagon: add GVec overrides for HVX saturating add/sub
target/hexagon: add GVec override for HVX vmpyih multiply
target/hexagon: add GVec overrides for HVX absolute difference
target/hexagon: add GVec overrides for HVX vector average
tests/tcg/hexagon: add HVX test for V6_vsubwsat saturation
tests/tcg/hexagon: add HVX tests for vabsdiff
Matheus Tavares Bernardino (15):
target/hexagon: fix incorrect/too-permissive HVX encodings
target/hexagon/cpu: add HVX IEEE FP extension
hexagon: group cpu configurations in their own struct
hexagon: print info on "-d in_asm" for disabled IEEE FP instructions
target/hexagon: add v68 HVX IEEE float arithmetic insns
target/hexagon: add v68 HVX IEEE float min/max insns
target/hexagon: add v68 HVX IEEE float misc insns
target/hexagon: add v68 HVX IEEE float conversion insns
target/hexagon: add v68 HVX IEEE float compare insns
target/hexagon: add v73 HVX IEEE bfloat16 insns
tests/hexagon: add tests for v68 HVX IEEE float arithmetics
tests/hexagon: add tests for v68 HVX IEEE float min/max
tests/hexagon: add tests for v68 HVX IEEE float conversions
tests/hexagon: add tests for v68 HVX IEEE float comparisons
tests/hexagon: add tests for HVX bfloat
Sid Manning (1):
hw/intc: Add l2vic interrupt controller
Taylor Simpson (1):
Hexagon (target/hexagon) Clean up disassembly of control and system regs
MAINTAINERS | 7 +
docs/devel/hexagon-l2vic.rst | 55 +++
docs/devel/index-internals.rst | 1 +
include/hw/hexagon/hex-subsys.h | 32 ++
include/hw/hexagon/hexagon.h | 6 +
include/hw/hexagon/hexagon_globalreg.h | 8 +
include/hw/hexagon/virt.h | 4 +-
include/hw/intc/hex-l2vic.h | 61 +++
include/hw/timer/qct-qtimer.h | 43 ++
include/qemu/bitops.h | 30 +-
include/qemu/host-utils.h | 24 +-
target/hexagon/cpu.h | 12 +-
target/hexagon/cpu_bits.h | 12 +-
target/hexagon/gen_tcg_hvx.h | 170 +++++++
target/hexagon/genptr.h | 4 +
target/hexagon/helper.h | 5 +
target/hexagon/mmvec/hvx_ieee_fp.h | 69 +++
target/hexagon/mmvec/macros.h | 11 +-
target/hexagon/mmvec/mmvec.h | 3 +
target/hexagon/printinsn.h | 2 +-
target/hexagon/translate.h | 1 +
tests/tcg/hexagon/hex_test.h | 32 ++
tests/tcg/hexagon/hvx_misc.h | 73 +++
target/hexagon/attribs_def.h.inc | 9 +
disas/hexagon.c | 4 +-
hw/hexagon/hex-subsys.c | 175 +++++++
hw/hexagon/hexagon_dsp.c | 45 +-
hw/hexagon/hexagon_globalreg.c | 65 ++-
hw/hexagon/virt.c | 130 ++++--
hw/intc/hex-l2vic.c | 556 ++++++++++++++++++++++
hw/timer/qct-qtimer.c | 667 +++++++++++++++++++++++++++
target/hexagon/arch.c | 8 +
target/hexagon/cpu.c | 23 +-
target/hexagon/decode.c | 4 +-
target/hexagon/genptr.c | 70 +++
target/hexagon/mmvec/hvx_ieee_fp.c | 137 ++++++
target/hexagon/op_helper.c | 37 +-
target/hexagon/printinsn.c | 108 ++++-
target/hexagon/translate.c | 5 +-
tests/qtest/l2vic-test.c | 249 ++++++++++
tests/qtest/qct-qtimer-test.c | 385 ++++++++++++++++
tests/tcg/hexagon/fp_hvx.c | 226 +++++++++
tests/tcg/hexagon/fp_hvx_cmp.c | 275 +++++++++++
tests/tcg/hexagon/fp_hvx_cvt.c | 219 +++++++++
tests/tcg/hexagon/fp_hvx_disabled.c | 57 +++
tests/tcg/hexagon/hvx_misc.c | 77 ++++
hw/hexagon/Kconfig | 3 +
hw/hexagon/meson.build | 1 +
hw/intc/Kconfig | 3 +
hw/intc/meson.build | 2 +
hw/intc/trace-events | 4 +
hw/timer/Kconfig | 3 +
hw/timer/meson.build | 2 +
hw/timer/trace-events | 5 +
target/hexagon/gen_printinsn.py | 14 +-
target/hexagon/gen_tcg_funcs.py | 12 +
target/hexagon/hex_common.py | 27 ++
target/hexagon/imported/mmvec/encode_ext.def | 126 ++++-
target/hexagon/imported/mmvec/ext.idef | 369 ++++++++++++++-
target/hexagon/meson.build | 1 +
tests/functional/hexagon/test_arch_tests.py | 38 ++
tests/qtest/meson.build | 2 +-
tests/tcg/hexagon/Makefile.target | 14 +
63 files changed, 4658 insertions(+), 164 deletions(-)
create mode 100644 docs/devel/hexagon-l2vic.rst
create mode 100644 include/hw/hexagon/hex-subsys.h
create mode 100644 include/hw/intc/hex-l2vic.h
create mode 100644 include/hw/timer/qct-qtimer.h
create mode 100644 target/hexagon/mmvec/hvx_ieee_fp.h
create mode 100644 hw/hexagon/hex-subsys.c
create mode 100644 hw/intc/hex-l2vic.c
create mode 100644 hw/timer/qct-qtimer.c
create mode 100644 target/hexagon/mmvec/hvx_ieee_fp.c
create mode 100644 tests/qtest/l2vic-test.c
create mode 100644 tests/qtest/qct-qtimer-test.c
create mode 100644 tests/tcg/hexagon/fp_hvx.c
create mode 100644 tests/tcg/hexagon/fp_hvx_cmp.c
create mode 100644 tests/tcg/hexagon/fp_hvx_cvt.c
create mode 100644 tests/tcg/hexagon/fp_hvx_disabled.c