Fix PR target/10904 and PR target/13058

John David Anglin dave@hiauly1.hia.nrc.ca
Tue Jan 27 20:00:00 GMT 2004


> > +#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS)            \
> > +  (TARGET_ARCH64                                             \
> > +   && (FROM) == SImode                                               \
> > +   && GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO)             \
> > +   ? reg_classes_intersect_p (CLASS, FP_REGS) : 0)
> 
> You shouldn't copy the PA block comment, you should describe
> what SPARC needs, and what you've implemented.  Namely, you're
> preventing any subregging of SImode.

Is that important?  On the PA, there is no way to extract a subreg
of a SImode value in a floating point register.

> I wonder if the exact test you want is GMS(F) < GMS(T), which
> would test for *paradoxical* subregging.

Is the issue that CLASS might intersect both GENERAL_REGS and FP_REGS.
I've been concerned that the above is overly restrictive in that case,
and that it would be better to use the same approach as you implemented
on the alpha.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)



More information about the Gcc-patches mailing list