This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Have run out of space in CONST_OK_FOR_LETTER_P
- From: Jan Hubicka <jh at suse dot cz>
- To: Peter Barada <pbarada at mail dot wm dot sps dot mot dot com>
- Cc: gcc at gcc dot gnu dot org, Peter dot Barada at Motorola dot com
- Date: Mon, 14 Jan 2002 22:38:01 +0100
- Subject: Re: Have run out of space in CONST_OK_FOR_LETTER_P
- References: <200201142132.g0ELWad22051@hyper.wm.sps.mot.com>
>
> I'm in the midst of adding Coldfire V4E support to gcc-3.1, and
> there's no room left in the m68k CONST_OK_FOR_LETTER_P to add in the
> range [-1, 0-7] which the mov3q.l instruction supports. I've
> attempted to get around this by creating an EXTRA_CONSTRAINT that
> accepts if its a constant integer, and its value is in range:
>
> (((CODE) == 'R') && TARGET_CFV4) \
> ? (GET_CODE (OP) == CONST_INT \
> && (INTVAL (OP) == -1 \
> || (INTVAL (OP) >= 1 && INTVAL (OP) <= 7))) \
> : \
>
> Is there a better way to do this? Is there any way to extend
> CONST_OK_FOR_LETTER_P? Are there any letters left that can be used
> for CONST_OK_FOR_LETTER_P, or EXTRA_CONSTRAINT?
I believe the matching scheme has been recently changed to allow use of arbitary
letters for any of class - the predicates are tried in order and first matching
wins.
Only you can't overwrite the special purpose constraints, like mrX etc etc.
Honza
>
> --
> Peter Barada Peter.Barada@motorola.com
> Wizard 781-852-2768 (direct)
> WaveMark Solutions(wholly owned by Motorola) 781-270-0193 (fax)