From 0ec1e3690e3680993939bd15e3fa89706fe94c5c Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 28 Sep 1993 15:22:08 -0700 Subject: [PATCH] (form_sum): Change the way that form_sum canonicalizes addresses... (form_sum): Change the way that form_sum canonicalizes addresses, so that it never creates (PLUS (PLUS MEM CONST_INT) REG) but instead canonicallizes this to (PLUS (PLUS REG CONST_INT) MEM). From-SVN: r5506 --- gcc/reload.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/reload.c b/gcc/reload.c index a4558d6fea7..609414c8803 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -4324,7 +4324,10 @@ form_sum (x, y) /* Note that if the operands of Y are specified in the opposite order in the recursive calls below, infinite recursion will occur. */ - if (GET_CODE (y) == PLUS && CONSTANT_P (XEXP (y, 1))) + if (GET_CODE (y) == PLUS && CONSTANT_P (XEXP (y, 1)) + /* Moving the constant in with the MEM yields rtl that reload may not + be able to handle when this is an address calculation. */ + && GET_CODE (x) != MEM) return form_sum (form_sum (x, XEXP (y, 0)), XEXP (y, 1)); /* If both constant, encapsulate sum. Otherwise, just form sum. A -- 2.30.2