All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/15] target/riscv: Update QEmu for Zb[abcs] 1.0.0
@ 2021-08-23 16:40 Philipp Tomsich
  2021-08-23 16:40 ` [PATCH v3 01/15] target/riscv: Add x-zba, x-zbb, x-zbc and x-zbs properties Philipp Tomsich
                   ` (14 more replies)
  0 siblings, 15 replies; 30+ messages in thread
From: Philipp Tomsich @ 2021-08-23 16:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Kito Cheng, Alistair Francis, Philipp Tomsich


The Zb[abcs] extensions have complete public review and are nearing
ratifications. These individual extensions are one part of what was
previously though of as the "BitManip" (B) extension, leaving the
final details of future Zb* extensions open as they will undergo
further public discourse.

This series updates the earlier support for the B extension by
 - removing those instructions that are not included in Zb[abcs]
 - splitting this into 4 separate extensions that can be independently
   enabled: Zba (addressing), Zbb (basic bit-manip), Zbc (carryless
   multiplication), Zbs (single-bit operations)
 - update the to the 1.0.0 version (e.g. w-forms of rev8 and Zbs
   instructions are not included in Zb[abcs])

For the latest version of the public review specificaiton
(incorporating some editorial fixes and corrections from the review
period), refer to:
  https://github.com/riscv/riscv-bitmanip/releases/download/1.0.0/bitmanip-1.0.0-31-g2af7256.pdf


Changes in v3:
- Split off removal of 'x-b' property and 'ext_b' field into a separate
  patch to ensure bisectability.
- The changes to the Zba instructions (i.e. the REQUIRE_ZBA macro
  and its use for qualifying the Zba instructions) are moved into
  a separate commit.
- Instead of defining a new decoding format, we treat slli.uw as if it
  had a 7bit-wide field for shamt (the 7th bit is reserved for RV128)
  and check for validity of the encoding in C code.
- Remove the W-form instructions from Zbs in a separate commit.
- Remove shift-one instructions in a separate commit.
- The changes to the Zbs instructions (i.e. the REQUIRE_ZBS macro) and
  its use for qualifying the Zba instructions) are moved into a
  separate commit.
- This adds the Zbc instructions as a spearate commit.
- Uses a helper for clmul/clmulr instead of inlining the calculation of
  the result (addressing a comment from Richard Henderson).
- The changes to the Zbb instructions (i.e. use the REQUIRE_ZBB macro)
  are now in a separate commit.
- Moved orc.b and gorc/gorci changes into separate commit.
- Using the simpler orc.b implementation suggested by Richard Henderson
- Moved the REQUIRE_32BIT macro into a separate commit.
- rev8-addition & grevi*-removal moved to a separate commit
- Moved zext.h-addition & pack*-removal to a separate commit.
- Removing RVB moved into a separate commit at the tail-end of the series.

Changes in v2:
- Fix missing ';' from last-minute whitespace cleanups.

