softfloat: Add float/double to 16 bit integer conversion functions
The ARM architecture needs float/double to 16 bit integer conversions. (The 32 bit versions aren't sufficient because of the requirement to saturate at 16 bit MAXINT/MININT and to get the exception bits right.) Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Nathan Froyd <froydnj@codesourcery.com>
This commit is contained in:
parent
26a5e69aaf
commit
cbcef455a2
2 changed files with 140 additions and 0 deletions
|
|
@ -251,6 +251,8 @@ float32 float16_to_float32( bits16, flag STATUS_PARAM );
|
|||
/*----------------------------------------------------------------------------
|
||||
| Software IEC/IEEE single-precision conversion routines.
|
||||
*----------------------------------------------------------------------------*/
|
||||
int float32_to_int16_round_to_zero( float32 STATUS_PARAM );
|
||||
unsigned int float32_to_uint16_round_to_zero( float32 STATUS_PARAM );
|
||||
int float32_to_int32( float32 STATUS_PARAM );
|
||||
int float32_to_int32_round_to_zero( float32 STATUS_PARAM );
|
||||
unsigned int float32_to_uint32( float32 STATUS_PARAM );
|
||||
|
|
@ -327,6 +329,8 @@ INLINE int float32_is_any_nan(float32 a)
|
|||
/*----------------------------------------------------------------------------
|
||||
| Software IEC/IEEE double-precision conversion routines.
|
||||
*----------------------------------------------------------------------------*/
|
||||
int float64_to_int16_round_to_zero( float64 STATUS_PARAM );
|
||||
unsigned int float64_to_uint16_round_to_zero( float64 STATUS_PARAM );
|
||||
int float64_to_int32( float64 STATUS_PARAM );
|
||||
int float64_to_int32_round_to_zero( float64 STATUS_PARAM );
|
||||
unsigned int float64_to_uint32( float64 STATUS_PARAM );
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue