OSDN Git Service

(form_sum): Use mode of inputs when making new PLUS.
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Mar 1993 20:34:11 +0000 (20:34 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Mar 1993 20:34:11 +0000 (20:34 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@3928 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/reload.c

index aa4744c..2053591 100644 (file)
@@ -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);
 }
 \f
 /* If ADDR is a sum containing a pseudo register that should be