diff options
author | Ulrich Drepper <drepper@redhat.com> | 2010-02-17 22:13:55 -0800 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2010-02-17 22:13:55 -0800 |
commit | 82abe82ad7e24a1c1f350fa78ea23a3e6caadff5 (patch) | |
tree | 69ee1575896203d4b02b168d293034d4ef96d56e /sysdeps/i386/i686/multiarch | |
parent | 951ca0c5ff38620c658be73701bcbc075ae4a53f (diff) | |
download | glibc-82abe82ad7e24a1c1f350fa78ea23a3e6caadff5.tar.gz glibc-82abe82ad7e24a1c1f350fa78ea23a3e6caadff5.tar.xz glibc-82abe82ad7e24a1c1f350fa78ea23a3e6caadff5.zip |
Fix and cleanup unwind info in x86 strcmp-ssse<F3>.
Diffstat (limited to 'sysdeps/i386/i686/multiarch')
-rw-r--r-- | sysdeps/i386/i686/multiarch/strcmp-ssse3.S | 87 |
1 files changed, 14 insertions, 73 deletions
diff --git a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S index 338b00339d..40994c05b1 100644 --- a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S +++ b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S @@ -40,6 +40,7 @@ # endif # define STR1 4 # define STR2 STR1+4 +# define RETURN ret; .p2align 4 # define UPDATE_STRNCMP_COUNTER #else # ifndef STRCMP @@ -48,7 +49,7 @@ # define STR1 8 # define STR2 STR1+4 # define CNT STR2+4 - +# define RETURN POP (%ebp); ret; .p2align 4; CFI_PUSH (%ebp) # define UPDATE_STRNCMP_COUNTER \ /* calculate left number to compare */ \ mov $16, %esi; \ @@ -1913,15 +1914,8 @@ L(less16bytes): movzx 7(%edx), %eax sub %ecx, %eax -#ifdef USE_AS_STRNCMP - POP (%ebp) -#endif - ret + RETURN - .p2align 4 -#ifdef USE_AS_STRNCMP - CFI_PUSH (%ebp) -#endif L(Byte0): #ifdef USE_AS_STRNCMP cmp $0, %ebp @@ -1931,15 +1925,8 @@ L(Byte0): movzx (%edx), %eax sub %ecx, %eax -#ifdef USE_AS_STRNCMP - POP (%ebp) -#endif - ret + RETURN - .p2align 4 -#ifdef USE_AS_STRNCMP - CFI_PUSH (%ebp) -#endif L(Byte1): #ifdef USE_AS_STRNCMP cmp $1, %ebp @@ -1949,15 +1936,8 @@ L(Byte1): movzx 1(%edx), %eax sub %ecx, %eax -#ifdef USE_AS_STRNCMP - POP (%ebp) -#endif - ret + RETURN - .p2align 4 -#ifdef USE_AS_STRNCMP - CFI_PUSH (%ebp) -#endif L(Byte2): #ifdef USE_AS_STRNCMP cmp $2, %ebp @@ -1967,15 +1947,8 @@ L(Byte2): movzx 2(%edx), %eax sub %ecx, %eax -#ifdef USE_AS_STRNCMP - POP (%ebp) -#endif - ret + RETURN - .p2align 4 -#ifdef USE_AS_STRNCMP - CFI_PUSH (%ebp) -#endif L(Byte3): #ifdef USE_AS_STRNCMP cmp $3, %ebp @@ -1985,15 +1958,8 @@ L(Byte3): movzx 3(%edx), %eax sub %ecx, %eax -#ifdef USE_AS_STRNCMP - POP (%ebp) -#endif - ret + RETURN - .p2align 4 -#ifdef USE_AS_STRNCMP - CFI_PUSH (%ebp) -#endif L(Byte4): #ifdef USE_AS_STRNCMP cmp $4, %ebp @@ -2003,15 +1969,8 @@ L(Byte4): movzx 4(%edx), %eax sub %ecx, %eax -#ifdef USE_AS_STRNCMP - POP (%ebp) -#endif - ret + RETURN - .p2align 4 -#ifdef USE_AS_STRNCMP - CFI_PUSH (%ebp) -#endif L(Byte5): #ifdef USE_AS_STRNCMP cmp $5, %ebp @@ -2021,15 +1980,8 @@ L(Byte5): movzx 5(%edx), %eax sub %ecx, %eax -#ifdef USE_AS_STRNCMP - POP (%ebp) -#endif - ret + RETURN - .p2align 4 -#ifdef USE_AS_STRNCMP - CFI_PUSH (%ebp) -#endif L(Byte6): #ifdef USE_AS_STRNCMP cmp $6, %ebp @@ -2039,15 +1991,8 @@ L(Byte6): movzx 6(%edx), %eax sub %ecx, %eax -#ifdef USE_AS_STRNCMP - POP (%ebp) -#endif - ret + RETURN - .p2align 4 -#ifdef USE_AS_STRNCMP - CFI_PUSH (%ebp) -#endif L(2next_8_bytes): add $8, %eax add $8, %edx @@ -2086,14 +2031,8 @@ L(2next_8_bytes): movzx 7(%edx), %eax sub %ecx, %eax -#ifdef USE_AS_STRNCMP - POP (%ebp) -#endif - ret + RETURN -#ifdef USE_AS_STRNCMP - CFI_PUSH (%ebp) -#endif L(neq): mov $1, %eax ja L(neq_bigger) @@ -2105,7 +2044,8 @@ L(neq_bigger): ret #ifdef USE_AS_STRNCMP - cfi_remember_state + .p2align 4 + cfi_restore_state L(more8byteseq): POP (%esi) POP (%edi) @@ -2121,6 +2061,7 @@ L(eq): ret #ifdef USE_AS_STRNCMP + .p2align 4 CFI_PUSH (%ebp) L(less16bytes_sncmp): test %ebp, %ebp |