aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2001-03-11 22:08:12 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2001-03-11 17:08:12 -0500
commitc7ca5912e35ee202df6d4ab8036e8d1671221f5c (patch)
treec176001dbc56990d4a3e0438d5902143dfb05072 /gcc
parent3d9d2476769e35fcd17ef850a8faf3990c72155d (diff)
downloadgcc-c7ca5912e35ee202df6d4ab8036e8d1671221f5c.zip
gcc-c7ca5912e35ee202df6d4ab8036e8d1671221f5c.tar.gz
gcc-c7ca5912e35ee202df6d4ab8036e8d1671221f5c.tar.bz2
combine.c (try_combine): Fix error in change to try original register.
* combine.c (try_combine): Fix error in change to try original register. (gen_rtx_combine): Do same as gen_rtx for now. From-SVN: r40390
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/combine.c31
2 files changed, 15 insertions, 22 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 74c912d..8db93e9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Sun Mar 11 17:01:41 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * combine.c (try_combine): Fix error in change to try original
+ register.
+ (gen_rtx_combine): Do same as gen_rtx for now.
+
2001-03-11 Zack Weinberg <zackw@stanford.edu>
* configure.in: AC_SUBST xm_defines.
diff --git a/gcc/combine.c b/gcc/combine.c
index ca69870..f1df78a 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -2150,12 +2150,15 @@ try_combine (i3, i2, i1, new_direct_jump_p)
/* If the split with the mode-changed register didn't work, try
the original register. */
if (! m_split && ni2dest != i2dest)
- m_split = split_insns (gen_rtx_PARALLEL
- (VOIDmode,
- gen_rtvec (2, newpat,
- gen_rtx_CLOBBER (VOIDmode,
- i2dest))),
- i3);
+ {
+ ni2dest = i2dest;
+ m_split = split_insns (gen_rtx_PARALLEL
+ (VOIDmode,
+ gen_rtvec (2, newpat,
+ gen_rtx_CLOBBER (VOIDmode,
+ i2dest))),
+ i3);
+ }
}
if (m_split && GET_CODE (m_split) != SEQUENCE)
@@ -9922,22 +9925,6 @@ gen_rtx_combine VPARAMS ((enum rtx_code code, enum machine_mode mode, ...))
va_end (p);
- /* See if this is in undobuf. Be sure we don't use objects that came
- from another insn; this could produce circular rtl structures. */
-
- for (undo = undobuf.undos; undo != undobuf.previous_undos; undo = undo->next)
- if (!undo->is_int
- && GET_CODE (undo->old_contents.r) == code
- && GET_MODE (undo->old_contents.r) == mode)
- {
- for (j = 0; j < n_args; j++)
- if (XEXP (undo->old_contents.r, j) != args[j])
- break;
-
- if (j == n_args)
- return undo->old_contents.r;
- }
-
/* Otherwise make a new rtx. We know we have 1, 2, or 3 args.
Use rtx_alloc instead of gen_rtx because it's faster on RISC. */
rt = rtx_alloc (code);