From 668443c98adf0e658a3b2cff251a01ee781f5033 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sat, 11 Feb 1995 13:09:17 -0500 Subject: [PATCH] (expand_divmod): Always call expand_twoval_binop with psuedos as targets. From-SVN: r8905 --- gcc/expmed.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/gcc/expmed.c b/gcc/expmed.c index 7ba833bb808..75e0cf2cf19 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -3159,14 +3159,17 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp) and return the result right away. */ if (target == 0) target = gen_reg_rtx (compute_mode); + if (rem_flag) { - remainder = target; + remainder + = GET_CODE (target) == REG ? target : gen_reg_rtx (compute_mode); quotient = gen_reg_rtx (compute_mode); } else { - quotient = target; + quotient + = GET_CODE (target) == REG ? target : gen_reg_rtx (compute_mode); remainder = gen_reg_rtx (compute_mode); } @@ -3283,14 +3286,17 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp) value here, and return the result right away. */ if (target == 0) target = gen_reg_rtx (compute_mode); + if (rem_flag) { - remainder = target; + remainder = (GET_CODE (target) == REG + ? target : gen_reg_rtx (compute_mode)); quotient = gen_reg_rtx (compute_mode); } else { - quotient = target; + quotient = (GET_CODE (target) == REG + ? target : gen_reg_rtx (compute_mode)); remainder = gen_reg_rtx (compute_mode); } @@ -3384,12 +3390,14 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp) target = gen_reg_rtx (compute_mode); if (rem_flag) { - remainder = target; + remainder= (GET_CODE (target) == REG + ? target : gen_reg_rtx (compute_mode)); quotient = gen_reg_rtx (compute_mode); } else { - quotient = target; + quotient = (GET_CODE (target) == REG + ? target : gen_reg_rtx (compute_mode)); remainder = gen_reg_rtx (compute_mode); } -- 2.30.2