[1/2] aarch64: ifunc rename for kunpeng and its default memcpy version

Message ID 20191227134328.46636-1-zhangxuelei4@huawei.com
State Superseded
Headers

Commit Message

Xuelei Zhang Dec. 27, 2019, 1:43 p.m. UTC
  Rename ifunc for kunpeng to kunpeng920, and modify the corresponding
function files including IS_KUNPENG920 judgement.

Also, we select __memcpy_falkor for Kunpeng by default.
---
 sysdeps/aarch64/multiarch/memcpy.c             | 2 +-
 sysdeps/aarch64/multiarch/memset.c             | 2 +-
 sysdeps/aarch64/multiarch/strlen.c             | 2 +-
 sysdeps/unix/sysv/linux/aarch64/cpu-features.c | 2 +-
 sysdeps/unix/sysv/linux/aarch64/cpu-features.h | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)
  

Comments

Adhemerval Zanella Dec. 27, 2019, 2:11 p.m. UTC | #1
On 27/12/2019 10:43, Xuelei Zhang wrote:
> Rename ifunc for kunpeng to kunpeng920, and modify the corresponding
> function files including IS_KUNPENG920 judgement.
> 
> Also, we select __memcpy_falkor for Kunpeng by default.

Could you split this patch in two? One to add the Kupeng 920 default
memcpy and another one to rename the macro?

