xref: /plan9/sys/src/9/ppc/init9.s (revision 458db83292ea45506704800dedf36a95598fc2ec)
1/* this is the same as a c program:
2 * main(char *argv0){
3 *	startboot(argv0, &argv0);
4 * }
5 *
6 * it is in asm because we need to set the SB before
7 * doing it and the only way to do this in c drags in
8 * too many other routines.
9 */
10
11TEXT	_main(SB),$8
12
13	MOVW	$setSB(SB), R2
14
15	/* make a frame */
16	SUB	$16,R1
17
18	/* argv0 is already passed to us in R3 so it is already the first arg */
19
20	/* copy argv0 into the stack and push its address as the second arg */
21	MOVW	R3,0x14(R1)
22	ADD	$0x14,R1,R6
23	MOVW	R6,0x8(R1)
24
25	BL	startboot(SB)
26
27	/* should never get here */
28loop:
29	BR	loop
30