qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 0/6] softfloat 128-bit integer support
@ 2022-03-28 20:14 matheus.ferst
  2022-03-28 20:14 ` [RFC PATCH 1/6] softfloat: add uint128_to_float* conversion methods matheus.ferst
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: matheus.ferst @ 2022-03-28 20:14 UTC (permalink / raw)
  To: qemu-devel, qemu-ppc
  Cc: danielhb413, richard.henderson, groug, clg, Matheus Ferst, david

From: Matheus Ferst <matheus.ferst@eldorado.org.br>

This RFC is a first attempt at implementing the 128-bit integer
conversion routines in softfloat, as required by the xscv[su]qqp and
xscvqp[su]qz instructions of PowerISA v3.1.

Instead of using int128.h, int-to-float routines receive the 128-bit
numbers through a pair of 64-bit values, and float-to-int conversions
use a pointer to return the lower half of the result.

We only need the parts128 methods, but since the difference to parts64
ones seemed minor, I included both in this patch.

RFC:
 - Should we use struct Int128 instead of 64-bit value pairs?
 - I've not tested the float64 methods since the PPC instructions only
   use the quad-precision routines. Should we keep them in the final
   version?

Matheus Ferst (6):
  softfloat: add uint128_to_float* conversion methods
  softfloat: add int128_to_float* conversion methods
  softfloat: add float*_to_uint128 conversion methods
  softfloat: add float*_to_int128 conversion methods
  target/ppc: implement xscv[su]qqp
  target/ppc: implement xscvqp[su]qz

 fpu/softfloat-parts.c.inc           | 202 ++++++++++++++++++++++++++++
 fpu/softfloat.c                     | 161 ++++++++++++++++++++++
 include/fpu/softfloat.h             |  23 ++++
 target/ppc/fpu_helper.c             |  34 +++++
 target/ppc/helper.h                 |   4 +
 target/ppc/insn32.decode            |   7 +
 target/ppc/translate/vsx-impl.c.inc |  22 +++
 7 files changed, 453 insertions(+)

-- 
2.25.1



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

end of thread, other threads:[~2022-03-30 18:03 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-03-28 20:14 [RFC PATCH 0/6] softfloat 128-bit integer support matheus.ferst
2022-03-28 20:14 ` [RFC PATCH 1/6] softfloat: add uint128_to_float* conversion methods matheus.ferst
2022-03-29 11:28   ` Richard Henderson
2022-03-28 20:14 ` [RFC PATCH 2/6] softfloat: add int128_to_float* " matheus.ferst
2022-03-29 11:40   ` Richard Henderson
2022-03-28 20:14 ` [RFC PATCH 3/6] softfloat: add float*_to_uint128 " matheus.ferst
2022-03-29 11:48   ` Richard Henderson
2022-03-28 20:14 ` [RFC PATCH 4/6] softfloat: add float*_to_int128 " matheus.ferst
2022-03-29 12:10   ` Richard Henderson
2022-03-28 20:14 ` [RFC PATCH 5/6] target/ppc: implement xscv[su]qqp matheus.ferst
2022-03-29 12:16   ` Richard Henderson
2022-03-28 20:14 ` [RFC PATCH 6/6] target/ppc: implement xscvqp[su]qz matheus.ferst
2022-03-29 12:18   ` Richard Henderson
2022-03-29  3:38 ` [RFC PATCH 0/6] softfloat 128-bit integer support Richard Henderson
2022-03-30 17:59   ` Matheus K. Ferst

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).