|
@@ -320,6 +320,18 @@ typedef enum __attribute__((__packed__)) {
|
|
float_ftz_before_rounding = 1,
|
|
float_ftz_before_rounding = 1,
|
|
} FloatFTZDetection;
|
|
} FloatFTZDetection;
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * floatx80 is primarily used by x86 and m68k, and there are
|
|
|
|
+ * differences in the handling, largely related to the explicit
|
|
|
|
+ * Integer bit which floatx80 has and the other float formats do not.
|
|
|
|
+ * These flag values allow specification of the target's requirements
|
|
|
|
+ * and can be ORed together to set floatx80_behaviour.
|
|
|
|
+ */
|
|
|
|
+typedef enum __attribute__((__packed__)) {
|
|
|
|
+ /* In the default Infinity value, is the Integer bit 0 ? */
|
|
|
|
+ floatx80_default_inf_int_bit_is_zero = 1,
|
|
|
|
+} FloatX80Behaviour;
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* Floating Point Status. Individual architectures may maintain
|
|
* Floating Point Status. Individual architectures may maintain
|
|
* several versions of float_status for different functions. The
|
|
* several versions of float_status for different functions. The
|
|
@@ -331,6 +343,7 @@ typedef struct float_status {
|
|
uint16_t float_exception_flags;
|
|
uint16_t float_exception_flags;
|
|
FloatRoundMode float_rounding_mode;
|
|
FloatRoundMode float_rounding_mode;
|
|
FloatX80RoundPrec floatx80_rounding_precision;
|
|
FloatX80RoundPrec floatx80_rounding_precision;
|
|
|
|
+ FloatX80Behaviour floatx80_behaviour;
|
|
Float2NaNPropRule float_2nan_prop_rule;
|
|
Float2NaNPropRule float_2nan_prop_rule;
|
|
Float3NaNPropRule float_3nan_prop_rule;
|
|
Float3NaNPropRule float_3nan_prop_rule;
|
|
FloatInfZeroNaNRule float_infzeronan_rule;
|
|
FloatInfZeroNaNRule float_infzeronan_rule;
|