about summary refs log tree commit diff
path: root/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-03-10 05:25:48 +0000
committerUlrich Drepper <drepper@redhat.com>2004-03-10 05:25:48 +0000
commit8b9d605485be779bb03778e780e9875525ec2ca4 (patch)
tree38c566c233a1d11a10b2bb68a488dfd9e17e9b04 /nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S
parent9363dbb847a7e29d1abfffabc59fb142cf956df2 (diff)
downloadglibc-8b9d605485be779bb03778e780e9875525ec2ca4.tar.gz
glibc-8b9d605485be779bb03778e780e9875525ec2ca4.tar.xz
glibc-8b9d605485be779bb03778e780e9875525ec2ca4.zip
Update.
2004-02-09  Jakub Jelinek  <jakub@redhat.com>

	* posix/Makefile (tests): Add tst-vfork2.
	* posix/tst-vfork1.c (do_test): Fix comment.
	* posix/tst-vfork2.c: New test.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S6
1 files changed, 5 insertions, 1 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S b/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S
index 9e348683f3..f68d40439e 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S
@@ -20,7 +20,11 @@
 
 #define SAVE_PID \
 	movl	%fs:PID, %esi;						      \
-	movl	$-1, %fs:PID
+	movl	$0x80000000, %ecx;					      \
+	movl	%esi, %edx;						      \
+	negl	%edx;							      \
+	cmove	%ecx, %edx;						      \
+	movl	%edx, %fs:PID
 
 #define RESTORE_PID \
 	testq	%rax, %rax;						      \