diff options
| author | Will Newton | 2014-01-07 18:17:48 +0100 |
|---|---|---|
| committer | Peter Maydell | 2014-01-08 20:07:22 +0100 |
| commit | f581bf5474d2319ca37484eb63208017ac96ce0a (patch) | |
| tree | f05a54d2477f6cbf9986797ea6f44cccfb58a0e0 /include/fpu | |
| parent | softfloat: Fix exception flag handling for float32_to_float16() (diff) | |
| download | qemu-f581bf5474d2319ca37484eb63208017ac96ce0a.tar.gz qemu-f581bf5474d2319ca37484eb63208017ac96ce0a.tar.xz qemu-f581bf5474d2319ca37484eb63208017ac96ce0a.zip | |
softfloat: Add float to 16bit integer conversions.
ARMv8 requires support for converting 32 and 64bit floating point
values to signed and unsigned 16bit integers.
Signed-off-by: Will Newton <will.newton@linaro.org>
[PMM: updated not to incorrectly set Inexact for Invalid inputs]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'include/fpu')
| -rw-r--r-- | include/fpu/softfloat.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/fpu/softfloat.h b/include/fpu/softfloat.h index 2365274daa..a9b8cd9950 100644 --- a/include/fpu/softfloat.h +++ b/include/fpu/softfloat.h @@ -265,6 +265,8 @@ extern const float16 float16_default_nan; /*---------------------------------------------------------------------------- | Software IEC/IEEE single-precision conversion routines. *----------------------------------------------------------------------------*/ +int_fast16_t float32_to_int16(float32 STATUS_PARAM); +uint_fast16_t float32_to_uint16(float32 STATUS_PARAM); int_fast16_t float32_to_int16_round_to_zero(float32 STATUS_PARAM); uint_fast16_t float32_to_uint16_round_to_zero(float32 STATUS_PARAM); int32 float32_to_int32( float32 STATUS_PARAM ); @@ -371,6 +373,8 @@ extern const float32 float32_default_nan; /*---------------------------------------------------------------------------- | Software IEC/IEEE double-precision conversion routines. *----------------------------------------------------------------------------*/ +int_fast16_t float64_to_int16(float64 STATUS_PARAM); +uint_fast16_t float64_to_uint16(float64 STATUS_PARAM); int_fast16_t float64_to_int16_round_to_zero(float64 STATUS_PARAM); uint_fast16_t float64_to_uint16_round_to_zero(float64 STATUS_PARAM); int32 float64_to_int32( float64 STATUS_PARAM ); |
