summaryrefslogtreecommitdiff
path: root/asm/Dolphin/os/OSInit.s
blob: ba4ecbaf3e69fdc1f41f076693bc065f9a98c85e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
.global func_8036c48c
.type func_8036c48c, @function
func_8036c48c:
/* 8036C48C 7C0802A6 */ mflr        r0
/* 8036C490 90010004 */ stw         r0, 4(r1)
/* 8036C494 9421FFE8 */ stwu        r1, -0x18(r1)
/* 8036C498 93E10014 */ stw         r31, 0x14(r1)
/* 8036C49C 93C10010 */ stw         r30, 0x10(r1)
/* 8036C4A0 93A1000C */ stw         r29, 0xc(r1)
/* 8036C4A4 800DCA08 */ lwz         r0, lbl_805c6828@sda21(0)
/* 8036C4A8 3C808054 */ lis         r4, lbl_8053ebe0@ha
/* 8036C4AC 3C60804F */ lis         r3, lbl_804eebb0@ha
/* 8036C4B0 2C000000 */ cmpwi       r0, 0x0
/* 8036C4B4 3BC4EBE0 */ addi        r30, r4, lbl_8053ebe0@l
/* 8036C4B8 3BE3EBB0 */ addi        r31, r3, lbl_804eebb0@l
/* 8036C4BC 4082036C */ bne-        lbl_8036c828
/* 8036C4C0 38000001 */ li          r0, 0x1
/* 8036C4C4 900DCA08 */ stw         r0, lbl_805c6828@sda21(0)
/* 8036C4C8 4800631D */ bl          func_803727e4
/* 8036C4CC 908DCA24 */ stw         r4, lbl_805c6844@sda21(0)
/* 8036C4D0 906DCA20 */ stw         r3, lbl_805c6840@sda21(0)
/* 8036C4D4 48002601 */ bl          func_8036ead4
/* 8036C4D8 4BFFFD0D */ bl          func_8036c1e4
/* 8036C4DC 4BFFFD31 */ bl          func_8036c20c
/* 8036C4E0 38000000 */ li          r0, 0x0
/* 8036C4E4 3C808000 */ lis         r4, 0x8000
/* 8036C4E8 900DC9FC */ stw         r0, lbl_805c681c@sda21(0)
/* 8036C4EC 908DC9F8 */ stw         r4, lbl_805c6818@sda21(0)
/* 8036C4F0 900DCB04 */ stw         r0, lbl_805c6924@sda21(0)
/* 8036C4F4 806400F4 */ lwz         r3, 0xf4(r4)
/* 8036C4F8 28030000 */ cmplwi      r3, 0
/* 8036C4FC 41820034 */ beq-        lbl_8036c530
/* 8036C500 3803000C */ addi        r0, r3, 0xc
/* 8036C504 900DC9FC */ stw         r0, lbl_805c681c@sda21(0)
/* 8036C508 80030024 */ lwz         r0, 0x24(r3)
/* 8036C50C 806DC9FC */ lwz         r3, lbl_805c681c@sda21(0)
/* 8036C510 900DCBDC */ stw         r0, lbl_805c69fc@sda21(0)
/* 8036C514 80030000 */ lwz         r0, 0(r3)
/* 8036C518 5400063E */ clrlwi      r0, r0, 0x18
/* 8036C51C 980430E8 */ stb         r0, 0x30e8(r4)
/* 8036C520 800DCBDC */ lwz         r0, lbl_805c69fc@sda21(0)
/* 8036C524 5400063E */ clrlwi      r0, r0, 0x18
/* 8036C528 980430E9 */ stb         r0, 0x30e9(r4)
/* 8036C52C 48000028 */ b           lbl_8036c554
lbl_8036c530:
/* 8036C530 80040034 */ lwz         r0, 0x34(r4)
/* 8036C534 28000000 */ cmplwi      r0, 0
/* 8036C538 4182001C */ beq-        lbl_8036c554
/* 8036C53C 886430E8 */ lbz         r3, 0x30e8(r4)
/* 8036C540 380DCA00 */ addi        r0, 0, lbl_805c6820@sda21
/* 8036C544 906DCA00 */ stw         r3, lbl_805c6820@sda21(0)
/* 8036C548 900DC9FC */ stw         r0, lbl_805c681c@sda21(0)
/* 8036C54C 880430E9 */ lbz         r0, 0x30e9(r4)
/* 8036C550 900DCBDC */ stw         r0, lbl_805c69fc@sda21(0)
lbl_8036c554:
/* 8036C554 38000001 */ li          r0, 0x1
/* 8036C558 806DC9F8 */ lwz         r3, lbl_805c6818@sda21(0)
/* 8036C55C 900DCB04 */ stw         r0, lbl_805c6924@sda21(0)
/* 8036C560 80630030 */ lwz         r3, 0x30(r3)
/* 8036C564 28030000 */ cmplwi      r3, 0
/* 8036C568 40820010 */ bne-        lbl_8036c578
/* 8036C56C 3C60805E */ lis         r3, 0x805e
/* 8036C570 386329E0 */ addi        r3, r3, 0x29e0
/* 8036C574 48000004 */ b           lbl_8036c578
lbl_8036c578:
/* 8036C578 480010B9 */ bl          func_8036d630
/* 8036C57C 806DC9F8 */ lwz         r3, lbl_805c6818@sda21(0)
/* 8036C580 80030030 */ lwz         r0, 0x30(r3)
/* 8036C584 28000000 */ cmplwi      r0, 0
/* 8036C588 40820030 */ bne-        lbl_8036c5b8
/* 8036C58C 806DC9FC */ lwz         r3, lbl_805c681c@sda21(0)
/* 8036C590 28030000 */ cmplwi      r3, 0
/* 8036C594 41820024 */ beq-        lbl_8036c5b8
/* 8036C598 80030000 */ lwz         r0, 0(r3)
/* 8036C59C 28000002 */ cmplwi      r0, 2
/* 8036C5A0 40800018 */ bge-        lbl_8036c5b8
/* 8036C5A4 3C60805E */ lis         r3, 0x805e
/* 8036C5A8 386309C8 */ addi        r3, r3, 0x9c8
/* 8036C5AC 3803001F */ addi        r0, r3, 0x1f
/* 8036C5B0 54030034 */ rlwinm      r3, r0, 0, 0, 0x1a
/* 8036C5B4 4800107D */ bl          func_8036d630
lbl_8036c5b8:
/* 8036C5B8 806DC9F8 */ lwz         r3, lbl_805c6818@sda21(0)
/* 8036C5BC 80630034 */ lwz         r3, 0x34(r3)
/* 8036C5C0 28030000 */ cmplwi      r3, 0
/* 8036C5C4 40820010 */ bne-        lbl_8036c5d4
/* 8036C5C8 3C608170 */ lis         r3, 0x8170
/* 8036C5CC 38630000 */ addi        r3, r3, 0x0
/* 8036C5D0 48000004 */ b           lbl_8036c5d4
lbl_8036c5d4:
/* 8036C5D4 48001055 */ bl          func_8036d628
/* 8036C5D8 4800026D */ bl          func_8036c844
/* 8036C5DC 48004FE1 */ bl          func_803715bc
/* 8036C5E0 4800067D */ bl          func_8036cc5c
/* 8036C5E4 480034C9 */ bl          func_8036faac
/* 8036C5E8 48002569 */ bl          func_8036eb50
/* 8036C5EC 3C608037 */ lis         r3, func_803707e4@ha
/* 8036C5F0 388307E4 */ addi        r4, r3, func_803707e4@l
/* 8036C5F4 38600016 */ li          r3, 0x16
/* 8036C5F8 48002529 */ bl          func_8036eb20
/* 8036C5FC 48002071 */ bl          func_8036e66c
/* 8036C600 48001759 */ bl          func_8036dd58
/* 8036C604 480C0065 */ bl          func_8042c668
/* 8036C608 480C1315 */ bl          func_8042d91c
/* 8036C60C 480046DD */ bl          func_80370ce8
/* 8036C610 48005011 */ bl          func_80371620
/* 8036C614 48001025 */ bl          func_8036d638
/* 8036C618 4BFFFBB5 */ bl          func_8036c1cc
/* 8036C61C 54630080 */ rlwinm      r3, r3, 0, 2, 0
/* 8036C620 4BFFFBB5 */ bl          func_8036c1d4
/* 8036C624 806DC9F8 */ lwz         r3, lbl_805c6818@sda21(0)
/* 8036C628 3883002C */ addi        r4, r3, 0x2c
/* 8036C62C 80040000 */ lwz         r0, 0(r4)
/* 8036C630 540000C6 */ rlwinm      r0, r0, 0, 3, 3
/* 8036C634 28000000 */ cmplwi      r0, 0
/* 8036C638 41820014 */ beq-        lbl_8036c64c
/* 8036C63C 3C601000 */ lis         r3, 0x1000
/* 8036C640 38030004 */ addi        r0, r3, 0x4
/* 8036C644 90040000 */ stw         r0, 0(r4)
/* 8036C648 4800000C */ b           lbl_8036c654
lbl_8036c64c:
/* 8036C64C 38000001 */ li          r0, 0x1
/* 8036C650 90040000 */ stw         r0, 0(r4)
lbl_8036c654:
/* 8036C654 3C60CC00 */ lis         r3, 0xcc00
/* 8036C658 808DC9F8 */ lwz         r4, lbl_805c6818@sda21(0)
/* 8036C65C 38633000 */ addi        r3, r3, 0x3000
/* 8036C660 8003002C */ lwz         r0, 0x2c(r3)
/* 8036C664 8064002C */ lwz         r3, 0x2c(r4)
/* 8036C668 54000006 */ rlwinm      r0, r0, 0, 0, 3
/* 8036C66C 5400273E */ srwi        r0, r0, 0x1c
/* 8036C670 7C030214 */ add         r0, r3, r0
/* 8036C674 9004002C */ stw         r0, 0x2c(r4)
/* 8036C678 800DCA18 */ lwz         r0, lbl_805c6838@sda21(0)
/* 8036C67C 2C000000 */ cmpwi       r0, 0x0
/* 8036C680 40820008 */ bne-        lbl_8036c688
/* 8036C684 48003805 */ bl          func_8036fe88
lbl_8036c688:
/* 8036C688 7FE3FB78 */ mr          r3, r31
/* 8036C68C 4CC63182 */ crclr       6
/* 8036C690 48002025 */ bl          func_8036e6b4
/* 8036C694 387F0020 */ addi        r3, r31, 0x20
/* 8036C698 4CC63182 */ crclr       6
/* 8036C69C 389F0038 */ addi        r4, r31, 0x38
/* 8036C6A0 38BF0044 */ addi        r5, r31, 0x44
/* 8036C6A4 48002011 */ bl          func_8036e6b4
/* 8036C6A8 387F0050 */ addi        r3, r31, 0x50
/* 8036C6AC 4CC63182 */ crclr       6
/* 8036C6B0 48002005 */ bl          func_8036e6b4
/* 8036C6B4 806DC9F8 */ lwz         r3, lbl_805c6818@sda21(0)
/* 8036C6B8 28030000 */ cmplwi      r3, 0
/* 8036C6BC 41820010 */ beq-        lbl_8036c6cc
/* 8036C6C0 8083002C */ lwz         r4, 0x2c(r3)
/* 8036C6C4 28040000 */ cmplwi      r4, 0
/* 8036C6C8 40820010 */ bne-        lbl_8036c6d8
lbl_8036c6cc:
/* 8036C6CC 3C601000 */ lis         r3, 0x1000
/* 8036C6D0 38830002 */ addi        r4, r3, 0x2
/* 8036C6D4 48000004 */ b           lbl_8036c6d8
lbl_8036c6d8:
/* 8036C6D8 548000C6 */ rlwinm      r0, r4, 0, 3, 3
/* 8036C6DC 28000000 */ cmplwi      r0, 0
/* 8036C6E0 40820014 */ bne-        lbl_8036c6f4
/* 8036C6E4 4CC63182 */ crclr       6
/* 8036C6E8 387F0060 */ addi        r3, r31, 0x60
/* 8036C6EC 48001FC9 */ bl          func_8036e6b4
/* 8036C6F0 4800008C */ b           lbl_8036c77c
lbl_8036c6f4:
/* 8036C6F4 3C601000 */ lis         r3, 0x1000
/* 8036C6F8 38030002 */ addi        r0, r3, 0x2
/* 8036C6FC 7C040000 */ cmpw        r4, r0
/* 8036C700 41820048 */ beq-        lbl_8036c748
/* 8036C704 40800014 */ bge-        lbl_8036c718
/* 8036C708 7C041800 */ cmpw        r4, r3
/* 8036C70C 4182001C */ beq-        lbl_8036c728
/* 8036C710 40800028 */ bge-        lbl_8036c738
/* 8036C714 48000054 */ b           lbl_8036c768
lbl_8036c718:
/* 8036C718 38030004 */ addi        r0, r3, 0x4
/* 8036C71C 7C040000 */ cmpw        r4, r0
/* 8036C720 40800048 */ bge-        lbl_8036c768
/* 8036C724 48000034 */ b           lbl_8036c758
lbl_8036c728:
/* 8036C728 387F006C */ addi        r3, r31, 0x6c
/* 8036C72C 4CC63182 */ crclr       6
/* 8036C730 48001F85 */ bl          func_8036e6b4
/* 8036C734 48000048 */ b           lbl_8036c77c
lbl_8036c738:
/* 8036C738 387F007C */ addi        r3, r31, 0x7c
/* 8036C73C 4CC63182 */ crclr       6
/* 8036C740 48001F75 */ bl          func_8036e6b4
/* 8036C744 48000038 */ b           lbl_8036c77c
lbl_8036c748:
/* 8036C748 387F008C */ addi        r3, r31, 0x8c
/* 8036C74C 4CC63182 */ crclr       6
/* 8036C750 48001F65 */ bl          func_8036e6b4
/* 8036C754 48000028 */ b           lbl_8036c77c
lbl_8036c758:
/* 8036C758 387F009C */ addi        r3, r31, 0x9c
/* 8036C75C 4CC63182 */ crclr       6
/* 8036C760 48001F55 */ bl          func_8036e6b4
/* 8036C764 48000018 */ b           lbl_8036c77c
lbl_8036c768:
/* 8036C768 3C84F000 */ addis       r4, r4, 0xf000
/* 8036C76C 4CC63182 */ crclr       6
/* 8036C770 387F00AC */ addi        r3, r31, 0xac
/* 8036C774 3884FFFD */ addi        r4, r4, -0x3
/* 8036C778 48001F3D */ bl          func_8036e6b4
lbl_8036c77c:
/* 8036C77C 808DC9F8 */ lwz         r4, lbl_805c6818@sda21(0)
/* 8036C780 387F00C0 */ addi        r3, r31, 0xc0
/* 8036C784 4CC63182 */ crclr       6
/* 8036C788 80040028 */ lwz         r0, 0x28(r4)
/* 8036C78C 5404653E */ srwi        r4, r0, 0x14
/* 8036C790 48001F25 */ bl          func_8036e6b4
/* 8036C794 48000E85 */ bl          func_8036d618
/* 8036C798 7C7D1B78 */ mr          r29, r3
/* 8036C79C 48000E85 */ bl          func_8036d620
/* 8036C7A0 7C641B78 */ mr          r4, r3
/* 8036C7A4 4CC63182 */ crclr       6
/* 8036C7A8 7FA5EB78 */ mr          r5, r29
/* 8036C7AC 387F00D0 */ addi        r3, r31, 0xd0
/* 8036C7B0 48001F05 */ bl          func_8036e6b4
/* 8036C7B4 806DC9FC */ lwz         r3, lbl_805c681c@sda21(0)
/* 8036C7B8 28030000 */ cmplwi      r3, 0
/* 8036C7BC 41820014 */ beq-        lbl_8036c7d0
/* 8036C7C0 80030000 */ lwz         r0, 0(r3)
/* 8036C7C4 28000002 */ cmplwi      r0, 2
/* 8036C7C8 41800008 */ blt-        lbl_8036c7d0
/* 8036C7CC 48025B45 */ bl          func_80392310
lbl_8036c7d0:
/* 8036C7D0 4BFFFB59 */ bl          func_8036c328
/* 8036C7D4 48002315 */ bl          func_8036eae8
/* 8036C7D8 800DCA18 */ lwz         r0, lbl_805c6838@sda21(0)
/* 8036C7DC 2C000000 */ cmpwi       r0, 0x0
/* 8036C7E0 40820048 */ bne-        lbl_8036c828
/* 8036C7E4 48008929 */ bl          func_8037510c
/* 8036C7E8 800DCA04 */ lwz         r0, lbl_805c6824@sda21(0)
/* 8036C7EC 2C000000 */ cmpwi       r0, 0x0
/* 8036C7F0 41820018 */ beq-        lbl_8036c808
/* 8036C7F4 3C600001 */ lis         r3, 1
/* 8036C7F8 38039000 */ addi        r0, r3, -0x7000
/* 8036C7FC 3C608000 */ lis         r3, 0x8000
/* 8036C800 B00330E6 */ sth         r0, 0x30e6(r3)
/* 8036C804 48000024 */ b           lbl_8036c828
lbl_8036c808:
/* 8036C808 7FC3F378 */ mr          r3, r30
/* 8036C80C 38800020 */ li          r4, 0x20
/* 8036C810 480010D1 */ bl          func_8036d8e0
/* 8036C814 3C608037 */ lis         r3, func_8036c450@ha
/* 8036C818 38A3C450 */ addi        r5, r3, func_8036c450@l
/* 8036C81C 7FC4F378 */ mr          r4, r30
/* 8036C820 387E0020 */ addi        r3, r30, 0x20
/* 8036C824 4800A609 */ bl          func_80376e2c
lbl_8036c828:
/* 8036C828 8001001C */ lwz         r0, 0x1c(r1)
/* 8036C82C 83E10014 */ lwz         r31, 0x14(r1)
/* 8036C830 83C10010 */ lwz         r30, 0x10(r1)
/* 8036C834 83A1000C */ lwz         r29, 0xc(r1)
/* 8036C838 38210018 */ addi        r1, r1, 0x18
/* 8036C83C 7C0803A6 */ mtlr        r0
/* 8036C840 4E800020 */ blr         
.size func_8036c48c, . - func_8036c48c