]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
powerpc: refactor memchr, memrchr, and rawmemchr IFUNC.
authorWainer dos Santos Moschetta <wainersm@linux.vnet.ibm.com>
Tue, 11 Apr 2017 17:18:35 +0000 (14:18 -0300)
committerTulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
Tue, 11 Apr 2017 20:13:55 +0000 (17:13 -0300)
Clean up the IFUNC implementations for powerpc in order to remove
unneeded macro definitions.

Tested on ppc64le with and without --disable-multi-arch flag.

* sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S: Define the
implementation-specific function name and remove unneeded macros
definition.
* sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S: Likewise.
* sysdeps/powerpc/powerpc64/power7/memchr.S: Set a default
function name if not defined and pass as parameter to macros
accordingly.
* sysdeps/powerpc/powerpc64/power7/memrchr.S: Likewise.
* sysdeps/powerpc/powerpc64/power7/rawmemchr.S: Likewise.

ChangeLog
sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S
sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S
sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S
sysdeps/powerpc/powerpc64/power7/memchr.S
sysdeps/powerpc/powerpc64/power7/memrchr.S
sysdeps/powerpc/powerpc64/power7/rawmemchr.S

index 7c0ce8964fc4bd60fadd5d16236e7c0c5ff7dc9d..48187ba927a950107823d3cb88e4e03bce78acf0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2017-04-11  Wainer dos Santos Moschetta  <wainersm@linux.vnet.ibm.com>
 
+       * sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S: Define the
+       implementation-specific function name and remove unneeded macros
+       definition.
+       * sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S: Likewise.
+       * sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S: Likewise.
+       * sysdeps/powerpc/powerpc64/power7/memchr.S: Set a default
+       function name if not defined and pass as parameter to macros
+       accordingly.
+       * sysdeps/powerpc/powerpc64/power7/memrchr.S: Likewise.
+       * sysdeps/powerpc/powerpc64/power7/rawmemchr.S: Likewise.
+
        * sysdeps/powerpc/powerpc64/multiarch/memset-power4.S: Define the
        implementation-specific function name and remove unneeded macros
        definition.
index 5d783abfccf6b4372ad28d1b8bc037e90c83687c..fedca9c99781f0e880b012fe3206df0752a51981 100644 (file)
 
 #include <sysdep.h>
 
-#undef ENTRY
-#define ENTRY(name)                                            \
-  .section ".text";                                            \
-  ENTRY_2(__memchr_power7)                                     \
-  .align ALIGNARG(2);                                          \
-  BODY_LABEL(__memchr_power7):                                 \
-  cfi_startproc;                                               \
-  LOCALENTRY(__memchr_power7)
-
-#undef END
-#define END(name)                                              \
-  cfi_endproc;                                                 \
-  TRACEBACK(__memchr_power7)                                   \
-  END_2(__memchr_power7)
+#define MEMCHR __memchr_power7
 
 #undef libc_hidden_builtin_def
 #define libc_hidden_builtin_def(name)
index 9ee6a3b90a18b57fb49e2042f1151d825f1ebf5e..052aa732ba88af7c8729de1f0f1d209a651d75a8 100644 (file)
 
 #include <sysdep.h>
 
-#undef ENTRY
-#define ENTRY(name)                                            \
-  .section ".text";                                            \
-  ENTRY_2(__memrchr_power7)                                    \
-  .align ALIGNARG(2);                                          \
-  BODY_LABEL(__memrchr_power7):                                        \
-  cfi_startproc;                                               \
-  LOCALENTRY(__memrchr_power7)
-
-#undef END
-#define END(name)                                              \
-  cfi_endproc;                                                 \
-  TRACEBACK(__memrchr_power7)                                  \
-  END_2(__memrchr_power7)
+#define MEMRCHR __memrchr_power7
 
 #undef libc_hidden_builtin_def
 #define libc_hidden_builtin_def(name)
index ad2fd80647f90d828837ca3ca757b4a4a0fd1a5c..d79d72820c29a973dd6b6d8ff9a99ccdf9493f72 100644 (file)
 
 #include <sysdep.h>
 
-#undef ENTRY
-#define ENTRY(name)                                            \
-  .section ".text";                                            \
-  ENTRY_2(__rawmemchr_power7)                                  \
-  .align ALIGNARG(2);                                          \
-  BODY_LABEL(__rawmemchr_power7):                              \
-  cfi_startproc;                                               \
-  LOCALENTRY(__rawmemchr_power7)
-
-#undef END
-#define END(name)                                              \
-  cfi_endproc;                                                 \
-  TRACEBACK(__rawmemchr_power7)                                        \
-  END_2(__rawmemchr_power7)
+#define RAWMEMCHR __rawmemchr_power7
 
 #include <sysdeps/powerpc/powerpc64/power7/rawmemchr.S>
index 6ef665f2ebad5d826dfa793398ef7de6db0949b4..5e9707aa02a59a1cc1be8144d95c2758c928e25d 100644 (file)
 #include <sysdep.h>
 
 /* int [r3] memchr (char *s [r3], int byte [r4], int size [r5])  */
+
+#ifndef MEMCHR
+# define MEMCHR __memchr
+#endif
        .machine  power7
-ENTRY (__memchr)
+ENTRY (MEMCHR)
        CALL_MCOUNT 3
        dcbt    0,r3
        clrrdi  r8,r3,3
@@ -190,6 +194,6 @@ L(small_range):
        bne     cr6,L(done)
        blr
 
-END (__memchr)
+END (MEMCHR)
 weak_alias (__memchr, memchr)
 libc_hidden_builtin_def (memchr)
index 4e86400437f3db8c8a83e4efd62c03e6e7036d45..427676891541c38c178bf1432e47c5de2eb505e0 100644 (file)
 #include <sysdep.h>
 
 /* int [r3] memrchr (char *s [r3], int byte [r4], int size [r5])  */
+
+#ifndef MEMRCHR
+# define MEMRCHR __memrchr
+#endif
        .machine  power7
-ENTRY (__memrchr)
+ENTRY (MEMRCHR)
        CALL_MCOUNT 3
        add     r7,r3,r5      /* Calculate the last acceptable address.  */
        neg     r0,r7
@@ -192,6 +196,6 @@ L(loop_small):
        bne     L(loop_small)
        blr
 
-END (__memrchr)
+END (MEMRCHR)
 weak_alias (__memrchr, memrchr)
 libc_hidden_builtin_def (memrchr)
index b99ad62b0de4dd53991d05e570b12f1b72e59d48..48afb759430268890b63d6a2b12bde1dc690b70b 100644 (file)
 #include <sysdep.h>
 
 /* int [r3] rawmemchr (void *s [r3], int c [r4])  */
+
+#ifndef RAWMEMCHR
+# define RAWMEMCHR __rawmemchr
+#endif
        .machine  power7
-ENTRY (__rawmemchr)
+ENTRY (RAWMEMCHR)
        CALL_MCOUNT 2
        dcbt    0,r3
        clrrdi  r8,r3,3       /* Align the address to doubleword boundary.  */
@@ -106,6 +110,6 @@ L(done):
        srdi    r0,r0,3       /* Convert leading zeros to bytes.  */
        add     r3,r8,r0      /* Return address of the matching char.  */
        blr
-END (__rawmemchr)
+END (RAWMEMCHR)
 weak_alias (__rawmemchr,rawmemchr)
 libc_hidden_builtin_def (__rawmemchr)