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  ]*********************************/
 
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to