All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 00/22] re-factor softfloat and add fp16 functions
@ 2018-01-24 13:12 Alex Bennée
  2018-01-24 13:12 ` [Qemu-devel] [PATCH v3 01/22] fpu/softfloat: implement float16_squash_input_denormal Alex Bennée
                   ` (22 more replies)
  0 siblings, 23 replies; 46+ messages in thread
From: Alex Bennée @ 2018-01-24 13:12 UTC (permalink / raw)
  To: richard.henderson, peter.maydell, laurent, bharata, andrew
  Cc: qemu-devel, Alex Bennée

This is the third iteration of my softfloat re-factor patches. You can
see the discussion about v2 here:

    https://lists.nongnu.org/archive/html/qemu-devel/2018-01/msg01475.html

Most of the changes are addressing review comments but I also have
added another patch early on to try and reduce the re-builds triggered
by touching softfloat.h. This involves a bit of mechanical churn but
is worth it to avoid the complete re-build. There is still a bit of a
dependency in the MIPS cpu.h due to it's need to tweak the signalling
NaN bit.

The biggest change from the review comments are shorter names and a
reduction of the size of the function names and related structures.

I've fixed most of the checkpatch warnings but there is one line which
tops 80 chars by one character. The other I think is a false positive
about the position of a -.

As usual the details of the changes are in the individual commit
messages.

There are a few comments where I haven't made changes yet as I'm
pondering the best way forward. The main unresolved bit is
re-factoring the specialisation code that deals with the variation of
NaN behaviour. I'm wary of exposing the internals to the wider world
so perhaps a softfloat-internals.h and
target/foo/softfloat-specialize.o?

I've added one simple helper (is_nan(x)) internal to softfloat. I
haven't used it more widely than asked in the comments to avoid too
much churn. Maybe is_inf and is_zero would be additional helpful
internal helpers or for softfloat-internals.h.

I suppose the question is do we want to do that in this series or have
a follow-up as we fix the existing bugs? If we can follow-up then I
think this series is ready to go.


