[PATCH v2 0/8] target/arm: Fix some Neon trapping corner cases
Peter Maydell <[email protected]>
| Newsgroups | org.nongnu.qemu-arm,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
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