aboutsummaryrefslogtreecommitdiff
path: root/gcc/jump.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1999-09-30 18:13:51 -0700
committerRichard Henderson <rth@gcc.gnu.org>1999-09-30 18:13:51 -0700
commit39cc9917e21cb9f2145881c321a25ab8ed2bb54a (patch)
tree76f8bfd2ba50763adcf42702ea6522d0bc52c905 /gcc/jump.c
parent6d97e0b42ed9661ed26c122062b724ce64f84f36 (diff)
downloadgcc-39cc9917e21cb9f2145881c321a25ab8ed2bb54a.zip
gcc-39cc9917e21cb9f2145881c321a25ab8ed2bb54a.tar.gz
gcc-39cc9917e21cb9f2145881c321a25ab8ed2bb54a.tar.bz2
jump.c (jump_optimize_1): Amend last change to test only the form of the operand, not the insn.
* jump.c (jump_optimize_1): Amend last change to test only the form of the operand, not the insn. From-SVN: r29741
Diffstat (limited to 'gcc/jump.c')
-rw-r--r--gcc/jump.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/jump.c b/gcc/jump.c
index 377cfc9..dcd1a6a 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -1169,11 +1169,11 @@ jump_optimize_1 (f, cross_jump, noop_moves, after_regscan, mark_labels_only)
start_sequence ();
- /* If we're not dealing with a simple operand or the insn is
- more complex than a simple SET, duplicate the computation
- and replace the destination with a new temporary. */
- if (general_operand (temp2, GET_MODE (var))
- && GET_CODE (PATTERN (temp)) == SET)
+ /* We're dealing with a single_set insn with no side effects
+ on SET_SRC. We do need to be reasonably certain that if
+ we need to force BVAL into a register that we won't
+ clobber the flags -- general_operand should suffice. */
+ if (general_operand (temp2, GET_MODE (var)))
bval = temp2;
else
{
@@ -1183,7 +1183,7 @@ jump_optimize_1 (f, cross_jump, noop_moves, after_regscan, mark_labels_only)
SET_DEST (temp6) = bval;
emit_insn (PATTERN (new_insn));
}
-
+
target = emit_conditional_move (var, code,
cond0, cond1, VOIDmode,
aval, bval, GET_MODE (var),