Alex Bennée (22):
  fpu/softfloat: implement float16_squash_input_denormal
  include/fpu/softfloat: remove USE_SOFTFLOAT_STRUCT_TYPES
  fpu/softfloat-types: new header to prevent excessive re-builds
  target/*/cpu.h: remove softfloat.h
  include/fpu/softfloat: implement float16_abs helper
  include/fpu/softfloat: implement float16_chs helper
  include/fpu/softfloat: implement float16_set_sign helper
  include/fpu/softfloat: add some float16 constants
  fpu/softfloat: improve comments on ARM NaN propagation
  fpu/softfloat: move the extract functions to the top of the file
  fpu/softfloat: define decompose structures
  fpu/softfloat: re-factor add/sub
  fpu/softfloat: re-factor mul
  fpu/softfloat: re-factor div
  fpu/softfloat: re-factor muladd
  fpu/softfloat: re-factor round_to_int
  fpu/softfloat: re-factor float to int/uint
  fpu/softfloat: re-factor int/uint to float
  fpu/softfloat: re-factor scalbn
  fpu/softfloat: re-factor minmax
  fpu/softfloat: re-factor compare
  fpu/softfloat: re-factor sqrt

 fpu/softfloat-macros.h          |   44 +
 fpu/softfloat-specialize.h      |  109 +-
 fpu/softfloat.c                 | 4538 ++++++++++++++++-----------------------
 include/fpu/softfloat-types.h   |  179 ++
 include/fpu/softfloat.h         |  202 +-
 include/qemu/bswap.h            |    2 +-
 target/alpha/cpu.h              |    2 -
 target/arm/cpu.c                |    1 +
 target/arm/cpu.h                |    2 -
 target/arm/helper-a64.c         |    1 +
 target/arm/helper.c             |    1 +
 target/arm/neon_helper.c        |    1 +
 target/hppa/cpu.c               |    1 +
 target/hppa/cpu.h               |    1 -
 target/hppa/op_helper.c         |    1 +
 target/i386/cpu.h               |    4 -
 target/i386/fpu_helper.c        |    1 +
 target/m68k/cpu.c               |    2 +-
 target/m68k/cpu.h               |    1 -
 target/m68k/fpu_helper.c        |    1 +
 target/m68k/helper.c            |    1 +
 target/m68k/translate.c         |    2 +
 target/microblaze/cpu.c         |    1 +
 target/microblaze/cpu.h         |    2 +-
 target/microblaze/op_helper.c   |    1 +
 target/moxie/cpu.h              |    1 -
 target/nios2/cpu.h              |    1 -
 target/openrisc/cpu.h           |    1 -
 target/openrisc/fpu_helper.c    |    1 +
 target/ppc/cpu.h                |    1 -
 target/ppc/fpu_helper.c         |    1 +
 target/ppc/int_helper.c         |    1 +
 target/ppc/translate_init.c     |    1 +
 target/s390x/cpu.c              |    1 +
 target/s390x/cpu.h              |    2 -
 target/s390x/fpu_helper.c       |    1 +
 target/sh4/cpu.c                |    1 +
 target/sh4/cpu.h                |    2 -
 target/sh4/op_helper.c          |    1 +
 target/sparc/cpu.h              |    2 -
 target/sparc/fop_helper.c       |    1 +
 target/tricore/cpu.h            |    1 -
 target/tricore/fpu_helper.c     |    1 +
 target/tricore/helper.c         |    1 +
 target/unicore32/cpu.c          |    1 +
 target/unicore32/cpu.h          |    1 -
 target/unicore32/ucf64_helper.c |    1 +
 target/xtensa/cpu.h             |    1 -
 target/xtensa/op_helper.c       |    1 +
 49 files changed, 2188 insertions(+), 2940 deletions(-)
 create mode 100644 include/fpu/softfloat-types.h

-- 
2.15.1

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

end of thread, other threads:[~2018-01-29 15:56 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-24 13:12 [Qemu-devel] [PATCH v3 00/22] re-factor softfloat and add fp16 functions Alex Bennée
2018-01-24 13:12 ` [Qemu-devel] [PATCH v3 01/22] fpu/softfloat: implement float16_squash_input_denormal Alex Bennée
2018-01-24 13:12 ` [Qemu-devel] [PATCH v3 02/22] include/fpu/softfloat: remove USE_SOFTFLOAT_STRUCT_TYPES Alex Bennée
2018-01-24 16:30   ` Richard Henderson
2018-01-24 13:12 ` [Qemu-devel] [PATCH v3 03/22] fpu/softfloat-types: new header to prevent excessive re-builds Alex Bennée
2018-01-24 16:31   ` Richard Henderson
2018-01-24 13:12 ` [Qemu-devel] [PATCH v3 04/22] target/*/cpu.h: remove softfloat.h Alex Bennée
2018-01-24 14:11   ` Philippe Mathieu-Daudé
2018-01-24 16:33   ` Richard Henderson
2018-01-24 22:12   ` David Gibson
2018-01-24 13:12 ` [Qemu-devel] [PATCH v3 05/22] include/fpu/softfloat: implement float16_abs helper Alex Bennée
2018-01-24 13:12 ` [Qemu-devel] [PATCH v3 06/22] include/fpu/softfloat: implement float16_chs helper Alex Bennée
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 07/22] include/fpu/softfloat: implement float16_set_sign helper Alex Bennée
2018-01-24 14:12   ` Philippe Mathieu-Daudé
2018-01-24 16:34   ` Richard Henderson
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 08/22] include/fpu/softfloat: add some float16 constants Alex Bennée
2018-01-24 16:34   ` Richard Henderson
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 09/22] fpu/softfloat: improve comments on ARM NaN propagation Alex Bennée
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 10/22] fpu/softfloat: move the extract functions to the top of the file Alex Bennée
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 11/22] fpu/softfloat: define decompose structures Alex Bennée
2018-01-24 14:22   ` Philippe Mathieu-Daudé
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 12/22] fpu/softfloat: re-factor add/sub Alex Bennée
2018-01-24 14:33   ` Philippe Mathieu-Daudé
2018-01-24 14:37     ` Philippe Mathieu-Daudé
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 13/22] fpu/softfloat: re-factor mul Alex Bennée
2018-01-24 16:53   ` Richard Henderson
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 14/22] fpu/softfloat: re-factor div Alex Bennée
2018-01-24 16:58   ` Richard Henderson
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 15/22] fpu/softfloat: re-factor muladd Alex Bennée
2018-01-24 17:24   ` Richard Henderson
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 16/22] fpu/softfloat: re-factor round_to_int Alex Bennée
2018-01-24 17:51   ` Richard Henderson
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 17/22] fpu/softfloat: re-factor float to int/uint Alex Bennée
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 18/22] fpu/softfloat: re-factor int/uint to float Alex Bennée
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 19/22] fpu/softfloat: re-factor scalbn Alex Bennée
2018-01-24 17:41   ` Richard Henderson
2018-01-29 11:59     ` Alex Bennée
2018-01-29 15:50       ` Richard Henderson
2018-01-29 15:56         ` Richard Henderson
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 20/22] fpu/softfloat: re-factor minmax Alex Bennée
2018-01-24 17:31   ` Richard Henderson
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 21/22] fpu/softfloat: re-factor compare Alex Bennée
2018-01-24 17:32   ` Richard Henderson
2018-01-24 13:13 ` [Qemu-devel] [PATCH v3 22/22] fpu/softfloat: re-factor sqrt Alex Bennée
2018-01-24 17:34   ` Richard Henderson
2018-01-24 13:42 ` [Qemu-devel] [PATCH v3 00/22] re-factor softfloat and add fp16 functions no-reply

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.