This is the second set of patches for A64 Neon. The last patch
set did a complete coverage of some of the smaller and simpler
instruction groupings; this patch set attacks a few of the
larger groupings (3-same; scalar 3-same; 3-different; shift-imm;
scalar shift-imm) and doesn't attempt complete coverage of them.
My rule of thumb was to (a) implement enough instructions to
demonstrate that the general decode and set of sub-functions/loops
was adequate (b) aim to cover at least as much as the SuSE tree.

Remaining things in SuSE 1.6 tree not yet implemented:
 3-reg-same MLA, MLS, MUL, PMUL, SMAX, UMAX, SMIN, UMIN,
            SSHL, USHL, SQSHL, UQSHL, SRSHL, URSHL
 2-reg-misc XTN, FABS, FNEG, NOT

Changes v1->v2:
 * added _i32 versions of read_vec_element and write_vec_element,
   which let us avoid messing about with TCGv_i64 temporaries and
   truncation when we're operating on 32 bits at a time and calling
   helpers which take and return TCGv_i32 values
   (these are in patch 1 for read and patch 6 for write)
 * patch 3: use -(setcond(cond)) for CMGT and friends rather than
   setcond(!cond) - 1
 * patch 5: use tcg_andc, tcg_orc in 3same-logic
 * patch 6: add missing unsupported_encoding() call in disas_simd_3same_int
   (some unsupported insns were asserting)
 * patch 6: simd_3same_int: fix table naming, make them static const,
   move the typedef to top of file so it can be used by other fns
 * patch 8: use deposit in shift-by-immediate

RTH: I've applied your reviewed-by tag to most of these patches
since they're either the same or (for patches 3, 5, 8) just the
minor tweaks you recommended. I've left patches 1 and 6 without
your tag, because of (a) the read/write_vec_element_i32() addition
and (b) patch 6 got more fixes than the others.

thanks
-- PMM

Alex Bennée (1):
  target-arm: A64: Add SIMD shift by immediate

Peter Maydell (7):
  target-arm: A64: Add SIMD three-different multiply accumulate insns
  target-arm: A64: Add SIMD three-different ABDL instructions
  target-arm: A64: Add SIMD scalar 3 same add, sub and compare ops
  target-arm: A64: Add top level decode for SIMD 3-same group
  target-arm: A64: Add logic ops from SIMD 3 same group
  target-arm: A64: Add integer ops from SIMD 3-same group
  target-arm: A64: Add simple SIMD 3-same floating point ops

 target-arm/translate-a64.c | 1281 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 1253 insertions(+), 28 deletions(-)

-- 
1.8.5


Reply via email to