From: J"orn Rennecke Date: Mon, 2 Feb 1998 00:37:25 +0000 (+0000) Subject: * loop.c (get_condition): Handle sign-extended constants. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=460f50dc1470348f6b74a4e73559d867aae534ee;p=gcc.git * loop.c (get_condition): Handle sign-extended constants. From-SVN: r17590 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 446844c1afe..890853e5a4a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Mon Feb 2 01:38:39 1998 J"orn Rennecke + + * loop.c (get_condition): Handle sign-extended constants. + Mon Feb 2 01:22:46 1998 Hans-Peter Nilsson * expr.c (emit_push_insn): Add code to use movstrti if present. diff --git a/gcc/loop.c b/gcc/loop.c index 0fa3b4f0d2b..6aa748561b4 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -7075,15 +7075,17 @@ get_condition (jump, earliest) code = LT, op1 = GEN_INT (const_val + 1); break; + /* When cross-compiling, const_val might be sign-extended from + BITS_PER_WORD to HOST_BITS_PER_WIDE_INT */ case GE: - if (const_val + if ((const_val & max_val) != (((HOST_WIDE_INT) 1 << (GET_MODE_BITSIZE (GET_MODE (op0)) - 1)))) code = GT, op1 = GEN_INT (const_val - 1); break; case LEU: - if (uconst_val != max_val) + if (uconst_val < max_val) code = LTU, op1 = GEN_INT (uconst_val + 1); break;