提交 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
| 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;
}
......@@ -253,7 +253,7 @@ float16 float16_maybe_silence_nan(float16 a_)
| exception is raised.
*----------------------------------------------------------------------------*/
static commonNaNT float16ToCommonNaN( float16 a STATUS_PARAM )
static commonNaNT float16ToCommonNaN(float16 a, float_status *status)
{
commonNaNT z;
......@@ -269,7 +269,7 @@ static commonNaNT float16ToCommonNaN( float16 a STATUS_PARAM )
| 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;
......@@ -356,7 +356,7 @@ float32 float32_maybe_silence_nan( float32 a_ )
| exception is raised.
*----------------------------------------------------------------------------*/
static commonNaNT float32ToCommonNaN( float32 a STATUS_PARAM )
static commonNaNT float32ToCommonNaN(float32 a, float_status *status)
{
commonNaNT z;
......@@ -372,7 +372,7 @@ static commonNaNT float32ToCommonNaN( float32 a STATUS_PARAM )
| 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;
......@@ -507,7 +507,8 @@ static int pickNaN(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN,
*----------------------------------------------------------------------------*/
#if defined(TARGET_ARM)
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
* the default NaN
......@@ -536,7 +537,8 @@ static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN,
}
#elif defined(TARGET_MIPS)
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
* the default NaN
......@@ -563,7 +565,8 @@ static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN,
}
#elif defined(TARGET_PPC)
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
* 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,
* This is unlikely to actually match any real implementation.
*/
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) {
return 0;
......@@ -608,7 +612,7 @@ static int pickNaNMulAdd(flag aIsQNaN, flag aIsSNaN, flag bIsQNaN, flag bIsSNaN,
| 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 aIsLargerSignificand;
......@@ -652,7 +656,8 @@ static float32 propagateFloat32NaN( float32 a, float32 b STATUS_PARAM)
*----------------------------------------------------------------------------*/
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,
cIsQuietNaN, cIsSignalingNaN;
......@@ -767,7 +772,7 @@ float64 float64_maybe_silence_nan( float64 a_ )
| exception is raised.
*----------------------------------------------------------------------------*/
static commonNaNT float64ToCommonNaN( float64 a STATUS_PARAM)
static commonNaNT float64ToCommonNaN(float64 a, float_status *status)
{
commonNaNT z;
......@@ -783,7 +788,7 @@ static commonNaNT float64ToCommonNaN( float64 a STATUS_PARAM)
| 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;
......@@ -806,7 +811,7 @@ static float64 commonNaNToFloat64( commonNaNT a STATUS_PARAM)
| 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 aIsLargerSignificand;
......@@ -850,7 +855,8 @@ static float64 propagateFloat64NaN( float64 a, float64 b STATUS_PARAM)
*----------------------------------------------------------------------------*/
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,
cIsQuietNaN, cIsSignalingNaN;
......@@ -975,7 +981,7 @@ floatx80 floatx80_maybe_silence_nan( floatx80 a )
| invalid exception is raised.
*----------------------------------------------------------------------------*/
static commonNaNT floatx80ToCommonNaN( floatx80 a STATUS_PARAM)
static commonNaNT floatx80ToCommonNaN(floatx80 a, float_status *status)
{
commonNaNT z;
......@@ -997,7 +1003,7 @@ static commonNaNT floatx80ToCommonNaN( floatx80 a STATUS_PARAM)
| double-precision floating-point format.
*----------------------------------------------------------------------------*/
static floatx80 commonNaNToFloatx80( commonNaNT a STATUS_PARAM)
static floatx80 commonNaNToFloatx80(commonNaNT a, float_status *status)
{
floatx80 z;
......@@ -1024,7 +1030,8 @@ static floatx80 commonNaNToFloatx80( commonNaNT a STATUS_PARAM)
| `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 aIsLargerSignificand;
......@@ -1134,7 +1141,7 @@ float128 float128_maybe_silence_nan( float128 a )
| exception is raised.
*----------------------------------------------------------------------------*/
static commonNaNT float128ToCommonNaN( float128 a STATUS_PARAM)
static commonNaNT float128ToCommonNaN(float128 a, float_status *status)
{
commonNaNT z;
......@@ -1149,7 +1156,7 @@ static commonNaNT float128ToCommonNaN( float128 a STATUS_PARAM)
| precision floating-point format.
*----------------------------------------------------------------------------*/
static float128 commonNaNToFloat128( commonNaNT a STATUS_PARAM)
static float128 commonNaNToFloat128(commonNaNT a, float_status *status)
{
float128 z;
......@@ -1170,7 +1177,8 @@ static float128 commonNaNToFloat128( commonNaNT a STATUS_PARAM)
| `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 aIsLargerSignificand;
......
此差异已折叠。
此差异已折叠。
......@@ -1614,7 +1614,8 @@ static inline int get_enabled_exceptions(const CPUMIPSState *env, int c)
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;
......@@ -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;
}
static inline float32 float32_from_float64(int64 a STATUS_PARAM)
static inline float32 float32_from_float64(int64 a, float_status *status)
{
float32 f_val;
......@@ -1634,7 +1635,8 @@ static inline float32 float32_from_float64(int64 a STATUS_PARAM)
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;
......@@ -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;
}
static inline float64 float64_from_float32(int32 a STATUS_PARAM)
static inline float64 float64_from_float32(int32 a, float_status *status)
{
float64 f_val;
......@@ -1654,7 +1656,7 @@ static inline float64 float64_from_float32(int32 a STATUS_PARAM)
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;
......@@ -1665,7 +1667,7 @@ static inline float32 float32_from_q16(int16_t a STATUS_PARAM)
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;
......@@ -1676,7 +1678,7 @@ static inline float64 float64_from_q32(int32 a STATUS_PARAM)
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_min = 0xffff8000;
......@@ -1728,7 +1730,7 @@ static inline int16_t float32_to_q16(float32 a STATUS_PARAM)
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_min = 0xffffffff80000000LL;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册