aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@act-europe.fr>2004-02-27 09:11:34 +0100
committerEric Botcazou <ebotcazou@gcc.gnu.org>2004-02-27 08:11:34 +0000
commit288dc1eae2f0349f257da93a8cba7fae0404ff05 (patch)
tree89b9c323fc395b30c52bd4ad180647a25da37dd4 /gcc/expr.c
parent7a0a47c77ffab06d18d4a0fc54905060eaeecd05 (diff)
downloadgcc-288dc1eae2f0349f257da93a8cba7fae0404ff05.zip
gcc-288dc1eae2f0349f257da93a8cba7fae0404ff05.tar.gz
gcc-288dc1eae2f0349f257da93a8cba7fae0404ff05.tar.bz2
fold-const.c (fold): Revert 2004-02-25 change.
* fold-const.c (fold): Revert 2004-02-25 change. Use the original operands to build a tree with swapped operands. * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the 'unsignedp' predicate to specify the signedness. Co-Authored-By: Roger Sayle <roger@eyesopen.com> From-SVN: r78558
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index bf14606..205dc78 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -8034,7 +8034,7 @@ expand_expr_real (tree exp, rtx target, enum machine_mode tmode,
/* First try to do it with a special MIN or MAX instruction.
If that does not win, use a conditional jump to select the proper
value. */
- this_optab = (TREE_UNSIGNED (type)
+ this_optab = (unsignedp
? (code == MIN_EXPR ? umin_optab : umax_optab)
: (code == MIN_EXPR ? smin_optab : smax_optab));
@@ -8068,18 +8068,16 @@ expand_expr_real (tree exp, rtx target, enum machine_mode tmode,
&& ! can_compare_p (GE, mode, ccp_jump))
{
if (code == MAX_EXPR)
- do_jump_by_parts_greater_rtx (mode, TREE_UNSIGNED (type),
- target, op1, NULL_RTX, op0);
+ do_jump_by_parts_greater_rtx (mode, unsignedp, target, op1,
+ NULL_RTX, op0);
else
- do_jump_by_parts_greater_rtx (mode, TREE_UNSIGNED (type),
- op1, target, NULL_RTX, op0);
+ do_jump_by_parts_greater_rtx (mode, unsignedp, op1, target,
+ NULL_RTX, op0);
}
else
{
- int unsignedp = TREE_UNSIGNED (TREE_TYPE (TREE_OPERAND (exp, 1)));
do_compare_rtx_and_jump (target, op1, code == MAX_EXPR ? GE : LE,
- unsignedp, mode, NULL_RTX, NULL_RTX,
- op0);
+ unsignedp, mode, NULL_RTX, NULL_RTX, op0);
}
emit_move_insn (target, op1);
emit_label (op0);