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: gcc-patches at gcc dot gnu dot org
- Cc: sje at cup dot hp dot com, law at redhat dot com
- Date: Fri, 30 Aug 2002 15:37:23 -0400 (EDT)
- Subject: Re: 128 bit floats on PA64
Coincidently, I started looking at this testerday.
> It looks like the hppa64 platform is using 64 bit long doubles instead
> of 128 bits. This conflicts with the ABI (as the comment in pa-64.h
> notes) and we have been using 128 bit floats here with our testing and
> have not noticed any regressions. Here is the patch, but I am not sure
> if this will break hppa*64*-*-linux*. If it does perhaps I should
hppa*64*-*-linux* doesn't really exist yet. Some very preliminary
work has been done in the last couple of weeks and I think there has
been success in running a very simple statically linked binary. At
the moment, the 64-bit compiler is only used to build 64-bit kernels.
It is clear that the correct size for linux will be 128 bits. Whether
the intel format is used or not remains open, but I think the general
thinking is that the ABI should be similar to hpux.
> change the header order in config.gcc and make long-double.h last so it
> sets LONG_DOUBLE_TYPE_SIZE to 128 after pa-64.h sets it to 64. Linux
> does not include the long-double.h header. This still leaves the
> CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P changes as
> something that could affect 64 bit linux. 128 bit floats on HP-UX will
> not work without removing these macros (or defining
> CLASS_CANNOT_CHANGE_MODE as NOREGS). FYI: I also removed them from
> pa32-regs.h and so no problems on PA32 HP-UX.
There is a problem. LOAD_EXTEND_OP(MODE) is defined as ZERO_EXTEND
but loads to FPRs don't ZERO_EXTEND. So, I don't think the macros
can be removed. I don't fully understand why pa32-regs.h uses
NO_REGS but this appears to work on the 32-bit port.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)