diff options
Diffstat (limited to 'sysdeps/powerpc/powerpc32/power7')
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/memchr.S | 13 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/memcmp.S | 14 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/memcpy.S | 4 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/mempcpy.S | 4 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/memrchr.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/memset.S | 4 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/rawmemchr.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/strcasecmp.S | 4 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/strchr.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/strchrnul.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/strlen.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/strncmp.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power7/strnlen.S | 2 |
16 files changed, 36 insertions, 27 deletions
diff --git a/sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S b/sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S index b0dfed49d8..793cf0da94 100644 --- a/sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S +++ b/sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S @@ -1,5 +1,5 @@ /* finite(). PowerPC32/POWER7 version. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-2018 Free Software Foundation, Inc. Contributed by Luis Machado <luisgpm@br.ibm.com>. This file is part of the GNU C Library. diff --git a/sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S b/sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S index 76ed3346cb..400fec7fdc 100644 --- a/sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S +++ b/sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S @@ -1,5 +1,5 @@ /* isinf(). PowerPC32/POWER7 version. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-2018 Free Software Foundation, Inc. Contributed by Luis Machado <luisgpm@br.ibm.com>. This file is part of the GNU C Library. diff --git a/sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S b/sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S index 873e0d60fe..b8bb0e667e 100644 --- a/sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S +++ b/sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S @@ -1,5 +1,5 @@ /* isnan(). PowerPC32/POWER7 version. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-2018 Free Software Foundation, Inc. Contributed by Luis Machado <luisgpm@br.ibm.com>. This file is part of the GNU C Library. diff --git a/sysdeps/powerpc/powerpc32/power7/memchr.S b/sysdeps/powerpc/powerpc32/power7/memchr.S index 318168b4cf..ec78709c35 100644 --- a/sysdeps/powerpc/powerpc32/power7/memchr.S +++ b/sysdeps/powerpc/powerpc32/power7/memchr.S @@ -1,5 +1,5 @@ /* Optimized memchr implementation for PowerPC32/POWER7 using cmpb insn. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-2018 Free Software Foundation, Inc. Contributed by Luis Machado <luisgpm@br.ibm.com>. This file is part of the GNU C Library. @@ -26,7 +26,16 @@ ENTRY (__memchr) dcbt 0,r3 clrrwi r8,r3,2 insrwi r4,r4,8,16 /* Replicate byte to word. */ - add r7,r3,r5 /* Calculate the last acceptable address. */ + + /* Calculate the last acceptable address and check for possible + addition overflow by using satured math: + r7 = r3 + r5 + r7 |= -(r7 < x) */ + add r7,r3,r5 + subfc r6,r3,r7 + subfe r9,r9,r9 + or r7,r7,r9 + insrwi r4,r4,16,0 cmplwi r5,16 li r9, -1 diff --git a/sysdeps/powerpc/powerpc32/power7/memcmp.S b/sysdeps/powerpc/powerpc32/power7/memcmp.S index 9c06a89491..8c1a00d635 100644 --- a/sysdeps/powerpc/powerpc32/power7/memcmp.S +++ b/sysdeps/powerpc/powerpc32/power7/memcmp.S @@ -1,5 +1,5 @@ /* Optimized memcmp implementation for POWER7/PowerPC32. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-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 @@ -54,8 +54,8 @@ EALIGN (memcmp, 4, 0) stwu 1, -64(r1) cfi_adjust_cfa_offset(64) stw rWORD8, 48(r1) - cfi_offset(rWORD8, (48-64)) stw rWORD7, 44(r1) + cfi_offset(rWORD8, (48-64)) cfi_offset(rWORD7, (44-64)) bne L(unaligned) /* At this point we know both strings have the same alignment and the @@ -747,18 +747,18 @@ L(unaligned): the actual start of rSTR2. */ clrrwi rSTR2, rSTR2, 2 stw rWORD2_SHIFT, 28(r1) - cfi_offset(rWORD2_SHIFT, (28-64)) /* Compute the left/right shift counts for the unaligned rSTR2, compensating for the logical (W aligned) start of rSTR1. */ clrlwi rSHL, rWORD8_SHIFT, 30 clrrwi rSTR1, rSTR1, 2 stw rWORD4_SHIFT, 24(r1) - cfi_offset(rWORD4_SHIFT, (24-64)) slwi rSHL, rSHL, 3 cmplw cr5, rWORD8_SHIFT, rSTR2 add rN, rN, r12 slwi rWORD6, r12, 3 stw rWORD6_SHIFT, 20(r1) + cfi_offset(rWORD2_SHIFT, (28-64)) + cfi_offset(rWORD4_SHIFT, (24-64)) cfi_offset(rWORD6_SHIFT, (20-64)) subfic rSHR, rSHL, 32 srwi r0, rN, 4 /* Divide by 16 */ @@ -852,15 +852,15 @@ L(duPs4): .align 4 L(Wunaligned): stw rWORD8_SHIFT, 32(r1) - cfi_offset(rWORD8_SHIFT, (32-64)) clrrwi rSTR2, rSTR2, 2 stw rWORD2_SHIFT, 28(r1) - cfi_offset(rWORD2_SHIFT, (28-64)) srwi r0, rN, 4 /* Divide by 16 */ stw rWORD4_SHIFT, 24(r1) - cfi_offset(rWORD4_SHIFT, (24-64)) andi. r12, rN, 12 /* Get the W remainder */ stw rWORD6_SHIFT, 20(r1) + cfi_offset(rWORD8_SHIFT, (32-64)) + cfi_offset(rWORD2_SHIFT, (28-64)) + cfi_offset(rWORD4_SHIFT, (24-64)) cfi_offset(rWORD6_SHIFT, (20-64)) slwi rSHL, rSHL, 3 #ifdef __LITTLE_ENDIAN__ diff --git a/sysdeps/powerpc/powerpc32/power7/memcpy.S b/sysdeps/powerpc/powerpc32/power7/memcpy.S index 2bc7ee268e..76b1c53c43 100644 --- a/sysdeps/powerpc/powerpc32/power7/memcpy.S +++ b/sysdeps/powerpc/powerpc32/power7/memcpy.S @@ -1,5 +1,5 @@ /* Optimized memcpy implementation for PowerPC32/POWER7. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-2018 Free Software Foundation, Inc. Contributed by Luis Machado <luisgpm@br.ibm.com>. This file is part of the GNU C Library. @@ -19,7 +19,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'. */ .machine power7 diff --git a/sysdeps/powerpc/powerpc32/power7/mempcpy.S b/sysdeps/powerpc/powerpc32/power7/mempcpy.S index f4041f3278..1a3f4ebea1 100644 --- a/sysdeps/powerpc/powerpc32/power7/mempcpy.S +++ b/sysdeps/powerpc/powerpc32/power7/mempcpy.S @@ -1,5 +1,5 @@ /* Optimized mempcpy implementation for POWER7. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-2018 Free Software Foundation, Inc. Contributed by Luis Machado <luisgpm@br.ibm.com>. This file is part of the GNU C Library. @@ -19,7 +19,7 @@ #include <sysdep.h> -/* __ptr_t [r3] __mempcpy (__ptr_t dst [r3], __ptr_t src [r4], size_t len [r5]); +/* void * [r3] __mempcpy (void *dst [r3], void *src [r4], size_t len [r5]); Returns 'dst' + 'len'. */ .machine power7 diff --git a/sysdeps/powerpc/powerpc32/power7/memrchr.S b/sysdeps/powerpc/powerpc32/power7/memrchr.S index 831bded075..aedae95914 100644 --- a/sysdeps/powerpc/powerpc32/power7/memrchr.S +++ b/sysdeps/powerpc/powerpc32/power7/memrchr.S @@ -1,5 +1,5 @@ /* Optimized memrchr implementation for PowerPC32/POWER7 using cmpb insn. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-2018 Free Software Foundation, Inc. Contributed by Luis Machado <luisgpm@br.ibm.com>. This file is part of the GNU C Library. diff --git a/sysdeps/powerpc/powerpc32/power7/memset.S b/sysdeps/powerpc/powerpc32/power7/memset.S index 9cee5f1677..26fa736ab2 100644 --- a/sysdeps/powerpc/powerpc32/power7/memset.S +++ b/sysdeps/powerpc/powerpc32/power7/memset.S @@ -1,5 +1,5 @@ /* Optimized memset implementation for PowerPC32/POWER7. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-2018 Free Software Foundation, Inc. Contributed by Luis Machado <luisgpm@br.ibm.com>. This file is part of the GNU C Library. @@ -19,7 +19,7 @@ #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'. */ .machine power7 diff --git a/sysdeps/powerpc/powerpc32/power7/rawmemchr.S b/sysdeps/powerpc/powerpc32/power7/rawmemchr.S index 264ff00854..a886e13c90 100644 --- a/sysdeps/powerpc/powerpc32/power7/rawmemchr.S +++ b/sysdeps/powerpc/powerpc32/power7/rawmemchr.S @@ -1,5 +1,5 @@ /* Optimized rawmemchr implementation for PowerPC32/POWER7 using cmpb insn. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-2018 Free Software Foundation, Inc. Contributed by Luis Machado <luisgpm@br.ibm.com>. This file is part of the GNU C Library. diff --git a/sysdeps/powerpc/powerpc32/power7/strcasecmp.S b/sysdeps/powerpc/powerpc32/power7/strcasecmp.S index 9a414ac0f0..7bd8b43166 100644 --- a/sysdeps/powerpc/powerpc32/power7/strcasecmp.S +++ b/sysdeps/powerpc/powerpc32/power7/strcasecmp.S @@ -1,5 +1,5 @@ /* Optimized strcasecmp implementation for PowerPC32. - Copyright (C) 2011-2016 Free Software Foundation, Inc. + Copyright (C) 2011-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 @@ -24,7 +24,7 @@ or if defined USE_IN_EXTENDED_LOCALE_MODEL: int [r3] strcasecmp_l (const char *s1 [r3], const char *s2 [r4], - __locale_t loc [r5]) */ + locale_t loc [r5]) */ #ifndef STRCMP # define __STRCMP __strcasecmp diff --git a/sysdeps/powerpc/powerpc32/power7/strchr.S b/sysdeps/powerpc/powerpc32/power7/strchr.S index fa09e144a7..54bb4ad502 100644 --- a/sysdeps/powerpc/powerpc32/power7/strchr.S +++ b/sysdeps/powerpc/powerpc32/power7/strchr.S @@ -1,5 +1,5 @@ /* Optimized strchr implementation for PowerPC32/POWER7 using cmpb insn. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-2018 Free Software Foundation, Inc. Contributed by Luis Machado <luisgpm@br.ibm.com>. This file is part of the GNU C Library. diff --git a/sysdeps/powerpc/powerpc32/power7/strchrnul.S b/sysdeps/powerpc/powerpc32/power7/strchrnul.S index a9b785b04f..634bf56e62 100644 --- a/sysdeps/powerpc/powerpc32/power7/strchrnul.S +++ b/sysdeps/powerpc/powerpc32/power7/strchrnul.S @@ -1,5 +1,5 @@ /* Optimized strchrnul implementation for PowerPC32/POWER7 using cmpb insn. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-2018 Free Software Foundation, Inc. Contributed by Luis Machado <luisgpm@br.ibm.com>. This file is part of the GNU C Library. diff --git a/sysdeps/powerpc/powerpc32/power7/strlen.S b/sysdeps/powerpc/powerpc32/power7/strlen.S index ecc1c8e105..f7d1ebb8d4 100644 --- a/sysdeps/powerpc/powerpc32/power7/strlen.S +++ b/sysdeps/powerpc/powerpc32/power7/strlen.S @@ -1,5 +1,5 @@ /* Optimized strlen implementation for PowerPC32/POWER7 using cmpb insn. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-2018 Free Software Foundation, Inc. Contributed by Luis Machado <luisgpm@br.ibm.com>. This file is part of the GNU C Library. diff --git a/sysdeps/powerpc/powerpc32/power7/strncmp.S b/sysdeps/powerpc/powerpc32/power7/strncmp.S index 0e96c6d74e..9fe8e419ae 100644 --- a/sysdeps/powerpc/powerpc32/power7/strncmp.S +++ b/sysdeps/powerpc/powerpc32/power7/strncmp.S @@ -1,5 +1,5 @@ /* Optimized strcmp implementation for POWER7/PowerPC32. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-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 diff --git a/sysdeps/powerpc/powerpc32/power7/strnlen.S b/sysdeps/powerpc/powerpc32/power7/strnlen.S index 00d80dd330..2f28acc99a 100644 --- a/sysdeps/powerpc/powerpc32/power7/strnlen.S +++ b/sysdeps/powerpc/powerpc32/power7/strnlen.S @@ -1,5 +1,5 @@ /* Optimized strnlen implementation for PowerPC32/POWER7 using cmpb insn. - Copyright (C) 2010-2016 Free Software Foundation, Inc. + Copyright (C) 2010-2018 Free Software Foundation, Inc. Contributed by Luis Machado <luisgpm@br.ibm.com>. This file is part of the GNU C Library. |