qemu-devel
[Top][All Lists]
Advanced

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

Re: [RFC PATCH 0/8] Alternative softfloat 128-bit integer support


From: Daniel Henrique Barboza
Subject: Re: [RFC PATCH 0/8] Alternative softfloat 128-bit integer support
Date: Wed, 20 Apr 2022 16:14:21 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0

All patches but patch 01 queued in gitlab.com/danielhb/qemu/tree/ppc-next.


Thanks,


Daniel

On 3/30/22 14:59, matheus.ferst@eldorado.org.br wrote:
From: Matheus Ferst <matheus.ferst@eldorado.org.br>

This RFC is an alternative to [1] using Int128 types to implement the
128-bit integer conversion routines in softfloat required by the
xscv[su]qqp and xscvqp[su]qz instructions of PowerISA v3.1.

Some improvements to int128.h are made in patches 1 and 2. Patches 3-6
implement the conversion routines, and patches 7 and 8 implement the new
instructions.

RFC: Int128 vs. pair of 64-bit values.
  - Returning unsigned values through Int128 is not ideal, but creating
    an "UInt128" just for this case seems excessive.
  - OTOH, there are fewer cases to handle, especially in float->int.

[1] https://lists.gnu.org/archive/html/qemu-ppc/2022-03/msg00520.html

Matheus Ferst (8):
   qemu/int128: avoid undefined behavior in int128_lshift
   qemu/int128: add int128_urshift
   softfloat: add uint128_to_float128
   softfloat: add int128_to_float128
   softfloat: add float128_to_uint128
   softfloat: add float128_to_int128
   target/ppc: implement xscv[su]qqp
   target/ppc: implement xscvqp[su]qz

  fpu/softfloat.c                     | 183 ++++++++++++++++++++++++++++
  include/fpu/softfloat.h             |   7 ++
  include/qemu/int128.h               |  25 +++-
  target/ppc/fpu_helper.c             |  33 +++++
  target/ppc/helper.h                 |   4 +
  target/ppc/insn32.decode            |   7 ++
  target/ppc/translate/vsx-impl.c.inc |  22 ++++
  tests/unit/test-int128.c            |  32 +++++
  8 files changed, 311 insertions(+), 2 deletions(-)




reply via email to

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