mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
arm/translate-a64: add FP16 FR[ECP/SQRT]S to simd_three_reg_same_fp16
As some of the constants here will also be needed elsewhere (specifically for the upcoming SVE support) we move them out to softfloat.h. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20180227143852.11175-13-alex.bennee@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
2deb992b76
commit
026e2d6ef7
4 changed files with 55 additions and 5 deletions
|
@ -306,8 +306,11 @@ static inline float16 float16_set_sign(float16 a, int sign)
|
|||
}
|
||||
|
||||
#define float16_zero make_float16(0)
|
||||
#define float16_one make_float16(0x3c00)
|
||||
#define float16_half make_float16(0x3800)
|
||||
#define float16_one make_float16(0x3c00)
|
||||
#define float16_one_point_five make_float16(0x3e00)
|
||||
#define float16_two make_float16(0x4000)
|
||||
#define float16_three make_float16(0x4200)
|
||||
#define float16_infinity make_float16(0x7c00)
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
@ -415,11 +418,13 @@ static inline float32 float32_set_sign(float32 a, int sign)
|
|||
}
|
||||
|
||||
#define float32_zero make_float32(0)
|
||||
#define float32_one make_float32(0x3f800000)
|
||||
#define float32_half make_float32(0x3f000000)
|
||||
#define float32_one make_float32(0x3f800000)
|
||||
#define float32_one_point_five make_float32(0x3fc00000)
|
||||
#define float32_two make_float32(0x40000000)
|
||||
#define float32_three make_float32(0x40400000)
|
||||
#define float32_infinity make_float32(0x7f800000)
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
| The pattern for a default generated single-precision NaN.
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
@ -526,9 +531,12 @@ static inline float64 float64_set_sign(float64 a, int sign)
|
|||
}
|
||||
|
||||
#define float64_zero make_float64(0)
|
||||
#define float64_one make_float64(0x3ff0000000000000LL)
|
||||
#define float64_ln2 make_float64(0x3fe62e42fefa39efLL)
|
||||
#define float64_half make_float64(0x3fe0000000000000LL)
|
||||
#define float64_one make_float64(0x3ff0000000000000LL)
|
||||
#define float64_one_point_five make_float64(0x3FF8000000000000ULL)
|
||||
#define float64_two make_float64(0x4000000000000000ULL)
|
||||
#define float64_three make_float64(0x4008000000000000ULL)
|
||||
#define float64_ln2 make_float64(0x3fe62e42fefa39efLL)
|
||||
#define float64_infinity make_float64(0x7ff0000000000000LL)
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue