diff options
Diffstat (limited to 'sysdeps/i386/i686/memcmp.S')
-rw-r--r-- | sysdeps/i386/i686/memcmp.S | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/sysdeps/i386/i686/memcmp.S b/sysdeps/i386/i686/memcmp.S index 29aa546..4f1c741 100644 --- a/sysdeps/i386/i686/memcmp.S +++ b/sysdeps/i386/i686/memcmp.S @@ -26,8 +26,10 @@ #define BLK1 PARMS #define BLK2 BLK1+PTR_SIZE #define LEN BLK2+PTR_SIZE -#define ENTRANCE pushl %ebx; ENTER -#define RETURN popl %ebx; LEAVE; ret +#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 /* Load an entry in a jump table into EBX. TABLE is a jump table with relative offsets. INDEX is a register contains the index @@ -81,7 +83,9 @@ L(not_1): jl L(bye) /* LEN == 0 */ pushl %esi + cfi_adjust_cfa_offset (4) movl %eax, %esi + cfi_rel_offset (esi, 0) cmpl $32, %ecx; jge L(32bytesormore) /* LEN => 32 */ @@ -128,9 +132,13 @@ L(4bytes): jne L(find_diff) L(0bytes): popl %esi + cfi_adjust_cfa_offset (-4) + cfi_restore (esi) xorl %eax, %eax RETURN + cfi_adjust_cfa_offset (4) + cfi_rel_offset (esi, 0) L(29bytes): movl -29(%esi), %eax movl -29(%edx), %ecx @@ -171,9 +179,13 @@ L(1bytes): cmpb -1(%edx), %al jne L(set) popl %esi + cfi_adjust_cfa_offset (-4) + cfi_restore (esi) xorl %eax, %eax RETURN + cfi_adjust_cfa_offset (4) + cfi_rel_offset (esi, 0) L(30bytes): movl -30(%esi), %eax movl -30(%edx), %ecx @@ -217,9 +229,13 @@ L(2bytes): cmpl %ecx, %eax jne L(set) popl %esi + cfi_adjust_cfa_offset (-4) + cfi_restore (esi) xorl %eax, %eax RETURN + cfi_adjust_cfa_offset (4) + cfi_rel_offset (esi, 0) L(31bytes): movl -31(%esi), %eax movl -31(%edx), %ecx @@ -266,9 +282,13 @@ L(3bytes): cmpb -1(%edx), %al jne L(set) popl %esi + cfi_adjust_cfa_offset (-4) + cfi_restore (esi) xorl %eax, %eax RETURN + cfi_adjust_cfa_offset (4) + cfi_rel_offset (esi, 0) ALIGN (4) /* ECX >= 32. */ L(32bytesormore): @@ -349,6 +369,8 @@ L(set): sbbl %eax, %eax sbbl $-1, %eax popl %esi + cfi_adjust_cfa_offset (-4) + cfi_restore (esi) RETURN END (BP_SYM (memcmp)) |