diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1993-03-30 15:34:11 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1993-03-30 15:34:11 -0500 |
commit | 2c0623e83abf78609905752326e68fc5b6724ffd (patch) | |
tree | 454b54193c5c9af6750bcc75b294377a9ff5d6be /gcc | |
parent | 118bdbf8fa2e169eea9824b321291ad68139d0e0 (diff) | |
download | gcc-2c0623e83abf78609905752326e68fc5b6724ffd.zip gcc-2c0623e83abf78609905752326e68fc5b6724ffd.tar.gz gcc-2c0623e83abf78609905752326e68fc5b6724ffd.tar.bz2 |
(form_sum): Use mode of inputs when making new PLUS.
From-SVN: r3928
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/reload.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index aa4744c..2053591 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -4138,6 +4138,13 @@ form_sum (x, y) rtx x, y; { rtx tem; + enum machine_mode mode = GET_MODE (x); + + if (mode == VOIDmode) + mode = GET_MODE (y); + + if (mode == VOIDmode) + mode = Pmode; if (GET_CODE (x) == CONST_INT) return plus_constant (y, INTVAL (x)); @@ -4163,10 +4170,10 @@ form_sum (x, y) if (GET_CODE (y) == CONST) y = XEXP (y, 0); - return gen_rtx (CONST, VOIDmode, gen_rtx (PLUS, Pmode, x, y)); + return gen_rtx (CONST, VOIDmode, gen_rtx (PLUS, mode, x, y)); } - return gen_rtx (PLUS, Pmode, x, y); + return gen_rtx (PLUS, mode, x, y); } /* If ADDR is a sum containing a pseudo register that should be |