xref: /plan9/sys/src/9/rb/initcode (revision f43f8ee646e2cb29aea7fd7bb5fc7318a3f4921f)
1*f43f8ee6SDavid du Colombier#include "/sys/src/libc/9syscall/sys.h"
2*f43f8ee6SDavid du Colombier
3*f43f8ee6SDavid du Colombier/*
4*f43f8ee6SDavid du Colombier *  we pass in the argument of the exec parameters as 0(FP)
5*f43f8ee6SDavid du Colombier */
6*f43f8ee6SDavid du Colombier
7*f43f8ee6SDavid du ColombierTEXT	main(SB),$8
8*f43f8ee6SDavid du Colombier
9*f43f8ee6SDavid du Colombier	MOVW	$setR30(SB), R30
10*f43f8ee6SDavid du Colombier
11*f43f8ee6SDavid du Colombier	MOVW	$boot(SB), R1
12*f43f8ee6SDavid du Colombier	ADD	$12, R29, R2	/* get a pointer to 0(FP) */
13*f43f8ee6SDavid du Colombier	MOVW	R1, 4(R29)
14*f43f8ee6SDavid du Colombier	MOVW	R2, 8(R29)
15*f43f8ee6SDavid du Colombier	JAL	exec(SB)
16*f43f8ee6SDavid du Colombier
17*f43f8ee6SDavid du Colombier	MOVW	$(1<<4), R1
18*f43f8ee6SDavid du Colombier	MOVW	R1, 4(R29)
19*f43f8ee6SDavid du Colombier	MOVW	$RFORK, R1
20*f43f8ee6SDavid du Colombier	SYSCALL
21*f43f8ee6SDavid du Colombier	MOVW	$RFORK, R1
22*f43f8ee6SDavid du Colombier	SYSCALL
23*f43f8ee6SDavid du Colombier	MOVW	$RFORK, R1
24*f43f8ee6SDavid du Colombier	SYSCALL
25*f43f8ee6SDavid du Colombieragain:
26*f43f8ee6SDavid du Colombier	ADDU	$1, R2
27*f43f8ee6SDavid du Colombier	MOVW	$0, R1	/* print r1 */
28*f43f8ee6SDavid du Colombier	SYSCALL
29*f43f8ee6SDavid du Colombier	MOVW	$5000000, R3
30*f43f8ee6SDavid du Colombierfoo:
31*f43f8ee6SDavid du Colombier	SUBU	$1, R3
32*f43f8ee6SDavid du Colombier	BNE	R3, foo
33*f43f8ee6SDavid du Colombier	JMP	again
34*f43f8ee6SDavid du Colombier
35*f43f8ee6SDavid du ColombierTEXT	exec(SB), $0
36*f43f8ee6SDavid du Colombier	MOVW	$EXEC, R1
37*f43f8ee6SDavid du Colombier	SYSCALL
38*f43f8ee6SDavid du Colombier	RET
39*f43f8ee6SDavid du Colombier
40*f43f8ee6SDavid du ColombierDATA	boot+0(SB)/5,$"/boot"
41*f43f8ee6SDavid du ColombierDATA	boot+5(SB)/5,$"/boot"
42*f43f8ee6SDavid du ColombierDATA	bootv+0(SB)/4,$boot+6(SB)
43*f43f8ee6SDavid du ColombierGLOBL	boot+0(SB),$11
44*f43f8ee6SDavid du ColombierGLOBL	bootv+0(SB),$8
45