OSDN Git Service

(gen_lowpart_for_combine): Set reg_changes_size, if needed.
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 18 Mar 1995 21:57:49 +0000 (21:57 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 18 Mar 1995 21:57:49 +0000 (21:57 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9206 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/combine.c

index 9529474..631d681 100644 (file)
@@ -8320,6 +8320,14 @@ gen_lowpart_for_combine (mode, x)
     }
 
   result = gen_lowpart_common (mode, x);
+  if (result != 0
+      && GET_CODE (result) == SUBREG
+      && GET_CODE (SUBREG_REG (result)) == REG
+      && REGNO (SUBREG_REG (result)) >= FIRST_PSEUDO_REGISTER
+      && (GET_MODE_SIZE (GET_MODE (result))
+         != GET_MODE_SIZE (GET_MODE (SUBREG_REG (result)))))
+    reg_changes_size[REGNO (SUBREG_REG (result))] = 1;
+
   if (result)
     return result;