This is the mail archive of the
mailing list for the GCC project.
Re: dangerous cleverness? ppc int<->float conversions, subreg
- To: David Edelsohn <dje at watson dot ibm dot com>
- Subject: Re: dangerous cleverness? ppc int<->float conversions, subreg
- From: Zack Weinberg <zack at codesourcery dot com>
- Date: Mon, 29 Oct 2001 22:02:57 -0800
- Cc: Dale Johannesen <dalej at apple dot com>, gcc at gcc dot gnu dot org
- References: <email@example.com> <20011026171605.A16527@codesourcery.com> <200110272036.QAA26708@makai.watson.ibm.com>
On Sat, Oct 27, 2001 at 04:36:43PM -0400, David Edelsohn wrote:
> Does the testcase use an aggregate or "long long"?
> I still have a different perspective on the problem. You seem to
> be asking: "Why does GCC use FPRs for DImode?" I am asking: "Why does GCC
> use DImode for the moves?"
This appears to be an intrinsic characteristic of the representation
of structures which are exactly the width of an integer mode.
Changing it would be invasive. I don't want invasive. I want a
simple change which provably works. I'm concentrating on the target
macros and machine description, because they have to be capable of
describing this situation; there exist processors that require you not
to put integers in fp regs.
Richard Henderson's suggestion of tweaking the register preferences on
*movdi_32 seems to be the right thing.