svn commit: r204549 - head/contrib/gcc/config/mips

Warner Losh imp at FreeBSD.org
Tue Mar 2 05:59:15 UTC 2010


Author: imp
Date: Tue Mar  2 05:59:14 2010
New Revision: 204549
URL: http://svn.freebsd.org/changeset/base/204549

Log:
  Bring in more built-in defines from NetBSD
  a few #defines from JC.
  
  # tested only with o32 at the moment
  
  Submitted by:	C. Jayachandran (CJ)
  Obtained from:	NetBSD

Modified:
  head/contrib/gcc/config/mips/freebsd.h

Modified: head/contrib/gcc/config/mips/freebsd.h
==============================================================================
--- head/contrib/gcc/config/mips/freebsd.h	Tue Mar  2 05:43:04 2010	(r204548)
+++ head/contrib/gcc/config/mips/freebsd.h	Tue Mar  2 05:59:14 2010	(r204549)
@@ -130,10 +130,67 @@ Boston, MA 02110-1301, USA.  */
       if (TARGET_MIPS16)					\
 	builtin_define ("__mips16");				\
 								\
+      if (mips_abi == ABI_N32)                                  \
+        {                                                       \
+          builtin_define ("__mips_n32");                        \
+          builtin_define ("_ABIN32=2");                         \
+          builtin_define ("_MIPS_SIM=_ABIN32");                 \
+          builtin_define ("_MIPS_SZLONG=32");                   \
+          builtin_define ("_MIPS_SZPTR=32");                    \
+        }                                                       \
+      else if (mips_abi == ABI_64)                              \
+        {                                                       \
+          builtin_define ("__mips_n64");                        \
+          builtin_define ("_ABI64=3");                          \
+          builtin_define ("_MIPS_SIM=_ABI64");                  \
+          builtin_define ("_MIPS_SZLONG=64");                   \
+          builtin_define ("_MIPS_SZPTR=64");                    \
+        }                                                       \
+      else if (mips_abi == ABI_O64)                             \
+        {                                                       \
+          builtin_define ("__mips_o64");                        \
+          builtin_define ("_ABIO64=4");                         \
+          builtin_define ("_MIPS_SIM=_ABIO64");                 \
+          builtin_define ("_MIPS_SZLONG=64");                   \
+          builtin_define ("_MIPS_SZPTR=64");                    \
+        }                                                       \
+      else if (mips_abi == ABI_EABI)                            \
+        {                                                       \
+          builtin_define ("__mips_eabi");                       \
+          builtin_define ("_ABIEMB=5");                         \
+          builtin_define ("_MIPS_SIM=_ABIEMB");                 \
+          if (TARGET_LONG64)                                    \
+            builtin_define ("_MIPS_SZLONG=64");                 \
+          else                                                  \
+            builtin_define ("_MIPS_SZLONG=32");                 \
+          if (TARGET_64BIT)                                     \
+            builtin_define ("_MIPS_SZPTR=64");                  \
+          else                                                  \
+            builtin_define ("_MIPS_SZPTR=32");                  \
+        }                                                       \
+      else                                                      \
+        {                                                       \
+          builtin_define ("__mips_o32");                        \
+          builtin_define ("_ABIO32=1");                         \
+          builtin_define ("_MIPS_SIM=_ABIO32");                 \
+          builtin_define ("_MIPS_SZLONG=32");                   \
+          builtin_define ("_MIPS_SZPTR=32");                    \
+        }                                                       \
+      if (TARGET_FLOAT64)                                       \
+        builtin_define ("_MIPS_FPSET=32");                      \
+      else                                                      \
+        builtin_define ("_MIPS_FPSET=16");                      \
+                                                                \
+      builtin_define ("_MIPS_SZINT=32");                        \
+								\
       MIPS_CPP_SET_PROCESSOR ("_MIPS_ARCH", mips_arch_info);	\
       MIPS_CPP_SET_PROCESSOR ("_MIPS_TUNE", mips_tune_info);	\
 								\
-      if (ISA_MIPS3)						\
+      if (ISA_MIPS1)                                            \
+        builtin_define ("__mips=1");                            \
+      else if (ISA_MIPS2)                                       \
+        builtin_define ("__mips=2");                            \
+      else if (ISA_MIPS3)					\
 	builtin_define ("__mips=3");				\
       else if (ISA_MIPS4)					\
 	builtin_define ("__mips=4");				\
@@ -152,7 +209,12 @@ Boston, MA 02110-1301, USA.  */
 	  builtin_define ("__mips=64");				\
 	  builtin_define ("__mips_isa_rev=1");			\
 	}							\
-								\
+/*      else if (ISA_MIPS64R2)					\
+	{							\
+	  builtin_define ("__mips=64");				\
+	  builtin_define ("__mips_isa_rev=2");			\
+	}							\
+*/								\
       if (TARGET_HARD_FLOAT)					\
 	builtin_define ("__mips_hard_float");			\
       else if (TARGET_SOFT_FLOAT)				\
@@ -167,18 +229,6 @@ Boston, MA 02110-1301, USA.  */
 	builtin_define ("__MIPSEL__");				\
 								\
       /* No language dialect defines.  */			\
-								\
-      if (mips_abi == ABI_EABI)					\
-	builtin_define ("__mips_eabi");				\
-      else if (mips_abi == ABI_N32)				\
-	builtin_define ("__mips_n32");				\
-      else if (mips_abi == ABI_64)				\
-	builtin_define ("__mips_n64");				\
-      else if (mips_abi == ABI_O64)				\
-	builtin_define ("__mips_o64");				\
-      else							\
-	builtin_define ("__mips_o32");				\
-								\
       if (TARGET_ABICALLS)					\
 	builtin_define ("__ABICALLS__");			\
     }								\
@@ -241,6 +291,15 @@ Boston, MA 02110-1301, USA.  */
 #undef  LOCAL_LABEL_PREFIX
 #define LOCAL_LABEL_PREFIX "."
 
+/* Currently we don't support 128bit long doubles, so for now we force
+   n32 to be 64bit.  */
+#undef	LONG_DOUBLE_TYPE_SIZE
+#define	LONG_DOUBLE_TYPE_SIZE 64
+ 
+#ifdef IN_LIBGCC2
+#undef	LIBGCC2_LONG_DOUBLE_TYPE_SIZE
+#define	LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
+#endif
 
 /************************[  Debugger stuff  ]*********************************/
 


More information about the svn-src-head mailing list