diff options
author | Peter Bergner <bergner@vnet.ibm.com> | 2018-01-04 08:36:35 -0600 |
---|---|---|
committer | Peter Bergner <bergner@gcc.gnu.org> | 2018-01-04 08:36:35 -0600 |
commit | 87978504affcf9f2cf6fc245610e40541889271d (patch) | |
tree | 4faefc207c97ab5f7e5467e903cd9eab389c37b6 | |
parent | f7373fce65da8e99ad051481ba711756b69baa7e (diff) | |
download | gcc-87978504affcf9f2cf6fc245610e40541889271d.zip gcc-87978504affcf9f2cf6fc245610e40541889271d.tar.gz gcc-87978504affcf9f2cf6fc245610e40541889271d.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d932f05..8384c2e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-01-04 Peter Bergner <bergner@vnet.ibm.com> + + 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 <jakub@redhat.com> PR debug/83666 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 6cba50f..46e00dd 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); |