summaryrefslogtreecommitdiff
path: root/asm/SDK/OS/OSCache.s
blob: ce9b5af06328aaf7465ae274dd906952af0ec102 (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
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global DCEnable
DCEnable:
/* 8026A614 00266274  7C 00 04 AC */	sync 0
/* 8026A618 00266278  7C 70 FA A6 */	mfspr r3, 0x3f0
/* 8026A61C 0026627C  60 63 40 00 */	ori r3, r3, 0x4000
/* 8026A620 00266280  7C 70 FB A6 */	mtspr 0x3f0, r3
/* 8026A624 00266284  4E 80 00 20 */	blr

.global DCInvalidateRange
DCInvalidateRange:
/* 8026A628 00266288  28 04 00 00 */	cmplwi r4, 0
/* 8026A62C 0026628C  4C 81 00 20 */	blelr
/* 8026A630 00266290  54 65 06 FE */	clrlwi r5, r3, 0x1b
/* 8026A634 00266294  7C 84 2A 14 */	add r4, r4, r5
/* 8026A638 00266298  38 84 00 1F */	addi r4, r4, 0x1f
/* 8026A63C 0026629C  54 84 D9 7E */	srwi r4, r4, 5
/* 8026A640 002662A0  7C 89 03 A6 */	mtctr r4
lbl_8026A644:
/* 8026A644 002662A4  7C 00 1B AC */	dcbi 0, r3
/* 8026A648 002662A8  38 63 00 20 */	addi r3, r3, 0x20
/* 8026A64C 002662AC  42 00 FF F8 */	bdnz lbl_8026A644
/* 8026A650 002662B0  4E 80 00 20 */	blr

.global DCFlushRange
DCFlushRange:
/* 8026A654 002662B4  28 04 00 00 */	cmplwi r4, 0
/* 8026A658 002662B8  4C 81 00 20 */	blelr
/* 8026A65C 002662BC  54 65 06 FE */	clrlwi r5, r3, 0x1b
/* 8026A660 002662C0  7C 84 2A 14 */	add r4, r4, r5
/* 8026A664 002662C4  38 84 00 1F */	addi r4, r4, 0x1f
/* 8026A668 002662C8  54 84 D9 7E */	srwi r4, r4, 5
/* 8026A66C 002662CC  7C 89 03 A6 */	mtctr r4
lbl_8026A670:
/* 8026A670 002662D0  7C 00 18 AC */	dcbf 0, r3
/* 8026A674 002662D4  38 63 00 20 */	addi r3, r3, 0x20
/* 8026A678 002662D8  42 00 FF F8 */	bdnz lbl_8026A670
/* 8026A67C 002662DC  44 00 00 02 */	sc
/* 8026A680 002662E0  4E 80 00 20 */	blr

.global DCStoreRange
DCStoreRange:
/* 8026A684 002662E4  28 04 00 00 */	cmplwi r4, 0
/* 8026A688 002662E8  4C 81 00 20 */	blelr
/* 8026A68C 002662EC  54 65 06 FE */	clrlwi r5, r3, 0x1b
/* 8026A690 002662F0  7C 84 2A 14 */	add r4, r4, r5
/* 8026A694 002662F4  38 84 00 1F */	addi r4, r4, 0x1f
/* 8026A698 002662F8  54 84 D9 7E */	srwi r4, r4, 5
/* 8026A69C 002662FC  7C 89 03 A6 */	mtctr r4
lbl_8026A6A0:
/* 8026A6A0 00266300  7C 00 18 6C */	dcbst 0, r3
/* 8026A6A4 00266304  38 63 00 20 */	addi r3, r3, 0x20
/* 8026A6A8 00266308  42 00 FF F8 */	bdnz lbl_8026A6A0
/* 8026A6AC 0026630C  44 00 00 02 */	sc
/* 8026A6B0 00266310  4E 80 00 20 */	blr

.global DCFlushRangeNoSync
DCFlushRangeNoSync:
/* 8026A6B4 00266314  28 04 00 00 */	cmplwi r4, 0
/* 8026A6B8 00266318  4C 81 00 20 */	blelr
/* 8026A6BC 0026631C  54 65 06 FE */	clrlwi r5, r3, 0x1b
/* 8026A6C0 00266320  7C 84 2A 14 */	add r4, r4, r5
/* 8026A6C4 00266324  38 84 00 1F */	addi r4, r4, 0x1f
/* 8026A6C8 00266328  54 84 D9 7E */	srwi r4, r4, 5
/* 8026A6CC 0026632C  7C 89 03 A6 */	mtctr r4
lbl_8026A6D0:
/* 8026A6D0 00266330  7C 00 18 AC */	dcbf 0, r3
/* 8026A6D4 00266334  38 63 00 20 */	addi r3, r3, 0x20
/* 8026A6D8 00266338  42 00 FF F8 */	bdnz lbl_8026A6D0
/* 8026A6DC 0026633C  4E 80 00 20 */	blr

.global DCStoreRangeNoSync
DCStoreRangeNoSync:
/* 8026A6E0 00266340  28 04 00 00 */	cmplwi r4, 0
/* 8026A6E4 00266344  4C 81 00 20 */	blelr
/* 8026A6E8 00266348  54 65 06 FE */	clrlwi r5, r3, 0x1b
/* 8026A6EC 0026634C  7C 84 2A 14 */	add r4, r4, r5
/* 8026A6F0 00266350  38 84 00 1F */	addi r4, r4, 0x1f
/* 8026A6F4 00266354  54 84 D9 7E */	srwi r4, r4, 5
/* 8026A6F8 00266358  7C 89 03 A6 */	mtctr r4
lbl_8026A6FC:
/* 8026A6FC 0026635C  7C 00 18 6C */	dcbst 0, r3
/* 8026A700 00266360  38 63 00 20 */	addi r3, r3, 0x20
/* 8026A704 00266364  42 00 FF F8 */	bdnz lbl_8026A6FC
/* 8026A708 00266368  4E 80 00 20 */	blr

.global DCZeroRange
DCZeroRange:
/* 8026A70C 0026636C  28 04 00 00 */	cmplwi r4, 0
/* 8026A710 00266370  4C 81 00 20 */	blelr
/* 8026A714 00266374  54 65 06 FE */	clrlwi r5, r3, 0x1b
/* 8026A718 00266378  7C 84 2A 14 */	add r4, r4, r5
/* 8026A71C 0026637C  38 84 00 1F */	addi r4, r4, 0x1f
/* 8026A720 00266380  54 84 D9 7E */	srwi r4, r4, 5
/* 8026A724 00266384  7C 89 03 A6 */	mtctr r4
lbl_8026A728:
/* 8026A728 00266388  7C 00 1F EC */	dcbz 0, r3
/* 8026A72C 0026638C  38 63 00 20 */	addi r3, r3, 0x20
/* 8026A730 00266390  42 00 FF F8 */	bdnz lbl_8026A728
/* 8026A734 00266394  4E 80 00 20 */	blr

.global ICInvalidateRange
ICInvalidateRange:
/* 8026A738 00266398  28 04 00 00 */	cmplwi r4, 0
/* 8026A73C 0026639C  4C 81 00 20 */	blelr
/* 8026A740 002663A0  54 65 06 FE */	clrlwi r5, r3, 0x1b
/* 8026A744 002663A4  7C 84 2A 14 */	add r4, r4, r5
/* 8026A748 002663A8  38 84 00 1F */	addi r4, r4, 0x1f
/* 8026A74C 002663AC  54 84 D9 7E */	srwi r4, r4, 5
/* 8026A750 002663B0  7C 89 03 A6 */	mtctr r4
lbl_8026A754:
/* 8026A754 002663B4  7C 00 1F AC */	icbi 0, r3
/* 8026A758 002663B8  38 63 00 20 */	addi r3, r3, 0x20
/* 8026A75C 002663BC  42 00 FF F8 */	bdnz lbl_8026A754
/* 8026A760 002663C0  7C 00 04 AC */	sync 0
/* 8026A764 002663C4  4C 00 01 2C */	isync
/* 8026A768 002663C8  4E 80 00 20 */	blr

.global ICFlashInvalidate
ICFlashInvalidate:
/* 8026A76C 002663CC  7C 70 FA A6 */	mfspr r3, 0x3f0
/* 8026A770 002663D0  60 63 08 00 */	ori r3, r3, 0x800
/* 8026A774 002663D4  7C 70 FB A6 */	mtspr 0x3f0, r3
/* 8026A778 002663D8  4E 80 00 20 */	blr

.global ICEnable
ICEnable:
/* 8026A77C 002663DC  4C 00 01 2C */	isync
/* 8026A780 002663E0  7C 70 FA A6 */	mfspr r3, 0x3f0
/* 8026A784 002663E4  60 63 80 00 */	ori r3, r3, 0x8000
/* 8026A788 002663E8  7C 70 FB A6 */	mtspr 0x3f0, r3
/* 8026A78C 002663EC  4E 80 00 20 */	blr

.global __LCEnable
__LCEnable:
/* 8026A790 002663F0  7C A0 00 A6 */	mfmsr r5
/* 8026A794 002663F4  60 A5 10 00 */	ori r5, r5, 0x1000
/* 8026A798 002663F8  7C A0 01 24 */	mtmsr r5
/* 8026A79C 002663FC  3C 60 80 00 */	lis r3, 0x80000020@ha
/* 8026A7A0 00266400  38 80 04 00 */	li r4, 0x400
/* 8026A7A4 00266404  7C 89 03 A6 */	mtctr r4
lbl_8026A7A8:
/* 8026A7A8 00266408  7C 00 1A 2C */	dcbt 0, r3
/* 8026A7AC 0026640C  7C 00 18 6C */	dcbst 0, r3
/* 8026A7B0 00266410  38 63 00 20 */	addi r3, r3, 0x80000020@l
/* 8026A7B4 00266414  42 00 FF F4 */	bdnz lbl_8026A7A8
/* 8026A7B8 00266418  7C 98 E2 A6 */	mfspr r4, 0x398
/* 8026A7BC 0026641C  64 84 10 0F */	oris r4, r4, 0x100f
/* 8026A7C0 00266420  7C 98 E3 A6 */	mtspr 0x398, r4
/* 8026A7C4 00266424  60 00 00 00 */	nop
/* 8026A7C8 00266428  60 00 00 00 */	nop
/* 8026A7CC 0026642C  60 00 00 00 */	nop
/* 8026A7D0 00266430  60 00 00 00 */	nop
/* 8026A7D4 00266434  60 00 00 00 */	nop
/* 8026A7D8 00266438  60 00 00 00 */	nop
/* 8026A7DC 0026643C  60 00 00 00 */	nop
/* 8026A7E0 00266440  60 00 00 00 */	nop
/* 8026A7E4 00266444  60 00 00 00 */	nop
/* 8026A7E8 00266448  60 00 00 00 */	nop
/* 8026A7EC 0026644C  60 00 00 00 */	nop
/* 8026A7F0 00266450  60 00 00 00 */	nop
/* 8026A7F4 00266454  3C 60 E0 00 */	lis r3, 0xE0000002@h
/* 8026A7F8 00266458  60 63 00 02 */	ori r3, r3, 0xE0000002@l
/* 8026A7FC 0026645C  7C 7F 83 A6 */	mtdbatl 3, r3
/* 8026A800 00266460  60 63 01 FE */	ori r3, r3, 0x1fe
/* 8026A804 00266464  7C 7E 83 A6 */	mtdbatu 3, r3
/* 8026A808 00266468  4C 00 01 2C */	isync
/* 8026A80C 0026646C  3C 60 E0 00 */	lis r3, 0xE0000020@ha
/* 8026A810 00266470  38 C0 02 00 */	li r6, 0x200
/* 8026A814 00266474  7C C9 03 A6 */	mtctr r6
/* 8026A818 00266478  38 C0 00 00 */	li r6, 0
lbl_8026A81C:
/* 8026A81C 0026647C  10 06 1F EC */	dcbz_l r6, r3
/* 8026A820 00266480  38 63 00 20 */	addi r3, r3, 0xE0000020@l
/* 8026A824 00266484  42 00 FF F8 */	bdnz lbl_8026A81C
/* 8026A828 00266488  60 00 00 00 */	nop
/* 8026A82C 0026648C  60 00 00 00 */	nop
/* 8026A830 00266490  60 00 00 00 */	nop
/* 8026A834 00266494  60 00 00 00 */	nop
/* 8026A838 00266498  60 00 00 00 */	nop
/* 8026A83C 0026649C  60 00 00 00 */	nop
/* 8026A840 002664A0  60 00 00 00 */	nop
/* 8026A844 002664A4  60 00 00 00 */	nop
/* 8026A848 002664A8  60 00 00 00 */	nop
/* 8026A84C 002664AC  60 00 00 00 */	nop
/* 8026A850 002664B0  60 00 00 00 */	nop
/* 8026A854 002664B4  60 00 00 00 */	nop
/* 8026A858 002664B8  4E 80 00 20 */	blr

.global LCEnable
LCEnable:
/* 8026A85C 002664BC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8026A860 002664C0  7C 08 02 A6 */	mflr r0
/* 8026A864 002664C4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8026A868 002664C8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8026A86C 002664CC  48 00 3E F1 */	bl OSDisableInterrupts
/* 8026A870 002664D0  7C 7F 1B 78 */	mr r31, r3
/* 8026A874 002664D4  4B FF FF 1D */	bl __LCEnable
/* 8026A878 002664D8  7F E3 FB 78 */	mr r3, r31
/* 8026A87C 002664DC  48 00 3F 09 */	bl OSRestoreInterrupts
/* 8026A880 002664E0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8026A884 002664E4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8026A888 002664E8  7C 08 03 A6 */	mtlr r0
/* 8026A88C 002664EC  38 21 00 10 */	addi r1, r1, 0x10
/* 8026A890 002664F0  4E 80 00 20 */	blr

.global LCDisable
LCDisable:
/* 8026A894 002664F4  3C 60 E0 00 */	lis r3, 0xE0000020@ha
/* 8026A898 002664F8  38 80 02 00 */	li r4, 0x200
/* 8026A89C 002664FC  7C 89 03 A6 */	mtctr r4
lbl_8026A8A0:
/* 8026A8A0 00266500  7C 00 1B AC */	dcbi 0, r3
/* 8026A8A4 00266504  38 63 00 20 */	addi r3, r3, 0xE0000020@l
/* 8026A8A8 00266508  42 00 FF F8 */	bdnz lbl_8026A8A0
/* 8026A8AC 0026650C  7C 98 E2 A6 */	mfspr r4, 0x398
/* 8026A8B0 00266510  54 84 01 04 */	rlwinm r4, r4, 0, 4, 2
/* 8026A8B4 00266514  7C 98 E3 A6 */	mtspr 0x398, r4
/* 8026A8B8 00266518  4E 80 00 20 */	blr

.global LCStoreBlocks
LCStoreBlocks:
/* 8026A8BC 0026651C  54 A6 F6 FE */	rlwinm r6, r5, 0x1e, 0x1b, 0x1f
/* 8026A8C0 00266520  54 63 00 FE */	clrlwi r3, r3, 3
/* 8026A8C4 00266524  7C C6 1B 78 */	or r6, r6, r3
/* 8026A8C8 00266528  7C DA E3 A6 */	mtspr 0x39a, r6
/* 8026A8CC 0026652C  54 A6 17 3A */	rlwinm r6, r5, 2, 0x1c, 0x1d
/* 8026A8D0 00266530  7C C6 23 78 */	or r6, r6, r4
/* 8026A8D4 00266534  60 C6 00 02 */	ori r6, r6, 2
/* 8026A8D8 00266538  7C DB E3 A6 */	mtspr 0x39b, r6
/* 8026A8DC 0026653C  4E 80 00 20 */	blr

.global LCStoreData
LCStoreData:
/* 8026A8E0 00266540  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8026A8E4 00266544  7C 08 02 A6 */	mflr r0
/* 8026A8E8 00266548  90 01 00 24 */	stw r0, 0x24(r1)
/* 8026A8EC 0026654C  38 05 00 1F */	addi r0, r5, 0x1f
/* 8026A8F0 00266550  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8026A8F4 00266554  54 1F D9 7E */	srwi r31, r0, 5
/* 8026A8F8 00266558  38 1F 00 7F */	addi r0, r31, 0x7f
/* 8026A8FC 0026655C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8026A900 00266560  54 1E C9 FE */	srwi r30, r0, 7
/* 8026A904 00266564  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8026A908 00266568  7C 9D 23 78 */	mr r29, r4
/* 8026A90C 0026656C  93 81 00 10 */	stw r28, 0x10(r1)
/* 8026A910 00266570  7C 7C 1B 78 */	mr r28, r3
/* 8026A914 00266574  48 00 00 40 */	b lbl_8026A954
lbl_8026A918:
/* 8026A918 00266578  28 1F 00 80 */	cmplwi r31, 0x80
/* 8026A91C 0026657C  40 80 00 1C */	bge lbl_8026A938
/* 8026A920 00266580  7F 83 E3 78 */	mr r3, r28
/* 8026A924 00266584  7F A4 EB 78 */	mr r4, r29
/* 8026A928 00266588  7F E5 FB 78 */	mr r5, r31
/* 8026A92C 0026658C  4B FF FF 91 */	bl LCStoreBlocks
/* 8026A930 00266590  3B E0 00 00 */	li r31, 0
/* 8026A934 00266594  48 00 00 20 */	b lbl_8026A954
lbl_8026A938:
/* 8026A938 00266598  7F 83 E3 78 */	mr r3, r28
/* 8026A93C 0026659C  7F A4 EB 78 */	mr r4, r29
/* 8026A940 002665A0  38 A0 00 00 */	li r5, 0
/* 8026A944 002665A4  4B FF FF 79 */	bl LCStoreBlocks
/* 8026A948 002665A8  3B FF FF 80 */	addi r31, r31, -128
/* 8026A94C 002665AC  3B 9C 10 00 */	addi r28, r28, 0x1000
/* 8026A950 002665B0  3B BD 10 00 */	addi r29, r29, 0x1000
lbl_8026A954:
/* 8026A954 002665B4  2C 1F 00 00 */	cmpwi r31, 0
/* 8026A958 002665B8  40 82 FF C0 */	bne lbl_8026A918
/* 8026A95C 002665BC  7F C3 F3 78 */	mr r3, r30
/* 8026A960 002665C0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8026A964 002665C4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8026A968 002665C8  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8026A96C 002665CC  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8026A970 002665D0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8026A974 002665D4  7C 08 03 A6 */	mtlr r0
/* 8026A978 002665D8  38 21 00 20 */	addi r1, r1, 0x20
/* 8026A97C 002665DC  4E 80 00 20 */	blr

.global LCQueueWait
LCQueueWait:
/* 8026A980 002665E0  7C 98 E2 A6 */	mfspr r4, 0x398
/* 8026A984 002665E4  54 84 47 3E */	rlwinm r4, r4, 8, 0x1c, 0x1f
/* 8026A988 002665E8  7C 04 18 00 */	cmpw r4, r3
/* 8026A98C 002665EC  41 81 FF F4 */	bgt LCQueueWait
/* 8026A990 002665F0  4E 80 00 20 */	blr

.global DMAErrorHandler
DMAErrorHandler:
/* 8026A994 002665F4  94 21 FF 80 */	stwu r1, -0x80(r1)
/* 8026A998 002665F8  7C 08 02 A6 */	mflr r0
/* 8026A99C 002665FC  90 01 00 84 */	stw r0, 0x84(r1)
/* 8026A9A0 00266600  93 E1 00 7C */	stw r31, 0x7c(r1)
/* 8026A9A4 00266604  93 C1 00 78 */	stw r30, 0x78(r1)
/* 8026A9A8 00266608  93 A1 00 74 */	stw r29, 0x74(r1)
/* 8026A9AC 0026660C  7C 9D 23 78 */	mr r29, r4
/* 8026A9B0 00266610  40 86 00 24 */	bne cr1, lbl_8026A9D4
/* 8026A9B4 00266614  D8 21 00 28 */	stfd f1, 0x28(r1)
/* 8026A9B8 00266618  D8 41 00 30 */	stfd f2, 0x30(r1)
/* 8026A9BC 0026661C  D8 61 00 38 */	stfd f3, 0x38(r1)
/* 8026A9C0 00266620  D8 81 00 40 */	stfd f4, 0x40(r1)
/* 8026A9C4 00266624  D8 A1 00 48 */	stfd f5, 0x48(r1)
/* 8026A9C8 00266628  D8 C1 00 50 */	stfd f6, 0x50(r1)
/* 8026A9CC 0026662C  D8 E1 00 58 */	stfd f7, 0x58(r1)
/* 8026A9D0 00266630  D9 01 00 60 */	stfd f8, 0x60(r1)
lbl_8026A9D4:
/* 8026A9D4 00266634  3F E0 80 42 */	lis r31, lbl_80426A60@ha
/* 8026A9D8 00266638  90 61 00 08 */	stw r3, 8(r1)
/* 8026A9DC 0026663C  3B FF 6A 60 */	addi r31, r31, lbl_80426A60@l
/* 8026A9E0 00266640  90 81 00 0C */	stw r4, 0xc(r1)
/* 8026A9E4 00266644  90 A1 00 10 */	stw r5, 0x10(r1)
/* 8026A9E8 00266648  90 C1 00 14 */	stw r6, 0x14(r1)
/* 8026A9EC 0026664C  90 E1 00 18 */	stw r7, 0x18(r1)
/* 8026A9F0 00266650  91 01 00 1C */	stw r8, 0x1c(r1)
/* 8026A9F4 00266654  91 21 00 20 */	stw r9, 0x20(r1)
/* 8026A9F8 00266658  91 41 00 24 */	stw r10, 0x24(r1)
/* 8026A9FC 0026665C  4B FF D8 F9 */	bl PPCMfhid2
/* 8026AA00 00266660  7C 7E 1B 78 */	mr r30, r3
/* 8026AA04 00266664  38 7F 00 30 */	addi r3, r31, 0x30
/* 8026AA08 00266668  4C C6 31 82 */	crclr 6
/* 8026AA0C 0026666C  4B D9 D0 B9 */	bl OSReport
/* 8026AA10 00266670  80 BD 01 9C */	lwz r5, 0x19c(r29)
/* 8026AA14 00266674  7F C4 F3 78 */	mr r4, r30
/* 8026AA18 00266678  38 7F 00 48 */	addi r3, r31, 0x48
/* 8026AA1C 0026667C  4C C6 31 82 */	crclr 6
/* 8026AA20 00266680  4B D9 D0 A5 */	bl OSReport
/* 8026AA24 00266684  57 C0 02 17 */	rlwinm. r0, r30, 0, 8, 0xb
/* 8026AA28 00266688  41 82 00 10 */	beq lbl_8026AA38
/* 8026AA2C 0026668C  80 1D 01 9C */	lwz r0, 0x19c(r29)
/* 8026AA30 00266690  54 00 02 95 */	rlwinm. r0, r0, 0, 0xa, 0xa
/* 8026AA34 00266694  40 82 00 1C */	bne lbl_8026AA50
lbl_8026AA38:
/* 8026AA38 00266698  38 7F 00 68 */	addi r3, r31, 0x68
/* 8026AA3C 0026669C  4C C6 31 82 */	crclr 6
/* 8026AA40 002666A0  4B D9 D0 85 */	bl OSReport
/* 8026AA44 002666A4  7F A3 EB 78 */	mr r3, r29
/* 8026AA48 002666A8  48 00 07 29 */	bl OSDumpContext
/* 8026AA4C 002666AC  4B FF D8 1D */	bl PPCHalt
lbl_8026AA50:
/* 8026AA50 002666B0  38 7F 00 98 */	addi r3, r31, 0x98
/* 8026AA54 002666B4  4C C6 31 82 */	crclr 6
/* 8026AA58 002666B8  4B D9 D0 6D */	bl OSReport
/* 8026AA5C 002666BC  38 7F 00 D4 */	addi r3, r31, 0xd4
/* 8026AA60 002666C0  4C C6 31 82 */	crclr 6
/* 8026AA64 002666C4  4B D9 D0 61 */	bl OSReport
/* 8026AA68 002666C8  57 C0 02 11 */	rlwinm. r0, r30, 0, 8, 8
/* 8026AA6C 002666CC  41 82 00 10 */	beq lbl_8026AA7C
/* 8026AA70 002666D0  38 7F 01 0C */	addi r3, r31, 0x10c
/* 8026AA74 002666D4  4C C6 31 82 */	crclr 6
/* 8026AA78 002666D8  4B D9 D0 4D */	bl OSReport
lbl_8026AA7C:
/* 8026AA7C 002666DC  57 C0 02 53 */	rlwinm. r0, r30, 0, 9, 9
/* 8026AA80 002666E0  41 82 00 10 */	beq lbl_8026AA90
/* 8026AA84 002666E4  38 7F 01 4C */	addi r3, r31, 0x14c
/* 8026AA88 002666E8  4C C6 31 82 */	crclr 6
/* 8026AA8C 002666EC  4B D9 D0 39 */	bl OSReport
lbl_8026AA90:
/* 8026AA90 002666F0  57 C0 02 95 */	rlwinm. r0, r30, 0, 0xa, 0xa
/* 8026AA94 002666F4  41 82 00 10 */	beq lbl_8026AAA4
/* 8026AA98 002666F8  38 7F 01 78 */	addi r3, r31, 0x178
/* 8026AA9C 002666FC  4C C6 31 82 */	crclr 6
/* 8026AAA0 00266700  4B D9 D0 25 */	bl OSReport
lbl_8026AAA4:
/* 8026AAA4 00266704  57 C0 02 D7 */	rlwinm. r0, r30, 0, 0xb, 0xb
/* 8026AAA8 00266708  41 82 00 10 */	beq lbl_8026AAB8
/* 8026AAAC 0026670C  38 7F 01 98 */	addi r3, r31, 0x198
/* 8026AAB0 00266710  4C C6 31 82 */	crclr 6
/* 8026AAB4 00266714  4B D9 D0 11 */	bl OSReport
lbl_8026AAB8:
/* 8026AAB8 00266718  7F C3 F3 78 */	mr r3, r30
/* 8026AABC 0026671C  4B FF D8 41 */	bl PPCMthid2
/* 8026AAC0 00266720  80 01 00 84 */	lwz r0, 0x84(r1)
/* 8026AAC4 00266724  83 E1 00 7C */	lwz r31, 0x7c(r1)
/* 8026AAC8 00266728  83 C1 00 78 */	lwz r30, 0x78(r1)
/* 8026AACC 0026672C  83 A1 00 74 */	lwz r29, 0x74(r1)
/* 8026AAD0 00266730  7C 08 03 A6 */	mtlr r0
/* 8026AAD4 00266734  38 21 00 80 */	addi r1, r1, 0x80
/* 8026AAD8 00266738  4E 80 00 20 */	blr

.global __OSCacheInit
__OSCacheInit:
/* 8026AADC 0026673C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8026AAE0 00266740  7C 08 02 A6 */	mflr r0
/* 8026AAE4 00266744  90 01 00 14 */	stw r0, 0x14(r1)
/* 8026AAE8 00266748  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8026AAEC 0026674C  3F E0 80 42 */	lis r31, lbl_80426A60@ha
/* 8026AAF0 00266750  3B FF 6A 60 */	addi r31, r31, lbl_80426A60@l
/* 8026AAF4 00266754  93 C1 00 08 */	stw r30, 8(r1)
/* 8026AAF8 00266758  4B FF D7 41 */	bl PPCMfhid0
/* 8026AAFC 0026675C  54 60 04 21 */	rlwinm. r0, r3, 0, 0x10, 0x10
/* 8026AB00 00266760  40 82 00 14 */	bne lbl_8026AB14
/* 8026AB04 00266764  4B FF FC 79 */	bl ICEnable
/* 8026AB08 00266768  38 7F 01 B4 */	addi r3, r31, 0x1b4
/* 8026AB0C 0026676C  4C C6 31 82 */	crclr 6
/* 8026AB10 00266770  48 00 C9 39 */	bl DBPrintf
lbl_8026AB14:
/* 8026AB14 00266774  4B FF D7 25 */	bl PPCMfhid0
/* 8026AB18 00266778  54 60 04 63 */	rlwinm. r0, r3, 0, 0x11, 0x11
/* 8026AB1C 0026677C  40 82 00 14 */	bne lbl_8026AB30
/* 8026AB20 00266780  4B FF FA F5 */	bl DCEnable
/* 8026AB24 00266784  38 7F 01 D0 */	addi r3, r31, 0x1d0
/* 8026AB28 00266788  4C C6 31 82 */	crclr 6
/* 8026AB2C 0026678C  48 00 C9 1D */	bl DBPrintf
lbl_8026AB30:
/* 8026AB30 00266790  4B FF D7 19 */	bl PPCMfl2cr
/* 8026AB34 00266794  54 60 00 01 */	rlwinm. r0, r3, 0, 0, 0
/* 8026AB38 00266798  40 82 00 A8 */	bne lbl_8026ABE0
/* 8026AB3C 0026679C  4B FF D6 ED */	bl PPCMfmsr
/* 8026AB40 002667A0  7C 7E 1B 78 */	mr r30, r3
/* 8026AB44 002667A4  7C 00 04 AC */	sync 0
/* 8026AB48 002667A8  38 60 00 30 */	li r3, 0x30
/* 8026AB4C 002667AC  4B FF D6 E5 */	bl PPCMtmsr
/* 8026AB50 002667B0  7C 00 04 AC */	sync 0
/* 8026AB54 002667B4  7C 00 04 AC */	sync 0
/* 8026AB58 002667B8  4B FF D6 F1 */	bl PPCMfl2cr
/* 8026AB5C 002667BC  54 63 00 7E */	clrlwi r3, r3, 1
/* 8026AB60 002667C0  4B FF D6 F1 */	bl PPCMtl2cr
/* 8026AB64 002667C4  7C 00 04 AC */	sync 0
/* 8026AB68 002667C8  7C 00 04 AC */	sync 0
/* 8026AB6C 002667CC  4B FF D6 DD */	bl PPCMfl2cr
/* 8026AB70 002667D0  54 63 00 7E */	clrlwi r3, r3, 1
/* 8026AB74 002667D4  4B FF D6 DD */	bl PPCMtl2cr
/* 8026AB78 002667D8  7C 00 04 AC */	sync 0
/* 8026AB7C 002667DC  4B FF D6 CD */	bl PPCMfl2cr
/* 8026AB80 002667E0  64 63 00 20 */	oris r3, r3, 0x20
/* 8026AB84 002667E4  4B FF D6 CD */	bl PPCMtl2cr
lbl_8026AB88:
/* 8026AB88 002667E8  4B FF D6 C1 */	bl PPCMfl2cr
/* 8026AB8C 002667EC  54 60 07 FF */	clrlwi. r0, r3, 0x1f
/* 8026AB90 002667F0  40 82 FF F8 */	bne lbl_8026AB88
/* 8026AB94 002667F4  4B FF D6 B5 */	bl PPCMfl2cr
/* 8026AB98 002667F8  54 63 02 D2 */	rlwinm r3, r3, 0, 0xb, 9
/* 8026AB9C 002667FC  4B FF D6 B5 */	bl PPCMtl2cr
/* 8026ABA0 00266800  48 00 00 10 */	b lbl_8026ABB0
lbl_8026ABA4:
/* 8026ABA4 00266804  38 7F 00 00 */	addi r3, r31, 0
/* 8026ABA8 00266808  4C C6 31 82 */	crclr 6
/* 8026ABAC 0026680C  48 00 C8 9D */	bl DBPrintf
lbl_8026ABB0:
/* 8026ABB0 00266810  4B FF D6 99 */	bl PPCMfl2cr
/* 8026ABB4 00266814  54 60 07 FF */	clrlwi. r0, r3, 0x1f
/* 8026ABB8 00266818  40 82 FF EC */	bne lbl_8026ABA4
/* 8026ABBC 0026681C  7F C3 F3 78 */	mr r3, r30
/* 8026ABC0 00266820  4B FF D6 71 */	bl PPCMtmsr
/* 8026ABC4 00266824  4B FF D6 85 */	bl PPCMfl2cr
/* 8026ABC8 00266828  64 60 80 00 */	oris r0, r3, 0x8000
/* 8026ABCC 0026682C  54 03 02 D2 */	rlwinm r3, r0, 0, 0xb, 9
/* 8026ABD0 00266830  4B FF D6 81 */	bl PPCMtl2cr
/* 8026ABD4 00266834  38 7F 01 EC */	addi r3, r31, 0x1ec
/* 8026ABD8 00266838  4C C6 31 82 */	crclr 6
/* 8026ABDC 0026683C  48 00 C8 6D */	bl DBPrintf
lbl_8026ABE0:
/* 8026ABE0 00266840  3C 80 80 27 */	lis r4, DMAErrorHandler@ha
/* 8026ABE4 00266844  38 60 00 01 */	li r3, 1
/* 8026ABE8 00266848  38 84 A9 94 */	addi r4, r4, DMAErrorHandler@l
/* 8026ABEC 0026684C  48 00 09 DD */	bl OSSetErrorHandler
/* 8026ABF0 00266850  38 7F 02 04 */	addi r3, r31, 0x204
/* 8026ABF4 00266854  4C C6 31 82 */	crclr 6
/* 8026ABF8 00266858  48 00 C8 51 */	bl DBPrintf
/* 8026ABFC 0026685C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8026AC00 00266860  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8026AC04 00266864  83 C1 00 08 */	lwz r30, 8(r1)
/* 8026AC08 00266868  7C 08 03 A6 */	mtlr r0
/* 8026AC0C 0026686C  38 21 00 10 */	addi r1, r1, 0x10
/* 8026AC10 00266870  4E 80 00 20 */	blr