This patch series fixes a number of minor Neon bugs, mostly related
to edge cases involving NaN handling.

The patch series includes adding support for float*_min() and
float*_max() operations to softfloat, because this makes it easy to
get NaN propagation and handling of zeroes correct. I've only added
support for float32 and float64 versions because I think the
implementation is complex enough that there's no point providing
an untested and unused version for float128. (floatx80 doesn't
even implement the comparison ops so min/max is definitely a
stretch there.)

I note in passing that patch 6 (the softfloat one) seems to
hang scripts/checkpatch.pl, or at least make it take an unreasonably
long time to finish...

Peter Maydell (7):
  target-arm: Make Neon helper routines use correct FP status
  target-arm/neon_helper.c: Use make_float32/float32_val macros
  target-arm: Return right result for Neon comparison with NaNs
  target-arm: Fix VCLE.F32 #0, VCLT.F32 #0 NaN handling
  target-arm: Correct ABD's handling of negative zeroes
  softfloat: Add float*_min() and float*_max() functions
  target-arm: Use new softfloat min/max functions for VMAX,VMIN

 fpu/softfloat.c          |   49 ++++++++++++++++++++++
 fpu/softfloat.h          |    4 ++
 target-arm/helpers.h     |   22 +++++-----
 target-arm/neon_helper.c |  103 ++++++++++++++++++---------------------------
 target-arm/translate.c   |   60 +++++++++++++++------------
 5 files changed, 139 insertions(+), 99 deletions(-)


Reply via email to