summary refs log tree commit diff stats
path: root/include
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2020-06-30 19:35:57 -0700
committerMax Filippov <jcmvbkbc@gmail.com>2020-08-21 12:48:14 -0700
commit913602e3ffe6bf50b869a14028a55cb267645ba3 (patch)
tree45be64d9ad89eba35b0304adb8c5de58777ecdcc /include
parentcc43c6925113c5bc8f1a0205375931d2e4807c99 (diff)
downloadfocaccia-qemu-913602e3ffe6bf50b869a14028a55cb267645ba3.tar.gz
focaccia-qemu-913602e3ffe6bf50b869a14028a55cb267645ba3.zip
softfloat: pass float_status pointer to pickNaN
Pass float_status structure pointer to the pickNaN so that
machine-specific settings are available to NaN selection code.
Add use_first_nan property to float_status and use it in Xtensa-specific
pickNaN.

Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: "Alex Bennée" <alex.bennee@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'include')
-rw-r--r--include/fpu/softfloat-helpers.h5
-rw-r--r--include/fpu/softfloat-types.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/include/fpu/softfloat-helpers.h b/include/fpu/softfloat-helpers.h
index e842f83a12..2f0674fbdd 100644
--- a/include/fpu/softfloat-helpers.h
+++ b/include/fpu/softfloat-helpers.h
@@ -95,6 +95,11 @@ static inline void set_snan_bit_is_one(bool val, float_status *status)
     status->snan_bit_is_one = val;
 }
 
+static inline void set_use_first_nan(bool val, float_status *status)
+{
+    status->use_first_nan = val;
+}
+
 static inline void set_no_signaling_nans(bool val, float_status *status)
 {
     status->no_signaling_nans = val;
diff --git a/include/fpu/softfloat-types.h b/include/fpu/softfloat-types.h
index d6f167c1b0..c7ddcab8ca 100644
--- a/include/fpu/softfloat-types.h
+++ b/include/fpu/softfloat-types.h
@@ -171,6 +171,7 @@ typedef struct float_status {
      * softfloat-specialize.inc.c)
      */
     bool snan_bit_is_one;
+    bool use_first_nan;
     bool no_signaling_nans;
 } float_status;