From: Peter Bergner Date: Thu, 4 Jan 2018 14:36:35 +0000 (-0600) Subject: re PR target/83387 (PowerPC64: Infinite loops in do_reload() with -msoft-float) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=87978504affcf9f2cf6fc245610e40541889271d;p=gcc.git re PR target/83387 (PowerPC64: Infinite loops in do_reload() with -msoft-float) PR target/83387 * config/rs6000/rs6000.c (rs6000_discover_homogeneous_aggregate): Do not allow arguments in FP registers if TARGET_HARD_FLOAT is false. From-SVN: r256250 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d932f05d8be..8384c2edac4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-01-04 Peter Bergner + + PR target/83387 + * config/rs6000/rs6000.c (rs6000_discover_homogeneous_aggregate): Do not + allow arguments in FP registers if TARGET_HARD_FLOAT is false. + 2018-01-04 Jakub Jelinek PR debug/83666 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 6cba50fe83a..46e00dd9a1b 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -11097,7 +11097,8 @@ rs6000_discover_homogeneous_aggregate (machine_mode mode, const_tree type, homogeneous aggregates; these types are handled via the targetm.calls.split_complex_arg mechanism. Complex types can be elements of homogeneous aggregates, however. */ - if (DEFAULT_ABI == ABI_ELFv2 && type && AGGREGATE_TYPE_P (type)) + if (TARGET_HARD_FLOAT && DEFAULT_ABI == ABI_ELFv2 && type + && AGGREGATE_TYPE_P (type)) { machine_mode field_mode = VOIDmode; int field_count = rs6000_aggregate_candidate (type, &field_mode);