xref: /plan9/sys/src/libc/power/main9p.s (revision 14cc0f535177405a84c5b73603a98e5db6674719)
180ee5cbfSDavid du Colombier#define NPRIVATES	16
280ee5cbfSDavid du Colombier
380ee5cbfSDavid du ColombierTEXT	_mainp(SB), 1, $(16 + NPRIVATES*4)
47dd7cddfSDavid du Colombier
57dd7cddfSDavid du Colombier	MOVW	$setSB(SB), R2
6*e288d156SDavid du Colombier	MOVW	R3, _tos(SB)
780ee5cbfSDavid du Colombier
89a747e4fSDavid du Colombier	MOVW	$p-64(SP), R4
99a747e4fSDavid du Colombier	MOVW	R4, _privates+0(SB)
109a747e4fSDavid du Colombier	MOVW	$16, R4
119a747e4fSDavid du Colombier	MOVW	R4, _nprivates+0(SB)
1280ee5cbfSDavid du Colombier
137dd7cddfSDavid du Colombier	BL	_profmain(SB)
14*e288d156SDavid du Colombier	MOVW	_tos(SB), R3
15*e288d156SDavid du Colombier	MOVW	4(R3), R4
16*e288d156SDavid du Colombier	MOVW	R4, 0(R3)
177dd7cddfSDavid du Colombier	MOVW	inargc-4(FP), R3
187dd7cddfSDavid du Colombier	MOVW	$inargv+0(FP), R4
197dd7cddfSDavid du Colombier	MOVW	R3, 4(R1)
207dd7cddfSDavid du Colombier	MOVW	R4, 8(R1)
217dd7cddfSDavid du Colombier	BL		main(SB)
227dd7cddfSDavid du Colombierloop:
237dd7cddfSDavid du Colombier	MOVW	$exits<>(SB), R3
247dd7cddfSDavid du Colombier	MOVW	R3, 4(R1)
257dd7cddfSDavid du Colombier	BL	exits(SB)
267dd7cddfSDavid du Colombier	MOVW	$_profin(SB), R3	/* force loading of profile */
277dd7cddfSDavid du Colombier	BR	loop
287dd7cddfSDavid du Colombier
297dd7cddfSDavid du ColombierTEXT	_savearg(SB), 1, $0
307dd7cddfSDavid du Colombier	RETURN
317dd7cddfSDavid du Colombier
327dd7cddfSDavid du ColombierTEXT	_callpc(SB), 1, $0
337dd7cddfSDavid du Colombier	MOVW	argp-4(FP), R3
347dd7cddfSDavid du Colombier	RETURN
357dd7cddfSDavid du Colombier
367dd7cddfSDavid du ColombierDATA	exits<>+0(SB)/4, $"main"
377dd7cddfSDavid du ColombierGLOBL	exits<>+0(SB), $5
38