Commit | Line | Data |
---|---|---|
cb78f77b TL |
1 | # C runtime startoff |
2 | ||
3 | .set exit,1 | |
4 | .globl _exit | |
5 | .globl start | |
6 | .globl _main | |
7 | .globl _environ | |
8 | ||
9 | # | |
10 | # C language startup routine | |
11 | ||
12 | start: | |
13 | .word 0x0000 | |
14 | subl2 $8,sp | |
15 | movl 8(sp),(sp) # argc | |
16 | movab 12(sp),r0 | |
17 | movl r0,4(sp) # argv | |
18 | L1: | |
19 | tstl (r0)+ # null args term ? | |
20 | bneq L1 | |
21 | cmpl r0,*4(sp) # end of 'env' or 'argv' ? | |
22 | blss L2 | |
23 | tstl -(r0) # envp's are in list | |
24 | L2: | |
25 | movl r0,8(sp) # env | |
26 | movl r0,_environ # indir is 0 if no env ; not 0 if env | |
27 | calls $3,_main | |
28 | pushl r0 | |
29 | calls $1,_exit | |
30 | chmk $exit | |
31 | # | |
32 | .data | |
33 | _environ: .space 4 |