[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 00/22] re-factor softfloat and add fp16 functions
From: |
Alex Bennée |
Subject: |
[Qemu-devel] [PATCH v3 00/22] re-factor softfloat and add fp16 functions |
Date: |
Wed, 24 Jan 2018 13:12:53 +0000 |
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
- [Qemu-devel] [PATCH v3 00/22] re-factor softfloat and add fp16 functions,
Alex Bennée <=
- [Qemu-devel] [PATCH v3 02/22] include/fpu/softfloat: remove USE_SOFTFLOAT_STRUCT_TYPES, Alex Bennée, 2018/01/24
- [Qemu-devel] [PATCH v3 01/22] fpu/softfloat: implement float16_squash_input_denormal, Alex Bennée, 2018/01/24
- [Qemu-devel] [PATCH v3 03/22] fpu/softfloat-types: new header to prevent excessive re-builds, Alex Bennée, 2018/01/24
- [Qemu-devel] [PATCH v3 04/22] target/*/cpu.h: remove softfloat.h, Alex Bennée, 2018/01/24
- [Qemu-devel] [PATCH v3 05/22] include/fpu/softfloat: implement float16_abs helper, Alex Bennée, 2018/01/24