]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* regmove.c (optimize_reg_copy_3): Disable for egcs-1.1.
authorJeffrey A Law <law@cygnus.com>
Sat, 22 Aug 1998 23:49:36 +0000 (23:49 +0000)
committerJeff Law <law@gcc.gnu.org>
Sat, 22 Aug 1998 23:49:36 +0000 (17:49 -0600)
From-SVN: r21911

gcc/ChangeLog
gcc/regmove.c

index 529d9900c056b9600db119f93a44f59b17fd950e..b292f44674cd926fd905bb1a928ad598d36cb5be 100644 (file)
@@ -1,3 +1,7 @@
+Sun Aug 23 00:47:52 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * regmove.c (optimize_reg_copy_3): Disable for egcs-1.1.
+
 Thu Aug 20 13:56:53 1998  Michael Meissner  <meissner@cygnus.com>
 
        * config/i386/winnt.c: Include system.h, not stdio.h to get
index ba78411bea8a75a41d731ba94a74ed3fcaed9d4c..0a598912d5043d036010b414cb5183747e4a9bd7 100644 (file)
@@ -518,6 +518,18 @@ optimize_reg_copy_3 (insn, dest, src)
   rtx p, set, subreg;
   enum machine_mode old_mode;
 
+  /* This code has been disabled on the egcs-1.1 release branch due to
+     a potentially serious bug.
+
+     In a nutshell, if we perform a series of substitutions, then have a
+     later substitution fail we will not be able to undo the previous
+     substitutions, leaving bogus RTL.
+
+     A fix for this can be found in the mainline sources, but it did not
+     seem worth the trouble and potential problems to migrate the real
+     fix to the egcs-1.1 branch.  */
+  return;
+     
   if (src_no < FIRST_PSEUDO_REGISTER
       || dst_no < FIRST_PSEUDO_REGISTER
       || ! find_reg_note (insn, REG_DEAD, src_reg)