This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Problem in gen_reload(), seeking an explanation
- To: Franz dot Sirl-kernel at lauterbach dot com (Franz Sirl)
- Subject: Re: Problem in gen_reload(), seeking an explanation
- From: Joern Rennecke <amylaar at cygnus dot co dot uk>
- Date: Mon, 21 Jun 1999 18:05:44 +0100 (BST)
- Cc: amylaar at cygnus dot co dot uk, law at cygnus dot com, egcs at egcs dot cygnus dot com
> OK, understood. Do I have to care about a FLOAT_REGS = FLOAT_REGS +
> GENERAL_REGS case here? Just to make sure I'm not breaking anything.
reload shouldn't crate floating point adds, if that's what you mean.
> >but that will still not handle the case properly when an add can
> >operate on some register class that is not a subset of GENERAL_REGS.
> >I don't know if we have any target where this is an issue, though.
>
> Uhm, such an argument would probably point to a solution with
> gen_rtx_SET(gen_rtx_PLUS()) instead of gen_add2_insn for insn validation
> again? Otherwise you would have to put a lot of checking into the swap
> decision and probably need a new backend macro.
We could also do the swap if the first operand of the add doesn't satisfies
the predicate for operand 1 of the addsi3 pattern / expander, but the
second operand of the add does. As long as the predicates are defined
sensible, this will help.