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: Richard Henderson <rth at redhat dot com>
- 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 16:40:03 -0800
- Subject: Re: Have run out of space in CONST_OK_FOR_LETTER_P
- References: <200201142132.g0ELWad22051@hyper.wm.sps.mot.com>
On Mon, Jan 14, 2002 at 04:32:36PM -0500, Peter Barada wrote:
> 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))) \
> : \
This is the correct solution to running out of CONST_OK letters.
> Are there any letters left that can be used
> for CONST_OK_FOR_LETTER_P, or EXTRA_CONSTRAINT?
There are ranges specifies for CONST_OK_FOR_LETTER_P,
CONST_OK_FOR_CONST_DOUBLE_P, and some documented generic
constraints. All other letters may be split between
EXTRA_CONSTRAINT and REG_CLASS_FROM_LETTER as the target
sees fit.
The split is defined by checking EXTRA_CONSTRAINT for
any letter for which REG_CLASS_FROM_LETTER returns NO_REGS.
r~