[PATCH v2 0/8] target/arm: Fix some Neon trapping corner cases

Peter Maydell posted 8 patches 1 month, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260817123838.1578060-1-peter.maydell@linaro.org
Maintainers: Peter Maydell <peter.maydell@linaro.org>
target/arm/cpu-max.c            |   1 +
target/arm/cpu.h                |  17 +++++
target/arm/cpu64.c              |   1 +
target/arm/helper.c             |  91 ++++++++++++++++++++----
target/arm/tcg/cpu32.c          |  10 +++
target/arm/tcg/cpu64.c          |  10 +++
target/arm/tcg/hflags.c         | 102 +++++++++++++++++++++++++++
target/arm/tcg/translate-neon.c | 118 ++++++++++++++------------------
target/arm/tcg/translate-vfp.c  |  83 +++++++++++++---------
target/arm/tcg/translate.c      |   8 +++
target/arm/tcg/translate.h      |   3 +
11 files changed, 332 insertions(+), 112 deletions(-)
[PATCH v2 0/8] target/arm: Fix some Neon trapping corner cases
Posted by Peter Maydell 1 month, 1 week ago
This is v2 of a patchset which originally did three things (fix a bug
in syndrome info for VFP/Neon trapped insns; support the "trap Neon
insns" trap bits; support trapping VFP D16-D32 accesses). The first
of those is already upstream, so here we have just the patches for
the trap controls.

Changes v1->v2:

 * the first 4 patches of v1 have already been upstreamed
 * patches 1, 2, 3 in this v2 have already been reviewed
 * patch 4: switch to a positive ARM_FEATURE_NEON_TRAPS from
   the previous negative NO_NEON_TRAPS one
 * patch 5: fixed a missing check for EL1 being AArch64, and
   slightly rearranged things and improved the comments. I opted
   not to take the rearrangement suggested by RTH in review on v1
 * patches 6 and 7: refactored to use a vfp_dregs_ok() function
   as suggested by RTH
 * patch 8: new, makes the neon code use a similar neon_dregs_ok()
   purely as a cleanup and to make it match the vfp code

thanks
-- PMM

Peter Maydell (8):
  target/arm: Handle NSACR.NSASEDIS in CPACR accesses
  target/arm: Handle NSACR.NSASEDIS in HCPTR accesses
  target/arm: Update confusing comment in cpacr_write()
  target/arm: Add new feature ARM_FEATURE_NEON_TRAPS
  target/arm: Implement CPACR.ASEDIS and HCPTR.TASE
  target/arm: Pull VFP dregs checks out into a function
  target/arm: Implement CPACR.D32DIS
  target/arm: Pull Neon dregs checks out into a function

 target/arm/cpu-max.c            |   1 +
 target/arm/cpu.h                |  17 +++++
 target/arm/cpu64.c              |   1 +
 target/arm/helper.c             |  91 ++++++++++++++++++++----
 target/arm/tcg/cpu32.c          |  10 +++
 target/arm/tcg/cpu64.c          |  10 +++
 target/arm/tcg/hflags.c         | 102 +++++++++++++++++++++++++++
 target/arm/tcg/translate-neon.c | 118 ++++++++++++++------------------
 target/arm/tcg/translate-vfp.c  |  83 +++++++++++++---------
 target/arm/tcg/translate.c      |   8 +++
 target/arm/tcg/translate.h      |   3 +
 11 files changed, 332 insertions(+), 112 deletions(-)

-- 
2.43.0