Module Name: src
Committed By: matt
Date: Sat Aug 23 02:17:47 UTC 2014
Modified Files:
src/external/gpl3/gcc/dist/gcc/config/rs6000: netbsd.h netbsd64.h
rs6000.c t-netbsd64
Log Message:
Fix powerpc64 support for NetBSD.
Add __PPC_ISEL__ to indicate cpu support the isel instruction
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd.h \
src/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c
cvs rdiff -u -r1.7 -r1.8 \
src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd64.h
cvs rdiff -u -r1.1 -r1.2 \
src/external/gpl3/gcc/dist/gcc/config/rs6000/t-netbsd64
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd.h
diff -u src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd.h:1.6 src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd.h:1.7
--- src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd.h:1.6 Fri Aug 22 06:51:34 2014
+++ src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd.h Sat Aug 23 02:17:47 2014
@@ -31,6 +31,8 @@
builtin_define ("_SECURE_PLT"); \
if (TARGET_SOFT_FLOAT) \
builtin_define ("_SOFT_FLOAT"); \
+ if (TARGET_ISEL) \
+ builtin_define ("__PPC_ISEL__"); \
} \
while (0)
Index: src/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c
diff -u src/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c:1.6 src/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c:1.7
--- src/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c:1.6 Tue May 27 09:18:54 2014
+++ src/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c Sat Aug 23 02:17:47 2014
@@ -3492,7 +3492,8 @@ rs6000_option_override_internal (bool gl
rs6000_long_double_type_size = RS6000_DEFAULT_LONG_DOUBLE_SIZE;
}
-#if !defined (POWERPC_LINUX) && !defined (POWERPC_FREEBSD)
+#if !defined (POWERPC_LINUX) && !defined (POWERPC_FREEBSD) \
+ && !defined (POWERPC_NETBSD)
if (!global_options_set.x_rs6000_ieeequad)
rs6000_ieeequad = 1;
#endif
@@ -22500,7 +22501,8 @@ rs6000_savres_routine_name (rs6000_stack
}
else if (DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_ELFv2)
{
-#if !defined (POWERPC_LINUX) && !defined (POWERPC_FREEBSD)
+#if !defined (POWERPC_LINUX) && !defined (POWERPC_FREEBSD) \
+ && !defined(POWERPC_NETBSD)
/* No out-of-line save/restore routines for GPRs on AIX. */
gcc_assert (!TARGET_AIX || (sel & SAVRES_REG) != SAVRES_GPR);
#endif
@@ -22512,7 +22514,8 @@ rs6000_savres_routine_name (rs6000_stack
: ((sel & SAVRES_LR) ? "_restgpr0_" : "_restgpr1_"));
else if ((sel & SAVRES_REG) == SAVRES_FPR)
{
-#if defined (POWERPC_LINUX) || defined (POWERPC_FREEBSD)
+#if defined (POWERPC_LINUX) || defined (POWERPC_FREEBSD) \
+ || defined (POWERPC_NETBSD)
if ((sel & SAVRES_LR))
prefix = ((sel & SAVRES_SAVE) ? "_savefpr_" : "_restfpr_");
else
@@ -29135,7 +29138,8 @@ rs6000_elf_file_end (void)
aix_struct_return ? 2 : 1);
}
#endif
-#if defined (POWERPC_LINUX) || defined (POWERPC_FREEBSD)
+#if defined (POWERPC_LINUX) || defined (POWERPC_FREEBSD) \
+ || defined (POWERPC_NETBSD)
if (TARGET_32BIT || DEFAULT_ABI == ABI_ELFv2)
file_end_indicate_exec_stack ();
#endif
Index: src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd64.h
diff -u src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd64.h:1.7 src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd64.h:1.8
--- src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd64.h:1.7 Fri Aug 22 06:52:37 2014
+++ src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd64.h Sat Aug 23 02:17:47 2014
@@ -301,6 +301,8 @@ extern int dot_symbols;
do \
{ \
NETBSD_OS_CPP_BUILTINS_ELF(); \
+ if (TARGET_ISEL) \
+ builtin_define ("__PPC_ISEL__"); \
if (TARGET_64BIT) \
{ \
builtin_define ("__PPC__"); \
@@ -386,9 +388,7 @@ extern int dot_symbols;
#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int")
#undef WCHAR_TYPE
-#define WCHAR_TYPE (TARGET_64BIT ? "int" : "long int")
-#undef WCHAR_TYPE_SIZE
-#define WCHAR_TYPE_SIZE 32
+#define WCHAR_TYPE "int"
/* Override rs6000.h definition. */
#undef ASM_APP_ON
Index: src/external/gpl3/gcc/dist/gcc/config/rs6000/t-netbsd64
diff -u src/external/gpl3/gcc/dist/gcc/config/rs6000/t-netbsd64:1.1 src/external/gpl3/gcc/dist/gcc/config/rs6000/t-netbsd64:1.2
--- src/external/gpl3/gcc/dist/gcc/config/rs6000/t-netbsd64:1.1 Wed Jun 29 04:59:10 2011
+++ src/external/gpl3/gcc/dist/gcc/config/rs6000/t-netbsd64 Sat Aug 23 02:17:47 2014
@@ -6,13 +6,9 @@ LIB2FUNCS_EXTRA = $(srcdir)/config/rs600
TARGET_LIBGCC2_CFLAGS += -mno-minimal-toc
-MULTILIB_OPTIONS = m64/m32 msoft-float
-MULTILIB_DIRNAMES = 64 32 soft-float
-MULTILIB_EXTRA_OPTS = fPIC mstrict-align
-MULTILIB_EXCEPTIONS = m64/msoft-float
-MULTILIB_EXCLUSIONS = m64/!m32/msoft-float
-# XXX this is wrong
-MULTILIB_OSDIRNAMES = ../lib ../lib32 soft-float
+MULTILIB_OPTIONS = m64/m32
+MULTILIB_DIRNAMES = 64 32
+MULTILIB_OSDIRNAMES = . ../lib/powerpc
MULTILIB_MATCHES = $(MULTILIB_MATCHES_FLOAT)