diff options
Diffstat (limited to 'libc/arch-x86/bionic/syscall.S')
-rw-r--r-- | libc/arch-x86/bionic/syscall.S | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libc/arch-x86/bionic/syscall.S b/libc/arch-x86/bionic/syscall.S index f85ec39..2a15102 100644 --- a/libc/arch-x86/bionic/syscall.S +++ b/libc/arch-x86/bionic/syscall.S @@ -15,9 +15,17 @@ ENTRY(syscall) # Push the callee save registers. push %ebx + .cfi_adjust_cfa_offset 4 + .cfi_rel_offset ebx, 0 push %esi + .cfi_adjust_cfa_offset 4 + .cfi_rel_offset esi, 0 push %edi + .cfi_adjust_cfa_offset 4 + .cfi_rel_offset edi, 0 push %ebp + .cfi_adjust_cfa_offset 4 + .cfi_rel_offset ebp, 0 # Load all the arguments from the calling frame. # (Not all will be valid, depending on the syscall.) @@ -43,8 +51,16 @@ ENTRY(syscall) 1: # Restore the callee save registers. pop %ebp + .cfi_adjust_cfa_offset -4 + .cfi_restore ebp pop %edi + .cfi_adjust_cfa_offset -4 + .cfi_restore edi pop %esi + .cfi_adjust_cfa_offset -4 + .cfi_restore esi pop %ebx + .cfi_adjust_cfa_offset -4 + .cfi_restore ebx ret END(syscall) |