| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | /* * libc/sysdeps/linux/nios/vfork.S -- `vfork' syscall for linux/nios * *  Copyright (C) 2004  Microtronix Datacom Ltd * * This file is subject to the terms and conditions of the GNU Lesser * General Public License.  See the file COPYING.LIB in the main * directory of this archive for more details. *  * Written by Wentao Xu <wentao@microtronix.com> */#include <features.h>#include <bits/errno.h>#include <sys/syscall.h>#include "NM_Macros.S"#ifndef __NR_vfork#define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */#endif   .text   .align 2   .globl __vfork  .hidden __vfork  .type   __vfork,@function__vfork:	MOVIP	%g1, __NR_vfork	trap	63		bgen	%g1, 12	not		%g1			/* (unsigned long) -4096 */	cmp		%o0, %g1	skps	cc_hi	jmp		%o7	nop	fix_errno:	neg		%o0	save	%sp, -16	MOVIA	%g1, __errno_location@h	call	%g1	nop	st	[%o0], %i0		/* store errno */		xor %i0, %i0	subi %i0, 1		/* retval=-1 */	ret	restore.size __vfork,.-__vforkweak_alias(__vfork,vfork)libc_hidden_weak(vfork)
 |