diff options
Diffstat (limited to 'sysdeps/powerpc/powerpc64/power4')
-rw-r--r-- | sysdeps/powerpc/powerpc64/power4/Implies | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power4/fpu/Implies | 1 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power4/fpu/multiarch/Implies | 1 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power4/memcmp.S | 22 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power4/memcpy.S | 11 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power4/memset.S | 13 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power4/multiarch/Implies | 1 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power4/strncmp.S | 10 |
8 files changed, 35 insertions, 26 deletions
diff --git a/sysdeps/powerpc/powerpc64/power4/Implies b/sysdeps/powerpc/powerpc64/power4/Implies deleted file mode 100644 index a372141bb7..0000000000 --- a/sysdeps/powerpc/powerpc64/power4/Implies +++ /dev/null @@ -1,2 +0,0 @@ -powerpc/power4/fpu -powerpc/power4 diff --git a/sysdeps/powerpc/powerpc64/power4/fpu/Implies b/sysdeps/powerpc/powerpc64/power4/fpu/Implies deleted file mode 100644 index c1f617b7da..0000000000 --- a/sysdeps/powerpc/powerpc64/power4/fpu/Implies +++ /dev/null @@ -1 +0,0 @@ -powerpc/powerpc64/fpu diff --git a/sysdeps/powerpc/powerpc64/power4/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc64/power4/fpu/multiarch/Implies deleted file mode 100644 index 8d6531a174..0000000000 --- a/sysdeps/powerpc/powerpc64/power4/fpu/multiarch/Implies +++ /dev/null @@ -1 +0,0 @@ -powerpc/powerpc64/fpu/multiarch diff --git a/sysdeps/powerpc/powerpc64/power4/memcmp.S b/sysdeps/powerpc/powerpc64/power4/memcmp.S index c1a77c64b0..e5319f101f 100644 --- a/sysdeps/powerpc/powerpc64/power4/memcmp.S +++ b/sysdeps/powerpc/powerpc64/power4/memcmp.S @@ -1,5 +1,5 @@ /* Optimized memcmp implementation for PowerPC64. - Copyright (C) 2003-2016 Free Software Foundation, Inc. + Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,8 +22,12 @@ const char *s2 [r4], size_t size [r5]) */ +#ifndef MEMCMP +# define MEMCMP memcmp +#endif + .machine power4 -EALIGN (memcmp, 4, 0) +ENTRY_TOCLESS (MEMCMP, 4) CALL_MCOUNT 3 #define rRTN r3 @@ -52,8 +56,8 @@ EALIGN (memcmp, 4, 0) byte loop. */ blt cr1, L(bytealigned) std rWORD8, -8(r1) - cfi_offset(rWORD8, -8) std rWORD7, -16(r1) + cfi_offset(rWORD8, -8) cfi_offset(rWORD7, -16) bne L(unaligned) /* At this point we know both strings have the same alignment and the @@ -728,18 +732,18 @@ L(unaligned): the actual start of rSTR2. */ clrrdi rSTR2, rSTR2, 3 std rWORD2_SHIFT, -48(r1) - cfi_offset(rWORD2_SHIFT, -48) /* Compute the left/right shift counts for the unaligned rSTR2, compensating for the logical (DW aligned) start of rSTR1. */ clrldi rSHL, rWORD8_SHIFT, 61 clrrdi rSTR1, rSTR1, 3 std rWORD4_SHIFT, -56(r1) - cfi_offset(rWORD4_SHIFT, -56) sldi rSHL, rSHL, 3 cmpld cr5, rWORD8_SHIFT, rSTR2 add rN, rN, r12 sldi rWORD6, r12, 3 std rWORD6_SHIFT, -64(r1) + cfi_offset(rWORD2_SHIFT, -48) + cfi_offset(rWORD4_SHIFT, -56) cfi_offset(rWORD6_SHIFT, -64) subfic rSHR, rSHL, 64 srdi r0, rN, 5 /* Divide by 32 */ @@ -833,15 +837,15 @@ L(duPs4): .align 4 L(DWunaligned): std rWORD8_SHIFT, -40(r1) - cfi_offset(rWORD8_SHIFT, -40) clrrdi rSTR2, rSTR2, 3 std rWORD2_SHIFT, -48(r1) - cfi_offset(rWORD2_SHIFT, -48) srdi r0, rN, 5 /* Divide by 32 */ std rWORD4_SHIFT, -56(r1) - cfi_offset(rWORD4_SHIFT, -56) andi. r12, rN, 24 /* Get the DW remainder */ std rWORD6_SHIFT, -64(r1) + cfi_offset(rWORD8_SHIFT, -40) + cfi_offset(rWORD2_SHIFT, -48) + cfi_offset(rWORD4_SHIFT, -56) cfi_offset(rWORD6_SHIFT, -64) sldi rSHL, rSHL, 3 #ifdef __LITTLE_ENDIAN__ @@ -1360,6 +1364,6 @@ L(duzeroLength): li rRTN, 0 blr -END (memcmp) +END (MEMCMP) libc_hidden_builtin_def (memcmp) weak_alias (memcmp, bcmp) diff --git a/sysdeps/powerpc/powerpc64/power4/memcpy.S b/sysdeps/powerpc/powerpc64/power4/memcpy.S index 844f08f627..ce074943f2 100644 --- a/sysdeps/powerpc/powerpc64/power4/memcpy.S +++ b/sysdeps/powerpc/powerpc64/power4/memcpy.S @@ -1,5 +1,5 @@ /* Optimized memcpy implementation for PowerPC64. - Copyright (C) 2003-2016 Free Software Foundation, Inc. + Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -18,7 +18,7 @@ #include <sysdep.h> -/* __ptr_t [r3] memcpy (__ptr_t dst [r3], __ptr_t src [r4], size_t len [r5]); +/* void * [r3] memcpy (void *dst [r3], void *src [r4], size_t len [r5]); Returns 'dst'. Memcpy handles short copies (< 32-bytes) using a binary move blocks @@ -33,8 +33,11 @@ possible when both source and destination are doubleword aligned. Each case has a optimized unrolled loop. */ +#ifndef MEMCPY +# define MEMCPY memcpy +#endif .machine power4 -EALIGN (memcpy, 5, 0) +ENTRY_TOCLESS (MEMCPY, 5) CALL_MCOUNT 3 cmpldi cr1,5,31 @@ -470,5 +473,5 @@ EALIGN (memcpy, 5, 0) ld 31,-8(1) ld 3,-16(1) blr -END_GEN_TB (memcpy,TB_TOCLESS) +END_GEN_TB (MEMCPY,TB_TOCLESS) libc_hidden_builtin_def (memcpy) diff --git a/sysdeps/powerpc/powerpc64/power4/memset.S b/sysdeps/powerpc/powerpc64/power4/memset.S index bc249c31ab..a8f0dfaa1a 100644 --- a/sysdeps/powerpc/powerpc64/power4/memset.S +++ b/sysdeps/powerpc/powerpc64/power4/memset.S @@ -1,5 +1,5 @@ /* Optimized memset implementation for PowerPC64. - Copyright (C) 1997-2016 Free Software Foundation, Inc. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -18,15 +18,18 @@ #include <sysdep.h> -/* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5])); +/* void * [r3] memset (void *s [r3], int c [r4], size_t n [r5])); Returns 's'. The memset is done in three sizes: byte (8 bits), word (32 bits), 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) +ENTRY_TOCLESS (MEMSET, 5) CALL_MCOUNT 3 #define rTMP r0 @@ -232,12 +235,12 @@ 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 between bzero and memset. */ -ENTRY (__bzero) +ENTRY_TOCLESS (__bzero) CALL_MCOUNT 3 mr r5,r4 li r4,0 diff --git a/sysdeps/powerpc/powerpc64/power4/multiarch/Implies b/sysdeps/powerpc/powerpc64/power4/multiarch/Implies deleted file mode 100644 index 30edcf7f9d..0000000000 --- a/sysdeps/powerpc/powerpc64/power4/multiarch/Implies +++ /dev/null @@ -1 +0,0 @@ -powerpc/powerpc64/multiarch diff --git a/sysdeps/powerpc/powerpc64/power4/strncmp.S b/sysdeps/powerpc/powerpc64/power4/strncmp.S index e45ee6dce2..73629e4191 100644 --- a/sysdeps/powerpc/powerpc64/power4/strncmp.S +++ b/sysdeps/powerpc/powerpc64/power4/strncmp.S @@ -1,5 +1,5 @@ /* Optimized strcmp implementation for PowerPC64. - Copyright (C) 2003-2016 Free Software Foundation, Inc. + Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -18,11 +18,15 @@ #include <sysdep.h> +#ifndef STRNCMP +# define STRNCMP strncmp +#endif + /* See strlen.s for comments on how the end-of-string testing works. */ /* int [r3] strncmp (const char *s1 [r3], const char *s2 [r4], size_t size [r5]) */ -EALIGN (strncmp, 4, 0) +ENTRY_TOCLESS (STRNCMP, 4) CALL_MCOUNT 3 #define rTMP2 r0 @@ -217,5 +221,5 @@ L(u4): sub rRTN, rWORD1, rWORD2 L(ux): li rRTN, 0 blr -END (strncmp) +END (STRNCMP) libc_hidden_builtin_def (strncmp) |