"Amker.Cheng" <amker.ch...@gmail.com> writes:

>   In gcc internal, section 16.19.8, there is a rule about
> "define_insn_reservation" like:
> "`condition` defines what RTL insns are described by this
> construction. You should re-
> member that you will be in trouble if `condition` for two or more
> different `define_insn_
> reservation` constructors if TRUE for an insn".
>
>   While in mips.md, pipeline description for each processor are
> included along with
> generic.md, which providing a fallback for processor without specific
> pipeline description.
>
>   Here is the PUZZLE: Won't `define_insn_reservation` constructors
>>From both specific
> processor's and the generic md file break the rule mentioned before?
> For example, It seems
> conditions for the r3k_load(from 3000.md) and generic_load(from
> generic.md) are both TRUE
> for lw insn.

Looks to me like the MIPS backend is relying on undocumented
behaviour: when multiple define_insn_reservation statements match, the
automata will match them in order.  It would be better if the
define_insn_reservation in generic.md checked "cpu".

Ian

Reply via email to