From 0e328c858adfe88356430f4822829cc60a239fc8 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 10 Jan 2004 18:08:28 +0000 Subject: Update. 2004-01-10 Andreas Jaeger * 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. --- ChangeLog | 8 ++++++++ sysdeps/unix/sysv/linux/x86_64/__start_context.S | 3 ++- sysdeps/unix/sysv/linux/x86_64/vfork.S | 4 +++- sysdeps/unix/x86_64/sysdep.S | 6 +++++- sysdeps/x86_64/strcspn.S | 4 +++- sysdeps/x86_64/strspn.S | 4 +++- 6 files changed, 24 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index f8c5633..b9023ae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2004-01-10 Andreas Jaeger + + * 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 * 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 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 , 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. */ diff --git a/sysdeps/unix/x86_64/sysdep.S b/sysdeps/unix/x86_64/sysdep.S index dfa92dc..d2c3d09 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 7afa86b..05d98d0 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 . Bug fixes by Alan Modra . @@ -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 76007cc..fa4abd1 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 . Bug fixes by Alan Modra . @@ -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 */ -- cgit v1.1