diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-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 | ||||
-rw-r--r-- | sysdeps/unix/x86_64/sysdep.S | 6 | ||||
-rw-r--r-- | sysdeps/x86_64/strcspn.S | 4 | ||||
-rw-r--r-- | sysdeps/x86_64/strspn.S | 4 |
6 files changed, 24 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index f8c56339df..b9023aedc5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2004-01-10 Andreas Jaeger <aj@suse.de> + + * sysdeps/unix/sysv/linux/x86_64/__start_context.S: Add cfi directives. + * sysdeps/unix/x86_64/sysdep.S (__syscall_error): Likewise. + * sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise. + * sysdeps/x86_64/strcspn.S: Likewise. + * sysdeps/x86_64/strspn.S: Likewise. + 2004-01-08 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/x86_64/clone.S (__clone): Add cfi_endproc diff --git a/sysdeps/unix/sysv/linux/x86_64/__start_context.S b/sysdeps/unix/sysv/linux/x86_64/__start_context.S index a0ef3edcce..37d391760b 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 4810ba42b5..193b0bdff6 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. */ diff --git a/sysdeps/unix/x86_64/sysdep.S b/sysdeps/unix/x86_64/sysdep.S index dfa92dcd2c..d2c3d0916c 100644 --- a/sysdeps/unix/x86_64/sysdep.S +++ b/sysdeps/unix/x86_64/sysdep.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 @@ -57,10 +57,12 @@ notb: movl %eax, C_SYMBOL_NAME(errno) # else pushq %rax + cfi_adjust_cfa_offset(8) PUSH_ERRNO_LOCATION_RETURN call BP_SYM (__errno_location) POP_ERRNO_LOCATION_RETURN popq %rcx + cfi_adjust_cfa_offset(-8) movl %ecx, (%rax) # endif #else @@ -72,10 +74,12 @@ notb: movl %eax, (%rcx) # else pushq %rax + cfi_adjust_cfa_offset(8) PUSH_ERRNO_LOCATION_RETURN call C_SYMBOL_NAME (BP_SYM (__errno_location)@PLT) POP_ERRNO_LOCATION_RETURN popq %rcx + cfi_adjust_cfa_offset(-8) movl %ecx, (%rax) # endif #endif diff --git a/sysdeps/x86_64/strcspn.S b/sysdeps/x86_64/strcspn.S index 7afa86b47b..05d98d0200 100644 --- a/sysdeps/x86_64/strcspn.S +++ b/sysdeps/x86_64/strcspn.S @@ -1,7 +1,7 @@ /* strcspn (str, ss) -- Return the length of the initial segment of STR which contains no characters from SS. For AMD x86-64. - Copyright (C) 1994-1997, 2000, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1994-1997,2000,2002,2003,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>. Bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>. @@ -40,6 +40,7 @@ ENTRY (strcspn) table. */ movq %rdi, %r8 /* Save value. */ subq $256, %rsp /* Make space for 256 bytes. */ + cfi_adjust_cfa_offset(-256) movq $32, %rcx /* 32*8 bytes = 256 bytes. */ movq %rsp, %rdi xorq %rax, %rax /* We store 0s. */ @@ -110,6 +111,7 @@ L(6): incq %rax L(5): incq %rax L(4): addq $256, %rsp /* remove skipset */ + cfi_adjust_cfa_offset(-256) #if STRPBRK_P xorq %rdx,%rdx orb %cl, %cl /* was last character NUL? */ diff --git a/sysdeps/x86_64/strspn.S b/sysdeps/x86_64/strspn.S index 76007cc310..fa4abd1537 100644 --- a/sysdeps/x86_64/strspn.S +++ b/sysdeps/x86_64/strspn.S @@ -1,7 +1,7 @@ /* strspn (str, ss) -- Return the length of the initial segment of STR which contains only characters from SS. For AMD x86-64. - Copyright (C) 1994-1997, 2000, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1994-1997,2000,2002,2003,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>. Bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>. @@ -36,6 +36,7 @@ ENTRY (strspn) table. */ movq %rdi, %r8 /* Save value. */ subq $256, %rsp /* Make space for 256 bytes. */ + cfi_adjust_cfa_offset(256) movq $32, %rcx /* 32*8 bytes = 256 bytes. */ movq %rsp, %rdi xorq %rax, %rax /* We store 0s. */ @@ -106,6 +107,7 @@ L(6): incq %rax L(5): incq %rax L(4): addq $256, %rsp /* remove stopset */ + cfi_adjust_cfa_offset(-256) subq %rdx, %rax /* we have to return the number of valid characters, so compute distance to first non-valid character */ |