[Glibc-bsd-commits] r1570 -
trunk/glibc-2.3-head/sysdeps/kfreebsd/i386
Petr Salinger
ps-guest at costa.debian.org
Sun May 21 19:24:01 UTC 2006
Author: ps-guest
Date: 2006-05-21 19:24:00 +0000 (Sun, 21 May 2006)
New Revision: 1570
Modified:
trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/rfork.S
trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/start_thread.S
trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/syscall.S
trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/vfork.S
Log:
cfi marking
Modified: trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/rfork.S
===================================================================
--- trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/rfork.S 2006-05-17 09:43:59 UTC (rev 1569)
+++ trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/rfork.S 2006-05-21 19:24:00 UTC (rev 1570)
@@ -33,6 +33,7 @@
andl %edx, %eax
popl %edx
+ cfi_adjust_cfa_offset(-4)
jmp *%ecx
L(pseudo_end):
Modified: trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/start_thread.S
===================================================================
--- trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/start_thread.S 2006-05-17 09:43:59 UTC (rev 1569)
+++ trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/start_thread.S 2006-05-21 19:24:00 UTC (rev 1570)
@@ -28,6 +28,10 @@
.text
ENTRY (__start_thread)
+ /* End FDE now, because in the child the unwind info will be
+ wrong. */
+ cfi_endproc
+
/* There is a window of a few instructions, right after the rfork
system call, where the handling of a signal would write garbage
into the stack shared by the parent and the child (assuming
@@ -199,4 +203,5 @@
popl %ebx
popl %ebp
jmp SYSCALL_ERROR_LABEL
+ cfi_startproc
PSEUDO_END (__start_thread)
Modified: trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/syscall.S
===================================================================
--- trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/syscall.S 2006-05-17 09:43:59 UTC (rev 1569)
+++ trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/syscall.S 2006-05-21 19:24:00 UTC (rev 1570)
@@ -21,9 +21,11 @@
.text;
ENTRY (syscall)
popl %ecx /* Pop return address into %ecx. */
+ cfi_adjust_cfa_offset (-4)
movl 0(%esp), %eax /* Load syscall number into %eax. */
int $0x80 /* Do the system call. */
pushl %ecx /* Push back return address. */
+ cfi_adjust_cfa_offset (4)
jb SYSCALL_ERROR_LABEL; /* Jump to error handler if error. */
L(pseudo_end):
Modified: trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/vfork.S
===================================================================
--- trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/vfork.S 2006-05-17 09:43:59 UTC (rev 1569)
+++ trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/vfork.S 2006-05-21 19:24:00 UTC (rev 1570)
@@ -27,6 +27,7 @@
/* Pop the return PC value into ECX. */
popl %ecx
+ cfi_adjust_cfa_offset(-4)
/* Perform the system call. */
DO_CALL (vfork, 0)
@@ -45,6 +46,7 @@
L(error):
/* Push back the return PC. */
pushl %ecx
+ cfi_adjust_cfa_offset(4)
/* Branch to the error handler, hidden in PSEUDO_END. */
jmp SYSCALL_ERROR_LABEL
More information about the Glibc-bsd-commits
mailing list