This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Do not PROMOTE_PROTOTYPES on x86_64
- From: Jan Hubicka <jh at suse dot cz>
- To: gcc-patches at gcc dot gnu dot org, patches at x86-64 dot org
- Date: Tue, 12 Mar 2002 15:44:32 +0100
- Subject: Do not PROMOTE_PROTOTYPES on x86_64
Hi,
the x86_64 ABI specifies the upper part of short arguments to be undefined,
as x86_64 can easilly manipulate with short registers. GCC currently extends
it to 32bit that is somewhat strange.
If no one points out C standard issues, I will commit it to both mainline
and branch.
Tue Mar 12 15:42:55 CET 2002 Jan Hubicka <jh@suse.cz>
* i386.h (PROMOTE_PROTOTYPES): Set to 0 on x86_64.
Index: config/i386/i386.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/i386/i386.h,v
retrieving revision 1.233.4.3
diff -c -3 -p -r1.233.4.3 i386.h
*** config/i386/i386.h 4 Mar 2002 15:45:17 -0000 1.233.4.3
--- config/i386/i386.h 12 Mar 2002 14:29:46 -0000
*************** do { \
*** 2348,2354 ****
/* When a prototype says `char' or `short', really pass an `int'.
(The 386 can't easily push less than an int.) */
! #define PROMOTE_PROTOTYPES 1
/* A macro to update M and UNSIGNEDP when an object whose type is
TYPE and which has the specified mode and signedness is to be
--- 2348,2354 ----
/* When a prototype says `char' or `short', really pass an `int'.
(The 386 can't easily push less than an int.) */
! #define PROMOTE_PROTOTYPES (!TARGET_64BIT)
/* A macro to update M and UNSIGNEDP when an object whose type is
TYPE and which has the specified mode and signedness is to be