about summary refs log tree commit diff
path: root/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2010-02-15 13:04:54 -0800
committerUlrich Drepper <drepper@redhat.com>2010-02-15 13:04:54 -0800
commit6bb74d9f86e543c418f94a7732e8ee47c9e8225f (patch)
treeedadff811d4545e48713f224f8fd172f078a576e /sysdeps/i386/i686/multiarch/strcmp-ssse3.S
parent904057bc17fb3e3127a35ebf35fcac8d5bc8269b (diff)
downloadglibc-6bb74d9f86e543c418f94a7732e8ee47c9e8225f.tar.gz
glibc-6bb74d9f86e543c418f94a7732e8ee47c9e8225f.tar.xz
glibc-6bb74d9f86e543c418f94a7732e8ee47c9e8225f.zip
Fix up new x86 string functions.
Diffstat (limited to 'sysdeps/i386/i686/multiarch/strcmp-ssse3.S')
-rw-r--r--sysdeps/i386/i686/multiarch/strcmp-ssse3.S64
1 files changed, 49 insertions, 15 deletions
diff --git a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
index 14caae29a1..338b00339d 100644
--- a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
@@ -160,6 +160,9 @@ L(crosspage):
 	PUSH	(%ebx)
 	PUSH	(%edi)
 	PUSH	(%esi)
+#ifdef USE_AS_STRNCMP
+	cfi_remember_state
+#endif
 
 	movl	%edx, %edi
 	movl	%eax, %ecx
@@ -254,7 +257,7 @@ L(loop_ashr_0):
 
 /*
  * The following cases will be handled by ashr_1
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(15)            n -15            0(15 +(n-15) - n)         ashr_1
  */
 	.p2align 4
@@ -360,7 +363,7 @@ L(ashr_1_exittail):
 
 /*
  * The following cases will be handled by ashr_2
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(14~15)            n -14            1(15 +(n-14) - n)         ashr_2
  */
 	.p2align 4
@@ -467,7 +470,7 @@ L(ashr_2_exittail):
 
 /*
  * The following cases will be handled by ashr_3
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(13~15)            n -13            2(15 +(n-13) - n)         ashr_3
  */
 	.p2align 4
@@ -573,7 +576,7 @@ L(ashr_3_exittail):
 
 /*
  * The following cases will be handled by ashr_4
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(12~15)            n -12            3(15 +(n-12) - n)         ashr_4
  */
 	.p2align 4
@@ -682,7 +685,7 @@ L(ashr_4_exittail):
 
 /*
  * The following cases will be handled by ashr_5
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(11~15)            n -11            4(15 +(n-11) - n)         ashr_5
  */
 	.p2align 4
@@ -788,7 +791,7 @@ L(ashr_5_exittail):
 
 /*
  * The following cases will be handled by ashr_6
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(10~15)            n -10            5(15 +(n-10) - n)         ashr_6
  */
 
@@ -896,7 +899,7 @@ L(ashr_6_exittail):
 
 /*
  * The following cases will be handled by ashr_7
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(9~15)            n - 9            6(15 +(n-9) - n)         ashr_7
  */
 
@@ -1006,7 +1009,7 @@ L(ashr_7_exittail):
 
 /*
  * The following cases will be handled by ashr_8
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(8~15)            n - 8            7(15 +(n-8) - n)         ashr_8
  */
 	.p2align 4
@@ -1113,7 +1116,7 @@ L(ashr_8_exittail):
 
 /*
  * The following cases will be handled by ashr_9
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(7~15)            n - 7            8(15 +(n-7) - n)         ashr_9
  */
 	.p2align 4
@@ -1219,7 +1222,7 @@ L(ashr_9_exittail):
 
 /*
  * The following cases will be handled by ashr_10
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(6~15)            n - 6            9(15 +(n-6) - n)         ashr_10
  */
 	.p2align 4
@@ -1325,7 +1328,7 @@ L(ashr_10_exittail):
 
 /*
  * The following cases will be handled by ashr_11
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(5~15)            n - 5            10(15 +(n-5) - n)         ashr_11
  */
 	.p2align 4
@@ -1431,7 +1434,7 @@ L(ashr_11_exittail):
 
 /*
  * The following cases will be handled by ashr_12
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(4~15)            n - 4            11(15 +(n-4) - n)         ashr_12
  */
 	.p2align 4
