This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [committed] PR target/25871: Fix MIPS trampolines for Pmode == DImode
- From: Thiemo Seufer <ths at networkno dot de>
- To: gcc-patches at gcc dot gnu dot org, kumba at gentoo dot org, richard at codesourcery dot com
- Date: Tue, 2 May 2006 14:13:27 +0100
- Subject: Re: [committed] PR target/25871: Fix MIPS trampolines for Pmode == DImode
- References: <87aca0y4e4.fsf@talisman.home>
Richard Sandiford wrote:
> I've applied Joshua Kinard's patch for PR 25871, in which the MIPS
> nested function trampolines had 32-bit pointer moves even when
> Pmode == DImode.
>
> The bug isn't a regression, so I've not applied it to release branches.
> However, the patch seems very safe to me, and should only affect people
> for whom the current code doesn't work, so I'd be happy for it to be
> applied to release branches too.
[snip]
> -#define TRAMPOLINE_TEMPLATE(STREAM) \
> -{ \
> - fprintf (STREAM, "\t.word\t0x03e00821\t\t# move $1,$31\n"); \
> +#define TRAMPOLINE_TEMPLATE(STREAM) \
> +{ \
> + if (ptr_mode == DImode) \
> + fprintf (STREAM, "\t.word\t0x03e0082d\t\t# dmove $1,$31\n"); \
> + else \
> + fprintf (STREAM, "\t.word\t0x03e00821\t\t# move $1,$31\n"); \
It probably makes sense to use explicitly "addu" and "daddu" in the
comments, this avoids confusion caused by a non-existing "dmove"
assembler macro.
Thiemo