about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-06-08 08:16:08 +0000
committerUlrich Drepper <drepper@redhat.com>2003-06-08 08:16:08 +0000
commit3e36c37d35827f060ee432712ba7fc0945e95a5b (patch)
tree5671c4c4d46e5bf397359c3838d4b69e36098eed
parentbcd5f356674dc28b77044d087da00d197386e0e1 (diff)
downloadglibc-3e36c37d35827f060ee432712ba7fc0945e95a5b.tar.gz
glibc-3e36c37d35827f060ee432712ba7fc0945e95a5b.tar.xz
glibc-3e36c37d35827f060ee432712ba7fc0945e95a5b.zip
Update.
2003-06-08  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
	hand-written CFI generation code.  Since ENTRY/END also initiated
	CFI frames this caused two CFI sets to be generated.
-rw-r--r--nptl/ChangeLog6
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h109
2 files changed, 14 insertions, 101 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index aa18be29a2..9161f586b6 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,9 @@
+2003-06-08  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
+	hand-written CFI generation code.  Since ENTRY/END also initiated
+	CFI frames this caused two CFI sets to be generated.
+
 2003-06-07  Ulrich Drepper  <drepper@redhat.com>
 
 	* cleanup_routine.c: New file.
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h
index 7e7bc49073..8173b39581 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h
@@ -29,7 +29,6 @@
 # define PSEUDO(name, syscall_name, args)				      \
   .text;								      \
   ENTRY (name)								      \
-  L(name##START):							      \
     SINGLE_THREAD_P;							      \
     jne L(pseudo_cancel);						      \
     DO_CALL (syscall_name, args);					      \
@@ -55,100 +54,8 @@
     RESTSTK_##args							      \
     cmpq $-4095, %rax;							      \
     jae SYSCALL_ERROR_LABEL;						      \
-  L(pseudo_end):							      \
-									      \
-  /* Create unwinding information for the syscall wrapper.  */		      \
-  .section .eh_frame,"a",@progbits;					      \
-  L(STARTFRAME):							      \
-    /* Length of the CIE.  */						      \
-    .long L(ENDCIE)-L(STARTCIE);					      \
-  L(STARTCIE):								      \
-    /* CIE ID.  */							      \
-    .long 0;								      \
-    /* Version number.  */						      \
-    .byte 1;								      \
-    /* NUL-terminated augmentation string.  Note "z" means there is an	      \
-       augmentation value later on.  */					      \
-    .string "zR";							      \
-    /* Code alignment factor.  */					      \
-    .uleb128 1;								      \
-    /* Data alignment factor.  */					      \
-    .sleb128 -8;							      \
-    /* Return address register column.  */				      \
-    .byte 16;								      \
-    /* Augmentation value length.  */					      \
-    .uleb128 1;								      \
-    /* Encoding: DW_EH_PE_pcrel + DW_EH_PE_sdata4.  */			      \
-    .byte 0x1b;								      \
-    /* Start of the table initialization.  */				      \
-    .byte 0xc;								      \
-    .uleb128 7;								      \
-    .uleb128 8;								      \
-    .byte 0x90;								      \
-    .uleb128 1;								      \
-    .align 8;								      \
-  L(ENDCIE):								      \
-    /* Length of the FDE.  */						      \
-    .long L(ENDFDE)-L(STARTFDE);					      \
-  L(STARTFDE):								      \
-    /* CIE pointer.  */							      \
-    .long L(STARTFDE)-L(STARTFRAME);					      \
-    /* PC-relative start address of the code.  */			      \
-    .long L(name##START)-.;						      \
-    /* Length of the code.  */						      \
-    .long L(name##END)-L(name##START);					      \
-    /* No augmentation data.  */					      \
-    .uleb128 0;								      \
-    /* The rest of the code depends on the number of parameters the syscall   \
-       takes.  */							      \
-    EH_FRAME_##args(name);						      \
-    .align 4;								      \
-  L(ENDFDE):								      \
-  .previous
-
-# define EH_FRAME_0(name) \
-    .byte 4;								      \
-    .long L(SAVESTK)-L(name##START);					      \
-    .byte 14;								      \
-    .uleb128 32;							      \
-    .byte 4;								      \
-    .long L(RESTSTK)-L(SAVESTK);					      \
-    .byte 14;								      \
-    .uleb128 8;								      \
-    .align 8
-
-# define EH_FRAME_1(name) EH_FRAME_0 (name)
-# define EH_FRAME_2(name) EH_FRAME_1 (name)
-
-# define EH_FRAME_3(name) \
-    .byte 4;								      \
-    .long L(SAVESTK)-L(name##START);					      \
-    .byte 14;								      \
-    .uleb128 48;							      \
-    .byte 4;								      \
-    .long L(RESTSTK)-L(SAVESTK);					      \
-    .byte 14;								      \
-    .uleb128 8;								      \
-    .align 8
-
-# define EH_FRAME_4(name) EH_FRAME_3 (name)
-
-# define EH_FRAME_5(name) \
-    .byte 4;								      \
-    .long L(SAVESTK)-L(name##START);					      \
-    .byte 14;								      \
-    .uleb128 64;							      \
-    .byte 4;								      \
-    .long L(RESTSTK)-L(SAVESTK);					      \
-    .byte 14;								      \
-    .uleb128 8;								      \
-    .align 8
-
-# define EH_FRAME_6(name) EH_FRAME_5 (name)
-
-
-# undef ASM_SIZE_DIRECTIVE
-# define ASM_SIZE_DIRECTIVE(name) L(name##END): .size name,.-name;
+  L(pseudo_end):
+
 
 # define PUSHARGS_0	/* Nothing.  */
 # define PUSHARGS_1	PUSHARGS_0 movq %rdi, 8(%rsp);
@@ -167,20 +74,20 @@
 # define POPARGS_6	POPARGS_5 movq 48(%rsp), %r9;
 
 /* We always have to align the stack before calling a function.  */
-# define SAVESTK_0	subq $24, %rsp; L(SAVESTK):
+# define SAVESTK_0	subq $24, %rsp; cfi_adjust_cfa_offset (24);
 # define SAVESTK_1	SAVESTK_0
 # define SAVESTK_2	SAVESTK_1
-# define SAVESTK_3	subq $40, %rsp; L(SAVESTK):
+# define SAVESTK_3	subq $40, %rsp; cfi_adjust_cfa_offset (40);
 # define SAVESTK_4	SAVESTK_3
-# define SAVESTK_5	subq $56, %rsp; L(SAVESTK):
+# define SAVESTK_5	subq $56, %rsp; cfi_adjust_cfa_offset (56);
 # define SAVESTK_6	SAVESTK_5
 
-# define RESTSTK_0	addq $24,%rsp; L(RESTSTK):
+# define RESTSTK_0	addq $24,%rsp; cfi_adjust_cfa_offset (-24);
 # define RESTSTK_1	RESTSTK_0
 # define RESTSTK_2	RESTSTK_1
-# define RESTSTK_3	addq $40, %rsp; L(RESTSTK):
+# define RESTSTK_3	addq $40, %rsp; cfi_adjust_cfa_offset (-40);
 # define RESTSTK_4	RESTSTK_3
-# define RESTSTK_5	addq $56, %rsp; L(RESTSTK):
+# define RESTSTK_5	addq $56, %rsp; cfi_adjust_cfa_offset (-56);
 # define RESTSTK_6	RESTSTK_5
 
 # ifdef IS_IN_libpthread