On Thu, Apr 5, 2012 at 18:12, Peter Maydell <peter.mayd...@linaro.org> wrote: > Code in the float64_to_int32_round_to_zero() function was assuming > that int32 would not be wider than 32 bits; this meant it might > not correctly detect the overflow case. We take the simple approach > of using int32_t. Also fix equivalent issues in the functions > for other float sizes.
Thanks, applied both. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > fpu/softfloat.c | 8 ++++---- > 1 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/fpu/softfloat.c b/fpu/softfloat.c > index 81a7d1a..074fbc3 100644 > --- a/fpu/softfloat.c > +++ b/fpu/softfloat.c > @@ -1378,7 +1378,7 @@ int32 float32_to_int32_round_to_zero( float32 a > STATUS_PARAM ) > flag aSign; > int16 aExp, shiftCount; > uint32_t aSig; > - int32 z; > + int32_t z; > a = float32_squash_input_denormal(a STATUS_VAR); > > aSig = extractFloat32Frac( a ); > @@ -2762,7 +2762,7 @@ int32 float64_to_int32_round_to_zero( float64 a > STATUS_PARAM ) > flag aSign; > int16 aExp, shiftCount; > uint64_t aSig, savedASig; > - int32 z; > + int32_t z; > a = float64_squash_input_denormal(a STATUS_VAR); > > aSig = extractFloat64Frac( a ); > @@ -4248,7 +4248,7 @@ int32 floatx80_to_int32_round_to_zero( floatx80 a > STATUS_PARAM ) > flag aSign; > int32 aExp, shiftCount; > uint64_t aSig, savedASig; > - int32 z; > + int32_t z; > > aSig = extractFloatx80Frac( a ); > aExp = extractFloatx80Exp( a ); > @@ -5277,7 +5277,7 @@ int32 float128_to_int32_round_to_zero( float128 a > STATUS_PARAM ) > flag aSign; > int32 aExp, shiftCount; > uint64_t aSig0, aSig1, savedASig; > - int32 z; > + int32_t z; > > aSig1 = extractFloat128Frac1( a ); > aSig0 = extractFloat128Frac0( a ); > -- > 1.7.1 > >