@@ -1537,7 +1540,7 @@ L(ashr_12_exittail):
 
 /*
  * The following cases will be handled by ashr_13
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(3~15)            n - 3            12(15 +(n-3) - n)         ashr_13
  */
 	.p2align 4
@@ -1643,7 +1646,7 @@ L(ashr_13_exittail):
 
 /*
  * The following cases will be handled by ashr_14
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(2~15)            n - 2            13(15 +(n-2) - n)         ashr_14
  */
 	.p2align 4
@@ -1749,7 +1752,7 @@ L(ashr_14_exittail):
 
 /*
  * The following cases will be handled by ashr_14
- * ecx(offset of esi)  eax(offset of edi)   relative offset   	corresponding case
+ * ecx(offset of esi)  eax(offset of edi)   relative offset	corresponding case
  *        n(1~15)            n - 1            14(15 +(n-1) - n)         ashr_15
  */
 
@@ -1916,6 +1919,9 @@ L(less16bytes):
 	ret
 
 	.p2align 4
+#ifdef USE_AS_STRNCMP
+	CFI_PUSH (%ebp)
+#endif
 L(Byte0):
 #ifdef USE_AS_STRNCMP
 	cmp	$0, %ebp
@@ -1931,6 +1937,9 @@ L(Byte0):
 	ret
 
 	.p2align 4
+#ifdef USE_AS_STRNCMP
+	CFI_PUSH (%ebp)
+#endif
 L(Byte1):
 #ifdef USE_AS_STRNCMP
 	cmp	$1, %ebp
@@ -1946,6 +1955,9 @@ L(Byte1):
 	ret
 
 	.p2align 4
+#ifdef USE_AS_STRNCMP
+	CFI_PUSH (%ebp)
+#endif
 L(Byte2):
 #ifdef USE_AS_STRNCMP
 	cmp	$2, %ebp
@@ -1961,6 +1973,9 @@ L(Byte2):
 	ret
 
 	.p2align 4
+#ifdef USE_AS_STRNCMP
+	CFI_PUSH (%ebp)
+#endif
 L(Byte3):
 #ifdef USE_AS_STRNCMP
 	cmp	$3, %ebp
@@ -1976,6 +1991,9 @@ L(Byte3):
 	ret
 
 	.p2align 4
+#ifdef USE_AS_STRNCMP
+	CFI_PUSH (%ebp)
+#endif
 L(Byte4):
 #ifdef USE_AS_STRNCMP
 	cmp	$4, %ebp
@@ -1989,7 +2007,11 @@ L(Byte4):
 	POP	(%ebp)
 #endif
 	ret
+
 	.p2align 4
+#ifdef USE_AS_STRNCMP
+	CFI_PUSH (%ebp)
+#endif
 L(Byte5):
 #ifdef USE_AS_STRNCMP
 	cmp	$5, %ebp
@@ -2005,6 +2027,9 @@ L(Byte5):
 	ret
 
 	.p2align 4
+#ifdef USE_AS_STRNCMP
+	CFI_PUSH (%ebp)
+#endif
 L(Byte6):
 #ifdef USE_AS_STRNCMP
 	cmp	$6, %ebp
@@ -2020,6 +2045,9 @@ L(Byte6):
 	ret
 
 	.p2align 4
+#ifdef USE_AS_STRNCMP
+	CFI_PUSH (%ebp)
+#endif
 L(2next_8_bytes):
 	add	$8, %eax
 	add	$8, %edx
@@ -2063,6 +2091,9 @@ L(2next_8_bytes):
 #endif
 	ret
 
+#ifdef USE_AS_STRNCMP
+	CFI_PUSH (%ebp)
+#endif
 L(neq):
 	mov	$1, %eax
 	ja	L(neq_bigger)
@@ -2074,6 +2105,7 @@ L(neq_bigger):
 	ret
 
 #ifdef USE_AS_STRNCMP
+	cfi_remember_state
 L(more8byteseq):
 	POP	(%esi)
 	POP	(%edi)
@@ -2087,7 +2119,9 @@ L(eq):
 #endif
 	xorl	%eax, %eax
 	ret
+
 #ifdef USE_AS_STRNCMP
+	CFI_PUSH (%ebp)
 L(less16bytes_sncmp):
 	test	%ebp, %ebp
 	jz	L(eq)