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