aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-09-06 18:37:49 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-09-06 18:37:49 -0400
commitace53910c45a84ee1ca87abe492f24d4b117a461 (patch)
treeef4e7cbf1a0d418dae3ae1553b7c635db3e11de7
parent378dfce9ed1d69993561c94eae280c4d8f1c28c2 (diff)
downloadgcc-ace53910c45a84ee1ca87abe492f24d4b117a461.zip
gcc-ace53910c45a84ee1ca87abe492f24d4b117a461.tar.gz
gcc-ace53910c45a84ee1ca87abe492f24d4b117a461.tar.bz2
(find_reloads_address): Don't reorder the operands of a PLUS when
fixing up index. From-SVN: r8028
-rw-r--r--gcc/reload.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/reload.c b/gcc/reload.c
index e48ce28..9614f4d 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -4255,12 +4255,12 @@ find_reloads_address (mode, memrefloc, ad, loc, opnum, type, ind_levels)
&& ! memory_address_p (mode, ad))
{
*loc = ad = gen_rtx (PLUS, GET_MODE (ad),
+ XEXP (XEXP (ad, 0), 0),
plus_constant (XEXP (XEXP (ad, 0), 1),
- INTVAL (XEXP (ad, 1))),
- XEXP (XEXP (ad, 0), 0));
- find_reloads_address_part (XEXP (ad, 0), &XEXP (ad, 0), BASE_REG_CLASS,
+ INTVAL (XEXP (ad, 1))));
+ find_reloads_address_part (XEXP (ad, 1), &XEXP (ad, 1), BASE_REG_CLASS,
GET_MODE (ad), opnum, type, ind_levels);
- find_reloads_address_1 (XEXP (ad, 1), 1, &XEXP (ad, 1), opnum, type, 0);
+ find_reloads_address_1 (XEXP (ad, 0), 1, &XEXP (ad, 0), opnum, type, 0);
return 1;
}