From 2d718ff7745d89dcc2a630fe72783acf109cadc0 Mon Sep 17 00:00:00 2001 From: "Ryan S. Arnold" Date: Tue, 11 Jun 2013 09:32:41 -0500 Subject: [PATCH] PowerPC: Merge ports/ dl-procinfo.[ch] with base. (cherry picked from commit fac0c5f2b1dc0e1806cd95f2d6a4619929119f01) --- ChangeLog | 15 ++++++++++ ports/ChangeLog.powerpc | 5 ++++ {sysdeps => ports/sysdeps}/powerpc/dl-procinfo.h | 38 ++++++++++++++++++------ sysdeps/powerpc/dl-procinfo.c | 10 +++++-- sysdeps/powerpc/dl-procinfo.h | 36 +++++++++++++++++----- 5 files changed, 84 insertions(+), 20 deletions(-) copy {sysdeps => ports/sysdeps}/powerpc/dl-procinfo.h (76%) diff --git a/ChangeLog b/ChangeLog index a65548cac7..d622405a59 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2013-06-11 Ryan S. Arnold + + * sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_platforms): Add ppc405, + ppc440, ppc464, and ppc476, merging from ports/ dl-procinfo.c. + * sysdeps/powerpc/dl-procinfo.h: Fix whitespace by correcting spaces + with tabs where appropriate. + [PPC_PLATFORM_PPC405]: Define new platform merging from ports/ + dl-procinfo.h. + [PPC_PLATFORM_PPC440]: Likewise. + [PPC_PLATFORM_PPC464]: Likewise. + [PPC_PLATFORM_PPC476]: Likewise. + (_dl_string_platform): Add support for detecting ppc405, ppc440, + ppc464, and ppc476 platform strings merging from ports/ + dl-procinfo.h. + 2013-05-24 Adhemerval Zanella * manual/platform.texi: Add PowerPC PPR function set documentation. diff --git a/ports/ChangeLog.powerpc b/ports/ChangeLog.powerpc index 3233b2c76c..ae6195366e 100644 --- a/ports/ChangeLog.powerpc +++ b/ports/ChangeLog.powerpc @@ -1,3 +1,8 @@ +2013-06-11 Ryan S. Arnold + + * sysdeps/powerpc/dl-procinfo.h: Fix whitespace by correcting + spaces with tabs where appropriate. + 2012-12-05 Joseph Myers * sysdeps/powerpc/nofpu/fgetexcptflg.c (__fegetexceptflag): diff --git a/sysdeps/powerpc/dl-procinfo.h b/ports/sysdeps/powerpc/dl-procinfo.h similarity index 76% copy from sysdeps/powerpc/dl-procinfo.h copy to ports/sysdeps/powerpc/dl-procinfo.h index bf96e40e51..861d6b6412 100644 --- a/sysdeps/powerpc/dl-procinfo.h +++ b/ports/sysdeps/powerpc/dl-procinfo.h @@ -1,5 +1,5 @@ /* Processor capability information handling macros. PowerPC version. - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -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 . */ #ifndef _DL_PROCINFO_H -#define _DL_PROCINFO_H 1 +#define _DL_PROCINFO_H 1 #include -#include /* This defines the PPC_FEATURE_* macros. */ +#include /* 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; diff --git a/sysdeps/powerpc/dl-procinfo.c b/sysdeps/powerpc/dl-procinfo.c index bb2aea88d0..8488799c9d 100644 --- a/sysdeps/powerpc/dl-procinfo.c +++ b/sysdeps/powerpc/dl-procinfo.c @@ -13,7 +13,7 @@ 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 . */ /* This information must be kept in sync with the _DL_HWCAP_COUNT and @@ -67,7 +67,7 @@ PROCINFO_CLASS const char _dl_powerpc_cap_flags[25][10] #if !defined PROCINFO_DECL && defined SHARED ._dl_powerpc_platforms #else -PROCINFO_CLASS const char _dl_powerpc_platforms[9][12] +PROCINFO_CLASS const char _dl_powerpc_platforms[13][12] #endif #ifndef PROCINFO_DECL = { @@ -79,7 +79,11 @@ PROCINFO_CLASS const char _dl_powerpc_platforms[9][12] [PPC_PLATFORM_CELL_BE] = "ppc-cell-be", [PPC_PLATFORM_POWER6X] = "power6x", [PPC_PLATFORM_POWER7] = "power7", - [PPC_PLATFORM_PPCA2] = "ppca2" + [PPC_PLATFORM_PPCA2] = "ppca2", + [PPC_PLATFORM_PPC405] = "ppc405", + [PPC_PLATFORM_PPC440] = "ppc440", + [PPC_PLATFORM_PPC464] = "ppc464", + [PPC_PLATFORM_PPC476] = "ppc476" } #endif #if !defined SHARED || defined PROCINFO_DECL diff --git a/sysdeps/powerpc/dl-procinfo.h b/sysdeps/powerpc/dl-procinfo.h index bf96e40e51..6d904adcec 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 . */ #ifndef _DL_PROCINFO_H -#define _DL_PROCINFO_H 1 +#define _DL_PROCINFO_H 1 #include -#include /* This defines the PPC_FEATURE_* macros. */ +#include /* 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; -- 2.11.4.GIT