qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/21] target/arm: Finish neon decodetree conversion
@ 2020-06-16 17:08 Peter Maydell
  2020-06-16 17:08 ` [PATCH 01/21] target/arm: Convert Neon 2-reg-misc VREV64 to decodetree Peter Maydell
                   ` (22 more replies)
  0 siblings, 23 replies; 45+ messages in thread
From: Peter Maydell @ 2020-06-16 17:08 UTC (permalink / raw)
  To: qemu-arm, qemu-devel; +Cc: Richard Henderson

This patchset completes the conversion of Neon to decodetree
by converting all the instructions in the 2-reg-misc grouping.

There are some potential further cleanups available, which I don't
propose to do (I've spent what feels like too much time on this
refactoring already; I want to move onto implementing FP16 now,
which is what the refactoring was intended to permit):

 * the oddball "TCG temps in global variables" cpu_V0, cpu_V1,
   cpu_M0 are now used only in the iwmmxt codegen; V0 and V1
   would be easy to replace with local temporaries. M0 is
   slightly trickier. The main thing that dissuades me from
   this refactoring is that I don't have an easy way to test the
   iwmmxt codegen.

 * we have a confusingly large number of ways to load and
   store from the Neon/VFP register file:
    - neon_load_reg/neon_store_reg
    - neon_load_reg64/neon_store_reg64
    - neon_load_reg32/neon_store_reg32
    - neon_load_element/neon_store_element
    - neon_load_element64/neon_store_element64
   which all have subtly different semantics. The way that
   neon_load_reg/neon_store_reg do a "create temp on load,
   destroy temp on store" and none of the rest do is particularly
   confusing. I'd like us to have fewer of these but it's not
   immediately obvious what the correct small set of primitives
   should be.

 * it would be nice to make the vfp and neon decode really
   separate translation units rather than #including them
   into translate.c someday

thanks
-- PMM

Peter Maydell (21):
  target/arm: Convert Neon 2-reg-misc VREV64 to decodetree
  target/arm: Convert Neon 2-reg-misc pairwise ops to decodetree
  target/arm: Convert VZIP, VUZP to decodetree
  target/arm: Convert Neon narrowing moves to decodetree
  target/arm: Convert Neon 2-reg-misc VSHLL to decodetree
  target/arm: Convert Neon VCVT f16/f32 insns to decodetree
  target/arm: Convert vectorised 2-reg-misc Neon ops to decodetree
  target/arm: Convert Neon 2-reg-misc crypto operations to decodetree
  target/arm: Rename NeonGenOneOpFn to NeonGenOne64OpFn
  target/arm: Fix capitalization in NeonGenTwo{Single,Double}OPFn
    typedefs
  target/arm: Make gen_swap_half() take separate src and dest
  target/arm: Convert Neon 2-reg-misc VREV32 and VREV16 to decodetree
  target/arm: Convert remaining simple 2-reg-misc Neon ops
  target/arm: Convert Neon VQABS, VQNEG to decodetree
  target/arm: Convert simple fp Neon 2-reg-misc insns
  target/arm: Convert Neon 2-reg-misc fp-compare-with-zero insns to
    decodetree
  target/arm: Convert Neon 2-reg-misc VRINT insns to decodetree
  target/arm: Convert Neon 2-reg-misc VCVT insns to decodetree
  target/arm: Convert Neon VSWP to decodetree
  target/arm: Convert Neon VTRN to decodetree
  target/arm: Move some functions used only in translate-neon.inc.c to
    that file

 target/arm/translate.h          |    8 +-
 target/arm/neon-dp.decode       |  106 +++
 target/arm/translate-a64.c      |    8 +-
 target/arm/translate-neon.inc.c | 1191 ++++++++++++++++++++++++++++++-
 target/arm/translate.c          | 1061 +--------------------------
 5 files changed, 1311 insertions(+), 1063 deletions(-)

-- 
2.20.1



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

end of thread, other threads:[~2020-06-20  0:21 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-16 17:08 [PATCH 00/21] target/arm: Finish neon decodetree conversion Peter Maydell
2020-06-16 17:08 ` [PATCH 01/21] target/arm: Convert Neon 2-reg-misc VREV64 to decodetree Peter Maydell
2020-06-19 22:36   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 02/21] target/arm: Convert Neon 2-reg-misc pairwise ops " Peter Maydell
2020-06-19 22:42   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 03/21] target/arm: Convert VZIP, VUZP " Peter Maydell
2020-06-19 22:47   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 04/21] target/arm: Convert Neon narrowing moves " Peter Maydell
2020-06-19 22:52   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 05/21] target/arm: Convert Neon 2-reg-misc VSHLL " Peter Maydell
2020-06-19 22:55   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 06/21] target/arm: Convert Neon VCVT f16/f32 insns " Peter Maydell
2020-06-19 23:01   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 07/21] target/arm: Convert vectorised 2-reg-misc Neon ops " Peter Maydell
2020-06-19 23:17   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 08/21] target/arm: Convert Neon 2-reg-misc crypto operations " Peter Maydell
2020-06-19 23:25   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 09/21] target/arm: Rename NeonGenOneOpFn to NeonGenOne64OpFn Peter Maydell
2020-06-19 23:28   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 10/21] target/arm: Fix capitalization in NeonGenTwo{Single, Double}OPFn typedefs Peter Maydell
2020-06-19 23:32   ` [PATCH 10/21] target/arm: Fix capitalization in NeonGenTwo{Single,Double}OPFn typedefs Richard Henderson
2020-06-16 17:08 ` [PATCH 11/21] target/arm: Make gen_swap_half() take separate src and dest Peter Maydell
2020-06-19 23:33   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 12/21] target/arm: Convert Neon 2-reg-misc VREV32 and VREV16 to decodetree Peter Maydell
2020-06-19 23:35   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 13/21] target/arm: Convert remaining simple 2-reg-misc Neon ops Peter Maydell
2020-06-19 23:41   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 14/21] target/arm: Convert Neon VQABS, VQNEG to decodetree Peter Maydell
2020-06-19 23:42   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 15/21] target/arm: Convert simple fp Neon 2-reg-misc insns Peter Maydell
2020-06-19 23:44   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 16/21] target/arm: Convert Neon 2-reg-misc fp-compare-with-zero insns to decodetree Peter Maydell
2020-06-19 23:46   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 17/21] target/arm: Convert Neon 2-reg-misc VRINT " Peter Maydell
2020-06-19 23:49   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 18/21] target/arm: Convert Neon 2-reg-misc VCVT " Peter Maydell
2020-06-19 23:52   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 19/21] target/arm: Convert Neon VSWP " Peter Maydell
2020-06-20  0:16   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 20/21] target/arm: Convert Neon VTRN " Peter Maydell
2020-06-20  0:20   ` Richard Henderson
2020-06-16 17:08 ` [PATCH 21/21] target/arm: Move some functions used only in translate-neon.inc.c to that file Peter Maydell
2020-06-20  0:21   ` Richard Henderson
2020-06-16 21:37 ` [PATCH 00/21] target/arm: Finish neon decodetree conversion no-reply
2020-06-16 21:52 ` no-reply

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).