xref: /plan9-contrib/sys/src/ape/lib/ap/spim/main9p.s (revision 12b1df16f1a9233fb47d4260d51ef450cc19c368)
1*12b1df16SDavid du Colombier#define NPRIVATES	16
2*12b1df16SDavid du Colombier
3*12b1df16SDavid du ColombierGLOBL	_tos(SB), $4
4*12b1df16SDavid du ColombierGLOBL	_privates(SB), $4
5*12b1df16SDavid du ColombierGLOBL	_nprivates(SB), $4
6*12b1df16SDavid du Colombier
7*12b1df16SDavid du ColombierTEXT	_mainp(SB), 1, $(3*4+NPRIVATES*4)
8*12b1df16SDavid du Colombier	MOVW	$setR30(SB), R30
9*12b1df16SDavid du Colombier
10*12b1df16SDavid du Colombier	/* _tos = arg */
11*12b1df16SDavid du Colombier	MOVW	R1, _tos(SB)
12*12b1df16SDavid du Colombier/*
13*12b1df16SDavid du Colombier	MOVW	$0,FCR31
14*12b1df16SDavid du Colombier	NOR	R0,R0
15*12b1df16SDavid du Colombier	MOVD	$0.5, F26
16*12b1df16SDavid du Colombier	SUBD	F26, F26, F24
17*12b1df16SDavid du Colombier	ADDD	F26, F26, F28
18*12b1df16SDavid du Colombier	ADDD	F28, F28, F30
19*12b1df16SDavid du Colombier*/
20*12b1df16SDavid du Colombier	MOVW	$8(SP), R1
21*12b1df16SDavid du Colombier	MOVW	R1, _privates(SB)
22*12b1df16SDavid du Colombier	MOVW	$NPRIVATES, R1
23*12b1df16SDavid du Colombier	MOVW	R1, _nprivates(SB)
24*12b1df16SDavid du Colombier
25*12b1df16SDavid du Colombier	/* _profmain(); */
26*12b1df16SDavid du Colombier	JAL	_profmain(SB)
27*12b1df16SDavid du Colombier
28*12b1df16SDavid du Colombier	/* _tos->prof.pp = _tos->prof.next; */
29*12b1df16SDavid du Colombier	MOVW	_tos+0(SB),R1
30*12b1df16SDavid du Colombier	MOVW	4(R1),R2
31*12b1df16SDavid du Colombier	MOVW	R2,(R1)
32*12b1df16SDavid du Colombier
33*12b1df16SDavid du Colombier	JAL	_envsetup(SB)
34*12b1df16SDavid du Colombier
35*12b1df16SDavid du Colombier	/* main(argc, argv, environ); */
36*12b1df16SDavid du Colombier	MOVW	inargc-4(FP), R1
37*12b1df16SDavid du Colombier	MOVW	$inargv+0(FP), R2
38*12b1df16SDavid du Colombier	MOVW	environ(SB), R3
39*12b1df16SDavid du Colombier	MOVW	R1, 4(R29)
40*12b1df16SDavid du Colombier	MOVW	R2, 8(R29)
41*12b1df16SDavid du Colombier	MOVW	R3, 12(R29)
42*12b1df16SDavid du Colombier	JAL	main(SB)
43*12b1df16SDavid du Colombierloop:
44*12b1df16SDavid du Colombier	MOVW	R1, 4(R29)
45*12b1df16SDavid du Colombier	JAL	exit(SB)
46*12b1df16SDavid du Colombier	MOVW	$_profin(SB), R0	/* force loading of profile */
47*12b1df16SDavid du Colombier	JMP	loop
48*12b1df16SDavid du Colombier
49*12b1df16SDavid du ColombierTEXT	_savearg(SB), 1, $0
50*12b1df16SDavid du Colombier	RET
51*12b1df16SDavid du Colombier
52*12b1df16SDavid du ColombierTEXT	_callpc(SB), 1, $0
53*12b1df16SDavid du Colombier	MOVW	argp-4(FP), R1
54*12b1df16SDavid du Colombier	RET
55