|
@@ -73,7 +73,7 @@ do { \
|
|
X##_c = FP_CLS_NAN; \
|
|
X##_c = FP_CLS_NAN; \
|
|
/* Check for signaling NaN */ \
|
|
/* Check for signaling NaN */ \
|
|
if (!(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)) \
|
|
if (!(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)) \
|
|
- FP_SET_EXCEPTION(FP_EX_INVALID); \
|
|
|
|
|
|
+ FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_SNAN); \
|
|
} \
|
|
} \
|
|
break; \
|
|
break; \
|
|
} \
|
|
} \
|
|
@@ -324,7 +324,7 @@ do { \
|
|
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
|
|
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
|
|
R##_s = _FP_NANSIGN_##fs; \
|
|
R##_s = _FP_NANSIGN_##fs; \
|
|
R##_c = FP_CLS_NAN; \
|
|
R##_c = FP_CLS_NAN; \
|
|
- FP_SET_EXCEPTION(FP_EX_INVALID); \
|
|
|
|
|
|
+ FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_ISI); \
|
|
break; \
|
|
break; \
|
|
} \
|
|
} \
|
|
/* FALLTHRU */ \
|
|
/* FALLTHRU */ \
|
|
@@ -431,7 +431,7 @@ do { \
|
|
R##_s = _FP_NANSIGN_##fs; \
|
|
R##_s = _FP_NANSIGN_##fs; \
|
|
R##_c = FP_CLS_NAN; \
|
|
R##_c = FP_CLS_NAN; \
|
|
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
|
|
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
|
|
- FP_SET_EXCEPTION(FP_EX_INVALID); \
|
|
|
|
|
|
+ FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_IMZ);\
|
|
break; \
|
|
break; \
|
|
\
|
|
\
|
|
default: \
|
|
default: \
|
|
@@ -490,11 +490,15 @@ do { \
|
|
break; \
|
|
break; \
|
|
\
|
|
\
|
|
case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_INF): \
|
|
case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_INF): \
|
|
|
|
+ R##_s = _FP_NANSIGN_##fs; \
|
|
|
|
+ R##_c = FP_CLS_NAN; \
|
|
|
|
+ _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
|
|
|
|
+ FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_IDI);\
|
|
case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_ZERO): \
|
|
case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_ZERO): \
|
|
R##_s = _FP_NANSIGN_##fs; \
|
|
R##_s = _FP_NANSIGN_##fs; \
|
|
R##_c = FP_CLS_NAN; \
|
|
R##_c = FP_CLS_NAN; \
|
|
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
|
|
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
|
|
- FP_SET_EXCEPTION(FP_EX_INVALID); \
|
|
|
|
|
|
+ FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_ZDZ);\
|
|
break; \
|
|
break; \
|
|
\
|
|
\
|
|
default: \
|
|
default: \
|