提交 e5a41ffa 编写于 作者: P Peter Maydell

softfloat: Expand out the STATUS_PARAM macro

Expand out STATUS_PARAM wherever it is used and delete the definition.
Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
Reviewed-by: NRichard Henderson <rth@twiddle.net>
上级 cebbae86
...@@ -170,7 +170,7 @@ const float128 float128_default_nan ...@@ -170,7 +170,7 @@ const float128 float128_default_nan
| should be simply `float_exception_flags |= flags;'. | should be simply `float_exception_flags |= flags;'.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
void float_raise( int8 flags STATUS_PARAM ) void float_raise(int8 flags, float_status *status)
{ {
STATUS(float_exception_flags) |= flags; STATUS(float_exception_flags) |= flags;
} }
...@@ -253,7 +253,7 @@ float16 float16_maybe_silence_nan(float16 a_) ...@@ -253,7 +253,7 @@ float16 float16_maybe_silence_nan(float16 a_)
| exception is raised. | exception is raised.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static commonNaNT float16ToCommonNaN( float16 a STATUS_PARAM ) static commonNaNT float16ToCommonNaN(float16 a, float_status *status)
{ {
commonNaNT z; commonNaNT z;
...@@ -269,7 +269,7 @@ static commonNaNT float16ToCommonNaN( float16 a STATUS_PARAM ) ...@@ -269,7 +269,7 @@ static commonNaNT float16ToCommonNaN( float16 a STATUS_PARAM )
| precision floating-point format. | precision floating-point format.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static float16 commonNaNToFloat16(commonNaNT a STATUS_PARAM) static float16 commonNaNToFloat16(commonNaNT a, float_status *status)
{ {
uint16_t mantissa = a.high>>54; uint16_t mantissa = a.high>>54;
...@@ -356,7 +356,7 @@ float32 float32_maybe_silence_nan( float32 a_ ) ...@@ -356,7 +356,7 @@ float32 float32_maybe_silence_nan( float32 a_ )
| exception is raised. | exception is raised.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static commonNaNT float32ToCommonNaN( float32 a STATUS_PARAM ) static commonNaNT float32ToCommonNaN(float32 a, float_status *status)
{ {
commonNaNT z; commonNaNT z;
...@@ -372,7 +372,7 @@ static commonNaNT float32ToCommonNaN( float32 a STATUS_PARAM ) ...@@ -372,7 +372,7 @@ static commonNaNT float32ToCommonNaN( float32 a STATUS_PARAM )
| precision floating-point format. | precision floating-point format.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static float32 commonNaNToFloat32( commonNaNT a STATUS_PARAM) static float32 commonNaNToFloat32(commonNaNT a, float_status *status)
{ {
uint32_t mantissa = a.high>>41; uint32_t mantissa = a.high>>41;
...@@ -507,7 +507,8 @@ static int pickNaN(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN, ...@@ -507,7 +507,8 @@ static int pickNaN(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN,
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
#if defined(TARGET_ARM) #if defined(TARGET_ARM)
static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN, static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN,
flag cIsQNaN, flag cIsSNaN, flag infzero STATUS_PARAM) flag cIsQNaN, flag cIsSNaN, flag infzero,
float_status *status)
{ {
/* For ARM, the (inf,zero,qnan) case sets InvalidOp and returns /* For ARM, the (inf,zero,qnan) case sets InvalidOp and returns
* the default NaN * the default NaN
...@@ -536,7 +537,8 @@ static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN, ...@@ -536,7 +537,8 @@ static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN,
} }
#elif defined(TARGET_MIPS) #elif defined(TARGET_MIPS)
static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN, static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN,
flag cIsQNaN, flag cIsSNaN, flag infzero STATUS_PARAM) flag cIsQNaN, flag cIsSNaN, flag infzero,
float_status *status)
{ {
/* For MIPS, the (inf,zero,qnan) case sets InvalidOp and returns /* For MIPS, the (inf,zero,qnan) case sets InvalidOp and returns
* the default NaN * the default NaN
...@@ -563,7 +565,8 @@ static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN, ...@@ -563,7 +565,8 @@ static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN,
} }
#elif defined(TARGET_PPC) #elif defined(TARGET_PPC)
static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN, static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN,
flag cIsQNaN, flag cIsSNaN, flag infzero STATUS_PARAM) flag cIsQNaN, flag cIsSNaN, flag infzero,
float_status *status)
{ {
/* For PPC, the (inf,zero,qnan) case sets InvalidOp, but we prefer /* For PPC, the (inf,zero,qnan) case sets InvalidOp, but we prefer
* to return an input NaN if we have one (ie c) rather than generating * to return an input NaN if we have one (ie c) rather than generating
...@@ -590,7 +593,8 @@ static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN, ...@@ -590,7 +593,8 @@ static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN,
* This is unlikely to actually match any real implementation. * This is unlikely to actually match any real implementation.
*/ */
static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN, static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN,
flag cIsQNaN, flag cIsSNaN, flag infzero STATUS_PARAM) flag cIsQNaN, flag cIsSNaN, flag infzero,
float_status *status)
{ {
if (aIsSNaN || aIsQNaN) { if (aIsSNaN || aIsQNaN) {
return 0; return 0;
...@@ -608,7 +612,7 @@ static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN, ...@@ -608,7 +612,7 @@ static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN,
| signaling NaN, the invalid exception is raised. | signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static float32 propagateFloat32NaN( float32 a, float32 b STATUS_PARAM) static float32 propagateFloat32NaN(float32 a, float32 b, float_status *status)
{ {
flag aIsQuietNaN, aIsSignalingNaN, bIsQuietNaN, bIsSignalingNaN; flag aIsQuietNaN, aIsSignalingNaN, bIsQuietNaN, bIsSignalingNaN;
flag aIsLargerSignificand; flag aIsLargerSignificand;
...@@ -652,7 +656,8 @@ static float32 propagateFloat32NaN( float32 a, float32 b STATUS_PARAM) ...@@ -652,7 +656,8 @@ static float32 propagateFloat32NaN( float32 a, float32 b STATUS_PARAM)
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static float32 propagateFloat32MulAddNaN(float32 a, float32 b, static float32 propagateFloat32MulAddNaN(float32 a, float32 b,
float32 c, flag infzero STATUS_PARAM) float32 c, flag infzero,
float_status *status)
{ {
flag aIsQuietNaN, aIsSignalingNaN, bIsQuietNaN, bIsSignalingNaN, flag aIsQuietNaN, aIsSignalingNaN, bIsQuietNaN, bIsSignalingNaN,
cIsQuietNaN, cIsSignalingNaN; cIsQuietNaN, cIsSignalingNaN;
...@@ -767,7 +772,7 @@ float64 float64_maybe_silence_nan( float64 a_ ) ...@@ -767,7 +772,7 @@ float64 float64_maybe_silence_nan( float64 a_ )
| exception is raised. | exception is raised.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static commonNaNT float64ToCommonNaN( float64 a STATUS_PARAM) static commonNaNT float64ToCommonNaN(float64 a, float_status *status)
{ {
commonNaNT z; commonNaNT z;
...@@ -783,7 +788,7 @@ static commonNaNT float64ToCommonNaN( float64 a STATUS_PARAM) ...@@ -783,7 +788,7 @@ static commonNaNT float64ToCommonNaN( float64 a STATUS_PARAM)
| precision floating-point format. | precision floating-point format.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static float64 commonNaNToFloat64( commonNaNT a STATUS_PARAM) static float64 commonNaNToFloat64(commonNaNT a, float_status *status)
{ {
uint64_t mantissa = a.high>>12; uint64_t mantissa = a.high>>12;
...@@ -806,7 +811,7 @@ static float64 commonNaNToFloat64( commonNaNT a STATUS_PARAM) ...@@ -806,7 +811,7 @@ static float64 commonNaNToFloat64( commonNaNT a STATUS_PARAM)
| signaling NaN, the invalid exception is raised. | signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static float64 propagateFloat64NaN( float64 a, float64 b STATUS_PARAM) static float64 propagateFloat64NaN(float64 a, float64 b, float_status *status)
{ {
flag aIsQuietNaN, aIsSignalingNaN, bIsQuietNaN, bIsSignalingNaN; flag aIsQuietNaN, aIsSignalingNaN, bIsQuietNaN, bIsSignalingNaN;
flag aIsLargerSignificand; flag aIsLargerSignificand;
...@@ -850,7 +855,8 @@ static float64 propagateFloat64NaN( float64 a, float64 b STATUS_PARAM) ...@@ -850,7 +855,8 @@ static float64 propagateFloat64NaN( float64 a, float64 b STATUS_PARAM)
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static float64 propagateFloat64MulAddNaN(float64 a, float64 b, static float64 propagateFloat64MulAddNaN(float64 a, float64 b,
float64 c, flag infzero STATUS_PARAM) float64 c, flag infzero,
float_status *status)
{ {
flag aIsQuietNaN, aIsSignalingNaN, bIsQuietNaN, bIsSignalingNaN, flag aIsQuietNaN, aIsSignalingNaN, bIsQuietNaN, bIsSignalingNaN,
cIsQuietNaN, cIsSignalingNaN; cIsQuietNaN, cIsSignalingNaN;
...@@ -975,7 +981,7 @@ floatx80 floatx80_maybe_silence_nan( floatx80 a ) ...@@ -975,7 +981,7 @@ floatx80 floatx80_maybe_silence_nan( floatx80 a )
| invalid exception is raised. | invalid exception is raised.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static commonNaNT floatx80ToCommonNaN( floatx80 a STATUS_PARAM) static commonNaNT floatx80ToCommonNaN(floatx80 a, float_status *status)
{ {
commonNaNT z; commonNaNT z;
...@@ -997,7 +1003,7 @@ static commonNaNT floatx80ToCommonNaN( floatx80 a STATUS_PARAM) ...@@ -997,7 +1003,7 @@ static commonNaNT floatx80ToCommonNaN( floatx80 a STATUS_PARAM)
| double-precision floating-point format. | double-precision floating-point format.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static floatx80 commonNaNToFloatx80( commonNaNT a STATUS_PARAM) static floatx80 commonNaNToFloatx80(commonNaNT a, float_status *status)
{ {
floatx80 z; floatx80 z;
...@@ -1024,7 +1030,8 @@ static floatx80 commonNaNToFloatx80( commonNaNT a STATUS_PARAM) ...@@ -1024,7 +1030,8 @@ static floatx80 commonNaNToFloatx80( commonNaNT a STATUS_PARAM)
| `b' is a signaling NaN, the invalid exception is raised. | `b' is a signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static floatx80 propagateFloatx80NaN( floatx80 a, floatx80 b STATUS_PARAM) static floatx80 propagateFloatx80NaN(floatx80 a, floatx80 b,
float_status *status)
{ {
flag aIsQuietNaN, aIsSignalingNaN, bIsQuietNaN, bIsSignalingNaN; flag aIsQuietNaN, aIsSignalingNaN, bIsQuietNaN, bIsSignalingNaN;
flag aIsLargerSignificand; flag aIsLargerSignificand;
...@@ -1134,7 +1141,7 @@ float128 float128_maybe_silence_nan( float128 a ) ...@@ -1134,7 +1141,7 @@ float128 float128_maybe_silence_nan( float128 a )
| exception is raised. | exception is raised.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static commonNaNT float128ToCommonNaN( float128 a STATUS_PARAM) static commonNaNT float128ToCommonNaN(float128 a, float_status *status)
{ {
commonNaNT z; commonNaNT z;
...@@ -1149,7 +1156,7 @@ static commonNaNT float128ToCommonNaN( float128 a STATUS_PARAM) ...@@ -1149,7 +1156,7 @@ static commonNaNT float128ToCommonNaN( float128 a STATUS_PARAM)
| precision floating-point format. | precision floating-point format.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static float128 commonNaNToFloat128( commonNaNT a STATUS_PARAM) static float128 commonNaNToFloat128(commonNaNT a, float_status *status)
{ {
float128 z; float128 z;
...@@ -1170,7 +1177,8 @@ static float128 commonNaNToFloat128( commonNaNT a STATUS_PARAM) ...@@ -1170,7 +1177,8 @@ static float128 commonNaNToFloat128( commonNaNT a STATUS_PARAM)
| `b' is a signaling NaN, the invalid exception is raised. | `b' is a signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
static float128 propagateFloat128NaN( float128 a, float128 b STATUS_PARAM) static float128 propagateFloat128NaN(float128 a, float128 b,
float_status *status)
{ {
flag aIsQuietNaN, aIsSignalingNaN, bIsQuietNaN, bIsSignalingNaN; flag aIsQuietNaN, aIsSignalingNaN, bIsQuietNaN, bIsSignalingNaN;
flag aIsLargerSignificand; flag aIsLargerSignificand;
......
此差异已折叠。
此差异已折叠。
...@@ -1614,7 +1614,8 @@ static inline int get_enabled_exceptions(const CPUMIPSState *env, int c) ...@@ -1614,7 +1614,8 @@ static inline int get_enabled_exceptions(const CPUMIPSState *env, int c)
return c & enable; return c & enable;
} }
static inline float16 float16_from_float32(int32 a, flag ieee STATUS_PARAM) static inline float16 float16_from_float32(int32 a, flag ieee,
float_status *status)
{ {
float16 f_val; float16 f_val;
...@@ -1624,7 +1625,7 @@ static inline float16 float16_from_float32(int32 a, flag ieee STATUS_PARAM) ...@@ -1624,7 +1625,7 @@ static inline float16 float16_from_float32(int32 a, flag ieee STATUS_PARAM)
return a < 0 ? (f_val | (1 << 15)) : f_val; return a < 0 ? (f_val | (1 << 15)) : f_val;
} }
static inline float32 float32_from_float64(int64 a STATUS_PARAM) static inline float32 float32_from_float64(int64 a, float_status *status)
{ {
float32 f_val; float32 f_val;
...@@ -1634,7 +1635,8 @@ static inline float32 float32_from_float64(int64 a STATUS_PARAM) ...@@ -1634,7 +1635,8 @@ static inline float32 float32_from_float64(int64 a STATUS_PARAM)
return a < 0 ? (f_val | (1 << 31)) : f_val; return a < 0 ? (f_val | (1 << 31)) : f_val;
} }
static inline float32 float32_from_float16(int16_t a, flag ieee STATUS_PARAM) static inline float32 float32_from_float16(int16_t a, flag ieee,
float_status *status)
{ {
float32 f_val; float32 f_val;
...@@ -1644,7 +1646,7 @@ static inline float32 float32_from_float16(int16_t a, flag ieee STATUS_PARAM) ...@@ -1644,7 +1646,7 @@ static inline float32 float32_from_float16(int16_t a, flag ieee STATUS_PARAM)
return a < 0 ? (f_val | (1 << 31)) : f_val; return a < 0 ? (f_val | (1 << 31)) : f_val;
} }
static inline float64 float64_from_float32(int32 a STATUS_PARAM) static inline float64 float64_from_float32(int32 a, float_status *status)
{ {
float64 f_val; float64 f_val;
...@@ -1654,7 +1656,7 @@ static inline float64 float64_from_float32(int32 a STATUS_PARAM) ...@@ -1654,7 +1656,7 @@ static inline float64 float64_from_float32(int32 a STATUS_PARAM)
return a < 0 ? (f_val | (1ULL << 63)) : f_val; return a < 0 ? (f_val | (1ULL << 63)) : f_val;
} }
static inline float32 float32_from_q16(int16_t a STATUS_PARAM) static inline float32 float32_from_q16(int16_t a, float_status *status)
{ {
float32 f_val; float32 f_val;
...@@ -1665,7 +1667,7 @@ static inline float32 float32_from_q16(int16_t a STATUS_PARAM) ...@@ -1665,7 +1667,7 @@ static inline float32 float32_from_q16(int16_t a STATUS_PARAM)
return f_val; return f_val;
} }
static inline float64 float64_from_q32(int32 a STATUS_PARAM) static inline float64 float64_from_q32(int32 a, float_status *status)
{ {
float64 f_val; float64 f_val;
...@@ -1676,7 +1678,7 @@ static inline float64 float64_from_q32(int32 a STATUS_PARAM) ...@@ -1676,7 +1678,7 @@ static inline float64 float64_from_q32(int32 a STATUS_PARAM)
return f_val; return f_val;
} }
static inline int16_t float32_to_q16(float32 a STATUS_PARAM) static inline int16_t float32_to_q16(float32 a, float_status *status)
{ {
int32 q_val; int32 q_val;
int32 q_min = 0xffff8000; int32 q_min = 0xffff8000;
...@@ -1728,7 +1730,7 @@ static inline int16_t float32_to_q16(float32 a STATUS_PARAM) ...@@ -1728,7 +1730,7 @@ static inline int16_t float32_to_q16(float32 a STATUS_PARAM)
return (int16_t)q_val; return (int16_t)q_val;
} }
static inline int32 float64_to_q32(float64 a STATUS_PARAM) static inline int32 float64_to_q32(float64 a, float_status *status)
{ {
int64 q_val; int64 q_val;
int64 q_min = 0xffffffff80000000LL; int64 q_min = 0xffffffff80000000LL;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册