In gcc/config/mips/mips.h, the TRAMPOLINE_TEMPLATE macro uses three 32bit move statements, that when working with 64bit code, will cause problems. The only time this has been observed thus far was in filesystem code borrowed from grub which relied heavily on nested functions. A patch against trunk is attached, but this bug goes as far back as 3.3.x.
Created attachment 10683 [details] Use dmove/move where appropriate
Created attachment 10684 [details] Use dmove/move where appropriate Typo in original, this is the correct version.
Conifmred but this is actually not a regression from any versions of GCC (after the EGCS split) that I can tell from as the source has not changed that much.
Subject: Bug 25871 Author: jsm28 Date: Wed Apr 26 08:38:58 2006 New Revision: 113272 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113272 Log: From Bugzilla: 2006-04-26 Joshua Kinard <kumba@gentoo.org> PR target/25871 * gcc/config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves with 64-bit pointers. Modified: branches/csl-gxxpro-3_4-branch/ChangeLog.csl branches/csl-gxxpro-3_4-branch/gcc/config/mips/mips.h
Subject: Bug 25871 Author: jsm28 Date: Wed Apr 26 08:40:26 2006 New Revision: 113273 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113273 Log: From Bugzilla: 2006-04-26 Joshua Kinard <kumba@gentoo.org> PR target/25871 * gcc/config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves with 64-bit pointers. Modified: branches/csl/sourcerygxx-4_1/ChangeLog.csl branches/csl/sourcerygxx-4_1/gcc/config/mips/mips.h
The patch looks good to me, thanks, and should be small enough to avoid the need for a copyright assignment. I'll apply it next week.
Subject: Bug 25871 Author: rsandifo Date: Tue May 2 12:57:52 2006 New Revision: 113460 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113460 Log: 2006-05-02 Joshua Kinard <kumba@gentoo.org> PR target/25871 * gcc/config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves with 64-bit pointers. Modified: trunk/gcc/ChangeLog trunk/gcc/config/mips/mips.h
Fixed on mainline.