diff options
author | Roger Sayle <roger@eyesopen.com> | 2006-02-14 02:59:42 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2006-02-14 02:59:42 +0000 |
commit | 3bf78d3be26e89446da009f5c5e562d8ba1a1179 (patch) | |
tree | ad6d3c452b2626d6643772b84fef9585f0dd5c22 /gcc/expr.c | |
parent | 0fe4610e618b184172ecaa49fb4729e7c349025c (diff) | |
download | gcc-3bf78d3be26e89446da009f5c5e562d8ba1a1179.zip gcc-3bf78d3be26e89446da009f5c5e562d8ba1a1179.tar.gz gcc-3bf78d3be26e89446da009f5c5e562d8ba1a1179.tar.bz2 |
optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx directly...
* optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
directly, instead let do_compare_rtx_and_jump handle this for us.
* expr.c (expand_expr_real_1): Likewise.
* dojump.c (do_jump_by_parts_greater_rtx): Make static. Move
before do_jump_by_parts_greater.
(do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
* expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
From-SVN: r110954
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 20 |
1 files changed, 2 insertions, 18 deletions
@@ -8184,24 +8184,8 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, emit_move_insn (target, op0); temp = gen_label_rtx (); - - /* If this mode is an integer too wide to compare properly, - compare word by word. Rely on cse to optimize constant cases. */ - if (GET_MODE_CLASS (mode) == MODE_INT - && ! can_compare_p (GE, mode, ccp_jump)) - { - if (code == MAX_EXPR) - do_jump_by_parts_greater_rtx (mode, unsignedp, target, op1, - NULL_RTX, temp); - else - do_jump_by_parts_greater_rtx (mode, unsignedp, op1, target, - NULL_RTX, temp); - } - else - { - do_compare_rtx_and_jump (target, cmpop1, comparison_code, - unsignedp, mode, NULL_RTX, NULL_RTX, temp); - } + do_compare_rtx_and_jump (target, cmpop1, comparison_code, + unsignedp, mode, NULL_RTX, NULL_RTX, temp); } emit_move_insn (target, op1); emit_label (temp); |