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: Steve Ellcey <sje at cup dot hp dot com>
- To: dave at hiauly1 dot hia dot nrc dot ca
- Cc: gcc-patches at gcc dot gnu dot org, law at redhat dot com
- Date: Fri, 30 Aug 2002 14:54:06 -0700 (PDT)
- Subject: Re: 128 bit floats on PA64
- Reply-to: sje at cup dot hp dot com
> 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.
Do you have a suggestion about what CLASS_CANNOT_CHANGE_MODE_P should
look like? Here is an example of what I get with the existing
CLASS_CANNOT_CHANGE_MODE_P and 128 bit floats.
[hpsje - sje_merge_2] $ cat x.c
long double
to_ld (int n)
{
return n;
}
main ()
{
int n;
long double x;
if (to_ld(10) != 10.0)
abort ();
exit (0);
}
[hpsje - sje_merge_2] $ obj_pa64_gcc/gcc/cc1 x.c
to_ld main
x.c: In function `main':
x.c:14: error: unrecognizable insn:
(insn 18 20 19 0 800003fffaf73e40 (set (subreg:DI (reg:TF 69) 0)
(subreg:DI (reg:TF 32 %fr4) 0)) -1 (nil)
(nil))
x.c:14: internal compiler error: Internal compiler error in extract_insn, at recog.c:2178
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.