diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-09-06 18:37:49 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-09-06 18:37:49 -0400 |
commit | ace53910c45a84ee1ca87abe492f24d4b117a461 (patch) | |
tree | ef4e7cbf1a0d418dae3ae1553b7c635db3e11de7 | |
parent | 378dfce9ed1d69993561c94eae280c4d8f1c28c2 (diff) | |
download | gcc-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.c | 8 |
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; } |