summaryrefslogtreecommitdiffstats
path: root/libc/arch-x86/bionic/syscall.S
diff options
context:
space:
mode:
Diffstat (limited to 'libc/arch-x86/bionic/syscall.S')
-rw-r--r--libc/arch-x86/bionic/syscall.S16
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)