xref: /csrg-svn/lib/libc/i386/sys/execle.s (revision 41016)
1*41016Swilliam/*-
2*41016Swilliam * Copyright (c) 1990 The Regents of the University of California.
3*41016Swilliam * All rights reserved.
4*41016Swilliam *
5*41016Swilliam * This code is derived from software contributed to Berkeley by
6*41016Swilliam * William Jolitz.
7*41016Swilliam *
8*41016Swilliam * %sccs.include.redist.c%
9*41016Swilliam */
10*41016Swilliam
11*41016Swilliam#if defined(SYSLIBC_SCCS) && !defined(lint)
12*41016Swilliam	.asciz "@(#)execle.s	5.1 (Berkeley) 04/23/90"
13*41016Swilliam#endif /* SYSLIBC_SCCS and not lint */
14*41016Swilliam
15*41016Swilliam#include "SYS.h"
16*41016Swilliam
17*41016SwilliamENTRY(execle)
18*41016Swilliam	lea	4(%esp),%eax
19*41016Swilliam1:
20*41016Swilliam	cmpl	$0,(%eax)
21*41016Swilliam	je	1f
22*41016Swilliam	addl	$4,%eax
23*41016Swilliam	jmp	1b
24*41016Swilliam1:
25*41016Swilliam	addl	$4,%eax
26*41016Swilliam	movl	(%eax),%eax
27*41016Swilliam	pushl	%eax		/* *envp */
28*41016Swilliam	lea	8+4(%esp),%eax
29*41016Swilliam	pushl	%eax		/* *ap */
30*41016Swilliam	movl	4+8(%esp),%eax
31*41016Swilliam	pushl	%eax		/* file */
32*41016Swilliam
33*41016Swilliam	call	_execve
34*41016Swilliam	addl	$12,%esp
35*41016Swilliam	ret			/* execle(file, arg1, arg2, ..., 0, env); */
36*41016Swilliam				/* execve (file, *ap, env) */
37