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

ChangeLog
sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S
sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S
sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S
sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S
sysdeps/powerpc/powerpc64/power7/strlen.S
sysdeps/powerpc/powerpc64/power7/strnlen.S
sysdeps/powerpc/powerpc64/power8/strlen.S
sysdeps/powerpc/powerpc64/strlen.S

index 0dc5c074ed7caaf46dbb824046d846fb691763d1..004d6a80657903f4305a9243b5079242de5fef2d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
 2017-04-11  Wainer dos Santos Moschetta  <wainersm@linux.vnet.ibm.com>
 
+       * sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S: Define
+       the strlen implementation name and remove unneeded macros definition.
+       * sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S: Likewise.
+       * sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S: Likewise.
+       * sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S: Define
+       the strnlen implementation name and remove unneeded macros definition.
+       * sysdeps/powerpc/powerpc64/power7/strlen.S: Set a default function
+       name if not defined and pass as parameter to macros accordingly.
+       * sysdeps/powerpc/powerpc64/power7/strnlen.S: Likewise.
+       * sysdeps/powerpc/powerpc64/power8/strlen.S: Likewise.
+       * sysdeps/powerpc/powerpc64/strlen.S: Likewise.
+
        * sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S: Define
        the implementation-specific function name and remove unneeded
        macros definition.
index b3f053642ad76b80ad141338536898ff84588369..333496efa573f3fb1c7e3bf67e5718ef1ff65c06 100644 (file)
 
 #include <sysdep.h>
 
-#undef ENTRY
-#define ENTRY(name)                                            \
-  .section ".text";                                            \
-  ENTRY_2(__strlen_power7)                                     \
-  .align ALIGNARG(2);                                          \
-  BODY_LABEL(__strlen_power7):                                 \
-  cfi_startproc;                                               \
-  LOCALENTRY(__strlen_power7)
-
-#undef END
-#define END(name)                                              \
-  cfi_endproc;                                                 \
-  TRACEBACK(__strlen_power7)                                   \
-  END_2(__strlen_power7)
+#define STRLEN __strlen_power7
 
 #undef libc_hidden_builtin_def
 #define libc_hidden_builtin_def(name)
index ff9032f2431a2bd2e4f864c0000dce4153a6aaa5..b4deea5f935a4dc700ab244bf65d0d41225e6313 100644 (file)
 
 #include <sysdep.h>
 
-#undef EALIGN
-#define EALIGN(name, alignt, words)                            \
-  .section ".text";                                            \
-  ENTRY_2(__strlen_power8)                                     \
-  .align ALIGNARG(alignt);                                     \
-  EALIGN_W_##words;                                            \
-  BODY_LABEL(__strlen_power8):                                 \
-  cfi_startproc;                                               \
-  LOCALENTRY(__strlen_power8)
-#undef END
-#define END(name)                                              \
-  cfi_endproc;                                                 \
-  TRACEBACK(__strlen_power8)                                   \
-  END_2(__strlen_power8)
+#define STRLEN __strlen_power8
 
 #undef libc_hidden_builtin_def
 #define libc_hidden_builtin_def(name)
index bec8036ab1f2284f5fff686daf0cebb751495086..13231b8c64f2f3c9778b00ed26e6f04867fc41eb 100644 (file)
 #include <sysdep.h>
 
 #if defined SHARED && IS_IN (libc)
-# undef ENTRY
-# define ENTRY(name)                                           \
-  .section ".text";                                            \
-  ENTRY_2(__strlen_ppc)                                                \
-  .align ALIGNARG(2);                                          \
-  BODY_LABEL(__strlen_ppc):                                    \
-  cfi_startproc;                                               \
-  LOCALENTRY(__strlen_ppc)
-
-# undef END
-# define END(name)                                             \
-  cfi_endproc;                                                 \
-  TRACEBACK(__strlen_ppc)                                      \
-  END_2(__strlen_ppc)
+# define STRLEN __strlen_ppc
 
 # undef libc_hidden_builtin_def
 # define libc_hidden_builtin_def(name)
