This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Problem with ColdFire restricted addressing modes (mode5.6combination)
>>In order to fix this, you need to modify the 'U' constraint so it won't
>>accept things that won't match a 'U' constraint after they are reloaded,
>>namely, you have to stop accepting out of range constants.
>
>I modified the 'U' case to be:
>
> (((C) == 'U') \
> ? ((GET_CODE (OP) == MEM \
> && GET_CODE (XEXP (OP, 0)) == PLUS \
> && GET_CODE (XEXP (XEXP (OP, 0), 0)) == REG \
> && GET_CODE (XEXP (XEXP (OP, 0), 1)) == CONST_INT \
> && (!TARGET_COLDFIRE || (INTVAL (XEXP (XEXP (OP, 0), 1)) >= -32768 \
> && INTVAL (XEXP (XEXP (OP, 0), 1)) <= -32767))) \
> || (GET_CODE (OP) == MEM \
> && GET_CODE (XEXP (OP, 0)) == REG)) \
Shows what happesn when I try to code at 3am. bviously the check for
the constant in range is broken. I'm going back and trying it
again(with a +32767).
Film at 11.
--
Peter Barada
peter@the-baradas.com