xref: /plan9-contrib/sys/src/libc/arm/main9p.s (revision 6ca8a7e31df69aa273b57c9a8727a3aa1ead4d4b)
180ee5cbfSDavid du Colombier#define NPRIVATES	16
280ee5cbfSDavid du Colombier
37dd7cddfSDavid du Colombierarg=0
47dd7cddfSDavid du Colombiersp=13
57dd7cddfSDavid du Colombiersb=12
67dd7cddfSDavid du Colombier
780ee5cbfSDavid du ColombierTEXT	_mainp(SB), 1, $(16 + NPRIVATES*4)
87dd7cddfSDavid du Colombier	MOVW	$setR12(SB), R(sb)
9e288d156SDavid du Colombier	MOVW	R(arg), _tos(SB)
107dd7cddfSDavid du Colombier
1180ee5cbfSDavid du Colombier	MOVW	$p-64(SP), R1
1280ee5cbfSDavid du Colombier	MOVW	R1, _privates(SB)
1380ee5cbfSDavid du Colombier	MOVW	$NPRIVATES, R1
1480ee5cbfSDavid du Colombier	MOVW	R1, _nprivates(SB)
1580ee5cbfSDavid du Colombier
167dd7cddfSDavid du Colombier	BL	_profmain(SB)
1751480713SDavid du Colombier	MOVW	_tos(SB), R1
1851480713SDavid du Colombier	MOVW	4(R1), R0
1951480713SDavid du Colombier	MOVW	R0, 0(R1)
207dd7cddfSDavid du Colombier
217dd7cddfSDavid du Colombier	MOVW	$inargv+0(FP), R(arg)
227dd7cddfSDavid du Colombier	MOVW	R(arg), 8(R(sp))
237dd7cddfSDavid du Colombier	MOVW	inargc-4(FP), R(arg)
247dd7cddfSDavid du Colombier	MOVW	R(arg), 4(R(sp))
257dd7cddfSDavid du Colombier	BL	main(SB)
267dd7cddfSDavid du Colombierloop:
277dd7cddfSDavid du Colombier	MOVW	$_exitstr<>(SB), R(arg)
287dd7cddfSDavid du Colombier	MOVW	R(arg), 4(R(sp))
297dd7cddfSDavid du Colombier	BL	exits(SB)
307dd7cddfSDavid du Colombier	MOVW	$_div(SB), R(arg)	/* force loading of div */
317dd7cddfSDavid du Colombier	MOVW	$_profin(SB), R(arg)	/* force loading of profile */
327dd7cddfSDavid du Colombier	B	loop
337dd7cddfSDavid du Colombier
347dd7cddfSDavid du ColombierTEXT	_savearg(SB), 1, $0
357dd7cddfSDavid du Colombier	RET
367dd7cddfSDavid du Colombier
37*6ca8a7e3SDavid du ColombierTEXT	_callpc(SB), 1, $-4
38*6ca8a7e3SDavid du Colombier	MOVW	0(R13), R(arg)
397dd7cddfSDavid du Colombier	RET
407dd7cddfSDavid du Colombier
417dd7cddfSDavid du ColombierDATA	_exitstr<>+0(SB)/4, $"main"
427dd7cddfSDavid du ColombierGLOBL	_exitstr<>+0(SB), $5
43