From: matheus.ferst@eldorado.org.br
To: qemu-devel@nongnu.org, qemu-ppc@nongnu.org
Cc: danielhb413@gmail.com, richard.henderson@linaro.org,
groug@kaod.org, clg@kaod.org,
Matheus Ferst <matheus.ferst@eldorado.org.br>,
david@gibson.dropbear.id.au
Subject: [PATCH v4 00/47] target/ppc: PowerISA Vector/VSX instruction batch
Date: Tue, 22 Feb 2022 11:35:58 -0300 [thread overview]
Message-ID: <20220222143646.1268606-1-matheus.ferst@eldorado.org.br> (raw)
From: Matheus Ferst <matheus.ferst@eldorado.org.br>
This patch series implements 5 missing instructions from PowerISA v3.0
and 56 new instructions from PowerISA v3.1, moving 87 other instructions
to decodetree along the way.
Patches without review: 2-5, 7, 9-12, 14-16, 18-36, 38-47.
This series can also be found at:
https://github.com/PPC64/qemu/tree/ppc-isa31-2112-v4
v4:
- Rebase on master;
- 16 new instructions: vs[lr]q, vrlq, vextsd2q, lxvr[bhwd]x/stxvr[bhwd]x,
plxssp/pstxssp and plxsd/pstxsd;
- Multiple fixes/optimizations (rth)
v3:
- Dropped patch 33, which caused a regression in xxperm[r]
v2:
- New patch (30) to remove xscmpnedp
Leandro Lupori (2):
target/ppc: implement plxsd/pstxsd
target/ppc: implement plxssp/pstxssp
Lucas Coutinho (3):
target/ppc: Move vexts[bhw]2[wd] to decodetree
target/ppc: Implement vextsd2q
target/ppc: implement lxvr[bhwd]/stxvr[bhwd]x
Lucas Mateus Castro (alqotel) (3):
target/ppc: moved vector even and odd multiplication to decodetree
target/ppc: Moved vector multiply high and low to decodetree
target/ppc: vmulh* instructions without helpers
Luis Pires (1):
target/ppc: Introduce TRANS*FLAGS macros
Matheus Ferst (27):
target/ppc: Move Vector Compare Equal/Not Equal/Greater Than to
decodetree
target/ppc: Move Vector Compare Not Equal or Zero to decodetree
target/ppc: Implement Vector Compare Equal Quadword
target/ppc: Implement Vector Compare Greater Than Quadword
target/ppc: Implement Vector Compare Quadword
target/ppc: implement vstri[bh][lr]
target/ppc: implement vclrlb
target/ppc: implement vclrrb
target/ppc: implement vcntmb[bhwd]
target/ppc: implement vgnb
target/ppc: move vs[lr][a][bhwd] to decodetree
target/ppc: implement vslq
target/ppc: implement vsrq
target/ppc: implement vsraq
target/ppc: move vrl[bhwd] to decodetree
target/ppc: move vrl[bhwd]nm/vrl[bhwd]mi to decodetree
target/ppc: implement vrlq
target/ppc: Move vsel and vperm/vpermr to decodetree
target/ppc: Move xxsel to decodetree
target/ppc: move xxperm/xxpermr to decodetree
target/ppc: Move xxpermdi to decodetree
target/ppc: Implement xxpermx instruction
tcg/tcg-op-gvec.c: Introduce tcg_gen_gvec_4i
target/ppc: Implement xxeval
target/ppc: Implement xxgenpcv[bhwd]m instruction
target/ppc: move xs[n]madd[am][ds]p/xs[n]msub[am][ds]p to decodetree
target/ppc: implement xs[n]maddqp[o]/xs[n]msubqp[o]
Víctor Colombo (11):
target/ppc: Implement vmsumcud instruction
target/ppc: Implement vmsumudm instruction
target/ppc: Implement xvtlsbb instruction
target/ppc: Remove xscmpnedp instruction
target/ppc: Refactor VSX_SCALAR_CMP_DP
target/ppc: Implement xscmp{eq,ge,gt}qp
target/ppc: Move xscmp{eq,ge,gt}dp to decodetree
target/ppc: Move xs{max, min}[cj]dp to use do_helper_XX3
target/ppc: Refactor VSX_MAX_MINC helper
target/ppc: Implement xs{max,min}cqp
target/ppc: Implement xvcvbf16spn and xvcvspbf16 instructions
include/tcg/tcg-op-gvec.h | 22 +
target/ppc/fpu_helper.c | 171 ++--
target/ppc/helper.h | 147 ++--
target/ppc/insn32.decode | 232 ++++-
target/ppc/insn64.decode | 56 +-
target/ppc/int_helper.c | 419 +++++----
target/ppc/translate.c | 58 +-
target/ppc/translate/vmx-impl.c.inc | 1272 ++++++++++++++++++++++++---
target/ppc/translate/vmx-ops.c.inc | 59 +-
target/ppc/translate/vsx-impl.c.inc | 726 ++++++++++++---
target/ppc/translate/vsx-ops.c.inc | 67 --
tcg/ppc/tcg-target.c.inc | 6 +
tcg/tcg-op-gvec.c | 146 +++
13 files changed, 2632 insertions(+), 749 deletions(-)
--
2.25.1
next reply other threads:[~2022-02-22 14:48 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-22 14:35 matheus.ferst [this message]
2022-02-22 14:35 ` [PATCH v4 01/47] target/ppc: Introduce TRANS*FLAGS macros matheus.ferst
2022-02-22 14:36 ` [PATCH v4 02/47] target/ppc: moved vector even and odd multiplication to decodetree matheus.ferst
2022-02-22 18:19 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 03/47] target/ppc: Moved vector multiply high and low " matheus.ferst
2022-02-22 18:19 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 04/47] target/ppc: vmulh* instructions without helpers matheus.ferst
2022-02-22 18:23 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 05/47] target/ppc: Implement vmsumcud instruction matheus.ferst
2022-02-22 18:28 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 06/47] target/ppc: Implement vmsumudm instruction matheus.ferst
2022-02-22 14:36 ` [PATCH v4 07/47] target/ppc: Move vexts[bhw]2[wd] to decodetree matheus.ferst
2022-02-22 18:34 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 08/47] target/ppc: Implement vextsd2q matheus.ferst
2022-02-22 14:36 ` [PATCH v4 09/47] target/ppc: Move Vector Compare Equal/Not Equal/Greater Than to decodetree matheus.ferst
2022-02-22 18:37 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 10/47] target/ppc: Move Vector Compare Not Equal or Zero " matheus.ferst
2022-02-22 19:04 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 11/47] target/ppc: Implement Vector Compare Equal Quadword matheus.ferst
2022-02-22 19:05 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 12/47] target/ppc: Implement Vector Compare Greater Than Quadword matheus.ferst
2022-02-22 19:07 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 13/47] target/ppc: Implement Vector Compare Quadword matheus.ferst
2022-02-22 14:36 ` [PATCH v4 14/47] target/ppc: implement vstri[bh][lr] matheus.ferst
2022-02-22 19:13 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 15/47] target/ppc: implement vclrlb matheus.ferst
2022-02-22 19:15 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 16/47] target/ppc: implement vclrrb matheus.ferst
2022-02-22 19:17 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 17/47] target/ppc: implement vcntmb[bhwd] matheus.ferst
2022-02-22 14:36 ` [PATCH v4 18/47] target/ppc: implement vgnb matheus.ferst
2022-02-22 21:58 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 19/47] target/ppc: move vs[lr][a][bhwd] to decodetree matheus.ferst
2022-02-22 22:01 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 20/47] target/ppc: implement vslq matheus.ferst
2022-02-22 22:14 ` Richard Henderson
2022-02-23 21:53 ` Matheus K. Ferst
2022-02-23 22:12 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 21/47] target/ppc: implement vsrq matheus.ferst
2022-02-22 22:15 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 22/47] target/ppc: implement vsraq matheus.ferst
2022-02-22 22:19 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 23/47] target/ppc: move vrl[bhwd] to decodetree matheus.ferst
2022-02-22 22:20 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 24/47] target/ppc: move vrl[bhwd]nm/vrl[bhwd]mi " matheus.ferst
2022-02-22 22:30 ` Richard Henderson
2022-02-23 21:43 ` Matheus K. Ferst
2022-02-23 22:19 ` Richard Henderson
2022-02-24 20:23 ` Matheus K. Ferst
2022-02-24 21:26 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 25/47] target/ppc: implement vrlq matheus.ferst
2022-02-22 22:33 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 26/47] target/ppc: Move vsel and vperm/vpermr to decodetree matheus.ferst
2022-02-22 22:37 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 27/47] target/ppc: Move xxsel " matheus.ferst
2022-02-22 22:38 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 28/47] target/ppc: move xxperm/xxpermr " matheus.ferst
2022-02-22 22:40 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 29/47] target/ppc: Move xxpermdi " matheus.ferst
2022-02-22 22:42 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 30/47] target/ppc: Implement xxpermx instruction matheus.ferst
2022-02-22 22:46 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 31/47] tcg/tcg-op-gvec.c: Introduce tcg_gen_gvec_4i matheus.ferst
2022-02-22 23:04 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 32/47] target/ppc: Implement xxeval matheus.ferst
2022-02-22 23:43 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 33/47] target/ppc: Implement xxgenpcv[bhwd]m instruction matheus.ferst
2022-02-22 23:48 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 34/47] target/ppc: move xs[n]madd[am][ds]p/xs[n]msub[am][ds]p to decodetree matheus.ferst
2022-02-22 23:52 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 35/47] target/ppc: implement xs[n]maddqp[o]/xs[n]msubqp[o] matheus.ferst
2022-02-22 23:56 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 36/47] target/ppc: Implement xvtlsbb instruction matheus.ferst
2022-02-23 0:07 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 37/47] target/ppc: Remove xscmpnedp instruction matheus.ferst
2022-02-22 14:36 ` [PATCH v4 38/47] target/ppc: Refactor VSX_SCALAR_CMP_DP matheus.ferst
2022-02-23 0:20 ` Richard Henderson
2022-02-24 19:16 ` Víctor Colombo
2022-02-24 21:24 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 39/47] target/ppc: Implement xscmp{eq,ge,gt}qp matheus.ferst
2022-02-23 0:21 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 40/47] target/ppc: Move xscmp{eq,ge,gt}dp to decodetree matheus.ferst
2022-02-23 0:22 ` [PATCH v4 40/47] target/ppc: Move xscmp{eq, ge, gt}dp " Richard Henderson
2022-02-22 14:36 ` [PATCH v4 41/47] target/ppc: Move xs{max, min}[cj]dp to use do_helper_XX3 matheus.ferst
2022-02-23 0:23 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 42/47] target/ppc: Refactor VSX_MAX_MINC helper matheus.ferst
2022-02-23 0:40 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 43/47] target/ppc: Implement xs{max,min}cqp matheus.ferst
2022-02-23 0:41 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 44/47] target/ppc: Implement xvcvbf16spn and xvcvspbf16 instructions matheus.ferst
2022-02-23 3:08 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 45/47] target/ppc: implement plxsd/pstxsd matheus.ferst
2022-02-23 3:14 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 46/47] target/ppc: implement plxssp/pstxssp matheus.ferst
2022-02-23 3:16 ` Richard Henderson
2022-02-22 14:36 ` [PATCH v4 47/47] target/ppc: implement lxvr[bhwd]/stxvr[bhwd]x matheus.ferst
2022-02-23 3:23 ` Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220222143646.1268606-1-matheus.ferst@eldorado.org.br \
--to=matheus.ferst@eldorado.org.br \
--cc=clg@kaod.org \
--cc=danielhb413@gmail.com \
--cc=david@gibson.dropbear.id.au \
--cc=groug@kaod.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.