> ---
>  sysdeps/aarch64/multiarch/memcpy.c             | 2 +-
>  sysdeps/aarch64/multiarch/memset.c             | 2 +-
>  sysdeps/aarch64/multiarch/strlen.c             | 2 +-
>  sysdeps/unix/sysv/linux/aarch64/cpu-features.c | 2 +-
>  sysdeps/unix/sysv/linux/aarch64/cpu-features.h | 2 +-
>  5 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/sysdeps/aarch64/multiarch/memcpy.c b/sysdeps/aarch64/multiarch/memcpy.c
> index 13796f987fa..481be3a13ed 100644
> --- a/sysdeps/aarch64/multiarch/memcpy.c
> +++ b/sysdeps/aarch64/multiarch/memcpy.c
> @@ -36,7 +36,7 @@ extern __typeof (__redirect_memcpy) __memcpy_falkor attribute_hidden;
>  libc_ifunc (__libc_memcpy,
>              (IS_THUNDERX (midr)
>  	     ? __memcpy_thunderx
> -	     : (IS_FALKOR (midr) || IS_PHECDA (midr) || IS_ARES (midr)
> +	     : (IS_FALKOR (midr) || IS_PHECDA (midr) || IS_ARES (midr) || IS_KUNPENG920 (midr)
>  		? __memcpy_falkor
>  		: (IS_THUNDERX2 (midr) || IS_THUNDERX2PA (midr)
>  		  ? __memcpy_thunderx2
> diff --git a/sysdeps/aarch64/multiarch/memset.c b/sysdeps/aarch64/multiarch/memset.c
> index 4cc34b9b99a..98fff648742 100644
> --- a/sysdeps/aarch64/multiarch/memset.c
> +++ b/sysdeps/aarch64/multiarch/memset.c
> @@ -34,7 +34,7 @@ extern __typeof (__redirect_memset) __memset_kunpeng attribute_hidden;
>  extern __typeof (__redirect_memset) __memset_generic attribute_hidden;
>  
>  libc_ifunc (__libc_memset,
> -	    IS_KUNPENG (midr)
> +	    IS_KUNPENG920 (midr)
>  	    ?__memset_kunpeng
>  	    : ((IS_FALKOR (midr) || IS_PHECDA (midr)) && zva_size == 64
>  	     ? __memset_falkor
> diff --git a/sysdeps/aarch64/multiarch/strlen.c b/sysdeps/aarch64/multiarch/strlen.c
> index abf6513eeea..c2ce5eecf88 100644
> --- a/sysdeps/aarch64/multiarch/strlen.c
> +++ b/sysdeps/aarch64/multiarch/strlen.c
> @@ -34,7 +34,7 @@ extern __typeof (__redirect_strlen) __strlen_generic attribute_hidden;
>  extern __typeof (__redirect_strlen) __strlen_asimd attribute_hidden;
>  
>  libc_ifunc (__strlen,
> -	    (USE_ASIMD_STRLEN () || IS_KUNPENG(midr)
> +	    (USE_ASIMD_STRLEN () || IS_KUNPENG920 (midr)
>  	    ? __strlen_asimd
>  	    :__strlen_generic));
>  
> diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
> index d0e50d0898e..30dc208633b 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
> +++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
> @@ -38,7 +38,7 @@ static struct cpu_list cpu_list[] = {
>        {"phecda",	 0x680F0000},
>        {"ares",		 0x411FD0C0},
>        {"emag",		 0x503F0001},
> -      {"kunpeng", 	 0x481FD010},
> +      {"kunpeng920", 	 0x481FD010},
>        {"generic", 	 0x0}
>  };
>  
> diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.h b/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
> index 87c49956279..176c71cf500 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
> +++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
> @@ -57,7 +57,7 @@
>  #define IS_EMAG(midr) (MIDR_IMPLEMENTOR(midr) == 'P'			      \
>                         && MIDR_PARTNUM(midr) == 0x000)
>  
> -#define IS_KUNPENG(midr) (MIDR_IMPLEMENTOR(midr) == 'H'			   \
> +#define IS_KUNPENG920(midr) (MIDR_IMPLEMENTOR(midr) == 'H'			   \
>                          && MIDR_PARTNUM(midr) == 0xd01)
>  
>  struct cpu_features
>
  

Patch

diff --git a/sysdeps/aarch64/multiarch/memcpy.c b/sysdeps/aarch64/multiarch/memcpy.c
index 13796f987fa..481be3a13ed 100644
--- a/sysdeps/aarch64/multiarch/memcpy.c
+++ b/sysdeps/aarch64/multiarch/memcpy.c
@@ -36,7 +36,7 @@  extern __typeof (__redirect_memcpy) __memcpy_falkor attribute_hidden;
 libc_ifunc (__libc_memcpy,
             (IS_THUNDERX (midr)
 	     ? __memcpy_thunderx
-	     : (IS_FALKOR (midr) || IS_PHECDA (midr) || IS_ARES (midr)
+	     : (IS_FALKOR (midr) || IS_PHECDA (midr) || IS_ARES (midr) || IS_KUNPENG920 (midr)
 		? __memcpy_falkor
 		: (IS_THUNDERX2 (midr) || IS_THUNDERX2PA (midr)
 		  ? __memcpy_thunderx2
diff --git a/sysdeps/aarch64/multiarch/memset.c b/sysdeps/aarch64/multiarch/memset.c
index 4cc34b9b99a..98fff648742 100644
--- a/sysdeps/aarch64/multiarch/memset.c
+++ b/sysdeps/aarch64/multiarch/memset.c
@@ -34,7 +34,7 @@  extern __typeof (__redirect_memset) __memset_kunpeng attribute_hidden;
 extern __typeof (__redirect_memset) __memset_generic attribute_hidden;
 
 libc_ifunc (__libc_memset,
-	    IS_KUNPENG (midr)
+	    IS_KUNPENG920 (midr)
 	    ?__memset_kunpeng
 	    : ((IS_FALKOR (midr) || IS_PHECDA (midr)) && zva_size == 64
 	     ? __memset_falkor
diff --git a/sysdeps/aarch64/multiarch/strlen.c b/sysdeps/aarch64/multiarch/strlen.c
index abf6513eeea..c2ce5eecf88 100644
--- a/sysdeps/aarch64/multiarch/strlen.c
+++ b/sysdeps/aarch64/multiarch/strlen.c
@@ -34,7 +34,7 @@  extern __typeof (__redirect_strlen) __strlen_generic attribute_hidden;
 extern __typeof (__redirect_strlen) __strlen_asimd attribute_hidden;
 
 libc_ifunc (__strlen,
-	    (USE_ASIMD_STRLEN () || IS_KUNPENG(midr)
+	    (USE_ASIMD_STRLEN () || IS_KUNPENG920 (midr)
 	    ? __strlen_asimd
 	    :__strlen_generic));
 
diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
index d0e50d0898e..30dc208633b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
+++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
@@ -38,7 +38,7 @@  static struct cpu_list cpu_list[] = {
       {"phecda",	 0x680F0000},
       {"ares",		 0x411FD0C0},
       {"emag",		 0x503F0001},
-      {"kunpeng", 	 0x481FD010},
+      {"kunpeng920", 	 0x481FD010},
       {"generic", 	 0x0}
 };
 
diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.h b/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
index 87c49956279..176c71cf500 100644
--- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
+++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
@@ -57,7 +57,7 @@ 
 #define IS_EMAG(midr) (MIDR_IMPLEMENTOR(midr) == 'P'			      \
                        && MIDR_PARTNUM(midr) == 0x000)
 
-#define IS_KUNPENG(midr) (MIDR_IMPLEMENTOR(midr) == 'H'			   \
+#define IS_KUNPENG920(midr) (MIDR_IMPLEMENTOR(midr) == 'H'			   \
                         && MIDR_PARTNUM(midr) == 0xd01)
 
 struct cpu_features