From: Ryan S. Arnold Date: Tue, 11 Jun 2013 14:32:41 +0000 (-0500) Subject: PowerPC: Merge ports/ dl-procinfo.[ch] with base. X-Git-Tag: glibc-2.18~148 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=fac0c5f2b1dc0e1806cd95f2d6a4619929119f01;p=glibc.git PowerPC: Merge ports/ dl-procinfo.[ch] with base. --- diff --git a/ChangeLog b/ChangeLog index d7a76a715f..f2f9f7da03 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-06-11 Andreas Schwab [BZ #14991] diff --git a/ports/ChangeLog.powerpc b/ports/ChangeLog.powerpc index 0fe031dade..2c49714e78 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. + 2013-06-05 Joseph Myers * sysdeps/powerpc/nofpu/fenv_const.c: Remove trailing whitespace. diff --git a/ports/sysdeps/powerpc/dl-procinfo.h b/ports/sysdeps/powerpc/dl-procinfo.h index b45465c3dd..568fe19dde 100644 --- a/ports/sysdeps/powerpc/dl-procinfo.h +++ b/ports/sysdeps/powerpc/dl-procinfo.h @@ -20,37 +20,37 @@ #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 -#define _DL_HWCAP_COUNT 32 +#define _DL_HWCAP_FIRST 7 +#define _DL_HWCAP_COUNT 32 /* These bits influence library search. */ -#define HWCAP_IMPORTANT (PPC_FEATURE_HAS_ALTIVEC \ - + PPC_FEATURE_HAS_DFP) +#define HWCAP_IMPORTANT (PPC_FEATURE_HAS_ALTIVEC \ + + PPC_FEATURE_HAS_DFP) -#define _DL_PLATFORMS_COUNT 13 +#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 -#define PPC_PLATFORM_PPC970 1 -#define PPC_PLATFORM_POWER5 2 -#define PPC_PLATFORM_POWER5_PLUS 3 -#define PPC_PLATFORM_POWER6 4 -#define PPC_PLATFORM_CELL_BE 5 -#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 +#define PPC_PLATFORM_POWER4 0 +#define PPC_PLATFORM_PPC970 1 +#define PPC_PLATFORM_POWER5 2 +#define PPC_PLATFORM_POWER5_PLUS 3 +#define PPC_PLATFORM_POWER6 4 +#define PPC_PLATFORM_CELL_BE 5 +#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)) @@ -88,65 +88,65 @@ _dl_string_platform (const char *str) int ret; str += 5; switch (*str) - { - case '4': - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER4; - break; - case '5': - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5; - if (str[1] == '+') - { - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5_PLUS; - ++str; - } - break; - case '6': - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6; - if (str[1] == 'x') - { - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6X; - ++str; - } - break; - case '7': - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER7; - break; - default: - return -1; - } + { + case '4': + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER4; + break; + case '5': + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5; + if (str[1] == '+') + { + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5_PLUS; + ++str; + } + break; + case '6': + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6; + if (str[1] == 'x') + { + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6X; + ++str; + } + break; + case '7': + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER7; + break; + default: + return -1; + } if (str[1] == '\0') return ret; } else if (strncmp (str, GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC970], - 3) == 0) + 3) == 0) { if (strcmp (str + 3, GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC970] - + 3) == 0) - return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC970; + + 3) == 0) + return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC970; else if (strcmp (str + 3, - GLRO(dl_powerpc_platforms)[PPC_PLATFORM_CELL_BE] + 3) - == 0) - return _DL_FIRST_PLATFORM + PPC_PLATFORM_CELL_BE; + GLRO(dl_powerpc_platforms)[PPC_PLATFORM_CELL_BE] + 3) + == 0) + return _DL_FIRST_PLATFORM + PPC_PLATFORM_CELL_BE; else if (strcmp (str + 3, - GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPCA2] + 3) - == 0) - return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPCA2; + 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; + 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; + 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; + 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; + 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 6f5205d566..0f5c2b3d6d 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 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 . */ #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;