This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Problem in gen_reload(), seeking an explanation


> 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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]