about summary refs log tree commit diff
path: root/sysdeps/i386
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2011-06-25 01:32:27 -0400
committerUlrich Drepper <drepper@gmail.com>2011-06-25 01:32:27 -0400
commitacb0d739c5801d3a27122d6aafdd282327c3996f (patch)
treeb72b14e0ecea4127bf9d2d4db380770d185d3920 /sysdeps/i386
parent8912479f9ea9f56dc188d3d00c4ba4259f600661 (diff)
downloadglibc-acb0d739c5801d3a27122d6aafdd282327c3996f.tar.gz
glibc-acb0d739c5801d3a27122d6aafdd282327c3996f.tar.xz
glibc-acb0d739c5801d3a27122d6aafdd282327c3996f.zip
Fix unwind info in 32bit SSE2/SSSE3 strncpy
Diffstat (limited to 'sysdeps/i386')
-rw-r--r--sysdeps/i386/i686/multiarch/strcpy-sse2.S2
-rw-r--r--sysdeps/i386/i686/multiarch/strcpy-ssse3.S4
2 files changed, 5 insertions, 1 deletions
diff --git a/sysdeps/i386/i686/multiarch/strcpy-sse2.S b/sysdeps/i386/i686/multiarch/strcpy-sse2.S
index fad1ae2b67..fcef748f02 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 577d11789c..75a1952e62 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