aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/i386/i686/memcmp.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386/i686/memcmp.S')
-rw-r--r--sysdeps/i386/i686/memcmp.S17
1 files changed, 12 insertions, 5 deletions
diff --git a/sysdeps/i386/i686/memcmp.S b/sysdeps/i386/i686/memcmp.S
index 4f1c7413fc..4bd5394bec 100644
--- a/sysdeps/i386/i686/memcmp.S
+++ b/sysdeps/i386/i686/memcmp.S
@@ -29,7 +29,8 @@
#define ENTRANCE pushl %ebx; cfi_adjust_cfa_offset (4); \
cfi_rel_offset (ebx, 0); ENTER
#define RETURN popl %ebx; cfi_adjust_cfa_offset (-4); \
- cfi_restore (ebx); LEAVE; ret
+ cfi_restore (ebx); LEAVE; ret; \
+ cfi_adjust_cfa_offset (4); cfi_rel_offset (ebx, 0);
/* Load an entry in a jump table into EBX. TABLE is a jump table
with relative offsets. INDEX is a register contains the index
@@ -79,6 +80,8 @@ L(neq):
sbbl $-1, %eax
RETURN
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (ebx, 0)
L(not_1):
jl L(bye) /* LEN == 0 */
@@ -137,8 +140,9 @@ L(0bytes):
xorl %eax, %eax
RETURN
- cfi_adjust_cfa_offset (4)
+ cfi_adjust_cfa_offset (8)
cfi_rel_offset (esi, 0)
+ cfi_rel_offset (ebx, 4)
L(29bytes):
movl -29(%esi), %eax
movl -29(%edx), %ecx
@@ -184,8 +188,9 @@ L(1bytes):
xorl %eax, %eax
RETURN
- cfi_adjust_cfa_offset (4)
+ cfi_adjust_cfa_offset (8)
cfi_rel_offset (esi, 0)
+ cfi_rel_offset (ebx, 4)
L(30bytes):
movl -30(%esi), %eax
movl -30(%edx), %ecx
@@ -234,8 +239,9 @@ L(2bytes):
xorl %eax, %eax
RETURN
- cfi_adjust_cfa_offset (4)
+ cfi_adjust_cfa_offset (8)
cfi_rel_offset (esi, 0)
+ cfi_rel_offset (ebx, 4)
L(31bytes):
movl -31(%esi), %eax
movl -31(%edx), %ecx
@@ -287,8 +293,9 @@ L(3bytes):
xorl %eax, %eax
RETURN
- cfi_adjust_cfa_offset (4)
+ cfi_adjust_cfa_offset (8)
cfi_rel_offset (esi, 0)
+ cfi_rel_offset (ebx, 4)
ALIGN (4)
/* ECX >= 32. */
L(32bytesormore):