]> git.lizzy.rs Git - plan9front.git/blob - sys/src/libc/mips/main9p.s
sdiahci, sdodin: avoid calling kproc() while holding ilock()
[plan9front.git] / sys / src / libc / mips / main9p.s
1 #define NPRIVATES       16
2
3 TEXT    _mainp(SB), 1, $(16 + NPRIVATES*4)
4
5         MOVW    $setR30(SB), R30
6         MOVW    R1, _tos(SB)
7
8         MOVW    $p-64(SP), R1
9         MOVW    R1, _privates(SB)
10         MOVW    $NPRIVATES, R1
11         MOVW    R1, _nprivates(SB)
12
13         JAL     _profmain(SB)
14         MOVW    __prof+4(SB), R1
15         MOVW    R1, __prof+0(SB)
16         MOVW    inargc-4(FP), R1
17         MOVW    $inargv+0(FP), R2
18         MOVW    R1, 4(R29)
19         MOVW    R2, 8(R29)
20         JAL     main(SB)
21 loop:
22         MOVW    $exits<>(SB), R1
23         MOVW    R1, 4(R29)
24         JAL     exits(SB)
25         MOVW    $_profin(SB), R0        /* force loading of profile */
26         JMP     loop
27
28 TEXT    _saveret(SB), 1, $0
29 TEXT    _savearg(SB), 1, $0
30         RET
31
32 TEXT    _callpc(SB), 1, $0
33         MOVW    argp-4(FP), R1
34         RET
35
36 DATA    exits<>+0(SB)/4, $"main"
37 GLOBL   exits<>+0(SB), $5