All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/8] Hexagon (target/hexagon) Check opcodes versions
@ 2026-02-17 21:22 Taylor Simpson
  2026-02-17 21:22 ` [PATCH v3 1/8] Hexagon (target/hexagon) Properly handle Hexagon CPU version Taylor Simpson
                   ` (8 more replies)
  0 siblings, 9 replies; 19+ messages in thread
From: Taylor Simpson @ 2026-02-17 21:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: brian.cain, matheus.bernardino, sid.manning, marco.liebel,
	richard.henderson, philmd, ale, anjo, ltaylorsimpson

Currently, all versions of Hexagon CPU are treated the same, and all
opcodes are able to run on any version.  This series changes the behavior
such that only the opcodes available on the currently executing Hexagon
CPU version can execute.

Changes include:
Mark which Hexagon CPU version is currently executing
Check that each opcode is supported in the Hexagon CPU version
If not, generate INVALID_PACKET opcode, which is converted to SIGILL
Properly handle disassembly (-d in_asm)
Test case added

Co-authored-by: Matheus Tavares Bernardino <matheus.bernardino@oss.qualcomm.com>
Co-authored-by: Brian Cain <brian.cain@oss.qualcomm.com>

Changes in v2:
- Rebase with Brian Cain's "Handle some invalid encodings" series
- Add older opcodes to tag_rev_info.c.inc
- Change tag_rev_info to use HexagonVersion
      Suggested by Richard Henderson <richard.henderson@linaro.org>
- Disassembly includes valid opcodes inside packet with invalid opcodes
- Remove unused function - snpring_a_pkt_debug

Changes in v3:
- Use a struct to hold Hexagon definition rather than a simple enum
      Suggested by Anton Johansson <anjo@rev.ng>

Brian Cain (1):
  tests/tcg/hexagon: Add test for revision-gated instruction decoding

Matheus Tavares Bernardino (1):
  Hexagon (target/hexagon) Introduce tag_rev_info.c.inc

Taylor Simpson (6):
  Hexagon (target/hexagon) Properly handle Hexagon CPU version
  Hexagon (linux-user/hexagon) Identify Hexagon version in ELF file
  Hexagon (target/hexagon) Add Hexagon definition field to DisasContext
  Hexagon (target/hexagon) Check each opcode against current CPU
    definition
  Hexagon (target/hexagon) Disassembly of invalid packets
  Hexagon (target/hexagon) Remove snprint_a_pkt_debug

 target/hexagon/cpu-qom.h             |  27 ++
 target/hexagon/cpu.h                 |   2 +
 target/hexagon/cpu_bits.h            |   4 +-
 target/hexagon/decode.h              |   2 +
 target/hexagon/printinsn.h           |   4 +-
 target/hexagon/translate.h           |   1 +
 disas/hexagon.c                      |   3 +-
 linux-user/hexagon/elfload.c         |  43 +-
 target/hexagon/cpu.c                 |  48 ++-
 target/hexagon/decode.c              |  52 ++-
 target/hexagon/printinsn.c           |  40 +-
 target/hexagon/translate.c           |   1 +
 tests/tcg/hexagon/check_rev_gating.c | 141 ++++++
 target/hexagon/tag_rev_info.c.inc    | 613 +++++++++++++++++++++++++++
 tests/tcg/hexagon/Makefile.target    |   6 +
 15 files changed, 911 insertions(+), 76 deletions(-)
 create mode 100644 tests/tcg/hexagon/check_rev_gating.c
 create mode 100644 target/hexagon/tag_rev_info.c.inc

-- 
2.43.0



^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2026-04-09 17:12 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-17 21:22 [PATCH v3 0/8] Hexagon (target/hexagon) Check opcodes versions Taylor Simpson
2026-02-17 21:22 ` [PATCH v3 1/8] Hexagon (target/hexagon) Properly handle Hexagon CPU version Taylor Simpson
2026-02-24 12:58   ` Anton Johansson via qemu development
2026-02-17 21:22 ` [PATCH v3 2/8] Hexagon (linux-user/hexagon) Identify Hexagon version in ELF file Taylor Simpson
2026-02-24 13:00   ` Anton Johansson via qemu development
2026-02-17 21:22 ` [PATCH v3 3/8] Hexagon (target/hexagon) Add Hexagon definition field to DisasContext Taylor Simpson
2026-02-24 13:20   ` Anton Johansson via qemu development
2026-02-17 21:22 ` [PATCH v3 4/8] Hexagon (target/hexagon) Introduce tag_rev_info.c.inc Taylor Simpson
2026-02-24 13:24   ` Anton Johansson via qemu development
2026-02-24 16:09     ` Taylor Simpson
2026-02-17 21:22 ` [PATCH v3 5/8] Hexagon (target/hexagon) Check each opcode against current CPU definition Taylor Simpson
2026-02-24 16:41   ` Anton Johansson via qemu development
2026-02-17 21:22 ` [PATCH v3 6/8] Hexagon (target/hexagon) Disassembly of invalid packets Taylor Simpson
2026-02-24 16:57   ` Anton Johansson via qemu development
2026-02-17 21:22 ` [PATCH v3 7/8] tests/tcg/hexagon: Add test for revision-gated instruction decoding Taylor Simpson
2026-03-27 19:53   ` Marco Liebel
2026-02-17 21:22 ` [PATCH v3 8/8] Hexagon (target/hexagon) Remove snprint_a_pkt_debug Taylor Simpson
2026-02-24 16:58   ` Anton Johansson via qemu development
2026-04-09 17:11 ` [PATCH v3 0/8] Hexagon (target/hexagon) Check opcodes versions Brian Cain

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.