]> git.pond.sub.org Git - empserver/blob - src/lib/lwp/lwpInit.s
5b24a955fde1f1da273afcffe1609d7727447c54
[empserver] / src / lib / lwp / lwpInit.s
1 .set r0,0; .set SP,1; .set RTOC,2; .set r3,3; .set r4,4
2 .set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9
3 .set LR,8
4
5         .rename LwpInitContext{PR},""
6         .rename LwpInitContext{TC},"lwpInitContext"
7         .rename LwpEntryPoint{TC},"lwpEntryPoint"
8
9         .lglobl LwpInitContext{PR}      
10         .globl  .lwpInitContext         
11         .globl  lwpInitContext{DS}      
12         .extern lwpEntryPoint{DS}       
13
14
15 # .text section
16
17
18         .csect  LwpInitContext{PR}      
19         .function       LwpInitContext{PR},.lwpInitContext,2,0
20 .lwpInitContext:                        # 0x00000000 (LwpInitContext)
21         stu     SP,-0x40(SP)
22         st      r3,0x58(SP)             # r3 = newp pointer
23         st      r4,0x5c(SP)             # r4 = sp pointer
24         .bf     234
25         st      SP,0x0(r4)
26         st      SP,0xf8(r3)             # store prev SP
27         st      r4,0xc(r3)              # store entrypoint at newp[3]
28         l       r3,LWPEntryPoint(RTOC)
29         l       r4,0x0(r3)
30         l       r3,0x58(SP)             # load newp into r3
31         st      r4,0x8(r3)              # store sp at newp[2]
32         st      RTOC,0x10(r3)           # store RTOC at newp[4]
33         ai      SP,SP,0x40
34         br      
35         .ef     236
36 # traceback table
37         .long   0x00000000
38         .byte   0x00                    # VERSION=0
39         .byte   0x00                    # LANG=TB_C
40         .byte   0x20                    # IS_GL=0,IS_EPROL=0,HAS_TBOFF=1
41                                         # INT_PROC=0,HAS_CTL=0,TOCLESS=0
42                                         # FP_PRESENT=0,LOG_ABORT=0
43         .byte   0x40                    # INT_HNDL=0,NAME_PRESENT=1
44                                         # USES_ALLOCA=0,CL_DIS_INV=WALK_ONCOND
45                                         # SAVES_CR=0,SAVES_LR=0
46         .byte   0x80                    # STORES_BC=1,FPR_SAVED=0
47         .byte   0x00                    # GPR_SAVED=0
48         .byte   0x02                    # FIXEDPARMS=2
49         .byte   0x01                    # FLOATPARMS=0,PARMSONSTK=1
50         .long   0x00000000              # 
51         .long   0x0000002c              # TB_OFFSET
52         .short  14                      # NAME_LEN
53         .byte   "lwpInitContext"
54 # End of traceback table
55 # End   csect   LwpInitContext{PR}
56
57 # .data section
58
59
60         .toc                            # 0x00000050 
61 LWPInitContext:
62         .tc     LwpInitContext{TC},lwpInitContext{DS}
63 LWPEntryPoint:
64         .tc     LwpEntryPoint{TC},lwpEntryPoint{DS}
65
66
67         .csect  lwpInitContext{DS}      
68         .long   .lwpInitContext         # "\0\0\0\0"
69         .long   TOC{TC0}                # "\0\0\0P"
70         .long   0x00000000              # "\0\0\0\0"
71 # End   csect   lwpInitContext{DS}
72
73
74
75 # .bss section
76