aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>1998-03-18 13:41:50 +0000
committerRichard Henderson <rth@gcc.gnu.org>1998-03-18 05:41:50 -0800
commit7c00d1fe83e896e59dd6f445f0da11232ba0803f (patch)
tree309c85c8620e6d081928a29541127feca57dc17d /gcc
parent343665b9a1bb41d883dd77a7dc3e738725eafd52 (diff)
downloadgcc-7c00d1fe83e896e59dd6f445f0da11232ba0803f.zip
gcc-7c00d1fe83e896e59dd6f445f0da11232ba0803f.tar.gz
gcc-7c00d1fe83e896e59dd6f445f0da11232ba0803f.tar.bz2
expr.c (expand_expr, [...]): If have conditional move, don't use ORIGINAL_TARGET unless REG.
Wed Mar 18 13:42:01 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * expr.c (expand_expr, case COND_EXPR): If have conditional move, don't use ORIGINAL_TARGET unless REG. From-SVN: r18671
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/expr.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d90f217..dd4f83c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Wed Mar 18 13:42:01 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * expr.c (expand_expr, case COND_EXPR): If have conditional move,
+ don't use ORIGINAL_TARGET unless REG.
+
Wed Mar 18 16:53:19 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
* netbsd.h (ASM_OUTPUT_ALIGN): Redefine.
diff --git a/gcc/expr.c b/gcc/expr.c
index 8edc49e..178f4f1 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -6765,6 +6765,11 @@ expand_expr (exp, target, tmode, modifier)
&& REGNO (original_target) >= FIRST_PSEUDO_REGISTER
&& original_target == var_rtx (singleton)))
&& GET_MODE (original_target) == mode
+#ifdef HAVE_conditional_move
+ && (! can_conditionally_move_p (mode)
+ || GET_CODE (original_target) == REG
+ || TREE_ADDRESSABLE (type))
+#endif
&& ! (GET_CODE (original_target) == MEM
&& MEM_VOLATILE_P (original_target)))
temp = original_target;