mirror of git://sourceware.org/git/glibc.git
powerpc: refactor stpcpy, stpncpy, strcpy, and strncpy IFUNC.
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/stpcpy-power8.S: Define the implementation-specific function name and remove unneeded macros definition. * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/power7/strncpy.S: Set a default function name if not defined. * sysdeps/powerpc/powerpc64/power8/strcpy.S: Likewise. * sysdeps/powerpc/powerpc64/power8/strncpy.S: Likewise.
This commit is contained in:
parent
d031600dd2
commit
dbcc7d0893
15
ChangeLog
15
ChangeLog
|
@ -1,3 +1,18 @@
|
||||||
|
2017-04-11 Wainer dos Santos Moschetta <wainersm@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
* sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S: Define the
|
||||||
|
implementation-specific function name and remove unneeded macros
|
||||||
|
definition.
|
||||||
|
* sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S: Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S: Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S: Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S: Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S: Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc64/power7/strncpy.S: Set a default
|
||||||
|
function name if not defined.
|
||||||
|
* sysdeps/powerpc/powerpc64/power8/strcpy.S: Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc64/power8/strncpy.S: Likewise.
|
||||||
|
|
||||||
2017-04-11 Paul Clarke <pc@us.ibm.com>
|
2017-04-11 Paul Clarke <pc@us.ibm.com>
|
||||||
|
|
||||||
* elf/elf.h (AT_L1I_CACHESIZE, AT_L1I_CACHEGEOMETRY, AT_L1D_CACHESIZE,
|
* elf/elf.h (AT_L1I_CACHESIZE, AT_L1I_CACHEGEOMETRY, AT_L1D_CACHESIZE,
|
||||||
|
|
|
@ -18,21 +18,7 @@
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
#undef EALIGN
|
#define STPCPY __stpcpy_power8
|
||||||
#define EALIGN(name, alignt, words) \
|
|
||||||
.section ".text"; \
|
|
||||||
ENTRY_2(__stpcpy_power8) \
|
|
||||||
.align ALIGNARG(alignt); \
|
|
||||||
EALIGN_W_##words; \
|
|
||||||
BODY_LABEL(__stpcpy_power8): \
|
|
||||||
cfi_startproc; \
|
|
||||||
LOCALENTRY(__stpcpy_power8)
|
|
||||||
|
|
||||||
#undef END
|
|
||||||
#define END(name) \
|
|
||||||
cfi_endproc; \
|
|
||||||
TRACEBACK(__stpcpy_power8) \
|
|
||||||
END_2(__stpcpy_power8)
|
|
||||||
|
|
||||||
#undef libc_hidden_builtin_def
|
#undef libc_hidden_builtin_def
|
||||||
#define libc_hidden_builtin_def(name)
|
#define libc_hidden_builtin_def(name)
|
||||||
|
|
|
@ -20,21 +20,7 @@
|
||||||
|
|
||||||
#define USE_AS_STPNCPY
|
#define USE_AS_STPNCPY
|
||||||
|
|
||||||
#undef EALIGN
|
#define STPNCPY __stpncpy_power7
|
||||||
#define EALIGN(name, alignt, words) \
|
|
||||||
.section ".text"; \
|
|
||||||
ENTRY_2(__stpncpy_power7) \
|
|
||||||
.align ALIGNARG(alignt); \
|
|
||||||
EALIGN_W_##words; \
|
|
||||||
BODY_LABEL(__stpncpy_power7): \
|
|
||||||
cfi_startproc; \
|
|
||||||
LOCALENTRY(__stpncpy_power7)
|
|
||||||
|
|
||||||
#undef END
|
|
||||||
#define END(name) \
|
|
||||||
cfi_endproc; \
|
|
||||||
TRACEBACK(__stpncpy_power7) \
|
|
||||||
END_2(__stpncpy_power7)
|
|
||||||
|
|
||||||
#undef libc_hidden_builtin_def
|
#undef libc_hidden_builtin_def
|
||||||
#define libc_hidden_builtin_def(name)
|
#define libc_hidden_builtin_def(name)
|
||||||
|
|
|
@ -20,21 +20,7 @@
|
||||||
|
|
||||||
#define USE_AS_STPNCPY
|
#define USE_AS_STPNCPY
|
||||||
|
|
||||||
#undef EALIGN
|
#define STPNCPY __stpncpy_power8
|
||||||
#define EALIGN(name, alignt, words) \
|
|
||||||
.section ".text"; \
|
|
||||||
ENTRY_2(__stpncpy_power8) \
|
|
||||||
.align ALIGNARG(alignt); \
|
|
||||||
EALIGN_W_##words; \
|
|
||||||
BODY_LABEL(__stpncpy_power8): \
|
|
||||||
cfi_startproc; \
|
|
||||||
LOCALENTRY(__stpncpy_power8)
|
|
||||||
|
|
||||||
#undef END
|
|
||||||
#define END(name) \
|
|
||||||
cfi_endproc; \
|
|
||||||
TRACEBACK(__stpncpy_power8) \
|
|
||||||
END_2(__stpncpy_power8)
|
|
||||||
|
|
||||||
#undef libc_hidden_builtin_def
|
#undef libc_hidden_builtin_def
|
||||||
#define libc_hidden_builtin_def(name)
|
#define libc_hidden_builtin_def(name)
|
||||||
|
|
|
@ -18,21 +18,7 @@
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
#undef EALIGN
|
#define STRCPY __strcpy_power8
|
||||||
#define EALIGN(name, alignt, words) \
|
|
||||||
.section ".text"; \
|
|
||||||
ENTRY_2(__strcpy_power8) \
|
|
||||||
.align ALIGNARG(alignt); \
|
|
||||||
EALIGN_W_##words; \
|
|
||||||
BODY_LABEL(__strcpy_power8): \
|
|
||||||
cfi_startproc; \
|
|
||||||
LOCALENTRY(__strcpy_power8)
|
|
||||||
|
|
||||||
#undef END
|
|
||||||
#define END(name) \
|
|
||||||
cfi_endproc; \
|
|
||||||
TRACEBACK(__strcpy_power8) \
|
|
||||||
END_2(__strcpy_power8)
|
|
||||||
|
|
||||||
#undef libc_hidden_builtin_def
|
#undef libc_hidden_builtin_def
|
||||||
#define libc_hidden_builtin_def(name)
|
#define libc_hidden_builtin_def(name)
|
||||||
|
|
|
@ -18,21 +18,7 @@
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
#undef EALIGN
|
#define STRNCPY __strncpy_power7
|
||||||
#define EALIGN(name, alignt, words) \
|
|
||||||
.section ".text"; \
|
|
||||||
ENTRY_2(__strncpy_power7) \
|
|
||||||
.align ALIGNARG(alignt); \
|
|
||||||
EALIGN_W_##words; \
|
|
||||||
BODY_LABEL(__strncpy_power7): \
|
|
||||||
cfi_startproc; \
|
|
||||||
LOCALENTRY(__strncpy_power7)
|
|
||||||
|
|
||||||
#undef END
|
|
||||||
#define END(name) \
|
|
||||||
cfi_endproc; \
|
|
||||||
TRACEBACK(__strncpy_power7) \
|
|
||||||
END_2(__strncpy_power7)
|
|
||||||
|
|
||||||
#undef libc_hidden_builtin_def
|
#undef libc_hidden_builtin_def
|
||||||
#define libc_hidden_builtin_def(name)
|
#define libc_hidden_builtin_def(name)
|
||||||
|
|
|
@ -18,21 +18,7 @@
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
#undef EALIGN
|
#define STRNCPY __strncpy_power8
|
||||||
#define EALIGN(name, alignt, words) \
|
|
||||||
.section ".text"; \
|
|
||||||
ENTRY_2(__strncpy_power8) \
|
|
||||||
.align ALIGNARG(alignt); \
|
|
||||||
EALIGN_W_##words; \
|
|
||||||
BODY_LABEL(__strncpy_power8): \
|
|
||||||
cfi_startproc; \
|
|
||||||
LOCALENTRY(__strncpy_power8)
|
|
||||||
|
|
||||||
#undef END
|
|
||||||
#define END(name) \
|
|
||||||
cfi_endproc; \
|
|
||||||
TRACEBACK(__strncpy_power8) \
|
|
||||||
END_2(__strncpy_power8)
|
|
||||||
|
|
||||||
#undef libc_hidden_builtin_def
|
#undef libc_hidden_builtin_def
|
||||||
#define libc_hidden_builtin_def(name)
|
#define libc_hidden_builtin_def(name)
|
||||||
|
|
|
@ -40,10 +40,18 @@
|
||||||
memset. */
|
memset. */
|
||||||
|
|
||||||
#ifdef USE_AS_STPNCPY
|
#ifdef USE_AS_STPNCPY
|
||||||
|
# ifndef STPNCPY
|
||||||
# define FUNC_NAME __stpncpy
|
# define FUNC_NAME __stpncpy
|
||||||
|
# else
|
||||||
|
# define FUNC_NAME STPNCPY
|
||||||
|
# endif
|
||||||
#else
|
#else
|
||||||
|
# ifndef STRNCPY
|
||||||
# define FUNC_NAME strncpy
|
# define FUNC_NAME strncpy
|
||||||
#endif
|
# else
|
||||||
|
# define FUNC_NAME STRNCPY
|
||||||
|
# endif
|
||||||
|
#endif /* !USE_AS_STPNCPY */
|
||||||
|
|
||||||
#define FRAMESIZE (FRAME_MIN_SIZE+32)
|
#define FRAMESIZE (FRAME_MIN_SIZE+32)
|
||||||
|
|
||||||
|
|
|
@ -19,10 +19,18 @@
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
#ifdef USE_AS_STPCPY
|
#ifdef USE_AS_STPCPY
|
||||||
|
# ifndef STPCPY
|
||||||
# define FUNC_NAME __stpcpy
|
# define FUNC_NAME __stpcpy
|
||||||
|
# else
|
||||||
|
# define FUNC_NAME STPCPY
|
||||||
|
# endif
|
||||||
#else
|
#else
|
||||||
|
# ifndef STRCPY
|
||||||
# define FUNC_NAME strcpy
|
# define FUNC_NAME strcpy
|
||||||
#endif
|
# else
|
||||||
|
# define FUNC_NAME STRCPY
|
||||||
|
# endif
|
||||||
|
#endif /* !USE_AS_STPCPY */
|
||||||
|
|
||||||
/* Implements the function
|
/* Implements the function
|
||||||
|
|
||||||
|
|
|
@ -19,10 +19,18 @@
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
#ifdef USE_AS_STPNCPY
|
#ifdef USE_AS_STPNCPY
|
||||||
|
# ifndef STPNCPY
|
||||||
# define FUNC_NAME __stpncpy
|
# define FUNC_NAME __stpncpy
|
||||||
|
# else
|
||||||
|
# define FUNC_NAME STPNCPY
|
||||||
|
# endif
|
||||||
#else
|
#else
|
||||||
|
# ifndef STRNCPY
|
||||||
# define FUNC_NAME strncpy
|
# define FUNC_NAME strncpy
|
||||||
#endif
|
# else
|
||||||
|
# define FUNC_NAME STRNCPY
|
||||||
|
# endif
|
||||||
|
#endif /* !USE_AS_STPNCPY */
|
||||||
|
|
||||||
#ifndef MEMSET
|
#ifndef MEMSET
|
||||||
/* For builds without IFUNC support, local calls should be made to internal
|
/* For builds without IFUNC support, local calls should be made to internal
|
||||||
|
|
Loading…
Reference in New Issue