xref: /plan9-contrib/sys/src/libc/spim/main9p.s (revision 12b1df16f1a9233fb47d4260d51ef450cc19c368)
1*12b1df16SDavid du Colombier#define NPRIVATES	16
2*12b1df16SDavid du Colombier
3*12b1df16SDavid du ColombierTEXT	_mainp(SB), 1, $(16 + NPRIVATES*4)
4*12b1df16SDavid du Colombier
5*12b1df16SDavid du Colombier	MOVW	$setR30(SB), R30
6*12b1df16SDavid du Colombier	/* _tos = arg */
7*12b1df16SDavid du Colombier	MOVW	R1, _tos(SB)
8*12b1df16SDavid du Colombier
9*12b1df16SDavid du Colombier	MOVW	$p-64(SP), R1
10*12b1df16SDavid du Colombier	MOVW	R1, _privates(SB)
11*12b1df16SDavid du Colombier	MOVW	$NPRIVATES, R1
12*12b1df16SDavid du Colombier	MOVW	R1, _nprivates(SB)
13*12b1df16SDavid du Colombier
14*12b1df16SDavid du Colombier	/* _profmain(); */
15*12b1df16SDavid du Colombier	JAL	_profmain(SB)
16*12b1df16SDavid du Colombier	/* _tos->prof.pp = _tos->prof.next; */
17*12b1df16SDavid du Colombier	MOVW	_tos(SB), R1
18*12b1df16SDavid du Colombier	MOVW	4(R1), R2
19*12b1df16SDavid du Colombier	MOVW	R2, 0(R1)
20*12b1df16SDavid du Colombier	/* main(argc, argv); */
21*12b1df16SDavid du Colombier	MOVW	inargc-4(FP), R1
22*12b1df16SDavid du Colombier	MOVW	$inargv+0(FP), R2
23*12b1df16SDavid du Colombier	MOVW	R1, 4(R29)
24*12b1df16SDavid du Colombier	MOVW	R2, 8(R29)
25*12b1df16SDavid du Colombier	JAL	main(SB)
26*12b1df16SDavid du Colombierloop:
27*12b1df16SDavid du Colombier	MOVW	$exits<>(SB), R1
28*12b1df16SDavid du Colombier	MOVW	R1, 4(R29)
29*12b1df16SDavid du Colombier	JAL	exits(SB)
30*12b1df16SDavid du Colombier	MOVW	$_profin(SB), R0	/* force loading of profile */
31*12b1df16SDavid du Colombier	JMP	loop
32*12b1df16SDavid du Colombier
33*12b1df16SDavid du ColombierTEXT	_savearg(SB), 1, $0
34*12b1df16SDavid du Colombier	RET
35*12b1df16SDavid du Colombier
36*12b1df16SDavid du ColombierTEXT	_callpc(SB), 1, $0
37*12b1df16SDavid du Colombier	MOVW	argp-4(FP), R1
38*12b1df16SDavid du Colombier	RET
39*12b1df16SDavid du Colombier
40*12b1df16SDavid du ColombierDATA	exits<>+0(SB)/4, $"main"
41*12b1df16SDavid du ColombierGLOBL	exits<>+0(SB), $5
42