Philipp Tomsich (15):
  target/riscv: Add x-zba, x-zbb, x-zbc and x-zbs properties
  target/riscv: Reassign instructions to the Zba-extension
  target/riscv: slli.uw is only a valid encoding if shamt first in 64
    bits
  target/riscv: Remove the W-form instructions from Zbs
  target/riscv: Remove shift-one instructions (proposed Zbo in pre-0.93
    draft-B)
  target/riscv: Reassign instructions to the Zbs-extension
  target/riscv: Add instructions of the Zbc-extension
  target/riscv: Reassign instructions to the Zbb-extension
  target/riscv: Add orc.b instruction for Zbb, removing gorc/gorci
  target/riscv: Add a REQUIRE_32BIT macro
  target/riscv: Add rev8 instruction, removing grev/grevi
  target/riscv: Add zext.h instructions to Zbb, removing
    pack/packu/packh
  target/riscv: Remove RVB (replaced by Zb[abcs]
  target/riscv: rewrite slli.uw implementation to mirror formal spec
  disas/riscv: Add Zb[abcs] instructions

 disas/riscv.c                           | 157 ++++++++++-
 target/riscv/bitmanip_helper.c          |  65 +----
 target/riscv/cpu.c                      |  31 +--
 target/riscv/cpu.h                      |   7 +-
 target/riscv/helper.h                   |   6 +-
 target/riscv/insn32.decode              | 111 ++++----
 target/riscv/insn_trans/trans_rvb.c.inc | 344 +++++++++---------------
 target/riscv/translate.c                |  94 +------
 8 files changed, 364 insertions(+), 451 deletions(-)

-- 
2.25.1



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

end of thread, other threads:[~2021-08-23 17:37 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-23 16:40 [PATCH v3 00/15] target/riscv: Update QEmu for Zb[abcs] 1.0.0 Philipp Tomsich
2021-08-23 16:40 ` [PATCH v3 01/15] target/riscv: Add x-zba, x-zbb, x-zbc and x-zbs properties Philipp Tomsich
2021-08-23 16:58   ` Richard Henderson
2021-08-23 16:40 ` [PATCH v3 02/15] target/riscv: Reassign instructions to the Zba-extension Philipp Tomsich
2021-08-23 16:59   ` Richard Henderson
2021-08-23 16:40 ` [PATCH v3 03/15] target/riscv: slli.uw is only a valid encoding if shamt first in 64 bits Philipp Tomsich
2021-08-23 17:02   ` Richard Henderson
2021-08-23 16:40 ` [PATCH v3 04/15] target/riscv: Remove the W-form instructions from Zbs Philipp Tomsich
2021-08-23 17:04   ` Richard Henderson
2021-08-23 16:40 ` [PATCH v3 05/15] target/riscv: Remove shift-one instructions (proposed Zbo in pre-0.93 draft-B) Philipp Tomsich
2021-08-23 17:04   ` Richard Henderson
2021-08-23 16:40 ` [PATCH v3 06/15] target/riscv: Reassign instructions to the Zbs-extension Philipp Tomsich
2021-08-23 17:07   ` Richard Henderson
2021-08-23 16:40 ` [PATCH v3 07/15] target/riscv: Add instructions of the Zbc-extension Philipp Tomsich
2021-08-23 17:17   ` Richard Henderson
2021-08-23 16:40 ` [PATCH v3 08/15] target/riscv: Reassign instructions to the Zbb-extension Philipp Tomsich
2021-08-23 17:20   ` Richard Henderson
2021-08-23 16:40 ` [PATCH v3 09/15] target/riscv: Add orc.b instruction for Zbb, removing gorc/gorci Philipp Tomsich
2021-08-23 17:24   ` Richard Henderson
2021-08-23 16:40 ` [PATCH v3 10/15] target/riscv: Add a REQUIRE_32BIT macro Philipp Tomsich
2021-08-23 17:25   ` Richard Henderson
2021-08-23 16:40 ` [PATCH v3 11/15] target/riscv: Add rev8 instruction, removing grev/grevi Philipp Tomsich
2021-08-23 17:29   ` Richard Henderson
2021-08-23 16:40 ` [PATCH v3 12/15] target/riscv: Add zext.h instructions to Zbb, removing pack/packu/packh Philipp Tomsich
2021-08-23 17:31   ` Richard Henderson
2021-08-23 16:40 ` [PATCH v3 13/15] target/riscv: Remove RVB (replaced by Zb[abcs] Philipp Tomsich
2021-08-23 17:33   ` Richard Henderson
2021-08-23 16:40 ` [PATCH v3 14/15] target/riscv: rewrite slli.uw implementation to mirror formal spec Philipp Tomsich
2021-08-23 17:36   ` Richard Henderson
2021-08-23 16:40 ` [PATCH v3 15/15] disas/riscv: Add Zb[abcs] instructions Philipp Tomsich

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.