]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
aarch64: add HXT Phecda core memory operation ifuncs
authorHongbo Zhang <hongbo.zhang@linaro.org>
Tue, 12 Jun 2018 15:59:11 +0000 (21:29 +0530)
committerSiddhesh Poyarekar <siddhesh@sourceware.org>
Tue, 12 Jun 2018 15:59:11 +0000 (21:29 +0530)
Phecda is HXT semiconductor's CPU core, this patch adds memory operation
ifuncs for it: sharing the same optimized implementation with Qualcomm's
Falkor core.

2018-06-07  Minfeng Kang <minfeng.kang@hxt-semitech.com>
    Hongbo Zhang <hongbo.zhang@linaro.org>

* sysdeps/aarch64/multiarch/memcpy.c (libc_ifunc): reuse
__memcpy_falkor for phecda core.
* sysdeps/aarch64/multiarch/memmove.c (libc_ifunc): reuse
__memmove_falkor for phecda core.
* sysdeps/aarch64/multiarch/memset.c (libc_ifunc): reuse
__memset_falkor for phecda core.
* sysdeps/unix/sysv/linux/aarch64/cpu-features.c: add MIDR entry
for phecda core.
* sysdeps/unix/sysv/linux/aarch64/cpu-features.h (IS_PHECDA): add
macro to identify phecda core.

ChangeLog
sysdeps/aarch64/multiarch/memcpy.c
sysdeps/aarch64/multiarch/memmove.c
sysdeps/aarch64/multiarch/memset.c
sysdeps/unix/sysv/linux/aarch64/cpu-features.c
sysdeps/unix/sysv/linux/aarch64/cpu-features.h

index 7d5a0da38264070656d6faca41b11fcdedcf4b74..2a128846f01ac283fc5f45dd444c1266c38b939f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2018-06-12  Minfeng Kang  <minfeng.kang@hxt-semitech.com>
+           Hongbo Zhang  <hongbo.zhang@linaro.org>
+
+       * sysdeps/aarch64/multiarch/memcpy.c (libc_ifunc): reuse
+       __memcpy_falkor for phecda core.
+       * sysdeps/aarch64/multiarch/memmove.c (libc_ifunc): reuse
+       __memmove_falkor for phecda core.
+       * sysdeps/aarch64/multiarch/memset.c (libc_ifunc): reuse
+       __memset_falkor for phecda core.
+       * sysdeps/unix/sysv/linux/aarch64/cpu-features.c: add MIDR entry
+       for phecda core.
+       * sysdeps/unix/sysv/linux/aarch64/cpu-features.h (IS_PHECDA): add
+       macro to identify phecda core.
+
 2018-06-12  Carlos O'Donell  <carlos@redhat.com>
            Andreas Schwab  <schwab@suse.de>
            Dmitry V. Levin  <ldv@altlinux.org>
index b94c655f9d08fb081603cb2d480cf61e191861b1..4a04a63b0fe0c84b9225286c4aaf1386d01a736a 100644 (file)
@@ -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_FALKOR (midr) || IS_PHECDA (midr)
                ? __memcpy_falkor
                : (IS_THUNDERX2 (midr) || IS_THUNDERX2PA (midr)
                  ? __memcpy_thunderx2
index afd8dd29fee3ba2fd7724d59d5af636724fd8ae4..e69d8162910b938e71de82ddf0bb5e2172ed5ccc 100644 (file)
@@ -35,7 +35,7 @@ extern __typeof (__redirect_memmove) __memmove_falkor attribute_hidden;
 libc_ifunc (__libc_memmove,
             (IS_THUNDERX (midr)
             ? __memmove_thunderx
-            : (IS_FALKOR (midr)
+            : (IS_FALKOR (midr) || IS_PHECDA (midr)
                ? __memmove_falkor
                : __memmove_generic)));
 
index 6df93d565685f27f1527ce067b04719e24204b1c..d74ed3a549a54b10a7218a06161fb23c253cac56 100644 (file)
@@ -31,9 +31,10 @@ extern __typeof (__redirect_memset) __libc_memset;
 extern __typeof (__redirect_memset) __memset_falkor attribute_hidden;
 extern __typeof (__redirect_memset) __memset_generic attribute_hidden;
 
-libc_ifunc (__libc_memset, (IS_FALKOR (midr) && zva_size == 64
-                           ? __memset_falkor
-                           : __memset_generic));
+libc_ifunc (__libc_memset,
+           ((IS_FALKOR (midr) || IS_PHECDA (midr)) && zva_size == 64
+            ? __memset_falkor
+            : __memset_generic));
 
 # undef memset
 strong_alias (__libc_memset, memset);
index 33b87a8c46ef9a9b4e01d1bff4dfe3f3dfcbdd7c..203f839408b134af8b556e30b2098baee43ebce6 100644 (file)
@@ -35,6 +35,7 @@ static struct cpu_list cpu_list[] = {
       {"thunderxt88",   0x430F0A10},
       {"thunderx2t99",   0x431F0AF0},
       {"thunderx2t99p1", 0x420F5160},
+      {"phecda",        0x680F0000},
       {"generic",       0x0}
 };
 
index cde655b9bdbfdf217f9aaa00c893f8c14c76da11..eb35adfbe9d429d5622a712738fa75bafe8e7322 100644 (file)
@@ -49,6 +49,9 @@
 #define IS_FALKOR(midr) (MIDR_IMPLEMENTOR(midr) == 'Q'                       \
                         && MIDR_PARTNUM(midr) == 0xc00)
 
+#define IS_PHECDA(midr) (MIDR_IMPLEMENTOR(midr) == 'h'                       \
+                        && MIDR_PARTNUM(midr) == 0x000)
+
 struct cpu_features
 {
   uint64_t midr_el1;