aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2024-08-22 17:03:56 +0200
committerMichael Matz <matz@suse.de>2024-08-27 15:31:28 +0200
commit359209bdc7245f8768b5044acded8509545e4990 (patch)
treed644e6268f54cc06e3711d24641611f97965faf1
parent75ef21665cb924265b818b08babbc7ec3108c876 (diff)
downloadgcc-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.cc1
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;