This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: MIPS patch: allow ints in FPRs, rework some float patterns
- From: Richard Henderson <rth at redhat dot com>
- To: Richard Sandiford <rsandifo at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 15 Jul 2002 15:04:32 -0700
- Subject: Re: MIPS patch: allow ints in FPRs, rework some float patterns
- References: <wvn3cutghms.fsf@talisman.cambridge.redhat.com>
On Tue, Jul 09, 2002 at 02:23:07PM +0100, Richard Sandiford wrote:
> The main problem with extending it to 64-bit integers is the lack
> of automatic sign extension. When 32-bit values are stored in 64-bit
> float registers, the upper 32 bits are left undefined. So the
> definition of LOAD_EXTEND_OP doesn't hold:
>
> #define LOAD_EXTEND_OP(MODE) \
> (TARGET_64BIT && ((MODE) == SImode || (MODE) == CCmode) \
> ? SIGN_EXTEND : ZERO_EXTEND)
>
> I've tried to avoid the problem by including 64-bit FPRs in
> CLASS_CANNOT_CHANGE_MODE. Is that the right thing to do?
> Is it going to be enough?
I believe so. Certainly Alpha has the same issue, but we've
been able to load integer data in fp registers for a long time.
r~