This is version 2 of the series that removes all the target
ifdefs from fpu/ and switches it to being built only once
rather than once per target. The ifdefs are all either
(1) floatx80 behaviours or (2) simple optimizations to take
a decision at compiletime which we already have the mechanism
to do at runtime.
Tested with 'make check-tcg' and 'make check-functional'; the
series is supposed to not have any behaviour changes.
Changes v1->v2:
* Split the old patches 4 and 5 so each has a patch which
only adds the float_status argument to floatx80_is_infinity()
or floatx80_invalid_encoding(), followed by a smaller patch
which makes the real behaviour change
* Updated the comments in the m68k_denormal patch as per
review discussion
Since the old patches 4 and 5 were both reviewed in their unsplit
form and I have confirmed that the splitting didn't accidentally
produce any change in the code, I have retained both RTH's
and Philippe's reviewed-by tags on all the post-split patches.
So I think we can consider this series as fully reviewed.
Does anybody have any preference for which tree it goes in by?
I can probably throw it in to target-arm.next if nobody has
a better suggestion.
thanks
-- PMM
Peter Maydell (12):
fpu: Make targets specify floatx80 default Inf at runtime
target/m68k: Avoid using floatx80_infinity global const
target/i386: Avoid using floatx80_infinity global const
fpu: Pass float_status to floatx80_is_infinity()
fpu: Make targets specify whether floatx80 Inf can have Int bit clear
fpu: Pass float_status to floatx80_invalid_encoding()
fpu: Make floatx80 invalid encoding settable at runtime
fpu: Move m68k_denormal fmt flag into floatx80_behaviour
fpu: Always decide no_signaling_nans() at runtime
fpu: Always decide snan_bit_is_one() at runtime
fpu: Don't compile-time disable hardfloat for PPC targets
fpu: Build only once
include/fpu/softfloat-helpers.h | 12 +++++
include/fpu/softfloat-types.h | 51 ++++++++++++++++++
include/fpu/softfloat.h | 91 ++++++++++++++++++---------------
fpu/softfloat.c | 23 +++------
target/hppa/fpu_helper.c | 1 +
target/i386/tcg/fpu_helper.c | 51 +++++++++---------
target/m68k/cpu.c | 35 +++++++++++++
target/m68k/fpu_helper.c | 2 +-
target/m68k/softfloat.c | 47 ++++++-----------
target/sh4/cpu.c | 1 +
fpu/softfloat-parts.c.inc | 27 ++++++++--
fpu/softfloat-specialize.c.inc | 29 ++++-------
fpu/meson.build | 2 +-
13 files changed, 236 insertions(+), 136 deletions(-)
--
2.43.0