From 9a53bc17c486a122b5eb3570f2e1b374b5c35460 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Tue, 7 Apr 2009 12:30:59 +0000 Subject: [PATCH] expr.c (convert_move): Use emit_store_flag instead of "emulating" it. 2009-04-07 Paolo Bonzini * expr.c (convert_move): Use emit_store_flag instead of "emulating" it. From-SVN: r145666 --- gcc/ChangeLog | 5 +++++ gcc/expr.c | 24 +++--------------------- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1830f9df255..8c946ebe307 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-04-07 Paolo Bonzini + + * expr.c (convert_move): Use emit_store_flag instead of + "emulating" it. + 2009-04-07 Paolo Bonzini * config/i386/i386.c (ix86_compare_emitted): Remove. diff --git a/gcc/expr.c b/gcc/expr.c index ff3867e59ec..f25ec7b4b18 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -588,27 +588,9 @@ convert_move (rtx to, rtx from, int unsignedp) if (unsignedp) fill_value = const0_rtx; else - { -#ifdef HAVE_slt - if (HAVE_slt - && insn_data[(int) CODE_FOR_slt].operand[0].mode == word_mode - && STORE_FLAG_VALUE == -1) - { - emit_cmp_insn (lowfrom, const0_rtx, NE, NULL_RTX, - lowpart_mode, 0); - fill_value = gen_reg_rtx (word_mode); - emit_insn (gen_slt (fill_value)); - } - else -#endif - { - fill_value - = expand_shift (RSHIFT_EXPR, lowpart_mode, lowfrom, - size_int (GET_MODE_BITSIZE (lowpart_mode) - 1), - NULL_RTX, 0); - fill_value = convert_to_mode (word_mode, fill_value, 1); - } - } + fill_value = emit_store_flag (gen_reg_rtx (word_mode), + LT, lowfrom, const0_rtx, + VOIDmode, 0, -1); /* Fill the remaining words. */ for (i = GET_MODE_SIZE (lowpart_mode) / UNITS_PER_WORD; i < nwords; i++) -- 2.30.2