diff options
author | Michael Matz <matz@suse.de> | 2024-08-22 17:03:56 +0200 |
---|---|---|
committer | Michael Matz <matz@suse.de> | 2024-08-27 15:31:28 +0200 |
commit | 359209bdc7245f8768b5044acded8509545e4990 (patch) | |
tree | d644e6268f54cc06e3711d24641611f97965faf1 | |
parent | 75ef21665cb924265b818b08babbc7ec3108c876 (diff) | |
download | gcc-359209bdc7245f8768b5044acded8509545e4990.zip gcc-359209bdc7245f8768b5044acded8509545e4990.tar.gz gcc-359209bdc7245f8768b5044acded8509545e4990.tar.bz2 |
final: go down ASHIFT in walk_alter_subreg
when experimenting with m68k plus LRA one of the
changes in the backend is to accept ASHIFTs (not only
MULT) as scale code for address indices. When then not
turning on LRA but using reload those addresses are
presented to it which chokes on them. While reload is
going away the change to make them work doesn't really hurt
(and generally seems useful, as MULT and ASHIFT really are
no different). So just add it.
PR target/116413
* final.cc (walk_alter_subreg): Recurse on AHIFT.
-rw-r--r-- | gcc/final.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/final.cc b/gcc/final.cc index eb9e065..5d91158 100644 --- a/gcc/final.cc +++ b/gcc/final.cc @@ -3146,6 +3146,7 @@ walk_alter_subreg (rtx *xp, bool *changed) case PLUS: case MULT: case AND: + case ASHIFT: XEXP (x, 0) = walk_alter_subreg (&XEXP (x, 0), changed); XEXP (x, 1) = walk_alter_subreg (&XEXP (x, 1), changed); break; |