diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2010-02-17 22:27:41 -0800 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2010-02-17 22:27:41 -0800 |
commit | 28be6098c306bcfcffc1a0b356b76c95c20dfddf (patch) | |
tree | 3cec9a5e8b509a68e805737e5ac085b58358f2c8 /sysdeps/i386 | |
parent | 82abe82ad7e24a1c1f350fa78ea23a3e6caadff5 (diff) | |
download | glibc-28be6098c306bcfcffc1a0b356b76c95c20dfddf.tar glibc-28be6098c306bcfcffc1a0b356b76c95c20dfddf.tar.gz glibc-28be6098c306bcfcffc1a0b356b76c95c20dfddf.tar.bz2 glibc-28be6098c306bcfcffc1a0b356b76c95c20dfddf.zip |
Simplify x86 strcmp-sse4 unwind info.
Diffstat (limited to 'sysdeps/i386')
-rw-r--r-- | sysdeps/i386/i686/multiarch/strcmp-sse4.S | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/sysdeps/i386/i686/multiarch/strcmp-sse4.S b/sysdeps/i386/i686/multiarch/strcmp-sse4.S index e26f434222..d5fd23e15c 100644 --- a/sysdeps/i386/i686/multiarch/strcmp-sse4.S +++ b/sysdeps/i386/i686/multiarch/strcmp-sse4.S @@ -40,6 +40,7 @@ # endif # define STR1 4 # define STR2 STR1+4 +# define RETURN ret; .p2align 4 #else # ifndef STRCMP # define STRCMP __strncmp_sse4_2 @@ -47,6 +48,7 @@ # define STR1 8 # define STR2 STR1+4 # define CNT STR2+4 +# define RETURN POP (%ebp); ret; .p2align 4; CFI_PUSH (%ebp) #endif .section .text.sse4.2,"ax",@progbits @@ -223,6 +225,7 @@ L(crosspage): add $16, %esi jmp L(check_offset) + .p2align 4 L(end): jnc L(ret) #ifdef USE_AS_STRNCMP @@ -242,6 +245,7 @@ L(ret): #endif ret + .p2align 4 cfi_restore_state #ifdef USE_AS_STRNCMP L(more16byteseq): @@ -251,27 +255,15 @@ L(more16byteseq): #endif L(eq): xorl %eax, %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) neg %eax L(neq_bigger): -#ifdef USE_AS_STRNCMP - POP (%ebp) -#endif - ret - .p2align 4 -#ifdef USE_AS_STRNCMP - CFI_PUSH (%ebp) -#endif + RETURN + L(less16bytes): add $0xfefefeff, %ecx jnc L(less4bytes) |