Problem in gen_reload(), seeking an explanation
Mon Jun 21 10:06:00 GMT 1999
> 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.
More information about the Gcc