xref: /plan9-contrib/sys/src/ape/lib/ap/power/main9p.s (revision d2fd7a449ba15afc3f4999c6b00b9a2264c19913)
1#define NPRIVATES	16
2
3GLOBL	_tos(SB), $4
4GLOBL	_privates(SB), $4
5GLOBL	_nprivates(SB), $4
6
7TEXT	_mainp(SB), 1, $(3*4+NPRIVATES*4)
8
9	MOVW	$setSB(SB), R2
10
11	/* _tos = arg */
12	MOVW	R3, _tos(SB)
13	MOVW	$8(SP), R1
14	MOVW	R1, _privates(SB)
15	MOVW	$NPRIVATES, R1
16	MOVW	R1, _nprivates(SB)
17
18	/* _profmain(); */
19	BL	_envsetup(SB)
20
21	/* _tos->prof.pp = _tos->prof.next; */
22	MOVW	_tos+0(SB),R1
23	MOVW	4(R1),R2
24	MOVW	R2,(R1)
25
26	/* main(argc, argv, environ); */
27	MOVW	inargc-4(FP), R3
28	MOVW	$inargv+0(FP), R4
29	MOVW	environ(SB), R5
30	MOVW	R3, 4(R1)
31	MOVW	R4, 8(R1)
32	MOVW	R5, 12(R1)
33	BL	main(SB)
34loop:
35	MOVW	R3, 4(R1)
36	BL	exit(SB)
37	MOVW	$_profin(SB), R4	/* force loading of profile */
38	BR	loop
39
40TEXT	_savearg(SB), 1, $0
41	RETURN
42
43TEXT	_callpc(SB), 1, $0
44	MOVW	argp+0(FP), R3
45	MOVW	4(R3), R3
46	RETURN
47