From 86219cc76f52066bc849b7693fe0bc5ebf41503d Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Thu, 22 Oct 1998 15:48:47 +0000 Subject: [PATCH] loop.c (express_from): Make sure that when generating a PLUS of a PLUS... * loop.c (express_from): Make sure that when generating a PLUS of a PLUS, any constant expression appears on the outermost PLUS. From-SVN: r23226 --- gcc/ChangeLog | 5 +++++ gcc/loop.c | 13 ++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d6be33b5326..f1e69851af9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Oct 22 16:46:35 1998 Bernd Schmidt + + * loop.c (express_from): Make sure that when generating a PLUS of + a PLUS, any constant expression appears on the outermost PLUS. + Thu Oct 22 15:46:23 1998 Per Bothner (bothner@cygnus.com) * Makefile.in (distdir-cvs, distdir-start): Clean up so it diff --git a/gcc/loop.c b/gcc/loop.c index 5db0a9c11ec..c8b0954e227 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -6221,7 +6221,18 @@ express_from (g1, g2) if (add == const0_rtx) return mult; else - return gen_rtx_PLUS (g2->mode, mult, add); + { + if (GET_CODE (add) == PLUS + && CONSTANT_P (XEXP (add, 1))) + { + rtx tem = XEXP (add, 1); + mult = gen_rtx_PLUS (g2->mode, mult, XEXP (add, 0)); + add = tem; + } + + return gen_rtx_PLUS (g2->mode, mult, add); + } + } /* Return an rtx, if any, that expresses giv G2 as a function of the register -- 2.30.2