This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: 128 bit floats on PA64
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: law at redhat dot com
- Cc: gcc-patches at gcc dot gnu dot org, sje at cup dot hp dot com
- Date: Fri, 30 Aug 2002 16:56:59 -0400 (EDT)
- Subject: 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)