]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
powerpc: refactor memset 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/memset-power4.S: Define the
implementation-specific function name and remove unneeded macros
definition.
* sysdeps/powerpc/powerpc64/multiarch/memset-power6.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/memset-power7.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/memset-power8.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S: Likewise.
* sysdeps/powerpc/powerpc64/memset.S: Set a default function name if
not defined and pass as parameter to macros accordingly.
* sysdeps/powerpc/powerpc64/power4/memset.S: Likewise.
* sysdeps/powerpc/powerpc64/power6/memset.S: Likewise.
* sysdeps/powerpc/powerpc64/power7/memset.S: Likewise.
* sysdeps/powerpc/powerpc64/power8/memset.S: Likewise.

ChangeLog
sysdeps/powerpc/powerpc64/memset.S
sysdeps/powerpc/powerpc64/multiarch/memset-power4.S
sysdeps/powerpc/powerpc64/multiarch/memset-power6.S
sysdeps/powerpc/powerpc64/multiarch/memset-power7.S
sysdeps/powerpc/powerpc64/multiarch/memset-power8.S
sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S
sysdeps/powerpc/powerpc64/power4/memset.S
sysdeps/powerpc/powerpc64/power6/memset.S
sysdeps/powerpc/powerpc64/power7/memset.S
sysdeps/powerpc/powerpc64/power8/memset.S

index 3b069a920936b44888b5d1d8a29cbeece859fa05..7c0ce8964fc4bd60fadd5d16236e7c0c5ff7dc9d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2017-04-11  Wainer dos Santos Moschetta  <wainersm@linux.vnet.ibm.com>
 
+       * sysdeps/powerpc/powerpc64/multiarch/memset-power4.S: Define the
+       implementation-specific function name and remove unneeded macros
+       definition.
+       * sysdeps/powerpc/powerpc64/multiarch/memset-power6.S: Likewise.
+       * sysdeps/powerpc/powerpc64/multiarch/memset-power7.S: Likewise.
+       * sysdeps/powerpc/powerpc64/multiarch/memset-power8.S: Likewise.
+       * sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S: Likewise.
+       * sysdeps/powerpc/powerpc64/memset.S: Set a default function name if
+       not defined and pass as parameter to macros accordingly.
+       * sysdeps/powerpc/powerpc64/power4/memset.S: Likewise.
+       * sysdeps/powerpc/powerpc64/power6/memset.S: Likewise.
+       * sysdeps/powerpc/powerpc64/power7/memset.S: Likewise.
+       * sysdeps/powerpc/powerpc64/power8/memset.S: Likewise.
+
        * sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S: Define the
        strcasestr implementation name and remove unneeded macros definition.
        * sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S: Define
index 9a3c31ef7afdecb15067f62bb35d8c622071aeb8..f6581b50f78526d92fca8d172d24029240e38885 100644 (file)
    cache line (256 bits). There is a special case for setting cache lines
    to 0, to take advantage of the dcbz instruction.  */
 
-EALIGN (memset, 5, 0)
+#ifndef MEMSET
+# define MEMSET memset
+#endif
+
+EALIGN (MEMSET, 5, 0)
        CALL_MCOUNT 3
 
 #define rTMP   r0
@@ -244,7 +248,7 @@ L(medium_27f):
 L(medium_28t):
        std     rCHR, -8(rMEMP)
        blr
-END_GEN_TB (memset,TB_TOCLESS)
+END_GEN_TB (MEMSET,TB_TOCLESS)
 libc_hidden_builtin_def (memset)
 
 #ifndef NO_BZERO_IMPL
index 6a11d6d7b79691ad2b69057ecc49331b8752762c..3908e8e412f3680b952ab01b130e50c1f5195d8f 100644 (file)
 
 #include <sysdep.h>
 
