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]
Other format: [Raw text]

Re: More troubles in ColdFire land



>> In what way should I modify the pattern?
>
>You have to modify it such that it doesn't match a
>(mem (plus reg reg)) dest with an immediate source
>of course.

The expander can be modified to reject (set (mem (plus (reg, reg))) const_int).
I'm assuming you mean to modify the instruction pattern constraints to
not allow that combination.

>Presumably you've already added a constraint letter
>that means mem without reg+reg, since you would have
>needed such a thing for your fp troubles.

I didn't add a constraint letter for reg+reg.  I instead modified
GO_IF_LEGITIMATE_ADDRESS and LEGITIMIZE_ADDRESS to reject and
fix(respectively) reg+reg if the mode was float and it was a v4e.
Also I set up the patterns to have constraints of "f<Q>U" which are
all the modes that the v4e FPU supported.  I'm ignoring PC-relative
loads for the moment.  I *should* add a constraint letter for that.

>From previous comments on the list, I thought the reloader only
understands a very select subset of the constraints in determining
*how* to best modify the operands to successfully match the pattern.
Is this true?

-- 
Peter Barada                                   Peter.Barada@motorola.com
Wizard                                         781-852-2768 (direct)
WaveMark Solutions(wholly owned by Motorola)   781-270-0193 (fax)


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