[PATCH] Change rs6000_const_f32_to_i32 return type. The function rs6000_const_f32_to_i32 called REAL_VALUE_TO_TARGET_SINGLE with a long long type and returns it. This patch changes the type to long which is the proper type for REAL_VALUE_TO_TARGET_SINGLE.
I have done bootstraps on little endian power9 and big endian power8 systems. Can I check this into the trunk? This does not need to go into GCC 11, unless some of the other patches that use this function are also back ported. gcc/ 2021-05-18 Michael Meissner <meiss...@linux.ibm.com> * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change return type to long. * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return type to long. --- gcc/config/rs6000/rs6000-protos.h | 2 +- gcc/config/rs6000/rs6000.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gcc/config/rs6000/rs6000-protos.h b/gcc/config/rs6000/rs6000-protos.h index bef727e0a64..c407034d58c 100644 --- a/gcc/config/rs6000/rs6000-protos.h +++ b/gcc/config/rs6000/rs6000-protos.h @@ -282,7 +282,7 @@ extern void rs6000_asm_output_dwarf_pcrel (FILE *file, int size, const char *label); extern void rs6000_asm_output_dwarf_datarel (FILE *file, int size, const char *label); -extern long long rs6000_const_f32_to_i32 (rtx operand); +extern long rs6000_const_f32_to_i32 (rtx operand); /* Declare functions in rs6000-c.c */ diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 86f53297cb9..ef1ebaaee05 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -27937,10 +27937,12 @@ rs6000_invalid_conversion (const_tree fromtype, const_tree totype) return NULL; } -long long +/* Convert a SFmode constant to the integer bit pattern. */ + +long rs6000_const_f32_to_i32 (rtx operand) { - long long value; + long value; const struct real_value *rv = CONST_DOUBLE_REAL_VALUE (operand); gcc_assert (GET_MODE (operand) == SFmode); -- 2.31.1 -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.ibm.com, phone: +1 (978) 899-4797