Bug 25871 - TRAMPOLINE_TEMPLATE uses 32bit moves on 64bit code
TRAMPOLINE_TEMPLATE uses 32bit moves on 64bit code
Status: RESOLVED FIXED
Product: gcc
Classification: Unclassified
Component: target
4.2.0
: P3 normal
: ---
Assigned To: rsandifo@gcc.gnu.org
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2006-01-20 06:47 UTC by Joshua Kinard
Modified: 2006-05-02 13:02 UTC (History)
2 users (show)

See Also:
Host:
Target: mips64-*-*
Build:
Known to work:
Known to fail:
Last reconfirmed: 2006-04-28 22:36:05


Attachments
Use dmove/move where appropriate (2.02 KB, patch)
2006-01-20 06:48 UTC, Joshua Kinard
Details | Diff
Use dmove/move where appropriate (2.02 KB, patch)
2006-01-20 06:54 UTC, Joshua Kinard
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Joshua Kinard 2006-01-20 06:47:38 UTC
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.
Comment 1 Joshua Kinard 2006-01-20 06:48:26 UTC
Created attachment 10683 [details]
Use dmove/move where appropriate
Comment 2 Joshua Kinard 2006-01-20 06:54:40 UTC
Created attachment 10684 [details]
Use dmove/move where appropriate

Typo in original, this is the correct version.
Comment 3 Andrew Pinski 2006-01-20 14:10:16 UTC
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.
Comment 4 Joseph S. Myers 2006-04-26 08:39:06 UTC
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

Comment 5 Joseph S. Myers 2006-04-26 08:40:32 UTC
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

Comment 6 rsandifo@gcc.gnu.org 2006-04-28 22:36:05 UTC
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.
Comment 7 rsandifo@gcc.gnu.org 2006-05-02 12:57:58 UTC
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

Comment 8 rsandifo@gcc.gnu.org 2006-05-02 13:02:22 UTC
Fixed on mainline.