All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 00/15] target/ppc: DFP instructions using decodetree
@ 2021-10-29 19:24 Luis Pires
  2021-10-29 19:24 ` [PATCH v5 01/15] libdecnumber: introduce decNumberFrom[U]Int128 Luis Pires
                   ` (15 more replies)
  0 siblings, 16 replies; 19+ messages in thread
From: Luis Pires @ 2021-10-29 19:24 UTC (permalink / raw)
  To: qemu-devel, qemu-ppc; +Cc: Luis Pires, richard.henderson, groug, david

This series moves all existing DFP instructions to decodetree and
implements the 2 new instructions (dcffixqq and dctfixqq) from
Power ISA 3.1.

In order to implement dcffixqq, divu128/divs128 were modified to
support 128-bit quotients (previously, they were limited to 64-bit
quotients), along with adjustments being made to their existing callers.
libdecnumber was also expanded to allow creating decimal numbers from
128-bit integers.

Similarly, for dctfixqq, mulu128 (host-utils) and decNumberIntegralToInt128
(libdecnumber) were introduced to support 128-bit integers.

The remaining patches of this series move all of the already existing
DFP instructions to decodetree, and end up removing dfp-ops.c.inc, which
is no longer needed.

---

I'm resending this series because I missed adding a R-b tag on one
of the commits in v4. I also dropped patches that were already applied and
rebased against master.

All of these patches are reviewed and ready to be applied.

Changes in v5:
- Rebased against master
- Skipped patches that were already applied (v4 1-4)

Changes in v4:
- Rebased against dgibson/ppc-for-6.2
- Skipped patches that were already applied (v3 1-4)
- Changed divu128/divs128 to return the remainder (rth)
- Moved changes that drop nip updates to a separate patch (rth)

Changes in v3:
- Split the uabs64 patch in 2
- Included patch to fix missing zero-extension in divs128
- Folded divisor == 0 into the dhi == 0 case in divu128
- Moved udiv_qrnnd from softfloat-macros.h to host-utils.h
- Used udiv_qrnnd in divu128
- Replaced int with bool in divs128
- Added unit test to check the divisor normalization in divu128
- Removed 'inline' from times_* functions in ppc/translate.c
- Used uadd64_overflow in mulu128
- Removed unnecessary 'else' from decNumberIntegralToInt128

Changes in v2:
- Renamed abs64() to uabs64()

Bruno Larsen (1):
  target/ppc: Move REQUIRE_ALTIVEC/VECTOR to translate.c

Fernando Valle (1):
  target/ppc: Introduce REQUIRE_FPU

Luis Pires (13):
  libdecnumber: introduce decNumberFrom[U]Int128
  target/ppc: Implement DCFFIXQQ
  host-utils: Introduce mulu128
  libdecnumber: Introduce decNumberIntegralToInt128
  target/ppc: Implement DCTFIXQQ
  target/ppc: Do not update nip on DFP instructions
  target/ppc: Move dtstdc[q]/dtstdg[q] to decodetree
  target/ppc: Move d{add,sub,mul,div,iex}[q] to decodetree
  target/ppc: Move dcmp{u,o}[q],dts{tex,tsf,tsfi}[q] to decodetree
  target/ppc: Move dquai[q], drint{x,n}[q] to decodetree
  target/ppc: Move dqua[q], drrnd[q] to decodetree
  target/ppc: Move dct{dp,qpq},dr{sp,dpq},dc{f,t}fix[q],dxex[q] to
    decodetree
  target/ppc: Move ddedpd[q],denbcd[q],dscli[q],dscri[q] to decodetree

 include/libdecnumber/decNumber.h       |   4 +
 include/libdecnumber/decNumberLocal.h  |   2 +-
 include/qemu/host-utils.h              |  36 +++
 libdecnumber/decContext.c              |   7 +-
 libdecnumber/decNumber.c               | 131 ++++++++
 target/ppc/dfp_helper.c                | 168 +++++++---
 target/ppc/helper.h                    | 106 ++++---
 target/ppc/insn32.decode               | 171 ++++++++++
 target/ppc/translate.c                 |  23 +-
 target/ppc/translate/dfp-impl.c.inc    | 419 ++++++++++++-------------
 target/ppc/translate/dfp-ops.c.inc     | 165 ----------
 target/ppc/translate/vector-impl.c.inc |  10 +-
 12 files changed, 747 insertions(+), 495 deletions(-)
 delete mode 100644 target/ppc/translate/dfp-ops.c.inc

-- 
2.25.1



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

end of thread, other threads:[~2021-11-01  1:38 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-10-29 19:24 [PATCH v5 00/15] target/ppc: DFP instructions using decodetree Luis Pires
2021-10-29 19:24 ` [PATCH v5 01/15] libdecnumber: introduce decNumberFrom[U]Int128 Luis Pires
2021-10-29 19:24 ` [PATCH v5 02/15] target/ppc: Move REQUIRE_ALTIVEC/VECTOR to translate.c Luis Pires
2021-10-29 19:48   ` Philippe Mathieu-Daudé
2021-10-29 19:24 ` [PATCH v5 03/15] target/ppc: Introduce REQUIRE_FPU Luis Pires
2021-10-29 19:52   ` Philippe Mathieu-Daudé
2021-10-29 19:24 ` [PATCH v5 04/15] target/ppc: Implement DCFFIXQQ Luis Pires
2021-10-29 19:24 ` [PATCH v5 05/15] host-utils: Introduce mulu128 Luis Pires
2021-10-29 19:24 ` [PATCH v5 06/15] libdecnumber: Introduce decNumberIntegralToInt128 Luis Pires
2021-10-29 19:24 ` [PATCH v5 07/15] target/ppc: Implement DCTFIXQQ Luis Pires
2021-10-29 19:24 ` [PATCH v5 08/15] target/ppc: Do not update nip on DFP instructions Luis Pires
2021-10-29 19:24 ` [PATCH v5 09/15] target/ppc: Move dtstdc[q]/dtstdg[q] to decodetree Luis Pires
2021-10-29 19:24 ` [PATCH v5 10/15] target/ppc: Move d{add, sub, mul, div, iex}[q] " Luis Pires
2021-10-29 19:24 ` [PATCH v5 11/15] target/ppc: Move dcmp{u, o}[q], dts{tex, tsf, tsfi}[q] " Luis Pires
2021-10-29 19:24 ` [PATCH v5 12/15] target/ppc: Move dquai[q], drint{x, n}[q] " Luis Pires
2021-10-29 19:24 ` [PATCH v5 13/15] target/ppc: Move dqua[q], drrnd[q] " Luis Pires
2021-10-29 19:24 ` [PATCH v5 14/15] target/ppc: Move dct{dp, qpq}, dr{sp, dpq}, dc{f, t}fix[q], dxex[q] " Luis Pires
2021-10-29 19:24 ` [PATCH v5 15/15] target/ppc: Move ddedpd[q], denbcd[q], dscli[q], dscri[q] " Luis Pires
2021-11-01  0:24 ` [PATCH v5 00/15] target/ppc: DFP instructions using decodetree David Gibson

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.