index ec6ce3870aadf99026ebe6bdeac0788d64ce9c6d..2f0a183e31b7defaf72bd6059f1069151d9d5c3f 100644 (file)
 
 #include <sysdep.h>
 
-#undef ENTRY
-#define ENTRY(name)                                            \
-  .section ".text";                                            \
-  ENTRY_2(__strnlen_power7)                                    \
-  .align ALIGNARG(2);                                          \
-  BODY_LABEL(__strnlen_power7):                                        \
-  cfi_startproc;                                               \
-  LOCALENTRY(__strnlen_power7)
-
-#undef END
-#define END(name)                                              \
-  cfi_endproc;                                                 \
-  TRACEBACK(__strnlen_power7)                                  \
-  END_2(__strnlen_power7)
+#define STRNLEN __strnlen_power7
 
 #undef libc_hidden_builtin_def
 #define libc_hidden_builtin_def(name)
index 62db6d42231e141384895e17ca7f1e0743d178b4..63848c460c85f5d1e425d3ef2414ca688fa7a0b3 100644 (file)
 #include <sysdep.h>
 
 /* int [r3] strlen (char *s [r3])  */
+
+#ifndef STRLEN
+# define STRLEN strlen
+#endif
        .machine  power7
-ENTRY (strlen)
+ENTRY (STRLEN)
        CALL_MCOUNT 1
        dcbt    0,r3
        clrrdi  r4,r3,3       /* Align the address to doubleword boundary.  */
@@ -99,5 +103,5 @@ L(done):
        srdi    r0,r0,3       /* Convert leading/trailing zeros to bytes.  */
        add     r3,r5,r0      /* Compute final length.  */
        blr
-END (strlen)
+END (STRLEN)
 libc_hidden_builtin_def (strlen)
index d066ea709474a814380b1f25f6fb37d1c6c1d9c3..a970b6ce30a40b641702702e3e59b428af03defd 100644 (file)
 
 #include <sysdep.h>
 
+#ifndef STRNLEN
+# define STRNLEN __strnlen
+#endif
+
 /* int [r3] strnlen (char *s [r3], int size [r4])  */
        .machine  power7
-ENTRY (__strnlen)
+ENTRY (STRNLEN)
        CALL_MCOUNT 2
        dcbt    0,r3
        clrrdi  r8,r3,3
@@ -172,7 +176,7 @@ L(loop_small):
        mr      r3,r4
        blr
 
-END (__strnlen)
+END (STRNLEN)
 libc_hidden_def (__strnlen)
 weak_alias (__strnlen, strnlen)
 libc_hidden_def (strnlen)
index 2afc6b3c2e128a7df3f4f7ce661227d129069912..8f4a1fc1dc6f8c3a16c4eec34d904be1f39e8b83 100644 (file)
 
 /* int [r3] strlen (char *s [r3])  */
 
+#ifndef STRLEN
+# define STRLEN strlen
+#endif
+
 /* TODO: change this to .machine power8 when the minimum required binutils
    allows it.  */
        .machine  power7
-EALIGN (strlen, 4, 0)
+EALIGN (STRLEN, 4, 0)
        CALL_MCOUNT 1
        dcbt    0,r3
        clrrdi  r4,r3,3       /* Align the address to doubleword boundary.  */
@@ -293,5 +297,5 @@ L(vmx_zero):
        add     r3,r5,r0      /* Compute final length.  */
        blr
 
-END (strlen)
+END (STRLEN)
 libc_hidden_builtin_def (strlen)
index 4bd5db2a9ffb7214fbe96902ddcca6545982b016..1466624c6a68dec2efe9bd6e31973c4bf42b12f9 100644 (file)
 
 /* int [r3] strlen (char *s [r3])  */
 
-ENTRY (strlen)
+#ifndef STRLEN
+# define STRLEN strlen
+#endif
+
+ENTRY (STRLEN)
        CALL_MCOUNT 1
 
 #define rTMP4  r0
@@ -195,5 +199,5 @@ L(done1):
        blr
 #endif
 
-END (strlen)
+END (STRLEN)
 libc_hidden_builtin_def (strlen)