Review microblaze.md, required changes
Michael Eager
eager@eagercon.com
Fri Feb 19 20:35:00 GMT 2010
Richard Henderson wrote:
> > (define_insn "*negdi2_internal"
> > [(set (match_operand:DI 0 "register_operand" "=d")
> > (neg:DI (match_operand:DI 1 "register_operand" "d")))
> > (clobber (match_operand:SI 2 "register_operand" "=d"))]
> > ""
> > "rsub\t%L0,%L1,r0\;rsubc\t%M0,%M1,r0"
>
> Where is operand 2 used? I think you were interested in saving %M1 if
> there is overlap between %M1 and %L0, but forgot to do it.
>
> I honestly can't remember if this is something that you have to worry
> about. And if it is, you have the same problem with every other
> double-word operation.
I don't think that there is a register overlap issue.
> What might be best in the short-term is to simply mark the outputs on
> all of these instructions as early-clobber, and avoid the extra scratch.
> That will be good enough until you rewrite the patterns to model the
> carry flag and be split before reload, at which point the early clobber
> problem goes away.
Removed unused operand 2.
http://gcc.gnu.org/viewcvs?view=revision&revision=156790
or
svn diff svn://gcc.gnu.org/svn/gcc/branches/microblaze -r r156788:r156790
--
Michael Eager eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306 650-325-8077
More information about the Gcc-patches
mailing list