This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[4.8, PATCH 22/26] Backport Power8 and LE support: -mcall-* endianness
- From: Bill Schmidt <wschmidt at linux dot vnet dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: dje dot gcc at gmail dot com
- Date: Wed, 19 Mar 2014 14:34:16 -0500
- Subject: [4.8, PATCH 22/26] Backport Power8 and LE support: -mcall-* endianness
- Authentication-results: sourceware.org; auth=none
Hi,
This patch (diff-mcall) fixes big-endian assumptions for -mcall-aixdesc
and various others.
Thanks,
Bill
2014-03-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Backport from mainline r207658
2014-02-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
-mcall-openbsd, or -mcall-linux.
(CC1_ENDIAN_BIG_SPEC): Remove.
(CC1_ENDIAN_LITTLE_SPEC): Remove.
(CC1_ENDIAN_DEFAULT_SPEC): Remove.
(CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
(SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
and %cc1_endian_default.
* config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
Index: gcc-4_8-test/gcc/config/rs6000/sysv4.h
===================================================================
--- gcc-4_8-test.orig/gcc/config/rs6000/sysv4.h
+++ gcc-4_8-test/gcc/config/rs6000/sysv4.h
@@ -522,8 +522,6 @@ extern int fixuplabelno;
#define ENDIAN_SELECT(BIG_OPT, LITTLE_OPT, DEFAULT_OPT) \
"%{mlittle|mlittle-endian:" LITTLE_OPT ";" \
"mbig|mbig-endian:" BIG_OPT ";" \
- "mcall-aixdesc|mcall-freebsd|mcall-netbsd|" \
- "mcall-openbsd|mcall-linux:" BIG_OPT ";" \
"mcall-i960-old:" LITTLE_OPT ";" \
":" DEFAULT_OPT "}"
@@ -536,20 +534,12 @@ extern int fixuplabelno;
%{memb|msdata=eabi: -memb}" \
ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
-#define CC1_ENDIAN_BIG_SPEC ""
-
-#define CC1_ENDIAN_LITTLE_SPEC ""
-
-#define CC1_ENDIAN_DEFAULT_SPEC "%(cc1_endian_big)"
-
#ifndef CC1_SECURE_PLT_DEFAULT_SPEC
#define CC1_SECURE_PLT_DEFAULT_SPEC ""
#endif
-/* Pass -G xxx to the compiler and set correct endian mode. */
+/* Pass -G xxx to the compiler. */
#define CC1_SPEC "%{G*} %(cc1_cpu)" \
- ENDIAN_SELECT(" %(cc1_endian_big)", " %(cc1_endian_little)", \
- " %(cc1_endian_default)") \
"%{meabi: %{!mcall-*: -mcall-sysv }} \
%{!meabi: %{!mno-eabi: \
%{mrelocatable: -meabi } \
@@ -903,9 +893,6 @@ ncrtn.o%s"
{ "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \
{ "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \
{ "link_os_default", LINK_OS_DEFAULT_SPEC }, \
- { "cc1_endian_big", CC1_ENDIAN_BIG_SPEC }, \
- { "cc1_endian_little", CC1_ENDIAN_LITTLE_SPEC }, \
- { "cc1_endian_default", CC1_ENDIAN_DEFAULT_SPEC }, \
{ "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \
{ "cpp_os_ads", CPP_OS_ADS_SPEC }, \
{ "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
Index: gcc-4_8-test/gcc/config/rs6000/sysv4le.h
===================================================================
--- gcc-4_8-test.orig/gcc/config/rs6000/sysv4le.h
+++ gcc-4_8-test/gcc/config/rs6000/sysv4le.h
@@ -22,9 +22,6 @@
#undef TARGET_DEFAULT
#define TARGET_DEFAULT MASK_LITTLE_ENDIAN
-#undef CC1_ENDIAN_DEFAULT_SPEC
-#define CC1_ENDIAN_DEFAULT_SPEC "%(cc1_endian_little)"
-
#undef DEFAULT_ASM_ENDIAN
#define DEFAULT_ASM_ENDIAN " -mlittle"