diff options
author | Eric Botcazou <ebotcazou@act-europe.fr> | 2004-02-27 09:11:34 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2004-02-27 08:11:34 +0000 |
commit | 288dc1eae2f0349f257da93a8cba7fae0404ff05 (patch) | |
tree | 89b9c323fc395b30c52bd4ad180647a25da37dd4 /gcc/expr.c | |
parent | 7a0a47c77ffab06d18d4a0fc54905060eaeecd05 (diff) | |
download | gcc-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.c | 14 |
1 files changed, 6 insertions, 8 deletions
@@ -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); |