OSDN Git Service

PR target/50820
[pf3gnuchains/gcc-fork.git] / gcc / config / sh / netbsd-elf.h
index b50344b..f5a820b 100644 (file)
@@ -1,12 +1,13 @@
 /* Definitions for SH running NetBSD using ELF
-   Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2007, 2011
+   Free Software Foundation, Inc.
    Contributed by Wasabi Systems, Inc.
 
 This file is part of GCC.
 
 GCC is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
+the Free Software Foundation; either version 3, or (at your option)
 any later version.
 
 GCC is distributed in the hope that it will be useful,
@@ -15,31 +16,10 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with this program; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 /* Run-time Target Specification.  */
-#if TARGET_ENDIAN_DEFAULT == LITTLE_ENDIAN_BIT
-#define TARGET_VERSION_ENDIAN "le"
-#else
-#define TARGET_VERSION_ENDIAN ""
-#endif
-
-#if TARGET_CPU_DEFAULT & SH5_BIT
-#if TARGET_CPU_DEFAULT & SH_E_BIT
-#define TARGET_VERSION_CPU "sh5"
-#else
-#define TARGET_VERSION_CPU "sh64"
-#endif /* SH_E_BIT */
-#else
-#define TARGET_VERSION_CPU "sh"
-#endif /* SH5_BIT */
-
-#undef TARGET_VERSION
-#define TARGET_VERSION fprintf (stderr, " (NetBSD/%s%s ELF)",          \
-                                 TARGET_VERSION_CPU, TARGET_VERSION_ENDIAN)
-
 
 /* Extra specs needed for NetBSD SuperH ELF targets.  */
 
@@ -80,7 +60,7 @@ Boston, MA 02111-1307, USA.  */
 
 #undef TARGET_DEFAULT
 #define TARGET_DEFAULT \
-  (TARGET_CPU_DEFAULT | USERMODE_BIT | TARGET_ENDIAN_DEFAULT)
+  (TARGET_CPU_DEFAULT | MASK_USERMODE | TARGET_ENDIAN_DEFAULT)
 
 /* Define because we use the label and we do not need them.  */
 #define NO_PROFILE_COUNTERS 1
@@ -89,15 +69,10 @@ Boston, MA 02111-1307, USA.  */
 #define FUNCTION_PROFILER(STREAM,LABELNO)                              \
 do                                                                     \
   {                                                                    \
-    if (TARGET_SHMEDIA32)                                              \
+    if (TARGET_SHMEDIA32 || TARGET_SHMEDIA64)                          \
       {                                                                        \
        /* FIXME */                                                     \
-       abort ();                                                       \
-      }                                                                        \
-    else if (TARGET_SHMEDIA64)                                         \
-      {                                                                        \
-       /* FIXME */                                                     \
-       abort ();                                                       \
+       sorry ("unimplemented-shmedia profiling");                      \
       }                                                                        \
     else                                                               \
       {                                                                        \
@@ -114,3 +89,10 @@ do                                                                  \
       }                                                                        \
   }                                                                    \
 while (0)
+
+/* Since libgcc is compiled with -fpic for this target, we can't use
+   __sdivsi3_1 as the division strategy for -O0 and -Os.  */
+#undef SH_DIV_STRATEGY_DEFAULT
+#define SH_DIV_STRATEGY_DEFAULT SH_DIV_CALL2
+#undef SH_DIV_STR_FOR_SIZE
+#define SH_DIV_STR_FOR_SIZE "call2"