Hi Yvan, On 24 Sep 2013, at 09:29, Yvan Roux wrote:
>> On 11 September 2013 21:08, Yvan Roux <yvan.r...@linaro.org> wrote: >>> Here is the new patch discussed in the other thread. >>> >>> Thanks >>> Yvan >>> >>> 2013-09-11 Yvan Roux <yvan.r...@linaro.org> >>> Vladimir Makarov <vmaka...@redhat.com> >>> >>> * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield >>> operations >>> from the least significant bit. >>> (strip_address_mutations): Add bitfield operations handling. >>> (shift_code_p): New predicate for shifting operations. >>> (must_be_index_p): Add shifting operations handling. >>> (set_address_index): Likewise. as discussed on irc, this part (applied as r202914) breaks bootstrap on powerpc-darwin9 (and, presumably, other BE targets) with a signed/unsigned compare error at rtlanal.c:5482 below is a trivial patch, which makes both parts of test signed. With this, bootstrap completes on powerpc-darwin9 - however, you might want to check that it still does what you intended. thanks Iain diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 24cbcd2..0349bcc 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -5476,7 +5476,7 @@ lsb_bitfield_op_p (rtx x) if (GET_RTX_CLASS (GET_CODE (x)) == RTX_BITFIELD_OPS) { enum machine_mode mode = GET_MODE (XEXP (x, 0)); - unsigned HOST_WIDE_INT len = INTVAL (XEXP (x, 1)); + HOST_WIDE_INT len = INTVAL (XEXP (x, 1)); HOST_WIDE_INT pos = INTVAL (XEXP (x, 2)); return (pos == (BITS_BIG_ENDIAN ? GET_MODE_PRECISION (mode) - len : 0));