summaryrefslogtreecommitdiffstats
path: root/libc/arch-x86/syscalls/faccessat.S
diff options
context:
space:
mode:
authorChristopher Ferris <cferris@google.com>2014-05-29 18:17:09 -0700
committerChristopher Ferris <cferris@google.com>2014-05-29 19:04:36 -0700
commit15b91e92a0bb4a15b4f2258bea332f4a67fa94d7 (patch)
treeb83242c20fc59e1d5bc3420e9f8cbf2b5b6a1aae /libc/arch-x86/syscalls/faccessat.S
parent264d1b832510b746c1d45b5efaa33c164d6f8b2b (diff)
downloadbionic-15b91e92a0bb4a15b4f2258bea332f4a67fa94d7.zip
bionic-15b91e92a0bb4a15b4f2258bea332f4a67fa94d7.tar.gz
bionic-15b91e92a0bb4a15b4f2258bea332f4a67fa94d7.tar.bz2
Fix x86 cfi directives for syscalls.
The syscall generation always used 4 bytes for each push cfi directive. However, the first push should always use an offset of 8 bytes, each subsequent push after that is only 4 bytes though. Change-Id: Ibaabd107f399ef67010b9a08213783957c2f74a9
Diffstat (limited to 'libc/arch-x86/syscalls/faccessat.S')
-rw-r--r--libc/arch-x86/syscalls/faccessat.S13
1 files changed, 8 insertions, 5 deletions
diff --git a/libc/arch-x86/syscalls/faccessat.S b/libc/arch-x86/syscalls/faccessat.S
index 0ad6224..1f340f7 100644
--- a/libc/arch-x86/syscalls/faccessat.S
+++ b/libc/arch-x86/syscalls/faccessat.S
@@ -4,14 +4,17 @@
ENTRY(faccessat)
pushl %ebx
+ .cfi_def_cfa_offset 8
+ .cfi_rel_offset ebx, 0
pushl %ecx
+ .cfi_adjust_cfa_offset 4
+ .cfi_rel_offset ecx, 0
pushl %edx
+ .cfi_adjust_cfa_offset 4
+ .cfi_rel_offset edx, 0
pushl %esi
- .cfi_def_cfa_offset 16
- .cfi_rel_offset ebx, 0
- .cfi_rel_offset ecx, 4
- .cfi_rel_offset edx, 8
- .cfi_rel_offset esi, 12
+ .cfi_adjust_cfa_offset 4
+ .cfi_rel_offset esi, 0
mov 20(%esp), %ebx
mov 24(%esp), %ecx
mov 28(%esp), %edx