about summary refs log tree commit diff
path: root/sysdeps/powerpc/dl-procinfo.h
diff options
context:
space:
mode:
authorRyan S. Arnold <rsa@linux.vnet.ibm.com>2013-06-11 09:32:41 -0500
committerRyan S. Arnold <rsa@linux.vnet.ibm.com>2013-06-11 10:13:39 -0500
commitfac0c5f2b1dc0e1806cd95f2d6a4619929119f01 (patch)
treea29479986bb7351a4430c6897f9c32445c43ddda /sysdeps/powerpc/dl-procinfo.h
parentf22bc486c1ce5e92380a0d06b98fbba639d170e4 (diff)
downloadglibc-fac0c5f2b1dc0e1806cd95f2d6a4619929119f01.tar.gz
glibc-fac0c5f2b1dc0e1806cd95f2d6a4619929119f01.tar.xz
glibc-fac0c5f2b1dc0e1806cd95f2d6a4619929119f01.zip
PowerPC: Merge ports/ dl-procinfo.[ch] with base.
Diffstat (limited to 'sysdeps/powerpc/dl-procinfo.h')
-rw-r--r--sysdeps/powerpc/dl-procinfo.h36
1 files changed, 28 insertions, 8 deletions
diff --git a/sysdeps/powerpc/dl-procinfo.h b/sysdeps/powerpc/dl-procinfo.h
index 19aa93b185..568fe19dde 100644
--- a/sysdeps/powerpc/dl-procinfo.h
+++ b/sysdeps/powerpc/dl-procinfo.h
@@ -13,14 +13,14 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
+   License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
 #ifndef _DL_PROCINFO_H
-#define _DL_PROCINFO_H	1
+#define _DL_PROCINFO_H 1
 
 #include <ldsodefs.h>
-#include <sysdep.h>		/* This defines the PPC_FEATURE_* macros.  */
+#include <sysdep.h>	/* This defines the PPC_FEATURE_* macros.  */
 
 /* There are 25 bits used, but they are bits 7..31.  */
 #define _DL_HWCAP_FIRST		7
@@ -30,12 +30,12 @@
 #define HWCAP_IMPORTANT		(PPC_FEATURE_HAS_ALTIVEC \
 				+ PPC_FEATURE_HAS_DFP)
 
-#define _DL_PLATFORMS_COUNT	9
+#define _DL_PLATFORMS_COUNT	13
 
-#define _DL_FIRST_PLATFORM      32
+#define _DL_FIRST_PLATFORM	32
 /* Mask to filter out platforms.  */
-#define _DL_HWCAP_PLATFORM      (((1ULL << _DL_PLATFORMS_COUNT) - 1) \
-                                 << _DL_FIRST_PLATFORM)
+#define _DL_HWCAP_PLATFORM	(((1ULL << _DL_PLATFORMS_COUNT) - 1) \
+				<< _DL_FIRST_PLATFORM)
 
 /* Platform bits (relative to _DL_FIRST_PLATFORM).  */
 #define PPC_PLATFORM_POWER4		0
@@ -47,6 +47,10 @@
 #define PPC_PLATFORM_POWER6X		6
 #define PPC_PLATFORM_POWER7		7
 #define PPC_PLATFORM_PPCA2		8
+#define PPC_PLATFORM_PPC405		9
+#define PPC_PLATFORM_PPC440		10
+#define PPC_PLATFORM_PPC464		11
+#define PPC_PLATFORM_PPC476		12
 
 static inline const char *
 __attribute__ ((unused))
@@ -111,7 +115,7 @@ _dl_string_platform (const char *str)
 	  return -1;
 	}
       if (str[1] == '\0')
-	return ret;
+       return ret;
     }
   else if (strncmp (str, GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC970],
 		    3) == 0)
@@ -127,6 +131,22 @@ _dl_string_platform (const char *str)
 		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPCA2] + 3)
 	       == 0)
 	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPCA2;
+      else if (strcmp (str + 3,
+		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC405] + 3)
+	       == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC405;
+      else if (strcmp (str + 3,
+		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC440] + 3)
+	       == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC440;
+      else if (strcmp (str + 3,
+		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC464] + 3)
+	       == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC464;
+      else if (strcmp (str + 3,
+		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC476] + 3)
+	       == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC476;
     }
 
   return -1;