This is the mail archive of the gcc-patches@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: 128 bit floats on PA64


> I believe CLASS_CANNOT_* were introduced to deal with ambiguities with
> SUBREGS of floating point modes.  The set of bits you'd get differed 
> depending on whether or not you were looking at a pseudo or hard
> register (and even which hard register you looked at).  So we tried
> hard to keep the compiler from doing such things.
> 
> Between not exposing the 32bit halves of the 64bit FP regs and the
> SUBREG_BYTE work I believe the CLASS_CANNOT* macros can probably
> disappear.

Reading more carefully, I see LOAD_EXTEND_OP only applies to loads
narrower than a "word".  Thus, there can't be a problem on the 32-bit
port with the FPR registers as there are no loads for data less than
a word in size.  Thus, I agree that it looks as if the macros can
disappear on the 32-bit port.

On the 64-bit port, there may be a problem with SImode
loads into FPRs as these are narrower than a word.  However, there
shouldn't be a problem with a DImode SUBREG of a TFmode register.
I think this is where Steve had a problem.  I think the
CLASS_CANNOT_CHANGE_MODE_P test needs reworking.

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


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