-#undef EALIGN
-#define EALIGN(name, alignt, words)                            \
-  .section ".text";                                            \
-  ENTRY_2(__memset_power4)                                     \
-  .align ALIGNARG(alignt);                                     \
-  EALIGN_W_##words;                                            \
-  BODY_LABEL(__memset_power4):                                 \
-  cfi_startproc;                                               \
-  LOCALENTRY(__memset_power4)
-
-#undef END_GEN_TB
-#define END_GEN_TB(name, mask)                                 \
-  cfi_endproc;                                                 \
-  TRACEBACK_MASK(__memset_power4,mask)                         \
-  END_2(__memset_power4)
+#define MEMSET __memset_power4
 
 #undef libc_hidden_builtin_def
 #define libc_hidden_builtin_def(name)
index 7791c10888beaee241981d3e8ef8023e944bb3f7..4ddbd2e2742ef30c4e3037d0d2c7ba2261563f65 100644 (file)
 
 #include <sysdep.h>
 
-#undef EALIGN
-#define EALIGN(name, alignt, words)                            \
-  .section ".text";                                            \
-  ENTRY_2(__memset_power6)                                     \
-  .align ALIGNARG(alignt);                                     \
-  EALIGN_W_##words;                                            \
-  BODY_LABEL(__memset_power6):                                 \
-  cfi_startproc;                                               \
-  LOCALENTRY(__memset_power6)
-
-#undef END_GEN_TB
-#define END_GEN_TB(name, mask)                                 \
-  cfi_endproc;                                                 \
-  TRACEBACK_MASK(__memset_power6,mask)                         \
-  END_2(__memset_power6)
+#define MEMSET __memset_power6
 
 #undef libc_hidden_builtin_def
 #define libc_hidden_builtin_def(name)
index 1755503daef1f9df135ab76776c3ad2b7eead081..97f686b35ddc8091407e9b2615e7719c80f97558 100644 (file)
 
 #include <sysdep.h>
 
-#undef EALIGN
-#define EALIGN(name, alignt, words)                            \
-  .section ".text";                                            \
-  ENTRY_2(__memset_power7)                                     \
-  .align ALIGNARG(alignt);                                     \
-  EALIGN_W_##words;                                            \
-  BODY_LABEL(__memset_power7):                                 \
-  cfi_startproc;                                               \
-  LOCALENTRY(__memset_power7)
-
-#undef END_GEN_TB
-#define END_GEN_TB(name, mask)                                 \
-  cfi_endproc;                                                 \
-  TRACEBACK_MASK(__memset_power7,mask)                         \
-  END_2(__memset_power7)
+#define MEMSET __memset_power7
 
 #undef libc_hidden_builtin_def
 #define libc_hidden_builtin_def(name)
index 70856cb473daf23778f4d2c9a9100d40c4294429..ea303533f4f36f2d5127540d826f53ec3de76764 100644 (file)
 
 #include <sysdep.h>
 
-#undef EALIGN
-#define EALIGN(name, alignt, words)                            \
-  .section ".text";                                            \
-  ENTRY_2(__memset_power8)                                     \
-  .align ALIGNARG(alignt);                                     \
-  EALIGN_W_##words;                                            \
-  BODY_LABEL(__memset_power8):                                 \
-  cfi_startproc;                                               \
-  LOCALENTRY(__memset_power8)
-
-#undef END_GEN_TB
-#define END_GEN_TB(name, mask)                                 \
-  cfi_endproc;                                                 \
-  TRACEBACK_MASK(__memset_power8,mask)                         \
-  END_2(__memset_power8)
+#define MEMSET __memset_power8
 
 #undef libc_hidden_builtin_def
 #define libc_hidden_builtin_def(name)
index aaa2ba9628eef400478318c479fdbcaed2cbef60..0f16e21c6101689d7ad86d55c92f9d19a93819a1 100644 (file)
@@ -30,21 +30,7 @@ END_GEN_TB (__bzero_ppc,TB_TOCLESS)
 
 
 #if defined SHARED && IS_IN (libc)
