diff options
author | Paolo Bonzini <bonzini@gnu.org> | 2009-04-07 12:30:59 +0000 |
---|---|---|
committer | Paolo Bonzini <bonzini@gcc.gnu.org> | 2009-04-07 12:30:59 +0000 |
commit | 9a53bc17c486a122b5eb3570f2e1b374b5c35460 (patch) | |
tree | 3f4ae47d601564892feee69ecd2e7fa2feac9aca /gcc | |
parent | 67b8f1c1494dd7e1832030e4f6b1cb8c9ca0427d (diff) | |
download | gcc-9a53bc17c486a122b5eb3570f2e1b374b5c35460.zip gcc-9a53bc17c486a122b5eb3570f2e1b374b5c35460.tar.gz gcc-9a53bc17c486a122b5eb3570f2e1b374b5c35460.tar.bz2 |
expr.c (convert_move): Use emit_store_flag instead of "emulating" it.
2009-04-07 Paolo Bonzini <bonzini@gnu.org>
* expr.c (convert_move): Use emit_store_flag instead of
"emulating" it.
From-SVN: r145666
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/expr.c | 24 |
2 files changed, 8 insertions, 21 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1830f9df..8c946eb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2009-04-07 Paolo Bonzini <bonzini@gnu.org> + * expr.c (convert_move): Use emit_store_flag instead of + "emulating" it. + +2009-04-07 Paolo Bonzini <bonzini@gnu.org> + * config/i386/i386.c (ix86_compare_emitted): Remove. (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC ix86_compare_op0 like ix86_compare_emitted used to be handled. @@ -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++) |