From: Andreas Schwab Date: Wed, 30 Dec 1998 21:51:53 +0000 (+0000) Subject: loop.c (check_dbra_loop): While reversing the loop... X-Git-Tag: prereleases/libgcj-0.1~1526 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2c74fb2bf089989bff9918b995397df004a4c406;p=thirdparty%2Fgcc.git loop.c (check_dbra_loop): While reversing the loop... * loop.c (check_dbra_loop): While reversing the loop, if the comparison value has a VOID mode use the mode of the other operand to compute the mask. From-SVN: r24444 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9f2789645e2d..015af043b58b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +1998-12-30 Andreas Schwab + + * loop.c (check_dbra_loop): While reversing the loop, if the + comparison value has a VOID mode use the mode of the other operand + to compute the mask. + Wed Dec 30 22:24:00 1998 Michael Meissner * rs6000.md ({save,restore}_stack_function): Take 2 operands to diff --git a/gcc/loop.c b/gcc/loop.c index 082fc8170604..f1cdd0331854 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -6857,8 +6857,12 @@ check_dbra_loop (loop_end, insn_count, loop_start, loop_info) add_val = INTVAL (bl->biv->add_val); comparison_value = XEXP (comparison, 1); - comparison_const_width - = GET_MODE_BITSIZE (GET_MODE (XEXP (comparison, 1))); + if (GET_MODE (comparison_value) == VOIDmode) + comparison_const_width + = GET_MODE_BITSIZE (GET_MODE (XEXP (comparison, 0))); + else + comparison_const_width + = GET_MODE_BITSIZE (GET_MODE (comparison_value)); if (comparison_const_width > HOST_BITS_PER_WIDE_INT) comparison_const_width = HOST_BITS_PER_WIDE_INT; comparison_sign_mask