diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/__start_context.S | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/vfork.S | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/sysdeps/unix/sysv/linux/x86_64/__start_context.S b/sysdeps/unix/sysv/linux/x86_64/__start_context.S index a0ef3ed..37d3917 100644 --- a/sysdeps/unix/sysv/linux/x86_64/__start_context.S +++ b/sysdeps/unix/sysv/linux/x86_64/__start_context.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger <aj@suse.de>, 2002. @@ -33,6 +33,7 @@ ENTRY(__start_context) movq %rbx, %rsp popq %rdi /* This is the next context. */ + cfi_adjust_cfa_offset(-8) testq %rdi, %rdi je 2f /* If it is zero exit. */ diff --git a/sysdeps/unix/sysv/linux/x86_64/vfork.S b/sysdeps/unix/sysv/linux/x86_64/vfork.S index 4810ba4..193b0bd 100644 --- a/sysdeps/unix/sysv/linux/x86_64/vfork.S +++ b/sysdeps/unix/sysv/linux/x86_64/vfork.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -30,6 +30,7 @@ ENTRY (__vfork) /* Pop the return PC value into RDI. We need a register that is preserved by the syscall and that we're allowed to destroy. */ popq %rdi + cfi_adjust_cfa_offset(-8) /* Stuff the syscall number in RAX and enter into the kernel. */ movl $SYS_ify (vfork), %eax @@ -37,6 +38,7 @@ ENTRY (__vfork) /* Push back the return PC. */ pushq %rdi + cfi_adjust_cfa_offset(8) cmpl $-4095, %eax jae SYSCALL_ERROR_LABEL /* Branch forward if it failed. */ |