-# undef EALIGN
-# define EALIGN(name, alignt, words)                           \
-  .section ".text";                                            \
-  ENTRY_2(__memset_ppc)                                                \
-  .align ALIGNARG(alignt);                                     \
-  EALIGN_W_##words;                                            \
-  BODY_LABEL(__memset_ppc):                                    \
-  cfi_startproc;                                               \
-  LOCALENTRY(__memset_ppc)
-
-# undef END_GEN_TB
-# define END_GEN_TB(name, mask)                                        \
-  cfi_endproc;                                                 \
-  TRACEBACK_MASK(__memset_ppc,mask)                            \
-  END_2(__memset_ppc)
+# define MEMSET __memset_ppc
 
 # undef libc_hidden_builtin_def
 # define libc_hidden_builtin_def(name)
index 668600547499869b3f857b25dfb02332494a8c96..a57214e0b0be1319f99d60f9607b24d006641ebb 100644 (file)
    cache line (256 bits). There is a special case for setting cache lines
    to 0, to take advantage of the dcbz instruction.  */
 
+#ifndef MEMSET
+# define MEMSET memset
+#endif
        .machine power4
-EALIGN (memset, 5, 0)
+EALIGN (MEMSET, 5, 0)
        CALL_MCOUNT 3
 
 #define rTMP   r0
@@ -232,7 +235,7 @@ L(medium_27f):
 L(medium_28t):
        std     rCHR, -8(rMEMP)
        blr
-END_GEN_TB (memset,TB_TOCLESS)
+END_GEN_TB (MEMSET,TB_TOCLESS)
 libc_hidden_builtin_def (memset)
 
 /* Copied from bzero.S to prevent the linker from inserting a stub
index 6130a1c4f5fc29eb7a2968fc5586215da107f20e..aee1c8eabb382d8ca99177385c8c7f2a40288131 100644 (file)
    cache line (256 bits). There is a special case for setting cache lines
    to 0, to take advantage of the dcbz instruction.  */
 
+#ifndef MEMSET
+# define MEMSET memset
+#endif
        .machine power6
-EALIGN (memset, 7, 0)
+EALIGN (MEMSET, 7, 0)
        CALL_MCOUNT 3
 
 #define rTMP   r0
@@ -376,7 +379,7 @@ L(medium_27f):
 L(medium_28t):
        std     rCHR, -8(rMEMP)
        blr
-END_GEN_TB (memset,TB_TOCLESS)
+END_GEN_TB (MEMSET,TB_TOCLESS)
 libc_hidden_builtin_def (memset)
 
 /* Copied from bzero.S to prevent the linker from inserting a stub
index 2fe1757dc817f91e5f1aaa3e6882295b8f98bc3a..21933c06725713628f03fa86dd858aa3c4be422f 100644 (file)
 /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5]));
    Returns 's'.  */
 
+#ifndef MEMSET
+# define MEMSET memset
+#endif
        .machine power7
-EALIGN (memset, 5, 0)
+EALIGN (MEMSET, 5, 0)
        CALL_MCOUNT 3
 
 L(_memset):
@@ -380,7 +383,7 @@ L(small):
        stw     4,4(10)
        blr
 
-END_GEN_TB (memset,TB_TOCLESS)
+END_GEN_TB (MEMSET,TB_TOCLESS)
 libc_hidden_builtin_def (memset)
 
 /* Copied from bzero.S to prevent the linker from inserting a stub
index 5dc257dd5b020988d3bb11ccb8befc7036f4515a..bc734c9f4fd7e89b3a8ddce9e8f3e6a1abe40487 100644 (file)
 /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5]));
    Returns 's'.  */
 
+#ifndef MEMSET
+# define MEMSET memset
+#endif
+
        /* No need to use .machine power8 since mtvsrd is already
           handled by the define.  It avoid breakage on binutils
           that does not support this machine specifier.  */
        .machine power7
-EALIGN (memset, 5, 0)
+EALIGN (MEMSET, 5, 0)
        CALL_MCOUNT 3
 
 L(_memset):
@@ -438,7 +442,7 @@ L(write_LE_8):
        stw     r4,0(r10)
        stw     r4,4(r10)
        blr
-END_GEN_TB (memset,TB_TOCLESS)
+END_GEN_TB (MEMSET,TB_TOCLESS)
 libc_hidden_builtin_def (memset)
 
 /* Copied from bzero.S to prevent the linker from inserting a stub