This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: Fix unwind info in 32bit SSE2/SSSE3 strncpy


Hi,

This patch fixes unwind info in 32bit SSE2/SSSE3 strncpy.


H.J.
---
2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>

	* sysdeps/i386/i686/multiarch/strcpy-sse2.S (RETURN): Fix a typo.

	* sysdeps/i386/i686/multiarch/strcpy-ssse3.S: Correct unwind
	info.

diff --git a/sysdeps/i386/i686/multiarch/strcpy-sse2.S b/sysdeps/i386/i686/multiarch/strcpy-sse2.S
index fad1ae2..fcef748 100644
--- a/sysdeps/i386/i686/multiarch/strcpy-sse2.S
+++ b/sysdeps/i386/i686/multiarch/strcpy-sse2.S
@@ -47,7 +47,7 @@
 #  define PARMS  16
 #  define ENTRANCE PUSH(%ebx); PUSH(%esi); PUSH(%edi)
 #  define RETURN  POP(%edi); POP(%esi); POP(%ebx); ret;          \
-	CFI_PUSH(%ebx); CFI_PUSH(%edi); CFI_PUSH(%edi);
+	CFI_PUSH(%ebx); CFI_PUSH(%esi); CFI_PUSH(%edi);
 
 # ifdef SHARED
 #  define JMPTBL(I, B)	I - B
diff --git a/sysdeps/i386/i686/multiarch/strcpy-ssse3.S b/sysdeps/i386/i686/multiarch/strcpy-ssse3.S
index 577d117..75a1952 100644
--- a/sysdeps/i386/i686/multiarch/strcpy-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/strcpy-ssse3.S
@@ -3220,6 +3220,8 @@ L(ExitTail16):
 # endif
 	RETURN
 # ifdef USE_AS_STRNCPY
+	CFI_PUSH (%esi)
+	CFI_PUSH (%edi)
 L(StrncpyLeaveCase2OrCase3):
 	test	%eax, %eax
 	jnz	L(Aligned64LeaveCase2)
@@ -3978,6 +3980,8 @@ L(StrncpyExit15):
 	lea	1(%esi), %esi
 	jmp	L(CopyFrom1To16BytesCase3)
 
+	CFI_POP (%esi)
+	CFI_POP (%edi)
 	.p2align 4
 L(ExitTail0):
 	movl	%edx, %eax


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]