xref: /plan9/sys/src/libc/sparc/main9p.s (revision e288d156a88911460b465926f0fb6de139f6d766)
1#define NPRIVATES	16
2
3TEXT	_mainp(SB), 1, $(16 + NPRIVATES*4)
4
5	MOVW	$setSB(SB), R2
6	MOVW	R7, _tos(SB)
7
8	MOVW	$p-64(SP),R7
9	MOVW	R7,_privates+0(SB)
10	MOVW	$16,R7
11	MOVW	R7,_nprivates+0(SB)
12/*
13	MOVW	_fpsr+0(SB), FSR
14	FMOVD	$0.5, F26
15	FSUBD	F26, F26, F24
16	FADDD	F26, F26, F28
17	FADDD	F28, F28, F30
18*/
19
20	JMPL	_profmain(SB)
21	MOVW	__prof+4(SB), R7
22	MOVW	R7, __prof+0(SB)
23
24	MOVW	inargc-4(FP), R7
25	MOVW	$inargv+0(FP), R8
26	MOVW	R8, 8(R1)
27	JMPL	main(SB)
28
29loop:
30	MOVW	$_exits<>(SB), R7
31	JMPL	exits(SB)
32	MOVW	$_mul(SB), R8		/* force loading of muldiv */
33	MOVW	$_profin(SB), R9	/* force loading of profile */
34	JMP	loop
35
36TEXT	_savearg(SB), 1, $0
37	RETURN
38
39TEXT	_callpc(SB), 1, $0
40	MOVW	argp-4(FP), R7
41	RETURN
42
43DATA	_exits<>+0(SB)/4, $"main"
44GLOBL	_exits<>+0(SB), $5
45