diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2016-08-28 08:50:09 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2016-08-28 08:50:09 +0000 |
commit | 710a2e102899b92d4368ec357d9be32e78387de7 (patch) | |
tree | 8d02ed32bed9c3c0d18c94dcc1933bb5e45a829e /gcc | |
parent | f329b264b3d8f91909caca1df4f9ee043d3ca14a (diff) | |
download | gcc-710a2e102899b92d4368ec357d9be32e78387de7.zip gcc-710a2e102899b92d4368ec357d9be32e78387de7.tar.gz gcc-710a2e102899b92d4368ec357d9be32e78387de7.tar.bz2 |
re PR target/77324 (ICE in push_reload, at reload.c:1350)
PR target/77324
* config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
HIGH+LO construct during reload.
From-SVN: r239807
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9ddb5bd..95fcf6a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-08-28 Eric Botcazou <ebotcazou@adacore.com> + + PR target/77324 + * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special + HIGH+LO construct during reload. + 2016-08-28 Tom de Vries <tom@codesourcery.com> PR lto/70955 diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index f5cc113..254b722 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -4039,6 +4039,13 @@ sparc_legitimate_address_p (machine_mode mode, rtx addr, bool strict) than the alignment (8) may cause the LO_SUM to overflow. */ if (mode == TFmode && TARGET_ARCH32) return 0; + + /* During reload, accept the HIGH+LO_SUM construct generated by + sparc_legitimize_reload_address. */ + if (reload_in_progress + && GET_CODE (rs1) == HIGH + && XEXP (rs1, 0) == imm1) + return 1; } else if (GET_CODE (addr) == CONST_INT && SMALL_INT (addr)) return 1; |