diff options
author | Roger Sayle <roger@eyesopen.com> | 2006-02-13 01:55:37 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2006-02-13 01:55:37 +0000 |
commit | feb04780354bec2f694f65e7b7a5b20ab07b3c0d (patch) | |
tree | 3d8ced1bf10347b4692e3a1210b4de3fd48c5e58 /gcc/expr.h | |
parent | c0c84a897e862589a0bde45ce884c2d0fb7dda7b (diff) | |
download | gcc-feb04780354bec2f694f65e7b7a5b20ab07b3c0d.zip gcc-feb04780354bec2f694f65e7b7a5b20ab07b3c0d.tar.gz gcc-feb04780354bec2f694f65e7b7a5b20ab07b3c0d.tar.bz2 |
re PR middle-end/25724 (Emits call to __cmpdi2 for long long comparison in switches)
PR middle-end/25724
* dojump.c (do_jump): Call do_compare_rtx_and_jump.
(do_jump_parts_zero_rtx): New function renamed from
do_jump_parts_equality_rtx. Made static. Add a mode argument.
(do_jump_parts_equality_rtx): New function split out from
do_jump_parts_equality. Old implementation renamed as above.
Call do_jump_parts_zero_rtx if either operand is zero.
(do_jump_parts_equality): Call do_jump_parts_equality_rtx to
do all of the heavy lifting.
(do_compare_rtx_and_jump): Handle multi-word comparisons by
calling either do_jump_by_parts_greater_rtx or
do_jump_by_parts_equality_rtx.
* expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
* expmed.c (do_cmp_and_jump): Now multi-word optimization has
moved to do_compare_rtx_and_jump, call it directly.
* stmt.c (do_jump_if_equal): Remove static prototype. Add a
mode argument. Call do_compare_rtx_and_jump.
(emit_case_nodes): Update calls to do_jump_if_equal.
From-SVN: r110906
Diffstat (limited to 'gcc/expr.h')
-rw-r--r-- | gcc/expr.h | 3 |
1 files changed, 1 insertions, 2 deletions
@@ -1,6 +1,6 @@ /* Definitions for code generation pass of GNU compiler. Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005 + 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GCC. @@ -743,7 +743,6 @@ extern void init_all_optabs (void); /* Call this to initialize an optab function entry. */ extern rtx init_one_libfunc (const char *); -extern void do_jump_by_parts_equality_rtx (rtx, rtx, rtx); extern void do_jump_by_parts_greater_rtx (enum machine_mode, int, rtx, rtx, rtx, rtx); |