powerpc64: Add POWER8 strnlen
[glibc.git] / sysdeps / powerpc / powerpc64 / multiarch / memset-ppc64.S
blobaaa2ba9628eef400478318c479fdbcaed2cbef60
1 /* Default memset/bzero implementation for PowerPC64.
2    Copyright (C) 2013-2017 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, see
17    <http://www.gnu.org/licenses/>.  */
19 #include <sysdep.h>
21 /* Copied from bzero.S to prevent the linker from inserting a stub
22    between bzero and memset.  NOTE: this code should be positioned
23    before ENTRY/END_GEN_TB redefinition.  */
24 ENTRY (__bzero_ppc)
25         CALL_MCOUNT 3
26         mr      r5,r4
27         li      r4,0
28         b       L(_memset)
29 END_GEN_TB (__bzero_ppc,TB_TOCLESS)
32 #if defined SHARED && IS_IN (libc)
33 # undef EALIGN
34 # define EALIGN(name, alignt, words)                            \
35   .section ".text";                                             \
36   ENTRY_2(__memset_ppc)                                         \
37   .align ALIGNARG(alignt);                                      \
38   EALIGN_W_##words;                                             \
39   BODY_LABEL(__memset_ppc):                                     \
40   cfi_startproc;                                                \
41   LOCALENTRY(__memset_ppc)
43 # undef END_GEN_TB
44 # define END_GEN_TB(name, mask)                                 \
45   cfi_endproc;                                                  \
46   TRACEBACK_MASK(__memset_ppc,mask)                             \
47   END_2(__memset_ppc)
49 # undef libc_hidden_builtin_def
50 # define libc_hidden_builtin_def(name)
51 #endif
53 /* Do not implement __bzero at powerpc64/memset.S.  */
54 #define NO_BZERO_IMPL
56 #include <sysdeps/powerpc/powerpc64/memset.S>