]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
powerpc: refactor memcmp and memmove IFUNC.
authorWainer dos Santos Moschetta <wainersm@linux.vnet.ibm.com>
Tue, 11 Apr 2017 17:18:36 +0000 (14:18 -0300)
committerTulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
Tue, 11 Apr 2017 20:13:56 +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/memcmp-power4.S: Define the
implementation-specific function name and remove unneeded
macros definition.
* sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S: Likewise.
* sysdeps/powerpc/powerpc64/power4/memcmp.S: Set a default function
name if not defined and pass as parameter to macros accordingly.
* sysdeps/powerpc/powerpc64/power7/memcmp.S: Likewise.
* sysdeps/powerpc/powerpc64/power7/memmove.S: Likewise.

ChangeLog
sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S
sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S
sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S
sysdeps/powerpc/powerpc64/power4/memcmp.S
sysdeps/powerpc/powerpc64/power7/memcmp.S
sysdeps/powerpc/powerpc64/power7/memmove.S

index bfdb18c04a290bbd3bdab0799620294f48b76ee3..a99770606c310eb7849ea20aca1663e098e3210a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2017-04-11  Wainer dos Santos Moschetta  <wainersm@linux.vnet.ibm.com>
 
+       * sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S: Define the
+       implementation-specific function name and remove unneeded
+       macros definition.
+       * sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S: Likewise.
+       * sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S: Likewise.
+       * sysdeps/powerpc/powerpc64/power4/memcmp.S: Set a default function
+       name if not defined and pass as parameter to macros accordingly.
+       * sysdeps/powerpc/powerpc64/power7/memcmp.S: Likewise.
+       * sysdeps/powerpc/powerpc64/power7/memmove.S: Likewise.
+
        * sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S: Define the
        implementation-specific function name and remove unneeded
        macros definition.
index fa107f14a9ad3b52c928374eb53be177394a49d8..e38b2a9c44f69bd85b473c68aa30ac1761b60fe7 100644 (file)
 
 #include <sysdep.h>
 
-#undef EALIGN
-#define EALIGN(name, alignt, words)                            \
-  .section ".text";                                            \
-  ENTRY_2(__memcmp_power4)                                     \
-  .align ALIGNARG(alignt);                                     \
-  EALIGN_W_##words;                                            \
-  BODY_LABEL(__memcmp_power4):                                 \
-  cfi_startproc;                                               \
-  LOCALENTRY(__memcmp_power4)
-
-#undef END
-#define END(name)                                              \
-  cfi_endproc;                                                 \
-  TRACEBACK(__memcmp_power4)                                   \
-  END_2(__memcmp_power4)
+#define MEMCMP __memcmp_power4
 
 #undef libc_hidden_builtin_def
 #define libc_hidden_builtin_def(name)
index 0fb597d5e1be5d12a9728d20c26314e31cc0f7d3..a9cc979b92370e18d1b0ecd8465ab6a7ec371ff1 100644 (file)
 
 #include <sysdep.h>
 
-#undef EALIGN
-#define EALIGN(name, alignt, words)                            \
-  .section ".text";                                            \
-  ENTRY_2(__memcmp_power7)                                     \
-  .align ALIGNARG(alignt);                                     \
-  EALIGN_W_##words;                                            \
-  BODY_LABEL(__memcmp_power7):                                 \
-  cfi_startproc;                                               \
-  LOCALENTRY(__memcmp_power7)
-
-#undef END
-#define END(name)                                              \
-  cfi_endproc;                                                 \
-  TRACEBACK(__memcmp_power7)                                   \
-  END_2(__memcmp_power7)
+#define MEMCMP __memcmp_power7
 
 #undef libc_hidden_builtin_def
 #define libc_hidden_builtin_def(name)
index 46dddebf1d40b12d541eda6d1ee9afe625bafeff..a9435fa654c08dfc6e1a8717c77eff702e8d4f0c 100644 (file)
 
 #include <sysdep.h>
 
-#undef EALIGN
-#define EALIGN(name, alignt, words)                            \
-  .section ".text";                                            \
-  ENTRY_2(__memmove_power7)                                    \
-  .align ALIGNARG(alignt);                                     \
-  EALIGN_W_##words;                                            \
-  BODY_LABEL(__memmove_power7):                                        \
-  cfi_startproc;                                               \
-  LOCALENTRY(__memmove_power7)
-
-#undef END_GEN_TB
-#define END_GEN_TB(name, mask)                                 \
-  cfi_endproc;                                                 \
-  TRACEBACK_MASK(__memmove_power7,mask)                                \
-  END_2(__memmove_power7)
+#define MEMMOVE __memmove_power7
 
 #undef libc_hidden_builtin_def
 #define libc_hidden_builtin_def(name)
index 02e28c45f5542e4dc9fa49190895be95991a43e4..6ca98e909c0ca969c43a3df7618c5300935911b7 100644 (file)
                    const char *s2 [r4],
                    size_t size [r5])  */
 
+#ifndef MEMCMP
+# define MEMCMP memcmp
+#endif
+
        .machine power4
-EALIGN (memcmp, 4, 0)
+EALIGN (MEMCMP, 4, 0)
        CALL_MCOUNT 3
 
 #define rRTN   r3
@@ -1360,6 +1364,6 @@ L(duzeroLength):
        li      rRTN, 0
        blr
 
-END (memcmp)
+END (MEMCMP)
 libc_hidden_builtin_def (memcmp)
 weak_alias (memcmp, bcmp)
index 75399cb75a5190872f8ed13977fd7cc04fd35d20..96ce8cee25620aec6383a698ea9a7db6a5902ed7 100644 (file)
 /* int [r3] memcmp (const char *s1 [r3],
                    const char *s2 [r4],
                    size_t size [r5])  */
-
+#ifndef MEMCMP
+# define MEMCMP memcmp
+#endif
        .machine power7
-EALIGN (memcmp, 4, 0)
+EALIGN (MEMCMP, 4, 0)
        CALL_MCOUNT 3
 
 #define rRTN           r3
@@ -1054,6 +1056,6 @@ L(duzeroLength):
        li      rRTN, 0
        blr
 
-END (memcmp)
+END (MEMCMP)
 libc_hidden_builtin_def (memcmp)
 weak_alias (memcmp, bcmp)
index 6afe80a3b630d1428ab266244c828da2abea3818..4c0f7c3571e7db0d7d25af44737663f7778b85a9 100644 (file)
    If source and destiny overlaps, a optimized backwards memcpy is used
    instead.  */
 
+#ifndef MEMMOVE
+# define MEMMOVE memmove
+#endif
        .machine power7
-EALIGN (memmove, 5, 0)
+EALIGN (MEMMOVE, 5, 0)
        CALL_MCOUNT 3
 
 L(_memmove):
@@ -816,7 +819,7 @@ L(end_unaligned_loop_bwd):
        stb     r8,-7(r11)
        /* Return original DST pointer.  */
        blr
-END_GEN_TB (memmove, TB_TOCLESS)
+END_GEN_TB (MEMMOVE, TB_TOCLESS)
 libc_hidden_builtin_def (memmove)