qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 0/7] target/arm: Convert Neon 3-reg-diff to decodetree


From: Peter Maydell
Subject: [PATCH 0/7] target/arm: Convert Neon 3-reg-diff to decodetree
Date: Tue, 9 Jun 2020 17:02:02 +0100

This patchset converts the Neon insns in the "3 registers of different
lengths" group to decodetree. Patch 1 is a bugfix for an earlier
part of the conversion that's now in master.

I'm definitely finding that the new decodetree version of Neon
is often easier to understand because we no longer try to
accommodate multiple different kinds of widening/narrowing/etc
insns in a single multi-pass loop: expanding out the loop and
specializing it to the particular insn type helps a lot.
(Or maybe it's just that having to read the old code and write
the new version means I understand it better ;-))

Based-on: id:20200608183652.661386-1-richard.henderson@linaro.org
("[PATCH v3 0/9] decodetree: Add non-overlapping groups")
because we use the new group syntax to set up the structure
for the "size==0b11" vs "size!=0b11" decode which we'll fill
in in subsequent patchsets.

thanks
-- PMM

Peter Maydell (7):
  target/arm: Fix missing temp frees in do_vshll_2sh
  target/arm: Convert Neon 3-reg-diff prewidening ops to decodetree
  target/arm: Convert Neon 3-reg-diff narrowing ops to decodetree
  target/arm: Convert Neon 3-reg-diff VABAL, VABDL to decodetree
  target/arm: Convert Neon 3-reg-diff long multiplies
  target/arm: Convert Neon 3-reg-diff saturating doubling multiplies
  target/arm: Convert Neon 3-reg-diff polynomial VMULL

 target/arm/translate.h          |   1 +
 target/arm/neon-dp.decode       |  72 +++++
 target/arm/translate-neon.inc.c | 521 ++++++++++++++++++++++++++++++++
 target/arm/translate.c          | 222 +-------------
 4 files changed, 597 insertions(+), 219 deletions(-)

-- 
2.20.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]