summaryrefslogtreecommitdiff
path: root/asm/SDK/OS/OSContext.s
blob: ef15fadac81e81a01c82b6bd42e45de50109023f (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
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
.include "macros.inc"

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

.global __OSLoadFPUContext
__OSLoadFPUContext:
/* 8026AC14 00266874  A0 A4 01 A2 */	lhz r5, 0x1a2(r4)
/* 8026AC18 00266878  54 A5 07 FF */	clrlwi. r5, r5, 0x1f
/* 8026AC1C 0026687C  41 82 01 18 */	beq lbl_8026AD34
/* 8026AC20 00266880  C8 04 01 90 */	lfd f0, 0x190(r4)
/* 8026AC24 00266884  FD FE 05 8E */	mtfsf 0xff, f0
/* 8026AC28 00266888  7C B8 E2 A6 */	mfspr r5, 0x398
/* 8026AC2C 0026688C  54 A5 1F FF */	rlwinm. r5, r5, 3, 0x1f, 0x1f
/* 8026AC30 00266890  41 82 00 84 */	beq lbl_8026ACB4
/* 8026AC34 00266894  E0 04 01 C8 */	psq_l f0, 456(r4), 0, qr0
/* 8026AC38 00266898  E0 24 01 D0 */	psq_l f1, 464(r4), 0, qr0
/* 8026AC3C 0026689C  E0 44 01 D8 */	psq_l f2, 472(r4), 0, qr0
/* 8026AC40 002668A0  E0 64 01 E0 */	psq_l f3, 480(r4), 0, qr0
/* 8026AC44 002668A4  E0 84 01 E8 */	psq_l f4, 488(r4), 0, qr0
/* 8026AC48 002668A8  E0 A4 01 F0 */	psq_l f5, 496(r4), 0, qr0
/* 8026AC4C 002668AC  E0 C4 01 F8 */	psq_l f6, 504(r4), 0, qr0
/* 8026AC50 002668B0  E0 E4 02 00 */	psq_l f7, 512(r4), 0, qr0
/* 8026AC54 002668B4  E1 04 02 08 */	psq_l f8, 520(r4), 0, qr0
/* 8026AC58 002668B8  E1 24 02 10 */	psq_l f9, 528(r4), 0, qr0
/* 8026AC5C 002668BC  E1 44 02 18 */	psq_l f10, 536(r4), 0, qr0
/* 8026AC60 002668C0  E1 64 02 20 */	psq_l f11, 544(r4), 0, qr0
/* 8026AC64 002668C4  E1 84 02 28 */	psq_l f12, 552(r4), 0, qr0
/* 8026AC68 002668C8  E1 A4 02 30 */	psq_l f13, 560(r4), 0, qr0
/* 8026AC6C 002668CC  E1 C4 02 38 */	psq_l f14, 568(r4), 0, qr0
/* 8026AC70 002668D0  E1 E4 02 40 */	psq_l f15, 576(r4), 0, qr0
/* 8026AC74 002668D4  E2 04 02 48 */	psq_l f16, 584(r4), 0, qr0
/* 8026AC78 002668D8  E2 24 02 50 */	psq_l f17, 592(r4), 0, qr0
/* 8026AC7C 002668DC  E2 44 02 58 */	psq_l f18, 600(r4), 0, qr0
/* 8026AC80 002668E0  E2 64 02 60 */	psq_l f19, 608(r4), 0, qr0
/* 8026AC84 002668E4  E2 84 02 68 */	psq_l f20, 616(r4), 0, qr0
/* 8026AC88 002668E8  E2 A4 02 70 */	psq_l f21, 624(r4), 0, qr0
/* 8026AC8C 002668EC  E2 C4 02 78 */	psq_l f22, 632(r4), 0, qr0
/* 8026AC90 002668F0  E2 E4 02 80 */	psq_l f23, 640(r4), 0, qr0
/* 8026AC94 002668F4  E3 04 02 88 */	psq_l f24, 648(r4), 0, qr0
/* 8026AC98 002668F8  E3 24 02 90 */	psq_l f25, 656(r4), 0, qr0
/* 8026AC9C 002668FC  E3 44 02 98 */	psq_l f26, 664(r4), 0, qr0
/* 8026ACA0 00266900  E3 64 02 A0 */	psq_l f27, 672(r4), 0, qr0
/* 8026ACA4 00266904  E3 84 02 A8 */	psq_l f28, 680(r4), 0, qr0
/* 8026ACA8 00266908  E3 A4 02 B0 */	psq_l f29, 688(r4), 0, qr0
/* 8026ACAC 0026690C  E3 C4 02 B8 */	psq_l f30, 696(r4), 0, qr0
/* 8026ACB0 00266910  E3 E4 02 C0 */	psq_l f31, 704(r4), 0, qr0
lbl_8026ACB4:
/* 8026ACB4 00266914  C8 04 00 90 */	lfd f0, 0x90(r4)
/* 8026ACB8 00266918  C8 24 00 98 */	lfd f1, 0x98(r4)
/* 8026ACBC 0026691C  C8 44 00 A0 */	lfd f2, 0xa0(r4)
/* 8026ACC0 00266920  C8 64 00 A8 */	lfd f3, 0xa8(r4)
/* 8026ACC4 00266924  C8 84 00 B0 */	lfd f4, 0xb0(r4)
/* 8026ACC8 00266928  C8 A4 00 B8 */	lfd f5, 0xb8(r4)
/* 8026ACCC 0026692C  C8 C4 00 C0 */	lfd f6, 0xc0(r4)
/* 8026ACD0 00266930  C8 E4 00 C8 */	lfd f7, 0xc8(r4)
/* 8026ACD4 00266934  C9 04 00 D0 */	lfd f8, 0xd0(r4)
/* 8026ACD8 00266938  C9 24 00 D8 */	lfd f9, 0xd8(r4)
/* 8026ACDC 0026693C  C9 44 00 E0 */	lfd f10, 0xe0(r4)
/* 8026ACE0 00266940  C9 64 00 E8 */	lfd f11, 0xe8(r4)
/* 8026ACE4 00266944  C9 84 00 F0 */	lfd f12, 0xf0(r4)
/* 8026ACE8 00266948  C9 A4 00 F8 */	lfd f13, 0xf8(r4)
/* 8026ACEC 0026694C  C9 C4 01 00 */	lfd f14, 0x100(r4)
/* 8026ACF0 00266950  C9 E4 01 08 */	lfd f15, 0x108(r4)
/* 8026ACF4 00266954  CA 04 01 10 */	lfd f16, 0x110(r4)
/* 8026ACF8 00266958  CA 24 01 18 */	lfd f17, 0x118(r4)
/* 8026ACFC 0026695C  CA 44 01 20 */	lfd f18, 0x120(r4)
/* 8026AD00 00266960  CA 64 01 28 */	lfd f19, 0x128(r4)
/* 8026AD04 00266964  CA 84 01 30 */	lfd f20, 0x130(r4)
/* 8026AD08 00266968  CA A4 01 38 */	lfd f21, 0x138(r4)
/* 8026AD0C 0026696C  CA C4 01 40 */	lfd f22, 0x140(r4)
/* 8026AD10 00266970  CA E4 01 48 */	lfd f23, 0x148(r4)
/* 8026AD14 00266974  CB 04 01 50 */	lfd f24, 0x150(r4)
/* 8026AD18 00266978  CB 24 01 58 */	lfd f25, 0x158(r4)
/* 8026AD1C 0026697C  CB 44 01 60 */	lfd f26, 0x160(r4)
/* 8026AD20 00266980  CB 64 01 68 */	lfd f27, 0x168(r4)
/* 8026AD24 00266984  CB 84 01 70 */	lfd f28, 0x170(r4)
/* 8026AD28 00266988  CB A4 01 78 */	lfd f29, 0x178(r4)
/* 8026AD2C 0026698C  CB C4 01 80 */	lfd f30, 0x180(r4)
/* 8026AD30 00266990  CB E4 01 88 */	lfd f31, 0x188(r4)
lbl_8026AD34:
/* 8026AD34 00266994  4E 80 00 20 */	blr

.global __OSSaveFPUContext
__OSSaveFPUContext:
/* 8026AD38 00266998  A0 65 01 A2 */	lhz r3, 0x1a2(r5)
/* 8026AD3C 0026699C  60 63 00 01 */	ori r3, r3, 1
/* 8026AD40 002669A0  B0 65 01 A2 */	sth r3, 0x1a2(r5)
/* 8026AD44 002669A4  D8 05 00 90 */	stfd f0, 0x90(r5)
/* 8026AD48 002669A8  D8 25 00 98 */	stfd f1, 0x98(r5)
/* 8026AD4C 002669AC  D8 45 00 A0 */	stfd f2, 0xa0(r5)
/* 8026AD50 002669B0  D8 65 00 A8 */	stfd f3, 0xa8(r5)
/* 8026AD54 002669B4  D8 85 00 B0 */	stfd f4, 0xb0(r5)
/* 8026AD58 002669B8  D8 A5 00 B8 */	stfd f5, 0xb8(r5)
/* 8026AD5C 002669BC  D8 C5 00 C0 */	stfd f6, 0xc0(r5)
/* 8026AD60 002669C0  D8 E5 00 C8 */	stfd f7, 0xc8(r5)
/* 8026AD64 002669C4  D9 05 00 D0 */	stfd f8, 0xd0(r5)
/* 8026AD68 002669C8  D9 25 00 D8 */	stfd f9, 0xd8(r5)
/* 8026AD6C 002669CC  D9 45 00 E0 */	stfd f10, 0xe0(r5)
/* 8026AD70 002669D0  D9 65 00 E8 */	stfd f11, 0xe8(r5)
/* 8026AD74 002669D4  D9 85 00 F0 */	stfd f12, 0xf0(r5)
/* 8026AD78 002669D8  D9 A5 00 F8 */	stfd f13, 0xf8(r5)
/* 8026AD7C 002669DC  D9 C5 01 00 */	stfd f14, 0x100(r5)
/* 8026AD80 002669E0  D9 E5 01 08 */	stfd f15, 0x108(r5)
/* 8026AD84 002669E4  DA 05 01 10 */	stfd f16, 0x110(r5)
/* 8026AD88 002669E8  DA 25 01 18 */	stfd f17, 0x118(r5)
/* 8026AD8C 002669EC  DA 45 01 20 */	stfd f18, 0x120(r5)
/* 8026AD90 002669F0  DA 65 01 28 */	stfd f19, 0x128(r5)
/* 8026AD94 002669F4  DA 85 01 30 */	stfd f20, 0x130(r5)
/* 8026AD98 002669F8  DA A5 01 38 */	stfd f21, 0x138(r5)
/* 8026AD9C 002669FC  DA C5 01 40 */	stfd f22, 0x140(r5)
/* 8026ADA0 00266A00  DA E5 01 48 */	stfd f23, 0x148(r5)
/* 8026ADA4 00266A04  DB 05 01 50 */	stfd f24, 0x150(r5)
/* 8026ADA8 00266A08  DB 25 01 58 */	stfd f25, 0x158(r5)
/* 8026ADAC 00266A0C  DB 45 01 60 */	stfd f26, 0x160(r5)
/* 8026ADB0 00266A10  DB 65 01 68 */	stfd f27, 0x168(r5)
/* 8026ADB4 00266A14  DB 85 01 70 */	stfd f28, 0x170(r5)
/* 8026ADB8 00266A18  DB A5 01 78 */	stfd f29, 0x178(r5)
/* 8026ADBC 00266A1C  DB C5 01 80 */	stfd f30, 0x180(r5)
/* 8026ADC0 00266A20  DB E5 01 88 */	stfd f31, 0x188(r5)
/* 8026ADC4 00266A24  FC 00 04 8E */	mffs f0
/* 8026ADC8 00266A28  D8 05 01 90 */	stfd f0, 0x190(r5)
/* 8026ADCC 00266A2C  C8 05 00 90 */	lfd f0, 0x90(r5)
/* 8026ADD0 00266A30  7C 78 E2 A6 */	mfspr r3, 0x398
/* 8026ADD4 00266A34  54 63 1F FF */	rlwinm. r3, r3, 3, 0x1f, 0x1f
/* 8026ADD8 00266A38  41 82 00 84 */	beq lbl_8026AE5C
/* 8026ADDC 00266A3C  F0 05 01 C8 */	psq_st f0, 456(r5), 0, qr0
/* 8026ADE0 00266A40  F0 25 01 D0 */	psq_st f1, 464(r5), 0, qr0
/* 8026ADE4 00266A44  F0 45 01 D8 */	psq_st f2, 472(r5), 0, qr0
/* 8026ADE8 00266A48  F0 65 01 E0 */	psq_st f3, 480(r5), 0, qr0
/* 8026ADEC 00266A4C  F0 85 01 E8 */	psq_st f4, 488(r5), 0, qr0
/* 8026ADF0 00266A50  F0 A5 01 F0 */	psq_st f5, 496(r5), 0, qr0
/* 8026ADF4 00266A54  F0 C5 01 F8 */	psq_st f6, 504(r5), 0, qr0
/* 8026ADF8 00266A58  F0 E5 02 00 */	psq_st f7, 512(r5), 0, qr0
/* 8026ADFC 00266A5C  F1 05 02 08 */	psq_st f8, 520(r5), 0, qr0
/* 8026AE00 00266A60  F1 25 02 10 */	psq_st f9, 528(r5), 0, qr0
/* 8026AE04 00266A64  F1 45 02 18 */	psq_st f10, 536(r5), 0, qr0
/* 8026AE08 00266A68  F1 65 02 20 */	psq_st f11, 544(r5), 0, qr0
/* 8026AE0C 00266A6C  F1 85 02 28 */	psq_st f12, 552(r5), 0, qr0
/* 8026AE10 00266A70  F1 A5 02 30 */	psq_st f13, 560(r5), 0, qr0
/* 8026AE14 00266A74  F1 C5 02 38 */	psq_st f14, 568(r5), 0, qr0
/* 8026AE18 00266A78  F1 E5 02 40 */	psq_st f15, 576(r5), 0, qr0
/* 8026AE1C 00266A7C  F2 05 02 48 */	psq_st f16, 584(r5), 0, qr0
/* 8026AE20 00266A80  F2 25 02 50 */	psq_st f17, 592(r5), 0, qr0
/* 8026AE24 00266A84  F2 45 02 58 */	psq_st f18, 600(r5), 0, qr0
/* 8026AE28 00266A88  F2 65 02 60 */	psq_st f19, 608(r5), 0, qr0
/* 8026AE2C 00266A8C  F2 85 02 68 */	psq_st f20, 616(r5), 0, qr0
/* 8026AE30 00266A90  F2 A5 02 70 */	psq_st f21, 624(r5), 0, qr0
/* 8026AE34 00266A94  F2 C5 02 78 */	psq_st f22, 632(r5), 0, qr0
/* 8026AE38 00266A98  F2 E5 02 80 */	psq_st f23, 640(r5), 0, qr0
/* 8026AE3C 00266A9C  F3 05 02 88 */	psq_st f24, 648(r5), 0, qr0
/* 8026AE40 00266AA0  F3 25 02 90 */	psq_st f25, 656(r5), 0, qr0
/* 8026AE44 00266AA4  F3 45 02 98 */	psq_st f26, 664(r5), 0, qr0
/* 8026AE48 00266AA8  F3 65 02 A0 */	psq_st f27, 672(r5), 0, qr0
/* 8026AE4C 00266AAC  F3 85 02 A8 */	psq_st f28, 680(r5), 0, qr0
/* 8026AE50 00266AB0  F3 A5 02 B0 */	psq_st f29, 688(r5), 0, qr0
/* 8026AE54 00266AB4  F3 C5 02 B8 */	psq_st f30, 696(r5), 0, qr0
/* 8026AE58 00266AB8  F3 E5 02 C0 */	psq_st f31, 704(r5), 0, qr0
lbl_8026AE5C:
/* 8026AE5C 00266ABC  4E 80 00 20 */	blr

.global OSSaveFPUContext
OSSaveFPUContext:
/* 8026AE60 00266AC0  38 A3 00 00 */	addi r5, r3, 0
/* 8026AE64 00266AC4  4B FF FE D4 */	b __OSSaveFPUContext

.global OSSetCurrentContext
OSSetCurrentContext:
/* 8026AE68 00266AC8  3C 80 80 00 */	lis r4, 0x800000D4@ha
/* 8026AE6C 00266ACC  90 64 00 D4 */	stw r3, 0x800000D4@l(r4)
/* 8026AE70 00266AD0  54 65 00 BE */	clrlwi r5, r3, 2
/* 8026AE74 00266AD4  90 A4 00 C0 */	stw r5, 0xc0(r4)
/* 8026AE78 00266AD8  80 A4 00 D8 */	lwz r5, 0xd8(r4)
/* 8026AE7C 00266ADC  7C 05 18 00 */	cmpw r5, r3
/* 8026AE80 00266AE0  40 82 00 20 */	bne lbl_8026AEA0
/* 8026AE84 00266AE4  80 C3 01 9C */	lwz r6, 0x19c(r3)
/* 8026AE88 00266AE8  60 C6 20 00 */	ori r6, r6, 0x2000
/* 8026AE8C 00266AEC  90 C3 01 9C */	stw r6, 0x19c(r3)
/* 8026AE90 00266AF0  7C C0 00 A6 */	mfmsr r6
/* 8026AE94 00266AF4  60 C6 00 02 */	ori r6, r6, 2
/* 8026AE98 00266AF8  7C C0 01 24 */	mtmsr r6
/* 8026AE9C 00266AFC  4E 80 00 20 */	blr
lbl_8026AEA0:
/* 8026AEA0 00266B00  80 C3 01 9C */	lwz r6, 0x19c(r3)
/* 8026AEA4 00266B04  54 C6 04 E2 */	rlwinm r6, r6, 0, 0x13, 0x11
/* 8026AEA8 00266B08  90 C3 01 9C */	stw r6, 0x19c(r3)
/* 8026AEAC 00266B0C  7C C0 00 A6 */	mfmsr r6
/* 8026AEB0 00266B10  54 C6 04 E2 */	rlwinm r6, r6, 0, 0x13, 0x11
/* 8026AEB4 00266B14  60 C6 00 02 */	ori r6, r6, 2
/* 8026AEB8 00266B18  7C C0 01 24 */	mtmsr r6
/* 8026AEBC 00266B1C  4C 00 01 2C */	isync
/* 8026AEC0 00266B20  4E 80 00 20 */	blr

.global OSGetCurrentContext
OSGetCurrentContext:
/* 8026AEC4 00266B24  3C 60 80 00 */	lis r3, 0x800000D4@ha
/* 8026AEC8 00266B28  80 63 00 D4 */	lwz r3, 0x800000D4@l(r3)
/* 8026AECC 00266B2C  4E 80 00 20 */	blr

.global OSSaveContext
OSSaveContext:
/* 8026AED0 00266B30  BD A3 00 34 */	stmw r13, 0x34(r3)
/* 8026AED4 00266B34  7C 11 E2 A6 */	mfspr r0, 0x391
/* 8026AED8 00266B38  90 03 01 A8 */	stw r0, 0x1a8(r3)
/* 8026AEDC 00266B3C  7C 12 E2 A6 */	mfspr r0, 0x392
/* 8026AEE0 00266B40  90 03 01 AC */	stw r0, 0x1ac(r3)
/* 8026AEE4 00266B44  7C 13 E2 A6 */	mfspr r0, 0x393
/* 8026AEE8 00266B48  90 03 01 B0 */	stw r0, 0x1b0(r3)
/* 8026AEEC 00266B4C  7C 14 E2 A6 */	mfspr r0, 0x394
/* 8026AEF0 00266B50  90 03 01 B4 */	stw r0, 0x1b4(r3)
/* 8026AEF4 00266B54  7C 15 E2 A6 */	mfspr r0, 0x395
/* 8026AEF8 00266B58  90 03 01 B8 */	stw r0, 0x1b8(r3)
/* 8026AEFC 00266B5C  7C 16 E2 A6 */	mfspr r0, 0x396
/* 8026AF00 00266B60  90 03 01 BC */	stw r0, 0x1bc(r3)
/* 8026AF04 00266B64  7C 17 E2 A6 */	mfspr r0, 0x397
/* 8026AF08 00266B68  90 03 01 C0 */	stw r0, 0x1c0(r3)
/* 8026AF0C 00266B6C  7C 00 00 26 */	mfcr r0
/* 8026AF10 00266B70  90 03 00 80 */	stw r0, 0x80(r3)
/* 8026AF14 00266B74  7C 08 02 A6 */	mflr r0
/* 8026AF18 00266B78  90 03 00 84 */	stw r0, 0x84(r3)
/* 8026AF1C 00266B7C  90 03 01 98 */	stw r0, 0x198(r3)
/* 8026AF20 00266B80  7C 00 00 A6 */	mfmsr r0
/* 8026AF24 00266B84  90 03 01 9C */	stw r0, 0x19c(r3)
/* 8026AF28 00266B88  7C 09 02 A6 */	mfctr r0
/* 8026AF2C 00266B8C  90 03 00 88 */	stw r0, 0x88(r3)
/* 8026AF30 00266B90  7C 01 02 A6 */	mfxer r0
/* 8026AF34 00266B94  90 03 00 8C */	stw r0, 0x8c(r3)
/* 8026AF38 00266B98  90 23 00 04 */	stw r1, 4(r3)
/* 8026AF3C 00266B9C  90 43 00 08 */	stw r2, 8(r3)
/* 8026AF40 00266BA0  38 00 00 01 */	li r0, 1
/* 8026AF44 00266BA4  90 03 00 0C */	stw r0, 0xc(r3)
/* 8026AF48 00266BA8  38 60 00 00 */	li r3, 0
/* 8026AF4C 00266BAC  4E 80 00 20 */	blr

.global OSLoadContext
OSLoadContext:
/* 8026AF50 00266BB0  3C 80 80 27 */	lis r4, OSDisableInterrupts@ha
/* 8026AF54 00266BB4  80 C3 01 98 */	lwz r6, 0x198(r3)
/* 8026AF58 00266BB8  38 A4 E7 5C */	addi r5, r4, OSDisableInterrupts@l
/* 8026AF5C 00266BBC  7C 06 28 40 */	cmplw r6, r5
/* 8026AF60 00266BC0  40 81 00 18 */	ble lbl_8026AF78
/* 8026AF64 00266BC4  3C 80 80 27 */	lis r4, __RAS_OSDisableInterrupts_end@ha
/* 8026AF68 00266BC8  38 04 E7 68 */	addi r0, r4, __RAS_OSDisableInterrupts_end@l
/* 8026AF6C 00266BCC  7C 06 00 40 */	cmplw r6, r0
/* 8026AF70 00266BD0  40 80 00 08 */	bge lbl_8026AF78
/* 8026AF74 00266BD4  90 A3 01 98 */	stw r5, 0x198(r3)
lbl_8026AF78:
/* 8026AF78 00266BD8  80 03 00 00 */	lwz r0, 0(r3)
/* 8026AF7C 00266BDC  80 23 00 04 */	lwz r1, 4(r3)
/* 8026AF80 00266BE0  80 43 00 08 */	lwz r2, 8(r3)
/* 8026AF84 00266BE4  A0 83 01 A2 */	lhz r4, 0x1a2(r3)
/* 8026AF88 00266BE8  54 85 07 BD */	rlwinm. r5, r4, 0, 0x1e, 0x1e
/* 8026AF8C 00266BEC  41 82 00 14 */	beq lbl_8026AFA0
/* 8026AF90 00266BF0  54 84 07 FA */	rlwinm r4, r4, 0, 0x1f, 0x1d
/* 8026AF94 00266BF4  B0 83 01 A2 */	sth r4, 0x1a2(r3)
/* 8026AF98 00266BF8  B8 A3 00 14 */	lmw r5, 0x14(r3)
/* 8026AF9C 00266BFC  48 00 00 08 */	b lbl_8026AFA4
lbl_8026AFA0:
/* 8026AFA0 00266C00  B9 A3 00 34 */	lmw r13, 0x34(r3)
lbl_8026AFA4:
/* 8026AFA4 00266C04  80 83 01 A8 */	lwz r4, 0x1a8(r3)
/* 8026AFA8 00266C08  7C 91 E3 A6 */	mtspr 0x391, r4
/* 8026AFAC 00266C0C  80 83 01 AC */	lwz r4, 0x1ac(r3)
/* 8026AFB0 00266C10  7C 92 E3 A6 */	mtspr 0x392, r4
/* 8026AFB4 00266C14  80 83 01 B0 */	lwz r4, 0x1b0(r3)
/* 8026AFB8 00266C18  7C 93 E3 A6 */	mtspr 0x393, r4
/* 8026AFBC 00266C1C  80 83 01 B4 */	lwz r4, 0x1b4(r3)
/* 8026AFC0 00266C20  7C 94 E3 A6 */	mtspr 0x394, r4
/* 8026AFC4 00266C24  80 83 01 B8 */	lwz r4, 0x1b8(r3)
/* 8026AFC8 00266C28  7C 95 E3 A6 */	mtspr 0x395, r4
/* 8026AFCC 00266C2C  80 83 01 BC */	lwz r4, 0x1bc(r3)
/* 8026AFD0 00266C30  7C 96 E3 A6 */	mtspr 0x396, r4
/* 8026AFD4 00266C34  80 83 01 C0 */	lwz r4, 0x1c0(r3)
/* 8026AFD8 00266C38  7C 97 E3 A6 */	mtspr 0x397, r4
/* 8026AFDC 00266C3C  80 83 00 80 */	lwz r4, 0x80(r3)
/* 8026AFE0 00266C40  7C 8F F1 20 */	mtcrf 0xff, r4
/* 8026AFE4 00266C44  80 83 00 84 */	lwz r4, 0x84(r3)
/* 8026AFE8 00266C48  7C 88 03 A6 */	mtlr r4
/* 8026AFEC 00266C4C  80 83 00 88 */	lwz r4, 0x88(r3)
/* 8026AFF0 00266C50  7C 89 03 A6 */	mtctr r4
/* 8026AFF4 00266C54  80 83 00 8C */	lwz r4, 0x8c(r3)
/* 8026AFF8 00266C58  7C 81 03 A6 */	mtxer r4
/* 8026AFFC 00266C5C  7C 80 00 A6 */	mfmsr r4
/* 8026B000 00266C60  54 84 04 5E */	rlwinm r4, r4, 0, 0x11, 0xf
/* 8026B004 00266C64  54 84 07 FA */	rlwinm r4, r4, 0, 0x1f, 0x1d
/* 8026B008 00266C68  7C 80 01 24 */	mtmsr r4
/* 8026B00C 00266C6C  80 83 01 98 */	lwz r4, 0x198(r3)
/* 8026B010 00266C70  7C 9A 03 A6 */	mtspr 0x1a, r4
/* 8026B014 00266C74  80 83 01 9C */	lwz r4, 0x19c(r3)
/* 8026B018 00266C78  7C 9B 03 A6 */	mtspr 0x1b, r4
/* 8026B01C 00266C7C  80 83 00 10 */	lwz r4, 0x10(r3)
/* 8026B020 00266C80  80 63 00 0C */	lwz r3, 0xc(r3)
/* 8026B024 00266C84  4C 00 00 64 */	rfi

.global OSGetStackPointer
OSGetStackPointer:
/* 8026B028 00266C88  7C 23 0B 78 */	mr r3, r1
/* 8026B02C 00266C8C  4E 80 00 20 */	blr

.global OSSwitchFiber
OSSwitchFiber:
/* 8026B030 00266C90  7C 08 02 A6 */	mflr r0
/* 8026B034 00266C94  7C 25 0B 78 */	mr r5, r1
/* 8026B038 00266C98  94 A4 FF F8 */	stwu r5, -8(r4)
/* 8026B03C 00266C9C  7C 81 23 78 */	mr r1, r4
/* 8026B040 00266CA0  90 05 00 04 */	stw r0, 4(r5)
/* 8026B044 00266CA4  7C 68 03 A6 */	mtlr r3
/* 8026B048 00266CA8  4E 80 00 21 */	blrl
/* 8026B04C 00266CAC  80 A1 00 00 */	lwz r5, 0(r1)
/* 8026B050 00266CB0  80 05 00 04 */	lwz r0, 4(r5)
/* 8026B054 00266CB4  7C 08 03 A6 */	mtlr r0
/* 8026B058 00266CB8  7C A1 2B 78 */	mr r1, r5
/* 8026B05C 00266CBC  4E 80 00 20 */	blr

.global OSSwitchFiberEx
OSSwitchFiberEx:
/* 8026B060 00266CC0  7C 08 02 A6 */	mflr r0
/* 8026B064 00266CC4  7C 29 0B 78 */	mr r9, r1
/* 8026B068 00266CC8  95 28 FF F8 */	stwu r9, -8(r8)
/* 8026B06C 00266CCC  7D 01 43 78 */	mr r1, r8
/* 8026B070 00266CD0  90 09 00 04 */	stw r0, 4(r9)
/* 8026B074 00266CD4  7C E8 03 A6 */	mtlr r7
/* 8026B078 00266CD8  4E 80 00 21 */	blrl
/* 8026B07C 00266CDC  80 A1 00 00 */	lwz r5, 0(r1)
/* 8026B080 00266CE0  80 05 00 04 */	lwz r0, 4(r5)
/* 8026B084 00266CE4  7C 08 03 A6 */	mtlr r0
/* 8026B088 00266CE8  7C A1 2B 78 */	mr r1, r5
/* 8026B08C 00266CEC  4E 80 00 20 */	blr

.global OSClearContext
OSClearContext:
/* 8026B090 00266CF0  38 A0 00 00 */	li r5, 0
/* 8026B094 00266CF4  3C 80 80 00 */	lis r4, 0x800000D8@ha
/* 8026B098 00266CF8  B0 A3 01 A0 */	sth r5, 0x1a0(r3)
/* 8026B09C 00266CFC  B0 A3 01 A2 */	sth r5, 0x1a2(r3)
/* 8026B0A0 00266D00  80 04 00 D8 */	lwz r0, 0x800000D8@l(r4)
/* 8026B0A4 00266D04  7C 03 00 40 */	cmplw r3, r0
/* 8026B0A8 00266D08  4C 82 00 20 */	bnelr
/* 8026B0AC 00266D0C  90 A4 00 D8 */	stw r5, 0xd8(r4)
/* 8026B0B0 00266D10  4E 80 00 20 */	blr

.global OSInitContext
OSInitContext:
/* 8026B0B4 00266D14  90 83 01 98 */	stw r4, 0x198(r3)
/* 8026B0B8 00266D18  90 A3 00 04 */	stw r5, 4(r3)
/* 8026B0BC 00266D1C  39 60 00 00 */	li r11, 0
/* 8026B0C0 00266D20  61 6B 90 32 */	ori r11, r11, 0x9032
/* 8026B0C4 00266D24  91 63 01 9C */	stw r11, 0x19c(r3)
/* 8026B0C8 00266D28  38 00 00 00 */	li r0, 0
/* 8026B0CC 00266D2C  90 03 00 80 */	stw r0, 0x80(r3)
/* 8026B0D0 00266D30  90 03 00 8C */	stw r0, 0x8c(r3)
/* 8026B0D4 00266D34  90 43 00 08 */	stw r2, 8(r3)
/* 8026B0D8 00266D38  91 A3 00 34 */	stw r13, 0x34(r3)
/* 8026B0DC 00266D3C  90 03 00 0C */	stw r0, 0xc(r3)
/* 8026B0E0 00266D40  90 03 00 10 */	stw r0, 0x10(r3)
/* 8026B0E4 00266D44  90 03 00 14 */	stw r0, 0x14(r3)
/* 8026B0E8 00266D48  90 03 00 18 */	stw r0, 0x18(r3)
/* 8026B0EC 00266D4C  90 03 00 1C */	stw r0, 0x1c(r3)
/* 8026B0F0 00266D50  90 03 00 20 */	stw r0, 0x20(r3)
/* 8026B0F4 00266D54  90 03 00 24 */	stw r0, 0x24(r3)
/* 8026B0F8 00266D58  90 03 00 28 */	stw r0, 0x28(r3)
/* 8026B0FC 00266D5C  90 03 00 2C */	stw r0, 0x2c(r3)
/* 8026B100 00266D60  90 03 00 30 */	stw r0, 0x30(r3)
/* 8026B104 00266D64  90 03 00 38 */	stw r0, 0x38(r3)
/* 8026B108 00266D68  90 03 00 3C */	stw r0, 0x3c(r3)
/* 8026B10C 00266D6C  90 03 00 40 */	stw r0, 0x40(r3)
/* 8026B110 00266D70  90 03 00 44 */	stw r0, 0x44(r3)
/* 8026B114 00266D74  90 03 00 48 */	stw r0, 0x48(r3)
/* 8026B118 00266D78  90 03 00 4C */	stw r0, 0x4c(r3)
/* 8026B11C 00266D7C  90 03 00 50 */	stw r0, 0x50(r3)
/* 8026B120 00266D80  90 03 00 54 */	stw r0, 0x54(r3)
/* 8026B124 00266D84  90 03 00 58 */	stw r0, 0x58(r3)
/* 8026B128 00266D88  90 03 00 5C */	stw r0, 0x5c(r3)
/* 8026B12C 00266D8C  90 03 00 60 */	stw r0, 0x60(r3)
/* 8026B130 00266D90  90 03 00 64 */	stw r0, 0x64(r3)
/* 8026B134 00266D94  90 03 00 68 */	stw r0, 0x68(r3)
/* 8026B138 00266D98  90 03 00 6C */	stw r0, 0x6c(r3)
/* 8026B13C 00266D9C  90 03 00 70 */	stw r0, 0x70(r3)
/* 8026B140 00266DA0  90 03 00 74 */	stw r0, 0x74(r3)
/* 8026B144 00266DA4  90 03 00 78 */	stw r0, 0x78(r3)
/* 8026B148 00266DA8  90 03 00 7C */	stw r0, 0x7c(r3)
/* 8026B14C 00266DAC  90 03 01 A4 */	stw r0, 0x1a4(r3)
/* 8026B150 00266DB0  90 03 01 A8 */	stw r0, 0x1a8(r3)
/* 8026B154 00266DB4  90 03 01 AC */	stw r0, 0x1ac(r3)
/* 8026B158 00266DB8  90 03 01 B0 */	stw r0, 0x1b0(r3)
/* 8026B15C 00266DBC  90 03 01 B4 */	stw r0, 0x1b4(r3)
/* 8026B160 00266DC0  90 03 01 B8 */	stw r0, 0x1b8(r3)
/* 8026B164 00266DC4  90 03 01 BC */	stw r0, 0x1bc(r3)
/* 8026B168 00266DC8  90 03 01 C0 */	stw r0, 0x1c0(r3)
/* 8026B16C 00266DCC  4B FF FF 24 */	b OSClearContext

.global OSDumpContext
OSDumpContext:
/* 8026B170 00266DD0  94 21 FD 10 */	stwu r1, -0x2f0(r1)
/* 8026B174 00266DD4  7C 08 02 A6 */	mflr r0
/* 8026B178 00266DD8  90 01 02 F4 */	stw r0, 0x2f4(r1)
/* 8026B17C 00266DDC  39 61 02 F0 */	addi r11, r1, 0x2f0
/* 8026B180 00266DE0  4B F5 BF A1 */	bl _savegpr_25
/* 8026B184 00266DE4  3F 80 80 42 */	lis r28, lbl_80426C98@ha
/* 8026B188 00266DE8  7C 7E 1B 78 */	mr r30, r3
/* 8026B18C 00266DEC  3B 9C 6C 98 */	addi r28, r28, lbl_80426C98@l
/* 8026B190 00266DF0  7F C4 F3 78 */	mr r4, r30
/* 8026B194 00266DF4  38 7C 00 00 */	addi r3, r28, 0
/* 8026B198 00266DF8  4C C6 31 82 */	crclr 6
/* 8026B19C 00266DFC  4B D9 C9 29 */	bl OSReport
/* 8026B1A0 00266E00  7F DA F3 78 */	mr r26, r30
/* 8026B1A4 00266E04  3B 20 00 00 */	li r25, 0
lbl_8026B1A8:
/* 8026B1A8 00266E08  81 1A 00 40 */	lwz r8, 0x40(r26)
/* 8026B1AC 00266E0C  7F 24 CB 78 */	mr r4, r25
/* 8026B1B0 00266E10  80 BA 00 00 */	lwz r5, 0(r26)
/* 8026B1B4 00266E14  38 7C 00 48 */	addi r3, r28, 0x48
/* 8026B1B8 00266E18  7D 09 43 78 */	mr r9, r8
/* 8026B1BC 00266E1C  38 F9 00 10 */	addi r7, r25, 0x10
/* 8026B1C0 00266E20  7C A6 2B 78 */	mr r6, r5
/* 8026B1C4 00266E24  4C C6 31 82 */	crclr 6
/* 8026B1C8 00266E28  4B D9 C8 FD */	bl OSReport
/* 8026B1CC 00266E2C  3B 39 00 01 */	addi r25, r25, 1
/* 8026B1D0 00266E30  3B 5A 00 04 */	addi r26, r26, 4
/* 8026B1D4 00266E34  28 19 00 10 */	cmplwi r25, 0x10
/* 8026B1D8 00266E38  41 80 FF D0 */	blt lbl_8026B1A8
/* 8026B1DC 00266E3C  80 9E 00 84 */	lwz r4, 0x84(r30)
/* 8026B1E0 00266E40  38 7C 00 78 */	addi r3, r28, 0x78
/* 8026B1E4 00266E44  80 BE 00 80 */	lwz r5, 0x80(r30)
/* 8026B1E8 00266E48  4C C6 31 82 */	crclr 6
/* 8026B1EC 00266E4C  4B D9 C8 D9 */	bl OSReport
/* 8026B1F0 00266E50  80 9E 01 98 */	lwz r4, 0x198(r30)
/* 8026B1F4 00266E54  38 7C 00 A8 */	addi r3, r28, 0xa8
/* 8026B1F8 00266E58  80 BE 01 9C */	lwz r5, 0x19c(r30)
/* 8026B1FC 00266E5C  4C C6 31 82 */	crclr 6
/* 8026B200 00266E60  4B D9 C8 C5 */	bl OSReport
/* 8026B204 00266E64  38 7C 00 D8 */	addi r3, r28, 0xd8
/* 8026B208 00266E68  4C C6 31 82 */	crclr 6
/* 8026B20C 00266E6C  4B D9 C8 B9 */	bl OSReport
/* 8026B210 00266E70  7F DA F3 78 */	mr r26, r30
/* 8026B214 00266E74  3B 20 00 00 */	li r25, 0
lbl_8026B218:
/* 8026B218 00266E78  80 BA 01 A4 */	lwz r5, 0x1a4(r26)
/* 8026B21C 00266E7C  7F 24 CB 78 */	mr r4, r25
/* 8026B220 00266E80  80 FA 01 B4 */	lwz r7, 0x1b4(r26)
/* 8026B224 00266E84  38 7C 00 EC */	addi r3, r28, 0xec
/* 8026B228 00266E88  38 D9 00 04 */	addi r6, r25, 4
/* 8026B22C 00266E8C  4C C6 31 82 */	crclr 6
/* 8026B230 00266E90  4B D9 C8 95 */	bl OSReport
/* 8026B234 00266E94  3B 39 00 01 */	addi r25, r25, 1
/* 8026B238 00266E98  3B 5A 00 04 */	addi r26, r26, 4
/* 8026B23C 00266E9C  28 19 00 04 */	cmplwi r25, 4
/* 8026B240 00266EA0  41 80 FF D8 */	blt lbl_8026B218
/* 8026B244 00266EA4  A0 1E 01 A2 */	lhz r0, 0x1a2(r30)
/* 8026B248 00266EA8  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8026B24C 00266EAC  41 82 01 18 */	beq lbl_8026B364
/* 8026B250 00266EB0  48 00 35 0D */	bl OSDisableInterrupts
/* 8026B254 00266EB4  3C C0 80 00 */	lis r6, 0x800000D4@ha
/* 8026B258 00266EB8  38 A0 00 00 */	li r5, 0
/* 8026B25C 00266EBC  83 66 00 D4 */	lwz r27, 0x800000D4@l(r6)
/* 8026B260 00266EC0  38 81 00 08 */	addi r4, r1, 8
/* 8026B264 00266EC4  7C 7F 1B 78 */	mr r31, r3
/* 8026B268 00266EC8  B0 A1 01 A8 */	sth r5, 0x1a8(r1)
/* 8026B26C 00266ECC  B0 A1 01 AA */	sth r5, 0x1aa(r1)
/* 8026B270 00266ED0  80 06 00 D8 */	lwz r0, 0xd8(r6)
/* 8026B274 00266ED4  7C 04 00 40 */	cmplw r4, r0
/* 8026B278 00266ED8  40 82 00 08 */	bne lbl_8026B280
/* 8026B27C 00266EDC  90 A6 00 D8 */	stw r5, 0xd8(r6)
lbl_8026B280:
/* 8026B280 00266EE0  38 61 00 08 */	addi r3, r1, 8
/* 8026B284 00266EE4  4B FF FB E5 */	bl OSSetCurrentContext
/* 8026B288 00266EE8  38 7C 01 10 */	addi r3, r28, 0x110
/* 8026B28C 00266EEC  4C C6 31 82 */	crclr 6
/* 8026B290 00266EF0  4B D9 C8 35 */	bl OSReport
/* 8026B294 00266EF4  7F DA F3 78 */	mr r26, r30
/* 8026B298 00266EF8  3B 20 00 00 */	li r25, 0
lbl_8026B29C:
/* 8026B29C 00266EFC  C8 3A 00 98 */	lfd f1, 0x98(r26)
/* 8026B2A0 00266F00  4B F5 BD 61 */	bl __cvt_fp2unsigned
/* 8026B2A4 00266F04  C8 3A 00 90 */	lfd f1, 0x90(r26)
/* 8026B2A8 00266F08  7C 7D 1B 78 */	mr r29, r3
/* 8026B2AC 00266F0C  4B F5 BD 55 */	bl __cvt_fp2unsigned
/* 8026B2B0 00266F10  7C 65 1B 78 */	mr r5, r3
/* 8026B2B4 00266F14  7F 24 CB 78 */	mr r4, r25
/* 8026B2B8 00266F18  7F A7 EB 78 */	mr r7, r29
/* 8026B2BC 00266F1C  38 7C 01 24 */	addi r3, r28, 0x124
/* 8026B2C0 00266F20  38 D9 00 01 */	addi r6, r25, 1
/* 8026B2C4 00266F24  4C C6 31 82 */	crclr 6
/* 8026B2C8 00266F28  4B D9 C7 FD */	bl OSReport
/* 8026B2CC 00266F2C  3B 39 00 02 */	addi r25, r25, 2
/* 8026B2D0 00266F30  3B 5A 00 10 */	addi r26, r26, 0x10
/* 8026B2D4 00266F34  28 19 00 20 */	cmplwi r25, 0x20
/* 8026B2D8 00266F38  41 80 FF C4 */	blt lbl_8026B29C
/* 8026B2DC 00266F3C  38 7C 01 40 */	addi r3, r28, 0x140
/* 8026B2E0 00266F40  4C C6 31 82 */	crclr 6
/* 8026B2E4 00266F44  4B D9 C7 E1 */	bl OSReport
/* 8026B2E8 00266F48  7F DA F3 78 */	mr r26, r30
/* 8026B2EC 00266F4C  3B 20 00 00 */	li r25, 0
lbl_8026B2F0:
/* 8026B2F0 00266F50  C8 3A 01 D0 */	lfd f1, 0x1d0(r26)
/* 8026B2F4 00266F54  4B F5 BD 0D */	bl __cvt_fp2unsigned
/* 8026B2F8 00266F58  C8 3A 01 C8 */	lfd f1, 0x1c8(r26)
/* 8026B2FC 00266F5C  7C 7D 1B 78 */	mr r29, r3
/* 8026B300 00266F60  4B F5 BD 01 */	bl __cvt_fp2unsigned
/* 8026B304 00266F64  7C 65 1B 78 */	mr r5, r3
/* 8026B308 00266F68  7F 24 CB 78 */	mr r4, r25
/* 8026B30C 00266F6C  7F A7 EB 78 */	mr r7, r29
/* 8026B310 00266F70  38 7C 01 54 */	addi r3, r28, 0x154
/* 8026B314 00266F74  38 D9 00 01 */	addi r6, r25, 1
/* 8026B318 00266F78  4C C6 31 82 */	crclr 6
/* 8026B31C 00266F7C  4B D9 C7 A9 */	bl OSReport
/* 8026B320 00266F80  3B 39 00 02 */	addi r25, r25, 2
/* 8026B324 00266F84  3B 5A 00 10 */	addi r26, r26, 0x10
/* 8026B328 00266F88  28 19 00 20 */	cmplwi r25, 0x20
/* 8026B32C 00266F8C  41 80 FF C4 */	blt lbl_8026B2F0
/* 8026B330 00266F90  38 A0 00 00 */	li r5, 0
/* 8026B334 00266F94  3C 60 80 00 */	lis r3, 0x800000D8@ha
/* 8026B338 00266F98  B0 A1 01 A8 */	sth r5, 0x1a8(r1)
/* 8026B33C 00266F9C  38 81 00 08 */	addi r4, r1, 8
/* 8026B340 00266FA0  B0 A1 01 AA */	sth r5, 0x1aa(r1)
/* 8026B344 00266FA4  80 03 00 D8 */	lwz r0, 0x800000D8@l(r3)
/* 8026B348 00266FA8  7C 04 00 40 */	cmplw r4, r0
/* 8026B34C 00266FAC  40 82 00 08 */	bne lbl_8026B354
/* 8026B350 00266FB0  90 A3 00 D8 */	stw r5, 0xd8(r3)
lbl_8026B354:
/* 8026B354 00266FB4  7F 63 DB 78 */	mr r3, r27
/* 8026B358 00266FB8  4B FF FB 11 */	bl OSSetCurrentContext
/* 8026B35C 00266FBC  7F E3 FB 78 */	mr r3, r31
/* 8026B360 00266FC0  48 00 34 25 */	bl OSRestoreInterrupts
lbl_8026B364:
/* 8026B364 00266FC4  38 7C 01 74 */	addi r3, r28, 0x174
/* 8026B368 00266FC8  4C C6 31 82 */	crclr 6
/* 8026B36C 00266FCC  4B D9 C7 59 */	bl OSReport
/* 8026B370 00266FD0  83 3E 00 04 */	lwz r25, 4(r30)
/* 8026B374 00266FD4  3B 40 00 00 */	li r26, 0
/* 8026B378 00266FD8  48 00 00 20 */	b lbl_8026B398
lbl_8026B37C:
/* 8026B37C 00266FDC  80 B9 00 00 */	lwz r5, 0(r25)
/* 8026B380 00266FE0  7F 24 CB 78 */	mr r4, r25
/* 8026B384 00266FE4  80 D9 00 04 */	lwz r6, 4(r25)
/* 8026B388 00266FE8  38 7C 01 9C */	addi r3, r28, 0x19c
/* 8026B38C 00266FEC  4C C6 31 82 */	crclr 6
/* 8026B390 00266FF0  4B D9 C7 35 */	bl OSReport
/* 8026B394 00266FF4  83 39 00 00 */	lwz r25, 0(r25)
lbl_8026B398:
/* 8026B398 00266FF8  2C 19 00 00 */	cmpwi r25, 0
/* 8026B39C 00266FFC  41 82 00 1C */	beq lbl_8026B3B8
/* 8026B3A0 00267000  3C 19 00 01 */	addis r0, r25, 1
/* 8026B3A4 00267004  28 00 FF FF */	cmplwi r0, 0xffff
/* 8026B3A8 00267008  41 82 00 10 */	beq lbl_8026B3B8
/* 8026B3AC 0026700C  28 1A 00 10 */	cmplwi r26, 0x10
/* 8026B3B0 00267010  3B 5A 00 01 */	addi r26, r26, 1
/* 8026B3B4 00267014  41 80 FF C8 */	blt lbl_8026B37C
lbl_8026B3B8:
/* 8026B3B8 00267018  39 61 02 F0 */	addi r11, r1, 0x2f0
/* 8026B3BC 0026701C  4B F5 BD B1 */	bl _restgpr_25
/* 8026B3C0 00267020  80 01 02 F4 */	lwz r0, 0x2f4(r1)
/* 8026B3C4 00267024  7C 08 03 A6 */	mtlr r0
/* 8026B3C8 00267028  38 21 02 F0 */	addi r1, r1, 0x2f0
/* 8026B3CC 0026702C  4E 80 00 20 */	blr

.global OSSwitchFPUContext
OSSwitchFPUContext:
/* 8026B3D0 00267030  7C A0 00 A6 */	mfmsr r5
/* 8026B3D4 00267034  60 A5 20 00 */	ori r5, r5, 0x2000
/* 8026B3D8 00267038  7C A0 01 24 */	mtmsr r5
/* 8026B3DC 0026703C  4C 00 01 2C */	isync
/* 8026B3E0 00267040  80 A4 01 9C */	lwz r5, 0x19c(r4)
/* 8026B3E4 00267044  60 A5 20 00 */	ori r5, r5, 0x2000
/* 8026B3E8 00267048  7C BB 03 A6 */	mtspr 0x1b, r5
/* 8026B3EC 0026704C  3C 60 80 00 */	lis r3, 0x800000D8@ha
/* 8026B3F0 00267050  80 A3 00 D8 */	lwz r5, 0x800000D8@l(r3)
/* 8026B3F4 00267054  90 83 00 D8 */	stw r4, 0xd8(r3)
/* 8026B3F8 00267058  7C 05 20 00 */	cmpw r5, r4
/* 8026B3FC 0026705C  41 82 00 14 */	beq lbl_8026B410
/* 8026B400 00267060  2C 05 00 00 */	cmpwi r5, 0
/* 8026B404 00267064  41 82 00 08 */	beq lbl_8026B40C
/* 8026B408 00267068  4B FF F9 31 */	bl __OSSaveFPUContext
lbl_8026B40C:
/* 8026B40C 0026706C  4B FF F8 09 */	bl __OSLoadFPUContext
lbl_8026B410:
/* 8026B410 00267070  80 64 00 80 */	lwz r3, 0x80(r4)
/* 8026B414 00267074  7C 6F F1 20 */	mtcrf 0xff, r3
/* 8026B418 00267078  80 64 00 84 */	lwz r3, 0x84(r4)
/* 8026B41C 0026707C  7C 68 03 A6 */	mtlr r3
/* 8026B420 00267080  80 64 01 98 */	lwz r3, 0x198(r4)
/* 8026B424 00267084  7C 7A 03 A6 */	mtspr 0x1a, r3
/* 8026B428 00267088  80 64 00 88 */	lwz r3, 0x88(r4)
/* 8026B42C 0026708C  7C 69 03 A6 */	mtctr r3
/* 8026B430 00267090  80 64 00 8C */	lwz r3, 0x8c(r4)
/* 8026B434 00267094  7C 61 03 A6 */	mtxer r3
/* 8026B438 00267098  A0 64 01 A2 */	lhz r3, 0x1a2(r4)
/* 8026B43C 0026709C  54 63 07 FA */	rlwinm r3, r3, 0, 0x1f, 0x1d
/* 8026B440 002670A0  B0 64 01 A2 */	sth r3, 0x1a2(r4)
/* 8026B444 002670A4  80 A4 00 14 */	lwz r5, 0x14(r4)
/* 8026B448 002670A8  80 64 00 0C */	lwz r3, 0xc(r4)
/* 8026B44C 002670AC  80 84 00 10 */	lwz r4, 0x10(r4)
/* 8026B450 002670B0  4C 00 00 64 */	rfi

.global __OSContextInit
__OSContextInit:
/* 8026B454 002670B4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8026B458 002670B8  7C 08 02 A6 */	mflr r0
/* 8026B45C 002670BC  3C 80 80 27 */	lis r4, OSSwitchFPUContext@ha
/* 8026B460 002670C0  38 60 00 07 */	li r3, 7
/* 8026B464 002670C4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8026B468 002670C8  38 84 B3 D0 */	addi r4, r4, OSSwitchFPUContext@l
/* 8026B46C 002670CC  4B FF E0 69 */	bl __OSSetExceptionHandler
/* 8026B470 002670D0  38 00 00 00 */	li r0, 0
/* 8026B474 002670D4  3C 80 80 00 */	lis r4, 0x800000D8@ha
/* 8026B478 002670D8  3C 60 80 42 */	lis r3, lbl_80426E50@ha
/* 8026B47C 002670DC  90 04 00 D8 */	stw r0, 0x800000D8@l(r4)
/* 8026B480 002670E0  38 63 6E 50 */	addi r3, r3, lbl_80426E50@l
/* 8026B484 002670E4  4C C6 31 82 */	crclr 6
/* 8026B488 002670E8  48 00 BF C1 */	bl DBPrintf
/* 8026B48C 002670EC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8026B490 002670F0  7C 08 03 A6 */	mtlr r0
/* 8026B494 002670F4  38 21 00 10 */	addi r1, r1, 0x10
/* 8026B498 002670F8  4E 80 00 20 */	blr