diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d90f217ff69..dd4f83cf2af 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Wed Mar 18 13:42:01 1998 Richard Kenner + + * 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 * netbsd.h (ASM_OUTPUT_ALIGN): Redefine. diff --git a/gcc/expr.c b/gcc/expr.c index 8edc49ea338..178f4f1e1ad 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;