43 lines
1.4 KiB
Diff
43 lines
1.4 KiB
Diff
diff --git a/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S b/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S
|
|
index dd316486e6..c035329ece 100644
|
|
--- a/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S
|
|
+++ b/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S
|
|
@@ -149,15 +149,9 @@ L(crosscache):
|
|
.p2align 4
|
|
L(unaligned_no_match):
|
|
# ifndef USE_AS_RAWMEMCHR
|
|
- /* Calculate the last acceptable address and check for possible
|
|
- addition overflow by using satured math:
|
|
- edx = ecx + edx
|
|
- edx |= -(edx < ecx) */
|
|
- add %ecx, %edx
|
|
- sbb %eax, %eax
|
|
- or %eax, %edx
|
|
sub $16, %edx
|
|
- jbe L(return_null)
|
|
+ add %ecx, %edx
|
|
+ jle L(return_null)
|
|
add $16, %edi
|
|
# else
|
|
add $16, %edx
|
|
diff --git a/sysdeps/i386/i686/multiarch/memchr-sse2.S b/sysdeps/i386/i686/multiarch/memchr-sse2.S
|
|
index 910679cfc0..f1a11b5c67 100644
|
|
--- a/sysdeps/i386/i686/multiarch/memchr-sse2.S
|
|
+++ b/sysdeps/i386/i686/multiarch/memchr-sse2.S
|
|
@@ -118,14 +118,8 @@ L(crosscache):
|
|
# ifndef USE_AS_RAWMEMCHR
|
|
jnz L(match_case2_prolog1)
|
|
lea -16(%edx), %edx
|
|
- /* Calculate the last acceptable address and check for possible
|
|
- addition overflow by using satured math:
|
|
- edx = ecx + edx
|
|
- edx |= -(edx < ecx) */
|
|
add %ecx, %edx
|
|
- sbb %eax, %eax
|
|
- or %eax, %edx
|
|
- jbe L(return_null)
|
|
+ jle L(return_null)
|
|
lea 16(%edi), %edi
|
|
# else
|
|
jnz L(match_case1_prolog1)
|