diff --git a/qemu/aarch64.h b/qemu/aarch64.h index 4d06603a..f70a0262 100644 --- a/qemu/aarch64.h +++ b/qemu/aarch64.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_aarch64 #define float16_squash_input_denormal float16_squash_input_denormal_aarch64 #define float16_sub float16_sub_aarch64 +#define float16_to_int8 float16_to_int8_aarch64 +#define float16_to_int8_scalbn float16_to_int8_scalbn_aarch64 #define float16_to_int16 float16_to_int16_aarch64 #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_aarch64 #define float16_to_int16_scalbn float16_to_int16_scalbn_aarch64 @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_aarch64 #define float16_to_float32 float16_to_float32_aarch64 #define float16_to_float64 float16_to_float64_aarch64 +#define float16_to_uint8 float16_to_uint8_aarch64 +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_aarch64 #define float16_to_uint16 float16_to_uint16_aarch64 #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_aarch64 #define float16_to_uint16_scalbn float16_to_uint16_scalbn_aarch64 @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_aarch64 #define int128_subfrom int128_subfrom_aarch64 #define int128_zero int128_zero_aarch64 +#define int8_to_float16 int8_to_float16_aarch64 #define int16_to_float16 int16_to_float16_aarch64 #define int16_to_float16_scalbn int16_to_float16_scalbn_aarch64 #define int16_to_float32 int16_to_float32_aarch64 @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_aarch64 #define type_table_get type_table_get_aarch64 #define type_table_lookup type_table_lookup_aarch64 +#define uint8_to_float16 uint8_to_float16_aarch64 #define uint16_to_float16 uint16_to_float16_aarch64 #define uint16_to_float16_scalbn uint16_to_float16_scalbn_aarch64 #define uint16_to_float32 uint16_to_float32_aarch64 diff --git a/qemu/aarch64eb.h b/qemu/aarch64eb.h index fbabf05d..5ba8fb7a 100644 --- a/qemu/aarch64eb.h +++ b/qemu/aarch64eb.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_aarch64eb #define float16_squash_input_denormal float16_squash_input_denormal_aarch64eb #define float16_sub float16_sub_aarch64eb +#define float16_to_int8 float16_to_int8_aarch64eb +#define float16_to_int8_scalbn float16_to_int8_scalbn_aarch64eb #define float16_to_int16 float16_to_int16_aarch64eb #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_aarch64eb #define float16_to_int16_scalbn float16_to_int16_scalbn_aarch64eb @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_aarch64eb #define float16_to_float32 float16_to_float32_aarch64eb #define float16_to_float64 float16_to_float64_aarch64eb +#define float16_to_uint8 float16_to_uint8_aarch64eb +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_aarch64eb #define float16_to_uint16 float16_to_uint16_aarch64eb #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_aarch64eb #define float16_to_uint16_scalbn float16_to_uint16_scalbn_aarch64eb @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_aarch64eb #define int128_subfrom int128_subfrom_aarch64eb #define int128_zero int128_zero_aarch64eb +#define int8_to_float16 int8_to_float16_aarch64eb #define int16_to_float16 int16_to_float16_aarch64eb #define int16_to_float16_scalbn int16_to_float16_scalbn_aarch64eb #define int16_to_float32 int16_to_float32_aarch64eb @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_aarch64eb #define type_table_get type_table_get_aarch64eb #define type_table_lookup type_table_lookup_aarch64eb +#define uint8_to_float16 uint8_to_float16_aarch64eb #define uint16_to_float16 uint16_to_float16_aarch64eb #define uint16_to_float16_scalbn uint16_to_float16_scalbn_aarch64eb #define uint16_to_float32 uint16_to_float32_aarch64eb diff --git a/qemu/arm.h b/qemu/arm.h index 3ed71e70..e5863596 100644 --- a/qemu/arm.h +++ b/qemu/arm.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_arm #define float16_squash_input_denormal float16_squash_input_denormal_arm #define float16_sub float16_sub_arm +#define float16_to_int8 float16_to_int8_arm +#define float16_to_int8_scalbn float16_to_int8_scalbn_arm #define float16_to_int16 float16_to_int16_arm #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_arm #define float16_to_int16_scalbn float16_to_int16_scalbn_arm @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_arm #define float16_to_float32 float16_to_float32_arm #define float16_to_float64 float16_to_float64_arm +#define float16_to_uint8 float16_to_uint8_arm +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_arm #define float16_to_uint16 float16_to_uint16_arm #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_arm #define float16_to_uint16_scalbn float16_to_uint16_scalbn_arm @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_arm #define int128_subfrom int128_subfrom_arm #define int128_zero int128_zero_arm +#define int8_to_float16 int8_to_float16_arm #define int16_to_float16 int16_to_float16_arm #define int16_to_float16_scalbn int16_to_float16_scalbn_arm #define int16_to_float32 int16_to_float32_arm @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_arm #define type_table_get type_table_get_arm #define type_table_lookup type_table_lookup_arm +#define uint8_to_float16 uint8_to_float16_arm #define uint16_to_float16 uint16_to_float16_arm #define uint16_to_float16_scalbn uint16_to_float16_scalbn_arm #define uint16_to_float32 uint16_to_float32_arm diff --git a/qemu/armeb.h b/qemu/armeb.h index 06cfba75..de9b6584 100644 --- a/qemu/armeb.h +++ b/qemu/armeb.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_armeb #define float16_squash_input_denormal float16_squash_input_denormal_armeb #define float16_sub float16_sub_armeb +#define float16_to_int8 float16_to_int8_armeb +#define float16_to_int8_scalbn float16_to_int8_scalbn_armeb #define float16_to_int16 float16_to_int16_armeb #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_armeb #define float16_to_int16_scalbn float16_to_int16_scalbn_armeb @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_armeb #define float16_to_float32 float16_to_float32_armeb #define float16_to_float64 float16_to_float64_armeb +#define float16_to_uint8 float16_to_uint8_armeb +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_armeb #define float16_to_uint16 float16_to_uint16_armeb #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_armeb #define float16_to_uint16_scalbn float16_to_uint16_scalbn_armeb @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_armeb #define int128_subfrom int128_subfrom_armeb #define int128_zero int128_zero_armeb +#define int8_to_float16 int8_to_float16_armeb #define int16_to_float16 int16_to_float16_armeb #define int16_to_float16_scalbn int16_to_float16_scalbn_armeb #define int16_to_float32 int16_to_float32_armeb @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_armeb #define type_table_get type_table_get_armeb #define type_table_lookup type_table_lookup_armeb +#define uint8_to_float16 uint8_to_float16_armeb #define uint16_to_float16 uint16_to_float16_armeb #define uint16_to_float16_scalbn uint16_to_float16_scalbn_armeb #define uint16_to_float32 uint16_to_float32_armeb diff --git a/qemu/fpu/softfloat.c b/qemu/fpu/softfloat.c index ee4a85b0..c2d6f7ed 100644 --- a/qemu/fpu/softfloat.c +++ b/qemu/fpu/softfloat.c @@ -2071,6 +2071,13 @@ static int64_t round_to_int_and_pack(FloatParts in, FloatRoundMode rmode, } } +int8_t float16_to_int8_scalbn(float16 a, FloatRoundMode rmode, int scale, + float_status *s) +{ + return round_to_int_and_pack(float16_unpack_canonical(a, s), + rmode, scale, INT8_MIN, INT8_MAX, s); +} + int16_t float16_to_int16_scalbn(float16 a, FloatRoundMode rmode, int scale, float_status *s) { @@ -2134,6 +2141,11 @@ int64_t float64_to_int64_scalbn(float64 a, FloatRoundMode rmode, int scale, rmode, scale, INT64_MIN, INT64_MAX, s); } +int8_t float16_to_int8(float16 a, float_status *s) +{ + return float16_to_int8_scalbn(a, s->float_rounding_mode, 0, s); +} + int16_t float16_to_int16(float16 a, float_status *s) { return float16_to_int16_scalbn(a, s->float_rounding_mode, 0, s); @@ -2284,6 +2296,13 @@ static uint64_t round_to_uint_and_pack(FloatParts in, FloatRoundMode rmode, } } +uint8_t float16_to_uint8_scalbn(float16 a, FloatRoundMode rmode, int scale, + float_status *s) +{ + return round_to_uint_and_pack(float16_unpack_canonical(a, s), + rmode, scale, UINT8_MAX, s); +} + uint16_t float16_to_uint16_scalbn(float16 a, FloatRoundMode rmode, int scale, float_status *s) { @@ -2347,6 +2366,11 @@ uint64_t float64_to_uint64_scalbn(float64 a, FloatRoundMode rmode, int scale, rmode, scale, UINT64_MAX, s); } +uint8_t float16_to_uint8(float16 a, float_status *s) +{ + return float16_to_uint8_scalbn(a, s->float_rounding_mode, 0, s); +} + uint16_t float16_to_uint16(float16 a, float_status *s) { return float16_to_uint16_scalbn(a, s->float_rounding_mode, 0, s); @@ -2501,6 +2525,11 @@ float16 int16_to_float16(int16_t a, float_status *status) return int64_to_float16_scalbn(a, 0, status); } +float16 int8_to_float16(int8_t a, float_status *status) +{ + return int64_to_float16_scalbn(a, 0, status); +} + float32 int64_to_float32_scalbn(int64_t a, int scale, float_status *status) { FloatParts pa = int_to_float(a, scale, status); @@ -2626,6 +2655,11 @@ float16 uint16_to_float16(uint16_t a, float_status *status) return uint64_to_float16_scalbn(a, 0, status); } +float16 uint8_to_float16(uint8_t a, float_status *status) +{ + return uint64_to_float16_scalbn(a, 0, status); +} + float32 uint64_to_float32_scalbn(uint64_t a, int scale, float_status *status) { FloatParts pa = uint_to_float(a, scale, status); diff --git a/qemu/header_gen.py b/qemu/header_gen.py index 73bd377a..fb49bfcb 100644 --- a/qemu/header_gen.py +++ b/qemu/header_gen.py @@ -574,6 +574,8 @@ symbols = ( 'float16_sqrt', 'float16_squash_input_denormal', 'float16_sub', + 'float16_to_int8', + 'float16_to_int8_scalbn', 'float16_to_int16', 'float16_to_int16_round_to_zero', 'float16_to_int16_scalbn', @@ -585,6 +587,8 @@ symbols = ( 'float16_to_int64_scalbn', 'float16_to_float32', 'float16_to_float64', + 'float16_to_uint8', + 'float16_to_uint8_scalbn', 'float16_to_uint16', 'float16_to_uint16_round_to_zero', 'float16_to_uint16_scalbn', @@ -1973,6 +1977,7 @@ symbols = ( 'int128_sub', 'int128_subfrom', 'int128_zero', + 'int8_to_float16', 'int16_to_float16', 'int16_to_float16_scalbn', 'int16_to_float32', @@ -3385,6 +3390,7 @@ symbols = ( 'type_table_add', 'type_table_get', 'type_table_lookup', + 'uint8_to_float16', 'uint16_to_float16', 'uint16_to_float16_scalbn', 'uint16_to_float32', diff --git a/qemu/include/fpu/softfloat.h b/qemu/include/fpu/softfloat.h index b08ee5e9..b543f1e4 100644 --- a/qemu/include/fpu/softfloat.h +++ b/qemu/include/fpu/softfloat.h @@ -139,9 +139,11 @@ float16 uint16_to_float16_scalbn(uint16_t a, int, float_status *status); float16 uint32_to_float16_scalbn(uint32_t a, int, float_status *status); float16 uint64_to_float16_scalbn(uint64_t a, int, float_status *status); +float16 int8_to_float16(int8_t a, float_status *status); float16 int16_to_float16(int16_t a, float_status *status); float16 int32_to_float16(int32_t a, float_status *status); float16 int64_to_float16(int64_t a, float_status *status); +float16 uint8_to_float16(uint8_t a, float_status *status); float16 uint16_to_float16(uint16_t a, float_status *status); float16 uint32_to_float16(uint32_t a, float_status *status); float16 uint64_to_float16(uint64_t a, float_status *status); @@ -190,10 +192,13 @@ float32 float16_to_float32(float16, bool ieee, float_status *status); float16 float64_to_float16(float64 a, bool ieee, float_status *status); float64 float16_to_float64(float16 a, bool ieee, float_status *status); +int8_t float16_to_int8_scalbn(float16, FloatRoundMode, int, + float_status *status); int16_t float16_to_int16_scalbn(float16, FloatRoundMode, int, float_status *); int32_t float16_to_int32_scalbn(float16, FloatRoundMode, int, float_status *); int64_t float16_to_int64_scalbn(float16, FloatRoundMode, int, float_status *); +int8_t float16_to_int8(float16, float_status *status); int16_t float16_to_int16(float16, float_status *status); int32_t float16_to_int32(float16, float_status *status); int64_t float16_to_int64(float16, float_status *status); @@ -202,6 +207,8 @@ int16_t float16_to_int16_round_to_zero(float16, float_status *status); int32_t float16_to_int32_round_to_zero(float16, float_status *status); int64_t float16_to_int64_round_to_zero(float16, float_status *status); +uint8_t float16_to_uint8_scalbn(float16 a, FloatRoundMode, + int, float_status *status); uint16_t float16_to_uint16_scalbn(float16 a, FloatRoundMode, int, float_status *status); uint32_t float16_to_uint32_scalbn(float16 a, FloatRoundMode, @@ -209,6 +216,7 @@ uint32_t float16_to_uint32_scalbn(float16 a, FloatRoundMode, uint64_t float16_to_uint64_scalbn(float16 a, FloatRoundMode, int, float_status *status); +uint8_t float16_to_uint8(float16 a, float_status *status); uint16_t float16_to_uint16(float16 a, float_status *status); uint32_t float16_to_uint32(float16 a, float_status *status); uint64_t float16_to_uint64(float16 a, float_status *status); diff --git a/qemu/m68k.h b/qemu/m68k.h index 0b2bc7aa..27f65aa5 100644 --- a/qemu/m68k.h +++ b/qemu/m68k.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_m68k #define float16_squash_input_denormal float16_squash_input_denormal_m68k #define float16_sub float16_sub_m68k +#define float16_to_int8 float16_to_int8_m68k +#define float16_to_int8_scalbn float16_to_int8_scalbn_m68k #define float16_to_int16 float16_to_int16_m68k #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_m68k #define float16_to_int16_scalbn float16_to_int16_scalbn_m68k @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_m68k #define float16_to_float32 float16_to_float32_m68k #define float16_to_float64 float16_to_float64_m68k +#define float16_to_uint8 float16_to_uint8_m68k +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_m68k #define float16_to_uint16 float16_to_uint16_m68k #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_m68k #define float16_to_uint16_scalbn float16_to_uint16_scalbn_m68k @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_m68k #define int128_subfrom int128_subfrom_m68k #define int128_zero int128_zero_m68k +#define int8_to_float16 int8_to_float16_m68k #define int16_to_float16 int16_to_float16_m68k #define int16_to_float16_scalbn int16_to_float16_scalbn_m68k #define int16_to_float32 int16_to_float32_m68k @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_m68k #define type_table_get type_table_get_m68k #define type_table_lookup type_table_lookup_m68k +#define uint8_to_float16 uint8_to_float16_m68k #define uint16_to_float16 uint16_to_float16_m68k #define uint16_to_float16_scalbn uint16_to_float16_scalbn_m68k #define uint16_to_float32 uint16_to_float32_m68k diff --git a/qemu/mips.h b/qemu/mips.h index 10439e6d..ea7ddd7e 100644 --- a/qemu/mips.h +++ b/qemu/mips.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_mips #define float16_squash_input_denormal float16_squash_input_denormal_mips #define float16_sub float16_sub_mips +#define float16_to_int8 float16_to_int8_mips +#define float16_to_int8_scalbn float16_to_int8_scalbn_mips #define float16_to_int16 float16_to_int16_mips #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_mips #define float16_to_int16_scalbn float16_to_int16_scalbn_mips @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_mips #define float16_to_float32 float16_to_float32_mips #define float16_to_float64 float16_to_float64_mips +#define float16_to_uint8 float16_to_uint8_mips +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_mips #define float16_to_uint16 float16_to_uint16_mips #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_mips #define float16_to_uint16_scalbn float16_to_uint16_scalbn_mips @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_mips #define int128_subfrom int128_subfrom_mips #define int128_zero int128_zero_mips +#define int8_to_float16 int8_to_float16_mips #define int16_to_float16 int16_to_float16_mips #define int16_to_float16_scalbn int16_to_float16_scalbn_mips #define int16_to_float32 int16_to_float32_mips @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_mips #define type_table_get type_table_get_mips #define type_table_lookup type_table_lookup_mips +#define uint8_to_float16 uint8_to_float16_mips #define uint16_to_float16 uint16_to_float16_mips #define uint16_to_float16_scalbn uint16_to_float16_scalbn_mips #define uint16_to_float32 uint16_to_float32_mips diff --git a/qemu/mips64.h b/qemu/mips64.h index 6a7c8ab0..f714ce35 100644 --- a/qemu/mips64.h +++ b/qemu/mips64.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_mips64 #define float16_squash_input_denormal float16_squash_input_denormal_mips64 #define float16_sub float16_sub_mips64 +#define float16_to_int8 float16_to_int8_mips64 +#define float16_to_int8_scalbn float16_to_int8_scalbn_mips64 #define float16_to_int16 float16_to_int16_mips64 #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_mips64 #define float16_to_int16_scalbn float16_to_int16_scalbn_mips64 @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_mips64 #define float16_to_float32 float16_to_float32_mips64 #define float16_to_float64 float16_to_float64_mips64 +#define float16_to_uint8 float16_to_uint8_mips64 +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_mips64 #define float16_to_uint16 float16_to_uint16_mips64 #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_mips64 #define float16_to_uint16_scalbn float16_to_uint16_scalbn_mips64 @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_mips64 #define int128_subfrom int128_subfrom_mips64 #define int128_zero int128_zero_mips64 +#define int8_to_float16 int8_to_float16_mips64 #define int16_to_float16 int16_to_float16_mips64 #define int16_to_float16_scalbn int16_to_float16_scalbn_mips64 #define int16_to_float32 int16_to_float32_mips64 @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_mips64 #define type_table_get type_table_get_mips64 #define type_table_lookup type_table_lookup_mips64 +#define uint8_to_float16 uint8_to_float16_mips64 #define uint16_to_float16 uint16_to_float16_mips64 #define uint16_to_float16_scalbn uint16_to_float16_scalbn_mips64 #define uint16_to_float32 uint16_to_float32_mips64 diff --git a/qemu/mips64el.h b/qemu/mips64el.h index 50f1bc4e..6fb367cb 100644 --- a/qemu/mips64el.h +++ b/qemu/mips64el.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_mips64el #define float16_squash_input_denormal float16_squash_input_denormal_mips64el #define float16_sub float16_sub_mips64el +#define float16_to_int8 float16_to_int8_mips64el +#define float16_to_int8_scalbn float16_to_int8_scalbn_mips64el #define float16_to_int16 float16_to_int16_mips64el #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_mips64el #define float16_to_int16_scalbn float16_to_int16_scalbn_mips64el @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_mips64el #define float16_to_float32 float16_to_float32_mips64el #define float16_to_float64 float16_to_float64_mips64el +#define float16_to_uint8 float16_to_uint8_mips64el +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_mips64el #define float16_to_uint16 float16_to_uint16_mips64el #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_mips64el #define float16_to_uint16_scalbn float16_to_uint16_scalbn_mips64el @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_mips64el #define int128_subfrom int128_subfrom_mips64el #define int128_zero int128_zero_mips64el +#define int8_to_float16 int8_to_float16_mips64el #define int16_to_float16 int16_to_float16_mips64el #define int16_to_float16_scalbn int16_to_float16_scalbn_mips64el #define int16_to_float32 int16_to_float32_mips64el @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_mips64el #define type_table_get type_table_get_mips64el #define type_table_lookup type_table_lookup_mips64el +#define uint8_to_float16 uint8_to_float16_mips64el #define uint16_to_float16 uint16_to_float16_mips64el #define uint16_to_float16_scalbn uint16_to_float16_scalbn_mips64el #define uint16_to_float32 uint16_to_float32_mips64el diff --git a/qemu/mipsel.h b/qemu/mipsel.h index 6b920307..f0e20914 100644 --- a/qemu/mipsel.h +++ b/qemu/mipsel.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_mipsel #define float16_squash_input_denormal float16_squash_input_denormal_mipsel #define float16_sub float16_sub_mipsel +#define float16_to_int8 float16_to_int8_mipsel +#define float16_to_int8_scalbn float16_to_int8_scalbn_mipsel #define float16_to_int16 float16_to_int16_mipsel #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_mipsel #define float16_to_int16_scalbn float16_to_int16_scalbn_mipsel @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_mipsel #define float16_to_float32 float16_to_float32_mipsel #define float16_to_float64 float16_to_float64_mipsel +#define float16_to_uint8 float16_to_uint8_mipsel +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_mipsel #define float16_to_uint16 float16_to_uint16_mipsel #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_mipsel #define float16_to_uint16_scalbn float16_to_uint16_scalbn_mipsel @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_mipsel #define int128_subfrom int128_subfrom_mipsel #define int128_zero int128_zero_mipsel +#define int8_to_float16 int8_to_float16_mipsel #define int16_to_float16 int16_to_float16_mipsel #define int16_to_float16_scalbn int16_to_float16_scalbn_mipsel #define int16_to_float32 int16_to_float32_mipsel @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_mipsel #define type_table_get type_table_get_mipsel #define type_table_lookup type_table_lookup_mipsel +#define uint8_to_float16 uint8_to_float16_mipsel #define uint16_to_float16 uint16_to_float16_mipsel #define uint16_to_float16_scalbn uint16_to_float16_scalbn_mipsel #define uint16_to_float32 uint16_to_float32_mipsel diff --git a/qemu/powerpc.h b/qemu/powerpc.h index a5f66618..b7890a3c 100644 --- a/qemu/powerpc.h +++ b/qemu/powerpc.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_powerpc #define float16_squash_input_denormal float16_squash_input_denormal_powerpc #define float16_sub float16_sub_powerpc +#define float16_to_int8 float16_to_int8_powerpc +#define float16_to_int8_scalbn float16_to_int8_scalbn_powerpc #define float16_to_int16 float16_to_int16_powerpc #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_powerpc #define float16_to_int16_scalbn float16_to_int16_scalbn_powerpc @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_powerpc #define float16_to_float32 float16_to_float32_powerpc #define float16_to_float64 float16_to_float64_powerpc +#define float16_to_uint8 float16_to_uint8_powerpc +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_powerpc #define float16_to_uint16 float16_to_uint16_powerpc #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_powerpc #define float16_to_uint16_scalbn float16_to_uint16_scalbn_powerpc @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_powerpc #define int128_subfrom int128_subfrom_powerpc #define int128_zero int128_zero_powerpc +#define int8_to_float16 int8_to_float16_powerpc #define int16_to_float16 int16_to_float16_powerpc #define int16_to_float16_scalbn int16_to_float16_scalbn_powerpc #define int16_to_float32 int16_to_float32_powerpc @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_powerpc #define type_table_get type_table_get_powerpc #define type_table_lookup type_table_lookup_powerpc +#define uint8_to_float16 uint8_to_float16_powerpc #define uint16_to_float16 uint16_to_float16_powerpc #define uint16_to_float16_scalbn uint16_to_float16_scalbn_powerpc #define uint16_to_float32 uint16_to_float32_powerpc diff --git a/qemu/riscv32.h b/qemu/riscv32.h index 25eae06d..435090bc 100644 --- a/qemu/riscv32.h +++ b/qemu/riscv32.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_riscv32 #define float16_squash_input_denormal float16_squash_input_denormal_riscv32 #define float16_sub float16_sub_riscv32 +#define float16_to_int8 float16_to_int8_riscv32 +#define float16_to_int8_scalbn float16_to_int8_scalbn_riscv32 #define float16_to_int16 float16_to_int16_riscv32 #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_riscv32 #define float16_to_int16_scalbn float16_to_int16_scalbn_riscv32 @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_riscv32 #define float16_to_float32 float16_to_float32_riscv32 #define float16_to_float64 float16_to_float64_riscv32 +#define float16_to_uint8 float16_to_uint8_riscv32 +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_riscv32 #define float16_to_uint16 float16_to_uint16_riscv32 #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_riscv32 #define float16_to_uint16_scalbn float16_to_uint16_scalbn_riscv32 @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_riscv32 #define int128_subfrom int128_subfrom_riscv32 #define int128_zero int128_zero_riscv32 +#define int8_to_float16 int8_to_float16_riscv32 #define int16_to_float16 int16_to_float16_riscv32 #define int16_to_float16_scalbn int16_to_float16_scalbn_riscv32 #define int16_to_float32 int16_to_float32_riscv32 @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_riscv32 #define type_table_get type_table_get_riscv32 #define type_table_lookup type_table_lookup_riscv32 +#define uint8_to_float16 uint8_to_float16_riscv32 #define uint16_to_float16 uint16_to_float16_riscv32 #define uint16_to_float16_scalbn uint16_to_float16_scalbn_riscv32 #define uint16_to_float32 uint16_to_float32_riscv32 diff --git a/qemu/riscv64.h b/qemu/riscv64.h index fcd11735..ba5af45f 100644 --- a/qemu/riscv64.h +++ b/qemu/riscv64.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_riscv64 #define float16_squash_input_denormal float16_squash_input_denormal_riscv64 #define float16_sub float16_sub_riscv64 +#define float16_to_int8 float16_to_int8_riscv64 +#define float16_to_int8_scalbn float16_to_int8_scalbn_riscv64 #define float16_to_int16 float16_to_int16_riscv64 #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_riscv64 #define float16_to_int16_scalbn float16_to_int16_scalbn_riscv64 @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_riscv64 #define float16_to_float32 float16_to_float32_riscv64 #define float16_to_float64 float16_to_float64_riscv64 +#define float16_to_uint8 float16_to_uint8_riscv64 +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_riscv64 #define float16_to_uint16 float16_to_uint16_riscv64 #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_riscv64 #define float16_to_uint16_scalbn float16_to_uint16_scalbn_riscv64 @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_riscv64 #define int128_subfrom int128_subfrom_riscv64 #define int128_zero int128_zero_riscv64 +#define int8_to_float16 int8_to_float16_riscv64 #define int16_to_float16 int16_to_float16_riscv64 #define int16_to_float16_scalbn int16_to_float16_scalbn_riscv64 #define int16_to_float32 int16_to_float32_riscv64 @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_riscv64 #define type_table_get type_table_get_riscv64 #define type_table_lookup type_table_lookup_riscv64 +#define uint8_to_float16 uint8_to_float16_riscv64 #define uint16_to_float16 uint16_to_float16_riscv64 #define uint16_to_float16_scalbn uint16_to_float16_scalbn_riscv64 #define uint16_to_float32 uint16_to_float32_riscv64 diff --git a/qemu/sparc.h b/qemu/sparc.h index f839c231..0211882a 100644 --- a/qemu/sparc.h +++ b/qemu/sparc.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_sparc #define float16_squash_input_denormal float16_squash_input_denormal_sparc #define float16_sub float16_sub_sparc +#define float16_to_int8 float16_to_int8_sparc +#define float16_to_int8_scalbn float16_to_int8_scalbn_sparc #define float16_to_int16 float16_to_int16_sparc #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_sparc #define float16_to_int16_scalbn float16_to_int16_scalbn_sparc @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_sparc #define float16_to_float32 float16_to_float32_sparc #define float16_to_float64 float16_to_float64_sparc +#define float16_to_uint8 float16_to_uint8_sparc +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_sparc #define float16_to_uint16 float16_to_uint16_sparc #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_sparc #define float16_to_uint16_scalbn float16_to_uint16_scalbn_sparc @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_sparc #define int128_subfrom int128_subfrom_sparc #define int128_zero int128_zero_sparc +#define int8_to_float16 int8_to_float16_sparc #define int16_to_float16 int16_to_float16_sparc #define int16_to_float16_scalbn int16_to_float16_scalbn_sparc #define int16_to_float32 int16_to_float32_sparc @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_sparc #define type_table_get type_table_get_sparc #define type_table_lookup type_table_lookup_sparc +#define uint8_to_float16 uint8_to_float16_sparc #define uint16_to_float16 uint16_to_float16_sparc #define uint16_to_float16_scalbn uint16_to_float16_scalbn_sparc #define uint16_to_float32 uint16_to_float32_sparc diff --git a/qemu/sparc64.h b/qemu/sparc64.h index 0e6ce494..242d85f9 100644 --- a/qemu/sparc64.h +++ b/qemu/sparc64.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_sparc64 #define float16_squash_input_denormal float16_squash_input_denormal_sparc64 #define float16_sub float16_sub_sparc64 +#define float16_to_int8 float16_to_int8_sparc64 +#define float16_to_int8_scalbn float16_to_int8_scalbn_sparc64 #define float16_to_int16 float16_to_int16_sparc64 #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_sparc64 #define float16_to_int16_scalbn float16_to_int16_scalbn_sparc64 @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_sparc64 #define float16_to_float32 float16_to_float32_sparc64 #define float16_to_float64 float16_to_float64_sparc64 +#define float16_to_uint8 float16_to_uint8_sparc64 +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_sparc64 #define float16_to_uint16 float16_to_uint16_sparc64 #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_sparc64 #define float16_to_uint16_scalbn float16_to_uint16_scalbn_sparc64 @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_sparc64 #define int128_subfrom int128_subfrom_sparc64 #define int128_zero int128_zero_sparc64 +#define int8_to_float16 int8_to_float16_sparc64 #define int16_to_float16 int16_to_float16_sparc64 #define int16_to_float16_scalbn int16_to_float16_scalbn_sparc64 #define int16_to_float32 int16_to_float32_sparc64 @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_sparc64 #define type_table_get type_table_get_sparc64 #define type_table_lookup type_table_lookup_sparc64 +#define uint8_to_float16 uint8_to_float16_sparc64 #define uint16_to_float16 uint16_to_float16_sparc64 #define uint16_to_float16_scalbn uint16_to_float16_scalbn_sparc64 #define uint16_to_float32 uint16_to_float32_sparc64 diff --git a/qemu/x86_64.h b/qemu/x86_64.h index b7011e40..114de5a3 100644 --- a/qemu/x86_64.h +++ b/qemu/x86_64.h @@ -568,6 +568,8 @@ #define float16_sqrt float16_sqrt_x86_64 #define float16_squash_input_denormal float16_squash_input_denormal_x86_64 #define float16_sub float16_sub_x86_64 +#define float16_to_int8 float16_to_int8_x86_64 +#define float16_to_int8_scalbn float16_to_int8_scalbn_x86_64 #define float16_to_int16 float16_to_int16_x86_64 #define float16_to_int16_round_to_zero float16_to_int16_round_to_zero_x86_64 #define float16_to_int16_scalbn float16_to_int16_scalbn_x86_64 @@ -579,6 +581,8 @@ #define float16_to_int64_scalbn float16_to_int64_scalbn_x86_64 #define float16_to_float32 float16_to_float32_x86_64 #define float16_to_float64 float16_to_float64_x86_64 +#define float16_to_uint8 float16_to_uint8_x86_64 +#define float16_to_uint8_scalbn float16_to_uint8_scalbn_x86_64 #define float16_to_uint16 float16_to_uint16_x86_64 #define float16_to_uint16_round_to_zero float16_to_uint16_round_to_zero_x86_64 #define float16_to_uint16_scalbn float16_to_uint16_scalbn_x86_64 @@ -1967,6 +1971,7 @@ #define int128_sub int128_sub_x86_64 #define int128_subfrom int128_subfrom_x86_64 #define int128_zero int128_zero_x86_64 +#define int8_to_float16 int8_to_float16_x86_64 #define int16_to_float16 int16_to_float16_x86_64 #define int16_to_float16_scalbn int16_to_float16_scalbn_x86_64 #define int16_to_float32 int16_to_float32_x86_64 @@ -3379,6 +3384,7 @@ #define type_table_add type_table_add_x86_64 #define type_table_get type_table_get_x86_64 #define type_table_lookup type_table_lookup_x86_64 +#define uint8_to_float16 uint8_to_float16_x86_64 #define uint16_to_float16 uint16_to_float16_x86_64 #define uint16_to_float16_scalbn uint16_to_float16_scalbn_x86_64 #define uint16_to_float32 uint16_to_float32_x86_64