Work on OSThread

This commit is contained in:
Tal Hayon 2023-01-28 17:51:25 +02:00
parent 3e408cf7a5
commit 0436820724
21 changed files with 493 additions and 2177 deletions

View File

@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
.init | 97.972973% | 9280 | 9472 .init | 97.972973% | 9280 | 9472
.extab | 100.000000% | 96 | 96 .extab | 100.000000% | 96 | 96
.extabindex | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96
.text | 23.307153% | 838252 | 3596544 .text | 23.489216% | 844800 | 3596544
.ctors | 100.000000% | 448 | 448 .ctors | 100.000000% | 448 | 448
.dtors | 100.000000% | 32 | 32 .dtors | 100.000000% | 32 | 32
.rodata | 100.000000% | 193856 | 193856 .rodata | 100.000000% | 193856 | 193856
.data | 100.000000% | 197632 | 197632 .data | 100.000000% | 197632 | 197632
.sdata | 100.000000% | 1408 | 1408 .sdata | 100.000000% | 1408 | 1408
.sdata2 | 100.000000% | 20832 | 20832 .sdata2 | 100.000000% | 20832 | 20832
Total | 31.392464% | 1262188 | 4020672 Total | 31.555322% | 1268736 | 4020672
## Total ## Total
Section | Percentage | Decompiled (bytes) | Total (bytes) Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|--- ---|---|---|---
main.dol | 31.392464% | 1262188 | 4020672 main.dol | 31.555322% | 1268736 | 4020672
RELs | 33.041295% | 3799856 | 11500324 RELs | 33.041295% | 3799856 | 11500324
Total | 32.614170% | 5062044 | 15520996 Total | 32.656358% | 5068592 | 15520996
## RELs ## RELs

View File

@ -1,46 +0,0 @@
lbl_80341E64:
/* 80341E64 80 83 00 00 */ lwz r4, 0(r3)
/* 80341E68 28 04 00 00 */ cmplwi r4, 0
/* 80341E6C 41 82 00 18 */ beq lbl_80341E84
/* 80341E70 80 04 02 E4 */ lwz r0, 0x2e4(r4)
/* 80341E74 28 00 00 00 */ cmplwi r0, 0
/* 80341E78 41 82 00 0C */ beq lbl_80341E84
/* 80341E7C 38 60 00 00 */ li r3, 0
/* 80341E80 4E 80 00 20 */ blr
lbl_80341E84:
/* 80341E84 80 63 00 04 */ lwz r3, 4(r3)
/* 80341E88 28 03 00 00 */ cmplwi r3, 0
/* 80341E8C 41 82 00 18 */ beq lbl_80341EA4
/* 80341E90 80 03 02 E0 */ lwz r0, 0x2e0(r3)
/* 80341E94 28 00 00 00 */ cmplwi r0, 0
/* 80341E98 41 82 00 0C */ beq lbl_80341EA4
/* 80341E9C 38 60 00 00 */ li r3, 0
/* 80341EA0 4E 80 00 20 */ blr
lbl_80341EA4:
/* 80341EA4 7C 85 23 78 */ mr r5, r4
/* 80341EA8 48 00 00 48 */ b lbl_80341EF0
lbl_80341EAC:
/* 80341EAC 80 65 02 E0 */ lwz r3, 0x2e0(r5)
/* 80341EB0 28 03 00 00 */ cmplwi r3, 0
/* 80341EB4 41 82 00 18 */ beq lbl_80341ECC
/* 80341EB8 80 03 02 E4 */ lwz r0, 0x2e4(r3)
/* 80341EBC 7C 05 00 40 */ cmplw r5, r0
/* 80341EC0 41 82 00 0C */ beq lbl_80341ECC
/* 80341EC4 38 60 00 00 */ li r3, 0
/* 80341EC8 4E 80 00 20 */ blr
lbl_80341ECC:
/* 80341ECC 80 85 02 E4 */ lwz r4, 0x2e4(r5)
/* 80341ED0 28 04 00 00 */ cmplwi r4, 0
/* 80341ED4 41 82 00 18 */ beq lbl_80341EEC
/* 80341ED8 80 04 02 E0 */ lwz r0, 0x2e0(r4)
/* 80341EDC 7C 05 00 40 */ cmplw r5, r0
/* 80341EE0 41 82 00 0C */ beq lbl_80341EEC
/* 80341EE4 38 60 00 00 */ li r3, 0
/* 80341EE8 4E 80 00 20 */ blr
lbl_80341EEC:
/* 80341EEC 7C 65 1B 78 */ mr r5, r3
lbl_80341EF0:
/* 80341EF0 28 05 00 00 */ cmplwi r5, 0
/* 80341EF4 40 82 FF B8 */ bne lbl_80341EAC
/* 80341EF8 38 60 00 01 */ li r3, 1
/* 80341EFC 4E 80 00 20 */ blr

View File

@ -1,131 +0,0 @@
lbl_80341558:
/* 80341558 7C 08 02 A6 */ mflr r0
/* 8034155C 90 01 00 04 */ stw r0, 4(r1)
/* 80341560 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80341564 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80341568 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8034156C 7C 7E 1B 78 */ mr r30, r3
/* 80341570 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80341574 4B FF C1 81 */ bl OSDisableInterrupts
/* 80341578 A0 1E 02 C8 */ lhz r0, 0x2c8(r30)
/* 8034157C 3B E3 00 00 */ addi r31, r3, 0
/* 80341580 2C 00 00 03 */ cmpwi r0, 3
/* 80341584 41 82 00 DC */ beq lbl_80341660
/* 80341588 40 80 00 14 */ bge lbl_8034159C
/* 8034158C 2C 00 00 01 */ cmpwi r0, 1
/* 80341590 41 82 00 18 */ beq lbl_803415A8
/* 80341594 40 80 00 2C */ bge lbl_803415C0
/* 80341598 48 00 00 C8 */ b lbl_80341660
lbl_8034159C:
/* 8034159C 2C 00 00 05 */ cmpwi r0, 5
/* 803415A0 40 80 00 C0 */ bge lbl_80341660
/* 803415A4 48 00 00 28 */ b lbl_803415CC
lbl_803415A8:
/* 803415A8 80 1E 02 CC */ lwz r0, 0x2cc(r30)
/* 803415AC 2C 00 00 00 */ cmpwi r0, 0
/* 803415B0 41 81 00 BC */ bgt lbl_8034166C
/* 803415B4 7F C3 F3 78 */ mr r3, r30
/* 803415B8 4B FF F7 8D */ bl UnsetRun
/* 803415BC 48 00 00 B0 */ b lbl_8034166C
lbl_803415C0:
/* 803415C0 38 00 00 01 */ li r0, 1
/* 803415C4 90 0D 91 44 */ stw r0, RunQueueHint(r13)
/* 803415C8 48 00 00 A4 */ b lbl_8034166C
lbl_803415CC:
/* 803415CC 80 9E 02 E0 */ lwz r4, 0x2e0(r30)
/* 803415D0 80 BE 02 E4 */ lwz r5, 0x2e4(r30)
/* 803415D4 28 04 00 00 */ cmplwi r4, 0
/* 803415D8 40 82 00 10 */ bne lbl_803415E8
/* 803415DC 80 7E 02 DC */ lwz r3, 0x2dc(r30)
/* 803415E0 90 A3 00 04 */ stw r5, 4(r3)
/* 803415E4 48 00 00 08 */ b lbl_803415EC
lbl_803415E8:
/* 803415E8 90 A4 02 E4 */ stw r5, 0x2e4(r4)
lbl_803415EC:
/* 803415EC 28 05 00 00 */ cmplwi r5, 0
/* 803415F0 40 82 00 10 */ bne lbl_80341600
/* 803415F4 80 7E 02 DC */ lwz r3, 0x2dc(r30)
/* 803415F8 90 83 00 00 */ stw r4, 0(r3)
/* 803415FC 48 00 00 08 */ b lbl_80341604
lbl_80341600:
/* 80341600 90 85 02 E0 */ stw r4, 0x2e0(r5)
lbl_80341604:
/* 80341604 38 00 00 00 */ li r0, 0
/* 80341608 90 1E 02 DC */ stw r0, 0x2dc(r30)
/* 8034160C 80 1E 02 CC */ lwz r0, 0x2cc(r30)
/* 80341610 2C 00 00 00 */ cmpwi r0, 0
/* 80341614 41 81 00 58 */ bgt lbl_8034166C
/* 80341618 80 7E 02 F0 */ lwz r3, 0x2f0(r30)
/* 8034161C 28 03 00 00 */ cmplwi r3, 0
/* 80341620 41 82 00 4C */ beq lbl_8034166C
/* 80341624 83 A3 00 08 */ lwz r29, 8(r3)
lbl_80341628:
/* 80341628 80 1D 02 CC */ lwz r0, 0x2cc(r29)
/* 8034162C 2C 00 00 00 */ cmpwi r0, 0
/* 80341630 41 81 00 3C */ bgt lbl_8034166C
/* 80341634 7F A3 EB 78 */ mr r3, r29
/* 80341638 4B FF F7 75 */ bl __OSGetEffectivePriority
/* 8034163C 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 80341640 38 83 00 00 */ addi r4, r3, 0
/* 80341644 7C 00 20 00 */ cmpw r0, r4
/* 80341648 41 82 00 24 */ beq lbl_8034166C
/* 8034164C 7F A3 EB 78 */ mr r3, r29
/* 80341650 4B FF F7 99 */ bl SetEffectivePriority
/* 80341654 7C 7D 1B 79 */ or. r29, r3, r3
/* 80341658 40 82 FF D0 */ bne lbl_80341628
/* 8034165C 48 00 00 10 */ b lbl_8034166C
lbl_80341660:
/* 80341660 7F E3 FB 78 */ mr r3, r31
/* 80341664 4B FF C0 B9 */ bl OSRestoreInterrupts
/* 80341668 48 00 00 90 */ b lbl_803416F8
lbl_8034166C:
/* 8034166C 7F C3 F3 78 */ mr r3, r30
/* 80341670 4B FF A9 91 */ bl OSClearContext
/* 80341674 A0 1E 02 CA */ lhz r0, 0x2ca(r30)
/* 80341678 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8034167C 41 82 00 48 */ beq lbl_803416C4
/* 80341680 80 9E 02 FC */ lwz r4, 0x2fc(r30)
/* 80341684 80 BE 03 00 */ lwz r5, 0x300(r30)
/* 80341688 28 04 00 00 */ cmplwi r4, 0
/* 8034168C 40 82 00 10 */ bne lbl_8034169C
/* 80341690 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000E0@ha */
/* 80341694 90 A3 00 E0 */ stw r5, 0x00E0(r3) /* 0x800000E0@l */
/* 80341698 48 00 00 08 */ b lbl_803416A0
lbl_8034169C:
/* 8034169C 90 A4 03 00 */ stw r5, 0x300(r4)
lbl_803416A0:
/* 803416A0 28 05 00 00 */ cmplwi r5, 0
/* 803416A4 40 82 00 10 */ bne lbl_803416B4
/* 803416A8 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000DC@ha */
/* 803416AC 90 83 00 DC */ stw r4, 0x00DC(r3) /* 0x800000DC@l */
/* 803416B0 48 00 00 08 */ b lbl_803416B8
lbl_803416B4:
/* 803416B4 90 85 02 FC */ stw r4, 0x2fc(r5)
lbl_803416B8:
/* 803416B8 38 00 00 00 */ li r0, 0
/* 803416BC B0 1E 02 C8 */ sth r0, 0x2c8(r30)
/* 803416C0 48 00 00 0C */ b lbl_803416CC
lbl_803416C4:
/* 803416C4 38 00 00 08 */ li r0, 8
/* 803416C8 B0 1E 02 C8 */ sth r0, 0x2c8(r30)
lbl_803416CC:
/* 803416CC 7F C3 F3 78 */ mr r3, r30
/* 803416D0 4B FF DB 15 */ bl __OSUnlockAllMutex
/* 803416D4 38 7E 02 E8 */ addi r3, r30, 0x2e8
/* 803416D8 48 00 05 C1 */ bl OSWakeupThread
/* 803416DC 80 0D 91 44 */ lwz r0, RunQueueHint(r13)
/* 803416E0 2C 00 00 00 */ cmpwi r0, 0
/* 803416E4 41 82 00 0C */ beq lbl_803416F0
/* 803416E8 38 60 00 00 */ li r3, 0
/* 803416EC 4B FF F9 0D */ bl SelectThread
lbl_803416F0:
/* 803416F0 7F E3 FB 78 */ mr r3, r31
/* 803416F4 4B FF C0 29 */ bl OSRestoreInterrupts
lbl_803416F8:
/* 803416F8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803416FC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80341700 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80341704 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80341708 38 21 00 20 */ addi r1, r1, 0x20
/* 8034170C 7C 08 03 A6 */ mtlr r0
/* 80341710 4E 80 00 20 */ blr

View File

@ -1,521 +0,0 @@
lbl_80341F00:
/* 80341F00 7C 08 02 A6 */ mflr r0
/* 80341F04 3C 80 80 3D */ lis r4, lit_831@ha /* 0x803D0838@ha */
/* 80341F08 90 01 00 04 */ stw r0, 4(r1)
/* 80341F0C 3C 60 80 45 */ lis r3, RunQueue@ha /* 0x8044BB78@ha */
/* 80341F10 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 80341F14 BF 41 00 20 */ stmw r26, 0x20(r1)
/* 80341F18 3B C4 08 38 */ addi r30, r4, lit_831@l /* 0x803D0838@l */
/* 80341F1C 3B E3 BB 78 */ addi r31, r3, RunQueue@l /* 0x8044BB78@l */
/* 80341F20 3B 80 00 00 */ li r28, 0
/* 80341F24 4B FF B7 D1 */ bl OSDisableInterrupts
/* 80341F28 3B 63 00 00 */ addi r27, r3, 0
/* 80341F2C 3B BF 00 00 */ addi r29, r31, 0
/* 80341F30 3B 40 00 00 */ li r26, 0
lbl_80341F34:
/* 80341F34 20 1A 00 1F */ subfic r0, r26, 0x1f
/* 80341F38 80 8D 91 40 */ lwz r4, RunQueueBits(r13)
/* 80341F3C 38 60 00 01 */ li r3, 1
/* 80341F40 7C 60 00 30 */ slw r0, r3, r0
/* 80341F44 7C 80 00 39 */ and. r0, r4, r0
/* 80341F48 41 82 00 44 */ beq lbl_80341F8C
/* 80341F4C 80 1D 00 00 */ lwz r0, 0(r29)
/* 80341F50 28 00 00 00 */ cmplwi r0, 0
/* 80341F54 41 82 00 10 */ beq lbl_80341F64
/* 80341F58 80 1D 00 04 */ lwz r0, 4(r29)
/* 80341F5C 28 00 00 00 */ cmplwi r0, 0
/* 80341F60 40 82 00 68 */ bne lbl_80341FC8
lbl_80341F64:
/* 80341F64 38 7E 00 00 */ addi r3, r30, 0
/* 80341F68 4C C6 31 82 */ crclr 6
/* 80341F6C 38 80 05 E0 */ li r4, 0x5e0
/* 80341F70 4B CC 4B 4D */ bl OSReport
/* 80341F74 38 7E 00 60 */ addi r3, r30, 0x60
/* 80341F78 4C C6 31 82 */ crclr 6
/* 80341F7C 38 80 05 E0 */ li r4, 0x5e0
/* 80341F80 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80341F84 4B CC 4E F9 */ bl OSPanic
/* 80341F88 48 00 00 40 */ b lbl_80341FC8
lbl_80341F8C:
/* 80341F8C 80 1D 00 00 */ lwz r0, 0(r29)
/* 80341F90 28 00 00 00 */ cmplwi r0, 0
/* 80341F94 40 82 00 10 */ bne lbl_80341FA4
/* 80341F98 80 1D 00 04 */ lwz r0, 4(r29)
/* 80341F9C 28 00 00 00 */ cmplwi r0, 0
/* 80341FA0 41 82 00 28 */ beq lbl_80341FC8
lbl_80341FA4:
/* 80341FA4 38 7E 00 6C */ addi r3, r30, 0x6c
/* 80341FA8 4C C6 31 82 */ crclr 6
/* 80341FAC 38 80 05 E5 */ li r4, 0x5e5
/* 80341FB0 4B CC 4B 0D */ bl OSReport
/* 80341FB4 38 7E 00 60 */ addi r3, r30, 0x60
/* 80341FB8 4C C6 31 82 */ crclr 6
/* 80341FBC 38 80 05 E5 */ li r4, 0x5e5
/* 80341FC0 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80341FC4 4B CC 4E B9 */ bl OSPanic
lbl_80341FC8:
/* 80341FC8 7F A3 EB 78 */ mr r3, r29
/* 80341FCC 4B FF FE 99 */ bl CheckThreadQueue
/* 80341FD0 2C 03 00 00 */ cmpwi r3, 0
/* 80341FD4 40 82 00 28 */ bne lbl_80341FFC
/* 80341FD8 38 7E 00 CC */ addi r3, r30, 0xcc
/* 80341FDC 4C C6 31 82 */ crclr 6
/* 80341FE0 38 80 05 E7 */ li r4, 0x5e7
/* 80341FE4 4B CC 4A D9 */ bl OSReport
/* 80341FE8 38 7E 00 60 */ addi r3, r30, 0x60
/* 80341FEC 4C C6 31 82 */ crclr 6
/* 80341FF0 38 80 05 E7 */ li r4, 0x5e7
/* 80341FF4 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80341FF8 4B CC 4E 85 */ bl OSPanic
lbl_80341FFC:
/* 80341FFC 3B 5A 00 01 */ addi r26, r26, 1
/* 80342000 2C 1A 00 1F */ cmpwi r26, 0x1f
/* 80342004 3B BD 00 08 */ addi r29, r29, 8
/* 80342008 40 81 FF 2C */ ble lbl_80341F34
/* 8034200C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000DC@ha */
/* 80342010 80 63 00 DC */ lwz r3, 0x00DC(r3) /* 0x800000DC@l */
/* 80342014 28 03 00 00 */ cmplwi r3, 0
/* 80342018 41 82 00 34 */ beq lbl_8034204C
/* 8034201C 80 03 03 00 */ lwz r0, 0x300(r3)
/* 80342020 28 00 00 00 */ cmplwi r0, 0
/* 80342024 41 82 00 28 */ beq lbl_8034204C
/* 80342028 38 7E 01 14 */ addi r3, r30, 0x114
/* 8034202C 4C C6 31 82 */ crclr 6
/* 80342030 38 80 05 EC */ li r4, 0x5ec
/* 80342034 4B CC 4A 89 */ bl OSReport
/* 80342038 38 7E 00 60 */ addi r3, r30, 0x60
/* 8034203C 4C C6 31 82 */ crclr 6
/* 80342040 38 80 05 EC */ li r4, 0x5ec
/* 80342044 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80342048 4B CC 4E 35 */ bl OSPanic
lbl_8034204C:
/* 8034204C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000DC@ha */
/* 80342050 38 63 00 DC */ addi r3, r3, 0x00DC /* 0x800000DC@l */
/* 80342054 80 63 00 04 */ lwz r3, 4(r3)
/* 80342058 28 03 00 00 */ cmplwi r3, 0
/* 8034205C 41 82 00 34 */ beq lbl_80342090
/* 80342060 80 03 02 FC */ lwz r0, 0x2fc(r3)
/* 80342064 28 00 00 00 */ cmplwi r0, 0
/* 80342068 41 82 00 28 */ beq lbl_80342090
/* 8034206C 38 7E 01 94 */ addi r3, r30, 0x194
/* 80342070 4C C6 31 82 */ crclr 6
/* 80342074 38 80 05 EE */ li r4, 0x5ee
/* 80342078 4B CC 4A 45 */ bl OSReport
/* 8034207C 38 7E 00 60 */ addi r3, r30, 0x60
/* 80342080 4C C6 31 82 */ crclr 6
/* 80342084 38 80 05 EE */ li r4, 0x5ee
/* 80342088 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 8034208C 4B CC 4D F1 */ bl OSPanic
lbl_80342090:
/* 80342090 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000DC@ha */
/* 80342094 83 A3 00 DC */ lwz r29, 0x00DC(r3) /* 0x800000DC@l */
/* 80342098 48 00 05 90 */ b lbl_80342628
lbl_8034209C:
/* 8034209C 80 7D 02 FC */ lwz r3, 0x2fc(r29)
/* 803420A0 3B 9C 00 01 */ addi r28, r28, 1
/* 803420A4 28 03 00 00 */ cmplwi r3, 0
/* 803420A8 41 82 00 34 */ beq lbl_803420DC
/* 803420AC 80 03 03 00 */ lwz r0, 0x300(r3)
/* 803420B0 7C 1D 00 40 */ cmplw r29, r0
/* 803420B4 41 82 00 28 */ beq lbl_803420DC
/* 803420B8 38 7E 02 14 */ addi r3, r30, 0x214
/* 803420BC 4C C6 31 82 */ crclr 6
/* 803420C0 38 80 05 F6 */ li r4, 0x5f6
/* 803420C4 4B CC 49 F9 */ bl OSReport
/* 803420C8 38 7E 00 60 */ addi r3, r30, 0x60
/* 803420CC 4C C6 31 82 */ crclr 6
/* 803420D0 38 80 05 F6 */ li r4, 0x5f6
/* 803420D4 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 803420D8 4B CC 4D A5 */ bl OSPanic
lbl_803420DC:
/* 803420DC 80 7D 03 00 */ lwz r3, 0x300(r29)
/* 803420E0 28 03 00 00 */ cmplwi r3, 0
/* 803420E4 41 82 00 34 */ beq lbl_80342118
/* 803420E8 80 03 02 FC */ lwz r0, 0x2fc(r3)
/* 803420EC 7C 1D 00 40 */ cmplw r29, r0
/* 803420F0 41 82 00 28 */ beq lbl_80342118
/* 803420F4 38 7E 02 90 */ addi r3, r30, 0x290
/* 803420F8 4C C6 31 82 */ crclr 6
/* 803420FC 38 80 05 F8 */ li r4, 0x5f8
/* 80342100 4B CC 49 BD */ bl OSReport
/* 80342104 38 7E 00 60 */ addi r3, r30, 0x60
/* 80342108 4C C6 31 82 */ crclr 6
/* 8034210C 38 80 05 F8 */ li r4, 0x5f8
/* 80342110 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80342114 4B CC 4D 69 */ bl OSPanic
lbl_80342118:
/* 80342118 80 7D 03 08 */ lwz r3, 0x308(r29)
/* 8034211C 80 63 00 00 */ lwz r3, 0(r3)
/* 80342120 3C 03 21 53 */ addis r0, r3, 0x2153
/* 80342124 28 00 BA BE */ cmplwi r0, 0xbabe
/* 80342128 41 82 00 28 */ beq lbl_80342150
/* 8034212C 38 7E 03 0C */ addi r3, r30, 0x30c
/* 80342130 4C C6 31 82 */ crclr 6
/* 80342134 38 80 05 FB */ li r4, 0x5fb
/* 80342138 4B CC 49 85 */ bl OSReport
/* 8034213C 38 7E 00 60 */ addi r3, r30, 0x60
/* 80342140 4C C6 31 82 */ crclr 6
/* 80342144 38 80 05 FB */ li r4, 0x5fb
/* 80342148 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 8034214C 4B CC 4D 31 */ bl OSPanic
lbl_80342150:
/* 80342150 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 80342154 2C 00 00 00 */ cmpwi r0, 0
/* 80342158 41 80 00 0C */ blt lbl_80342164
/* 8034215C 2C 00 00 20 */ cmpwi r0, 0x20
/* 80342160 40 81 00 28 */ ble lbl_80342188
lbl_80342164:
/* 80342164 38 7E 03 60 */ addi r3, r30, 0x360
/* 80342168 4C C6 31 82 */ crclr 6
/* 8034216C 38 80 05 FE */ li r4, 0x5fe
/* 80342170 4B CC 49 4D */ bl OSReport
/* 80342174 38 7E 00 60 */ addi r3, r30, 0x60
/* 80342178 4C C6 31 82 */ crclr 6
/* 8034217C 38 80 05 FE */ li r4, 0x5fe
/* 80342180 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80342184 4B CC 4C F9 */ bl OSPanic
lbl_80342188:
/* 80342188 80 1D 02 CC */ lwz r0, 0x2cc(r29)
/* 8034218C 2C 00 00 00 */ cmpwi r0, 0
/* 80342190 40 80 00 28 */ bge lbl_803421B8
/* 80342194 38 7E 03 D4 */ addi r3, r30, 0x3d4
/* 80342198 4C C6 31 82 */ crclr 6
/* 8034219C 38 80 05 FF */ li r4, 0x5ff
/* 803421A0 4B CC 49 1D */ bl OSReport
/* 803421A4 38 7E 00 60 */ addi r3, r30, 0x60
/* 803421A8 4C C6 31 82 */ crclr 6
/* 803421AC 38 80 05 FF */ li r4, 0x5ff
/* 803421B0 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 803421B4 4B CC 4C C9 */ bl OSPanic
lbl_803421B8:
/* 803421B8 38 7D 02 E8 */ addi r3, r29, 0x2e8
/* 803421BC 4B FF FC A9 */ bl CheckThreadQueue
/* 803421C0 2C 03 00 00 */ cmpwi r3, 0
/* 803421C4 40 82 00 28 */ bne lbl_803421EC
/* 803421C8 38 7E 04 10 */ addi r3, r30, 0x410
/* 803421CC 4C C6 31 82 */ crclr 6
/* 803421D0 38 80 06 00 */ li r4, 0x600
/* 803421D4 4B CC 48 E9 */ bl OSReport
/* 803421D8 38 7E 00 60 */ addi r3, r30, 0x60
/* 803421DC 4C C6 31 82 */ crclr 6
/* 803421E0 38 80 06 00 */ li r4, 0x600
/* 803421E4 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 803421E8 4B CC 4C 95 */ bl OSPanic
lbl_803421EC:
/* 803421EC A0 9D 02 C8 */ lhz r4, 0x2c8(r29)
/* 803421F0 2C 04 00 04 */ cmpwi r4, 4
/* 803421F4 41 82 02 00 */ beq lbl_803423F4
/* 803421F8 40 80 00 1C */ bge lbl_80342214
/* 803421FC 2C 04 00 02 */ cmpwi r4, 2
/* 80342200 41 82 01 2C */ beq lbl_8034232C
/* 80342204 40 80 03 C8 */ bge lbl_803425CC
/* 80342208 2C 04 00 01 */ cmpwi r4, 1
/* 8034220C 40 80 00 14 */ bge lbl_80342220
/* 80342210 48 00 03 BC */ b lbl_803425CC
lbl_80342214:
/* 80342214 2C 04 00 08 */ cmpwi r4, 8
/* 80342218 41 82 03 74 */ beq lbl_8034258C
/* 8034221C 48 00 03 B0 */ b lbl_803425CC
lbl_80342220:
/* 80342220 80 1D 02 CC */ lwz r0, 0x2cc(r29)
/* 80342224 2C 00 00 00 */ cmpwi r0, 0
/* 80342228 41 81 03 C8 */ bgt lbl_803425F0
/* 8034222C 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 80342230 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 80342234 54 00 18 38 */ slwi r0, r0, 3
/* 80342238 7C 1F 02 14 */ add r0, r31, r0
/* 8034223C 7C 03 00 40 */ cmplw r3, r0
/* 80342240 41 82 00 28 */ beq lbl_80342268
/* 80342244 38 7E 04 5C */ addi r3, r30, 0x45c
/* 80342248 4C C6 31 82 */ crclr 6
/* 8034224C 38 80 06 06 */ li r4, 0x606
/* 80342250 4B CC 48 6D */ bl OSReport
/* 80342254 38 7E 00 60 */ addi r3, r30, 0x60
/* 80342258 4C C6 31 82 */ crclr 6
/* 8034225C 38 80 06 06 */ li r4, 0x606
/* 80342260 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80342264 4B CC 4C 19 */ bl OSPanic
lbl_80342268:
/* 80342268 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 8034226C 54 00 18 38 */ slwi r0, r0, 3
/* 80342270 7C 7F 00 2E */ lwzx r3, r31, r0
/* 80342274 48 00 00 18 */ b lbl_8034228C
lbl_80342278:
/* 80342278 7C 1D 18 40 */ cmplw r29, r3
/* 8034227C 40 82 00 0C */ bne lbl_80342288
/* 80342280 38 00 00 01 */ li r0, 1
/* 80342284 48 00 00 14 */ b lbl_80342298
lbl_80342288:
/* 80342288 80 63 02 E0 */ lwz r3, 0x2e0(r3)
lbl_8034228C:
/* 8034228C 28 03 00 00 */ cmplwi r3, 0
/* 80342290 40 82 FF E8 */ bne lbl_80342278
/* 80342294 38 00 00 00 */ li r0, 0
lbl_80342298:
/* 80342298 2C 00 00 00 */ cmpwi r0, 0
/* 8034229C 40 82 00 28 */ bne lbl_803422C4
/* 803422A0 38 7E 04 B0 */ addi r3, r30, 0x4b0
/* 803422A4 4C C6 31 82 */ crclr 6
/* 803422A8 38 80 06 07 */ li r4, 0x607
/* 803422AC 4B CC 48 11 */ bl OSReport
/* 803422B0 38 7E 00 60 */ addi r3, r30, 0x60
/* 803422B4 4C C6 31 82 */ crclr 6
/* 803422B8 38 80 06 07 */ li r4, 0x607
/* 803422BC 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 803422C0 4B CC 4B BD */ bl OSPanic
lbl_803422C4:
/* 803422C4 80 9D 02 D4 */ lwz r4, 0x2d4(r29)
/* 803422C8 80 7D 02 F4 */ lwz r3, 0x2f4(r29)
/* 803422CC 48 00 00 24 */ b lbl_803422F0
lbl_803422D0:
/* 803422D0 80 A3 00 00 */ lwz r5, 0(r3)
/* 803422D4 28 05 00 00 */ cmplwi r5, 0
/* 803422D8 41 82 00 14 */ beq lbl_803422EC
/* 803422DC 80 05 02 D0 */ lwz r0, 0x2d0(r5)
/* 803422E0 7C 00 20 00 */ cmpw r0, r4
/* 803422E4 40 80 00 08 */ bge lbl_803422EC
/* 803422E8 7C 04 03 78 */ mr r4, r0
lbl_803422EC:
/* 803422EC 80 63 00 10 */ lwz r3, 0x10(r3)
lbl_803422F0:
/* 803422F0 28 03 00 00 */ cmplwi r3, 0
/* 803422F4 40 82 FF DC */ bne lbl_803422D0
/* 803422F8 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 803422FC 7C 00 20 00 */ cmpw r0, r4
/* 80342300 41 82 02 F0 */ beq lbl_803425F0
/* 80342304 38 7E 05 04 */ addi r3, r30, 0x504
/* 80342308 4C C6 31 82 */ crclr 6
/* 8034230C 38 80 06 08 */ li r4, 0x608
/* 80342310 4B CC 47 AD */ bl OSReport
/* 80342314 38 7E 00 60 */ addi r3, r30, 0x60
/* 80342318 4C C6 31 82 */ crclr 6
/* 8034231C 38 80 06 08 */ li r4, 0x608
/* 80342320 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80342324 4B CC 4B 59 */ bl OSPanic
/* 80342328 48 00 02 C8 */ b lbl_803425F0
lbl_8034232C:
/* 8034232C 80 1D 02 CC */ lwz r0, 0x2cc(r29)
/* 80342330 2C 00 00 00 */ cmpwi r0, 0
/* 80342334 40 81 00 28 */ ble lbl_8034235C
/* 80342338 38 7E 05 60 */ addi r3, r30, 0x560
/* 8034233C 4C C6 31 82 */ crclr 6
/* 80342340 38 80 06 0C */ li r4, 0x60c
/* 80342344 4B CC 47 79 */ bl OSReport
/* 80342348 38 7E 00 60 */ addi r3, r30, 0x60
/* 8034234C 4C C6 31 82 */ crclr 6
/* 80342350 38 80 06 0C */ li r4, 0x60c
/* 80342354 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80342358 4B CC 4B 25 */ bl OSPanic
lbl_8034235C:
/* 8034235C 80 1D 02 DC */ lwz r0, 0x2dc(r29)
/* 80342360 28 00 00 00 */ cmplwi r0, 0
/* 80342364 41 82 00 28 */ beq lbl_8034238C
/* 80342368 38 7E 05 A4 */ addi r3, r30, 0x5a4
/* 8034236C 4C C6 31 82 */ crclr 6
/* 80342370 38 80 06 0D */ li r4, 0x60d
/* 80342374 4B CC 47 49 */ bl OSReport
/* 80342378 38 7E 00 60 */ addi r3, r30, 0x60
/* 8034237C 4C C6 31 82 */ crclr 6
/* 80342380 38 80 06 0D */ li r4, 0x60d
/* 80342384 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80342388 4B CC 4A F5 */ bl OSPanic
lbl_8034238C:
/* 8034238C 80 9D 02 D4 */ lwz r4, 0x2d4(r29)
/* 80342390 80 7D 02 F4 */ lwz r3, 0x2f4(r29)
/* 80342394 48 00 00 24 */ b lbl_803423B8
lbl_80342398:
/* 80342398 80 A3 00 00 */ lwz r5, 0(r3)
/* 8034239C 28 05 00 00 */ cmplwi r5, 0
/* 803423A0 41 82 00 14 */ beq lbl_803423B4
/* 803423A4 80 05 02 D0 */ lwz r0, 0x2d0(r5)
/* 803423A8 7C 00 20 00 */ cmpw r0, r4
/* 803423AC 40 80 00 08 */ bge lbl_803423B4
/* 803423B0 7C 04 03 78 */ mr r4, r0
lbl_803423B4:
/* 803423B4 80 63 00 10 */ lwz r3, 0x10(r3)
lbl_803423B8:
/* 803423B8 28 03 00 00 */ cmplwi r3, 0
/* 803423BC 40 82 FF DC */ bne lbl_80342398
/* 803423C0 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 803423C4 7C 00 20 00 */ cmpw r0, r4
/* 803423C8 41 82 02 28 */ beq lbl_803425F0
/* 803423CC 38 7E 05 04 */ addi r3, r30, 0x504
/* 803423D0 4C C6 31 82 */ crclr 6
/* 803423D4 38 80 06 0E */ li r4, 0x60e
/* 803423D8 4B CC 46 E5 */ bl OSReport
/* 803423DC 38 7E 00 60 */ addi r3, r30, 0x60
/* 803423E0 4C C6 31 82 */ crclr 6
/* 803423E4 38 80 06 0E */ li r4, 0x60e
/* 803423E8 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 803423EC 4B CC 4A 91 */ bl OSPanic
/* 803423F0 48 00 02 00 */ b lbl_803425F0
lbl_803423F4:
/* 803423F4 80 1D 02 DC */ lwz r0, 0x2dc(r29)
/* 803423F8 28 00 00 00 */ cmplwi r0, 0
/* 803423FC 40 82 00 28 */ bne lbl_80342424
/* 80342400 38 7E 05 E0 */ addi r3, r30, 0x5e0
/* 80342404 4C C6 31 82 */ crclr 6
/* 80342408 38 80 06 11 */ li r4, 0x611
/* 8034240C 4B CC 46 B1 */ bl OSReport
/* 80342410 38 7E 00 60 */ addi r3, r30, 0x60
/* 80342414 4C C6 31 82 */ crclr 6
/* 80342418 38 80 06 11 */ li r4, 0x611
/* 8034241C 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80342420 4B CC 4A 5D */ bl OSPanic
lbl_80342424:
/* 80342424 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 80342428 4B FF FA 3D */ bl CheckThreadQueue
/* 8034242C 2C 03 00 00 */ cmpwi r3, 0
/* 80342430 40 82 00 28 */ bne lbl_80342458
/* 80342434 38 7E 06 1C */ addi r3, r30, 0x61c
/* 80342438 4C C6 31 82 */ crclr 6
/* 8034243C 38 80 06 12 */ li r4, 0x612
/* 80342440 4B CC 46 7D */ bl OSReport
/* 80342444 38 7E 00 60 */ addi r3, r30, 0x60
/* 80342448 4C C6 31 82 */ crclr 6
/* 8034244C 38 80 06 12 */ li r4, 0x612
/* 80342450 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80342454 4B CC 4A 29 */ bl OSPanic
lbl_80342458:
/* 80342458 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 8034245C 80 63 00 00 */ lwz r3, 0(r3)
/* 80342460 48 00 00 18 */ b lbl_80342478
lbl_80342464:
/* 80342464 7C 1D 18 40 */ cmplw r29, r3
/* 80342468 40 82 00 0C */ bne lbl_80342474
/* 8034246C 38 00 00 01 */ li r0, 1
/* 80342470 48 00 00 14 */ b lbl_80342484
lbl_80342474:
/* 80342474 80 63 02 E0 */ lwz r3, 0x2e0(r3)
lbl_80342478:
/* 80342478 28 03 00 00 */ cmplwi r3, 0
/* 8034247C 40 82 FF E8 */ bne lbl_80342464
/* 80342480 38 00 00 00 */ li r0, 0
lbl_80342484:
/* 80342484 2C 00 00 00 */ cmpwi r0, 0
/* 80342488 40 82 00 28 */ bne lbl_803424B0
/* 8034248C 38 7E 06 60 */ addi r3, r30, 0x660
/* 80342490 4C C6 31 82 */ crclr 6
/* 80342494 38 80 06 13 */ li r4, 0x613
/* 80342498 4B CC 46 25 */ bl OSReport
/* 8034249C 38 7E 00 60 */ addi r3, r30, 0x60
/* 803424A0 4C C6 31 82 */ crclr 6
/* 803424A4 38 80 06 13 */ li r4, 0x613
/* 803424A8 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 803424AC 4B CC 49 D1 */ bl OSPanic
lbl_803424B0:
/* 803424B0 80 1D 02 CC */ lwz r0, 0x2cc(r29)
/* 803424B4 2C 00 00 00 */ cmpwi r0, 0
/* 803424B8 41 81 00 6C */ bgt lbl_80342524
/* 803424BC 80 9D 02 D4 */ lwz r4, 0x2d4(r29)
/* 803424C0 80 7D 02 F4 */ lwz r3, 0x2f4(r29)
/* 803424C4 48 00 00 24 */ b lbl_803424E8
lbl_803424C8:
/* 803424C8 80 A3 00 00 */ lwz r5, 0(r3)
/* 803424CC 28 05 00 00 */ cmplwi r5, 0
/* 803424D0 41 82 00 14 */ beq lbl_803424E4
/* 803424D4 80 05 02 D0 */ lwz r0, 0x2d0(r5)
/* 803424D8 7C 00 20 00 */ cmpw r0, r4
/* 803424DC 40 80 00 08 */ bge lbl_803424E4
/* 803424E0 7C 04 03 78 */ mr r4, r0
lbl_803424E4:
/* 803424E4 80 63 00 10 */ lwz r3, 0x10(r3)
lbl_803424E8:
/* 803424E8 28 03 00 00 */ cmplwi r3, 0
/* 803424EC 40 82 FF DC */ bne lbl_803424C8
/* 803424F0 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 803424F4 7C 00 20 00 */ cmpw r0, r4
/* 803424F8 41 82 00 5C */ beq lbl_80342554
/* 803424FC 38 7E 05 04 */ addi r3, r30, 0x504
/* 80342500 4C C6 31 82 */ crclr 6
/* 80342504 38 80 06 16 */ li r4, 0x616
/* 80342508 4B CC 45 B5 */ bl OSReport
/* 8034250C 38 7E 00 60 */ addi r3, r30, 0x60
/* 80342510 4C C6 31 82 */ crclr 6
/* 80342514 38 80 06 16 */ li r4, 0x616
/* 80342518 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 8034251C 4B CC 49 61 */ bl OSPanic
/* 80342520 48 00 00 34 */ b lbl_80342554
lbl_80342524:
/* 80342524 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 80342528 2C 00 00 20 */ cmpwi r0, 0x20
/* 8034252C 41 82 00 28 */ beq lbl_80342554
/* 80342530 38 7E 06 A4 */ addi r3, r30, 0x6a4
/* 80342534 4C C6 31 82 */ crclr 6
/* 80342538 38 80 06 1A */ li r4, 0x61a
/* 8034253C 4B CC 45 81 */ bl OSReport
/* 80342540 38 7E 00 60 */ addi r3, r30, 0x60
/* 80342544 4C C6 31 82 */ crclr 6
/* 80342548 38 80 06 1A */ li r4, 0x61a
/* 8034254C 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80342550 4B CC 49 2D */ bl OSPanic
lbl_80342554:
/* 80342554 7F A3 EB 78 */ mr r3, r29
/* 80342558 4B FF CF CD */ bl __OSCheckDeadLock
/* 8034255C 2C 03 00 00 */ cmpwi r3, 0
/* 80342560 41 82 00 90 */ beq lbl_803425F0
/* 80342564 38 7E 06 E0 */ addi r3, r30, 0x6e0
/* 80342568 4C C6 31 82 */ crclr 6
/* 8034256C 38 80 06 1C */ li r4, 0x61c
/* 80342570 4B CC 45 4D */ bl OSReport
/* 80342574 38 7E 00 60 */ addi r3, r30, 0x60
/* 80342578 4C C6 31 82 */ crclr 6
/* 8034257C 38 80 06 1C */ li r4, 0x61c
/* 80342580 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80342584 4B CC 48 F9 */ bl OSPanic
/* 80342588 48 00 00 68 */ b lbl_803425F0
lbl_8034258C:
/* 8034258C 80 1D 02 F4 */ lwz r0, 0x2f4(r29)
/* 80342590 28 00 00 00 */ cmplwi r0, 0
/* 80342594 40 82 00 10 */ bne lbl_803425A4
/* 80342598 80 1D 02 F8 */ lwz r0, 0x2f8(r29)
/* 8034259C 28 00 00 00 */ cmplwi r0, 0
/* 803425A0 41 82 00 50 */ beq lbl_803425F0
lbl_803425A4:
/* 803425A4 38 7E 07 20 */ addi r3, r30, 0x720
/* 803425A8 4C C6 31 82 */ crclr 6
/* 803425AC 38 80 06 20 */ li r4, 0x620
/* 803425B0 4B CC 45 0D */ bl OSReport
/* 803425B4 38 7E 00 60 */ addi r3, r30, 0x60
/* 803425B8 4C C6 31 82 */ crclr 6
/* 803425BC 38 80 06 20 */ li r4, 0x620
/* 803425C0 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 803425C4 4B CC 48 B9 */ bl OSPanic
/* 803425C8 48 00 00 28 */ b lbl_803425F0
lbl_803425CC:
/* 803425CC 4C C6 31 82 */ crclr 6
/* 803425D0 38 BD 00 00 */ addi r5, r29, 0
/* 803425D4 38 7E 07 88 */ addi r3, r30, 0x788
/* 803425D8 4B CC 44 E5 */ bl OSReport
/* 803425DC 38 7E 00 60 */ addi r3, r30, 0x60
/* 803425E0 4C C6 31 82 */ crclr 6
/* 803425E4 38 80 06 26 */ li r4, 0x626
/* 803425E8 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 803425EC 4B CC 48 91 */ bl OSPanic
lbl_803425F0:
/* 803425F0 7F A3 EB 78 */ mr r3, r29
/* 803425F4 4B FF CF 69 */ bl __OSCheckMutexes
/* 803425F8 2C 03 00 00 */ cmpwi r3, 0
/* 803425FC 40 82 00 28 */ bne lbl_80342624
/* 80342600 38 7E 07 D0 */ addi r3, r30, 0x7d0
/* 80342604 4C C6 31 82 */ crclr 6
/* 80342608 38 80 06 2B */ li r4, 0x62b
/* 8034260C 4B CC 44 B1 */ bl OSReport
/* 80342610 38 7E 00 60 */ addi r3, r30, 0x60
/* 80342614 4C C6 31 82 */ crclr 6
/* 80342618 38 80 06 2B */ li r4, 0x62b
/* 8034261C 38 AD 84 3C */ la r5, lit_833(r13) /* 804509BC-_SDA_BASE_ */
/* 80342620 4B CC 48 5D */ bl OSPanic
lbl_80342624:
/* 80342624 83 BD 02 FC */ lwz r29, 0x2fc(r29)
lbl_80342628:
/* 80342628 28 1D 00 00 */ cmplwi r29, 0
/* 8034262C 40 82 FA 70 */ bne lbl_8034209C
/* 80342630 7F 63 DB 78 */ mr r3, r27
/* 80342634 4B FF B0 E9 */ bl OSRestoreInterrupts
/* 80342638 7F 83 E3 78 */ mr r3, r28
/* 8034263C BB 41 00 20 */ lmw r26, 0x20(r1)
/* 80342640 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80342644 38 21 00 38 */ addi r1, r1, 0x38
/* 80342648 7C 08 03 A6 */ mtlr r0
/* 8034264C 4E 80 00 20 */ blr

View File

@ -1,48 +0,0 @@
lbl_80342650:
/* 80342650 7C 08 02 A6 */ mflr r0
/* 80342654 90 01 00 04 */ stw r0, 4(r1)
/* 80342658 54 60 82 1E */ rlwinm r0, r3, 0x10, 8, 0xf
/* 8034265C 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7
/* 80342660 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80342664 50 60 44 2E */ rlwimi r0, r3, 8, 0x10, 0x17
/* 80342668 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8034266C 7C 1F 03 78 */ mr r31, r0
/* 80342670 50 7F 06 3E */ rlwimi r31, r3, 0, 0x18, 0x1f
/* 80342674 4B FF 99 85 */ bl OSGetStackPointer
/* 80342678 3C 80 80 00 */ lis r4, 0x8000 /* 0x800000E4@ha */
/* 8034267C 80 A4 00 E4 */ lwz r5, 0x00E4(r4) /* 0x800000E4@l */
/* 80342680 38 83 00 03 */ addi r4, r3, 3
/* 80342684 80 A5 03 08 */ lwz r5, 0x308(r5)
/* 80342688 38 A5 00 04 */ addi r5, r5, 4
/* 8034268C 7C 05 18 40 */ cmplw r5, r3
/* 80342690 7C 85 20 50 */ subf r4, r5, r4
/* 80342694 54 84 F0 BE */ srwi r4, r4, 2
/* 80342698 40 80 00 50 */ bge lbl_803426E8
/* 8034269C 54 80 E8 FF */ rlwinm. r0, r4, 0x1d, 3, 0x1f
/* 803426A0 7C 09 03 A6 */ mtctr r0
/* 803426A4 41 82 00 34 */ beq lbl_803426D8
lbl_803426A8:
/* 803426A8 93 E5 00 00 */ stw r31, 0(r5)
/* 803426AC 93 E5 00 04 */ stw r31, 4(r5)
/* 803426B0 93 E5 00 08 */ stw r31, 8(r5)
/* 803426B4 93 E5 00 0C */ stw r31, 0xc(r5)
/* 803426B8 93 E5 00 10 */ stw r31, 0x10(r5)
/* 803426BC 93 E5 00 14 */ stw r31, 0x14(r5)
/* 803426C0 93 E5 00 18 */ stw r31, 0x18(r5)
/* 803426C4 93 E5 00 1C */ stw r31, 0x1c(r5)
/* 803426C8 38 A5 00 20 */ addi r5, r5, 0x20
/* 803426CC 42 00 FF DC */ bdnz lbl_803426A8
/* 803426D0 70 84 00 07 */ andi. r4, r4, 7
/* 803426D4 41 82 00 14 */ beq lbl_803426E8
lbl_803426D8:
/* 803426D8 7C 89 03 A6 */ mtctr r4
lbl_803426DC:
/* 803426DC 93 E5 00 00 */ stw r31, 0(r5)
/* 803426E0 38 A5 00 04 */ addi r5, r5, 4
/* 803426E4 42 00 FF F8 */ bdnz lbl_803426DC
lbl_803426E8:
/* 803426E8 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803426EC 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803426F0 38 21 00 18 */ addi r1, r1, 0x18
/* 803426F4 7C 08 03 A6 */ mtlr r0
/* 803426F8 4E 80 00 20 */ blr

View File

@ -1,130 +0,0 @@
lbl_8034128C:
/* 8034128C 7C 08 02 A6 */ mflr r0
/* 80341290 2C 08 00 00 */ cmpwi r8, 0
/* 80341294 90 01 00 04 */ stw r0, 4(r1)
/* 80341298 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8034129C BF 61 00 3C */ stmw r27, 0x3c(r1)
/* 803412A0 3B E3 00 00 */ addi r31, r3, 0
/* 803412A4 3B 65 00 00 */ addi r27, r5, 0
/* 803412A8 3B 86 00 00 */ addi r28, r6, 0
/* 803412AC 3B A7 00 00 */ addi r29, r7, 0
/* 803412B0 41 80 00 0C */ blt lbl_803412BC
/* 803412B4 2C 08 00 1F */ cmpwi r8, 0x1f
/* 803412B8 40 81 00 0C */ ble lbl_803412C4
lbl_803412BC:
/* 803412BC 38 60 00 00 */ li r3, 0
/* 803412C0 48 00 01 A0 */ b lbl_80341460
lbl_803412C4:
/* 803412C4 38 C0 00 01 */ li r6, 1
/* 803412C8 B0 DF 02 C8 */ sth r6, 0x2c8(r31)
/* 803412CC 55 20 07 FE */ clrlwi r0, r9, 0x1f
/* 803412D0 57 87 00 38 */ rlwinm r7, r28, 0, 0, 0x1c
/* 803412D4 B0 1F 02 CA */ sth r0, 0x2ca(r31)
/* 803412D8 38 00 FF FF */ li r0, -1
/* 803412DC 3B C0 00 00 */ li r30, 0
/* 803412E0 91 1F 02 D4 */ stw r8, 0x2d4(r31)
/* 803412E4 38 7F 00 00 */ addi r3, r31, 0
/* 803412E8 38 A7 FF F8 */ addi r5, r7, -8
/* 803412EC 91 1F 02 D0 */ stw r8, 0x2d0(r31)
/* 803412F0 90 DF 02 CC */ stw r6, 0x2cc(r31)
/* 803412F4 90 1F 02 D8 */ stw r0, 0x2d8(r31)
/* 803412F8 93 DF 02 F0 */ stw r30, 0x2f0(r31)
/* 803412FC 93 DF 02 EC */ stw r30, 0x2ec(r31)
/* 80341300 93 DF 02 E8 */ stw r30, 0x2e8(r31)
/* 80341304 93 DF 02 F8 */ stw r30, 0x2f8(r31)
/* 80341308 93 DF 02 F4 */ stw r30, 0x2f4(r31)
/* 8034130C 93 C7 FF F8 */ stw r30, -8(r7)
/* 80341310 93 C7 FF FC */ stw r30, -4(r7)
/* 80341314 4B FF AD 11 */ bl OSInitContext
/* 80341318 3C 60 80 34 */ lis r3, OSExitThread@ha /* 0x80341474@ha */
/* 8034131C 38 03 14 74 */ addi r0, r3, OSExitThread@l /* 0x80341474@l */
/* 80341320 90 1F 00 84 */ stw r0, 0x84(r31)
/* 80341324 3C 60 DE AE */ lis r3, 0xDEAE /* 0xDEADBABE@ha */
/* 80341328 7C 9D E0 50 */ subf r4, r29, r28
/* 8034132C 93 7F 00 0C */ stw r27, 0xc(r31)
/* 80341330 38 03 BA BE */ addi r0, r3, 0xBABE /* 0xDEADBABE@l */
/* 80341334 93 9F 03 04 */ stw r28, 0x304(r31)
/* 80341338 90 9F 03 08 */ stw r4, 0x308(r31)
/* 8034133C 80 7F 03 08 */ lwz r3, 0x308(r31)
/* 80341340 90 03 00 00 */ stw r0, 0(r3)
/* 80341344 93 DF 03 0C */ stw r30, 0x30c(r31)
/* 80341348 93 DF 03 10 */ stw r30, 0x310(r31)
/* 8034134C 93 DF 03 14 */ stw r30, 0x314(r31)
/* 80341350 4B FF C3 A5 */ bl OSDisableInterrupts
/* 80341354 3C 80 80 45 */ lis r4, __OSErrorTable@ha /* 0x8044BAD0@ha */
/* 80341358 38 84 BA D0 */ addi r4, r4, __OSErrorTable@l /* 0x8044BAD0@l */
/* 8034135C 80 04 00 40 */ lwz r0, 0x40(r4)
/* 80341360 28 00 00 00 */ cmplwi r0, 0
/* 80341364 41 82 00 C4 */ beq lbl_80341428
/* 80341368 80 9F 01 9C */ lwz r4, 0x19c(r31)
/* 8034136C 38 00 00 04 */ li r0, 4
/* 80341370 7C 09 03 A6 */ mtctr r0
/* 80341374 38 BF 00 00 */ addi r5, r31, 0
/* 80341378 60 80 09 00 */ ori r0, r4, 0x900
/* 8034137C 90 1F 01 9C */ stw r0, 0x19c(r31)
/* 80341380 A0 1F 01 A2 */ lhz r0, 0x1a2(r31)
/* 80341384 60 00 00 01 */ ori r0, r0, 1
/* 80341388 B0 1F 01 A2 */ sth r0, 0x1a2(r31)
/* 8034138C 80 0D 84 20 */ lwz r0, __OSFpscrEnableBits(r13)
/* 80341390 54 00 06 38 */ rlwinm r0, r0, 0, 0x18, 0x1c
/* 80341394 60 00 00 04 */ ori r0, r0, 4
/* 80341398 90 1F 01 94 */ stw r0, 0x194(r31)
lbl_8034139C:
/* 8034139C 38 00 FF FF */ li r0, -1
/* 803413A0 90 05 00 94 */ stw r0, 0x94(r5)
/* 803413A4 90 05 00 90 */ stw r0, 0x90(r5)
/* 803413A8 90 05 01 CC */ stw r0, 0x1cc(r5)
/* 803413AC 90 05 01 C8 */ stw r0, 0x1c8(r5)
/* 803413B0 90 05 00 9C */ stw r0, 0x9c(r5)
/* 803413B4 90 05 00 98 */ stw r0, 0x98(r5)
/* 803413B8 90 05 01 D4 */ stw r0, 0x1d4(r5)
/* 803413BC 90 05 01 D0 */ stw r0, 0x1d0(r5)
/* 803413C0 90 05 00 A4 */ stw r0, 0xa4(r5)
/* 803413C4 90 05 00 A0 */ stw r0, 0xa0(r5)
/* 803413C8 90 05 01 DC */ stw r0, 0x1dc(r5)
/* 803413CC 90 05 01 D8 */ stw r0, 0x1d8(r5)
/* 803413D0 90 05 00 AC */ stw r0, 0xac(r5)
/* 803413D4 90 05 00 A8 */ stw r0, 0xa8(r5)
/* 803413D8 90 05 01 E4 */ stw r0, 0x1e4(r5)
/* 803413DC 90 05 01 E0 */ stw r0, 0x1e0(r5)
/* 803413E0 90 05 00 B4 */ stw r0, 0xb4(r5)
/* 803413E4 90 05 00 B0 */ stw r0, 0xb0(r5)
/* 803413E8 90 05 01 EC */ stw r0, 0x1ec(r5)
/* 803413EC 90 05 01 E8 */ stw r0, 0x1e8(r5)
/* 803413F0 90 05 00 BC */ stw r0, 0xbc(r5)
/* 803413F4 90 05 00 B8 */ stw r0, 0xb8(r5)
/* 803413F8 90 05 01 F4 */ stw r0, 0x1f4(r5)
/* 803413FC 90 05 01 F0 */ stw r0, 0x1f0(r5)
/* 80341400 90 05 00 C4 */ stw r0, 0xc4(r5)
/* 80341404 90 05 00 C0 */ stw r0, 0xc0(r5)
/* 80341408 90 05 01 FC */ stw r0, 0x1fc(r5)
/* 8034140C 90 05 01 F8 */ stw r0, 0x1f8(r5)
/* 80341410 90 05 00 CC */ stw r0, 0xcc(r5)
/* 80341414 90 05 00 C8 */ stw r0, 0xc8(r5)
/* 80341418 90 05 02 04 */ stw r0, 0x204(r5)
/* 8034141C 90 05 02 00 */ stw r0, 0x200(r5)
/* 80341420 38 A5 00 40 */ addi r5, r5, 0x40
/* 80341424 42 00 FF 78 */ bdnz lbl_8034139C
lbl_80341428:
/* 80341428 3C 80 80 00 */ lis r4, 0x8000 /* 0x800000DC@ha */
/* 8034142C 38 A4 00 DC */ addi r5, r4, 0x00DC /* 0x800000DC@l */
/* 80341430 84 C5 00 04 */ lwzu r6, 4(r5)
/* 80341434 28 06 00 00 */ cmplwi r6, 0
/* 80341438 40 82 00 0C */ bne lbl_80341444
/* 8034143C 93 E4 00 DC */ stw r31, 0xdc(r4)
/* 80341440 48 00 00 08 */ b lbl_80341448
lbl_80341444:
/* 80341444 93 E6 02 FC */ stw r31, 0x2fc(r6)
lbl_80341448:
/* 80341448 90 DF 03 00 */ stw r6, 0x300(r31)
/* 8034144C 38 00 00 00 */ li r0, 0
/* 80341450 90 1F 02 FC */ stw r0, 0x2fc(r31)
/* 80341454 93 E5 00 00 */ stw r31, 0(r5)
/* 80341458 4B FF C2 C5 */ bl OSRestoreInterrupts
/* 8034145C 38 60 00 01 */ li r3, 1
lbl_80341460:
/* 80341460 BB 61 00 3C */ lmw r27, 0x3c(r1)
/* 80341464 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80341468 38 21 00 50 */ addi r1, r1, 0x50
/* 8034146C 7C 08 03 A6 */ mtlr r0
/* 80341470 4E 80 00 20 */ blr

View File

@ -1,46 +0,0 @@
lbl_80341714:
/* 80341714 7C 08 02 A6 */ mflr r0
/* 80341718 90 01 00 04 */ stw r0, 4(r1)
/* 8034171C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80341720 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80341724 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80341728 7C 7E 1B 78 */ mr r30, r3
/* 8034172C 4B FF BF C9 */ bl OSDisableInterrupts
/* 80341730 A0 1E 02 CA */ lhz r0, 0x2ca(r30)
/* 80341734 3B E3 00 00 */ addi r31, r3, 0
/* 80341738 60 00 00 01 */ ori r0, r0, 1
/* 8034173C B0 1E 02 CA */ sth r0, 0x2ca(r30)
/* 80341740 A0 1E 02 C8 */ lhz r0, 0x2c8(r30)
/* 80341744 28 00 00 08 */ cmplwi r0, 8
/* 80341748 40 82 00 44 */ bne lbl_8034178C
/* 8034174C 80 9E 02 FC */ lwz r4, 0x2fc(r30)
/* 80341750 80 BE 03 00 */ lwz r5, 0x300(r30)
/* 80341754 28 04 00 00 */ cmplwi r4, 0
/* 80341758 40 82 00 10 */ bne lbl_80341768
/* 8034175C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000E0@ha */
/* 80341760 90 A3 00 E0 */ stw r5, 0x00E0(r3) /* 0x800000E0@l */
/* 80341764 48 00 00 08 */ b lbl_8034176C
lbl_80341768:
/* 80341768 90 A4 03 00 */ stw r5, 0x300(r4)
lbl_8034176C:
/* 8034176C 28 05 00 00 */ cmplwi r5, 0
/* 80341770 40 82 00 10 */ bne lbl_80341780
/* 80341774 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000DC@ha */
/* 80341778 90 83 00 DC */ stw r4, 0x00DC(r3) /* 0x800000DC@l */
/* 8034177C 48 00 00 08 */ b lbl_80341784
lbl_80341780:
/* 80341780 90 85 02 FC */ stw r4, 0x2fc(r5)
lbl_80341784:
/* 80341784 38 00 00 00 */ li r0, 0
/* 80341788 B0 1E 02 C8 */ sth r0, 0x2c8(r30)
lbl_8034178C:
/* 8034178C 38 7E 02 E8 */ addi r3, r30, 0x2e8
/* 80341790 48 00 05 09 */ bl OSWakeupThread
/* 80341794 7F E3 FB 78 */ mr r3, r31
/* 80341798 4B FF BF 85 */ bl OSRestoreInterrupts
/* 8034179C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803417A0 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803417A4 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803417A8 38 21 00 18 */ addi r1, r1, 0x18
/* 803417AC 7C 08 03 A6 */ mtlr r0
/* 803417B0 4E 80 00 20 */ blr

View File

@ -1,17 +0,0 @@
lbl_80340CC4:
/* 80340CC4 7C 08 02 A6 */ mflr r0
/* 80340CC8 90 01 00 04 */ stw r0, 4(r1)
/* 80340CCC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80340CD0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80340CD4 4B FF CA 21 */ bl OSDisableInterrupts
/* 80340CD8 80 8D 91 48 */ lwz r4, Reschedule(r13)
/* 80340CDC 38 04 00 01 */ addi r0, r4, 1
/* 80340CE0 90 0D 91 48 */ stw r0, Reschedule(r13)
/* 80340CE4 7C 9F 23 78 */ mr r31, r4
/* 80340CE8 4B FF CA 35 */ bl OSRestoreInterrupts
/* 80340CEC 7F E3 FB 78 */ mr r3, r31
/* 80340CF0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80340CF4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80340CF8 38 21 00 10 */ addi r1, r1, 0x10
/* 80340CFC 7C 08 03 A6 */ mtlr r0
/* 80340D00 4E 80 00 20 */ blr

View File

@ -1,17 +0,0 @@
lbl_80340D04:
/* 80340D04 7C 08 02 A6 */ mflr r0
/* 80340D08 90 01 00 04 */ stw r0, 4(r1)
/* 80340D0C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80340D10 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80340D14 4B FF C9 E1 */ bl OSDisableInterrupts
/* 80340D18 80 8D 91 48 */ lwz r4, Reschedule(r13)
/* 80340D1C 38 04 FF FF */ addi r0, r4, -1
/* 80340D20 90 0D 91 48 */ stw r0, Reschedule(r13)
/* 80340D24 7C 9F 23 78 */ mr r31, r4
/* 80340D28 4B FF C9 F5 */ bl OSRestoreInterrupts
/* 80340D2C 7F E3 FB 78 */ mr r3, r31
/* 80340D30 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80340D34 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80340D38 38 21 00 10 */ addi r1, r1, 0x10
/* 80340D3C 7C 08 03 A6 */ mtlr r0
/* 80340D40 4E 80 00 20 */ blr

View File

@ -1,65 +0,0 @@
lbl_80341474:
/* 80341474 7C 08 02 A6 */ mflr r0
/* 80341478 90 01 00 04 */ stw r0, 4(r1)
/* 8034147C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80341480 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80341484 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80341488 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8034148C 93 81 00 10 */ stw r28, 0x10(r1)
/* 80341490 7C 7C 1B 78 */ mr r28, r3
/* 80341494 4B FF C2 61 */ bl OSDisableInterrupts
/* 80341498 3F E0 80 00 */ lis r31, 0x8000 /* 0x800000E4@ha */
/* 8034149C 83 DF 00 E4 */ lwz r30, 0x00E4(r31) /* 0x800000E4@l */
/* 803414A0 3B A3 00 00 */ addi r29, r3, 0
/* 803414A4 38 7E 00 00 */ addi r3, r30, 0
/* 803414A8 4B FF AB 59 */ bl OSClearContext
/* 803414AC A0 1E 02 CA */ lhz r0, 0x2ca(r30)
/* 803414B0 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 803414B4 41 82 00 44 */ beq lbl_803414F8
/* 803414B8 80 9E 02 FC */ lwz r4, 0x2fc(r30)
/* 803414BC 80 BE 03 00 */ lwz r5, 0x300(r30)
/* 803414C0 28 04 00 00 */ cmplwi r4, 0
/* 803414C4 40 82 00 0C */ bne lbl_803414D0
/* 803414C8 90 BF 00 E0 */ stw r5, 0xe0(r31)
/* 803414CC 48 00 00 08 */ b lbl_803414D4
lbl_803414D0:
/* 803414D0 90 A4 03 00 */ stw r5, 0x300(r4)
lbl_803414D4:
/* 803414D4 28 05 00 00 */ cmplwi r5, 0
/* 803414D8 40 82 00 10 */ bne lbl_803414E8
/* 803414DC 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000DC@ha */
/* 803414E0 90 83 00 DC */ stw r4, 0x00DC(r3) /* 0x800000DC@l */
/* 803414E4 48 00 00 08 */ b lbl_803414EC
lbl_803414E8:
/* 803414E8 90 85 02 FC */ stw r4, 0x2fc(r5)
lbl_803414EC:
/* 803414EC 38 00 00 00 */ li r0, 0
/* 803414F0 B0 1E 02 C8 */ sth r0, 0x2c8(r30)
/* 803414F4 48 00 00 10 */ b lbl_80341504
lbl_803414F8:
/* 803414F8 38 00 00 08 */ li r0, 8
/* 803414FC B0 1E 02 C8 */ sth r0, 0x2c8(r30)
/* 80341500 93 9E 02 D8 */ stw r28, 0x2d8(r30)
lbl_80341504:
/* 80341504 7F C3 F3 78 */ mr r3, r30
/* 80341508 4B FF DC DD */ bl __OSUnlockAllMutex
/* 8034150C 38 7E 02 E8 */ addi r3, r30, 0x2e8
/* 80341510 48 00 07 89 */ bl OSWakeupThread
/* 80341514 38 00 00 01 */ li r0, 1
/* 80341518 90 0D 91 44 */ stw r0, RunQueueHint(r13)
/* 8034151C 80 0D 91 44 */ lwz r0, RunQueueHint(r13)
/* 80341520 2C 00 00 00 */ cmpwi r0, 0
/* 80341524 41 82 00 0C */ beq lbl_80341530
/* 80341528 38 60 00 00 */ li r3, 0
/* 8034152C 4B FF FA CD */ bl SelectThread
lbl_80341530:
/* 80341530 7F A3 EB 78 */ mr r3, r29
/* 80341534 4B FF C1 E9 */ bl OSRestoreInterrupts
/* 80341538 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8034153C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80341540 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80341544 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80341548 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8034154C 38 21 00 20 */ addi r1, r1, 0x20
/* 80341550 7C 08 03 A6 */ mtlr r0
/* 80341554 4E 80 00 20 */ blr

View File

@ -1,189 +0,0 @@
lbl_803417B4:
/* 803417B4 7C 08 02 A6 */ mflr r0
/* 803417B8 90 01 00 04 */ stw r0, 4(r1)
/* 803417BC 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 803417C0 93 E1 00 24 */ stw r31, 0x24(r1)
/* 803417C4 93 C1 00 20 */ stw r30, 0x20(r1)
/* 803417C8 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 803417CC 7C 7D 1B 78 */ mr r29, r3
/* 803417D0 4B FF BF 25 */ bl OSDisableInterrupts
/* 803417D4 80 9D 02 CC */ lwz r4, 0x2cc(r29)
/* 803417D8 3B E3 00 00 */ addi r31, r3, 0
/* 803417DC 38 04 FF FF */ addi r0, r4, -1
/* 803417E0 90 1D 02 CC */ stw r0, 0x2cc(r29)
/* 803417E4 7C 9E 23 78 */ mr r30, r4
/* 803417E8 80 1D 02 CC */ lwz r0, 0x2cc(r29)
/* 803417EC 2C 00 00 00 */ cmpwi r0, 0
/* 803417F0 40 80 00 10 */ bge lbl_80341800
/* 803417F4 38 00 00 00 */ li r0, 0
/* 803417F8 90 1D 02 CC */ stw r0, 0x2cc(r29)
/* 803417FC 48 00 02 18 */ b lbl_80341A14
lbl_80341800:
/* 80341800 40 82 02 14 */ bne lbl_80341A14
/* 80341804 A0 1D 02 C8 */ lhz r0, 0x2c8(r29)
/* 80341808 2C 00 00 04 */ cmpwi r0, 4
/* 8034180C 41 82 00 B8 */ beq lbl_803418C4
/* 80341810 40 80 01 F0 */ bge lbl_80341A00
/* 80341814 2C 00 00 01 */ cmpwi r0, 1
/* 80341818 41 82 00 08 */ beq lbl_80341820
/* 8034181C 48 00 01 E4 */ b lbl_80341A00
lbl_80341820:
/* 80341820 80 1D 02 D4 */ lwz r0, 0x2d4(r29)
/* 80341824 80 7D 02 F4 */ lwz r3, 0x2f4(r29)
/* 80341828 48 00 00 24 */ b lbl_8034184C
lbl_8034182C:
/* 8034182C 80 83 00 00 */ lwz r4, 0(r3)
/* 80341830 28 04 00 00 */ cmplwi r4, 0
/* 80341834 41 82 00 14 */ beq lbl_80341848
/* 80341838 80 84 02 D0 */ lwz r4, 0x2d0(r4)
/* 8034183C 7C 04 00 00 */ cmpw r4, r0
/* 80341840 40 80 00 08 */ bge lbl_80341848
/* 80341844 7C 80 23 78 */ mr r0, r4
lbl_80341848:
/* 80341848 80 63 00 10 */ lwz r3, 0x10(r3)
lbl_8034184C:
/* 8034184C 28 03 00 00 */ cmplwi r3, 0
/* 80341850 40 82 FF DC */ bne lbl_8034182C
/* 80341854 90 1D 02 D0 */ stw r0, 0x2d0(r29)
/* 80341858 3C 60 80 45 */ lis r3, RunQueue@ha /* 0x8044BB78@ha */
/* 8034185C 38 03 BB 78 */ addi r0, r3, RunQueue@l /* 0x8044BB78@l */
/* 80341860 80 7D 02 D0 */ lwz r3, 0x2d0(r29)
/* 80341864 54 63 18 38 */ slwi r3, r3, 3
/* 80341868 7C 00 1A 14 */ add r0, r0, r3
/* 8034186C 90 1D 02 DC */ stw r0, 0x2dc(r29)
/* 80341870 80 9D 02 DC */ lwz r4, 0x2dc(r29)
/* 80341874 80 64 00 04 */ lwz r3, 4(r4)
/* 80341878 28 03 00 00 */ cmplwi r3, 0
/* 8034187C 40 82 00 0C */ bne lbl_80341888
/* 80341880 93 A4 00 00 */ stw r29, 0(r4)
/* 80341884 48 00 00 08 */ b lbl_8034188C
lbl_80341888:
/* 80341888 93 A3 02 E0 */ stw r29, 0x2e0(r3)
lbl_8034188C:
/* 8034188C 90 7D 02 E4 */ stw r3, 0x2e4(r29)
/* 80341890 38 00 00 00 */ li r0, 0
/* 80341894 38 60 00 01 */ li r3, 1
/* 80341898 90 1D 02 E0 */ stw r0, 0x2e0(r29)
/* 8034189C 80 9D 02 DC */ lwz r4, 0x2dc(r29)
/* 803418A0 93 A4 00 04 */ stw r29, 4(r4)
/* 803418A4 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 803418A8 80 8D 91 40 */ lwz r4, RunQueueBits(r13)
/* 803418AC 20 00 00 1F */ subfic r0, r0, 0x1f
/* 803418B0 7C 60 00 30 */ slw r0, r3, r0
/* 803418B4 7C 80 03 78 */ or r0, r4, r0
/* 803418B8 90 0D 91 40 */ stw r0, RunQueueBits(r13)
/* 803418BC 90 6D 91 44 */ stw r3, RunQueueHint(r13)
/* 803418C0 48 00 01 40 */ b lbl_80341A00
lbl_803418C4:
/* 803418C4 80 9D 02 E0 */ lwz r4, 0x2e0(r29)
/* 803418C8 80 BD 02 E4 */ lwz r5, 0x2e4(r29)
/* 803418CC 28 04 00 00 */ cmplwi r4, 0
/* 803418D0 40 82 00 10 */ bne lbl_803418E0
/* 803418D4 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 803418D8 90 A3 00 04 */ stw r5, 4(r3)
/* 803418DC 48 00 00 08 */ b lbl_803418E4
lbl_803418E0:
/* 803418E0 90 A4 02 E4 */ stw r5, 0x2e4(r4)
lbl_803418E4:
/* 803418E4 28 05 00 00 */ cmplwi r5, 0
/* 803418E8 40 82 00 10 */ bne lbl_803418F8
/* 803418EC 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 803418F0 90 83 00 00 */ stw r4, 0(r3)
/* 803418F4 48 00 00 08 */ b lbl_803418FC
lbl_803418F8:
/* 803418F8 90 85 02 E0 */ stw r4, 0x2e0(r5)
lbl_803418FC:
/* 803418FC 80 1D 02 D4 */ lwz r0, 0x2d4(r29)
/* 80341900 80 7D 02 F4 */ lwz r3, 0x2f4(r29)
/* 80341904 48 00 00 24 */ b lbl_80341928
lbl_80341908:
/* 80341908 80 83 00 00 */ lwz r4, 0(r3)
/* 8034190C 28 04 00 00 */ cmplwi r4, 0
/* 80341910 41 82 00 14 */ beq lbl_80341924
/* 80341914 80 84 02 D0 */ lwz r4, 0x2d0(r4)
/* 80341918 7C 04 00 00 */ cmpw r4, r0
/* 8034191C 40 80 00 08 */ bge lbl_80341924
/* 80341920 7C 80 23 78 */ mr r0, r4
lbl_80341924:
/* 80341924 80 63 00 10 */ lwz r3, 0x10(r3)
lbl_80341928:
/* 80341928 28 03 00 00 */ cmplwi r3, 0
/* 8034192C 40 82 FF DC */ bne lbl_80341908
/* 80341930 90 1D 02 D0 */ stw r0, 0x2d0(r29)
/* 80341934 80 9D 02 DC */ lwz r4, 0x2dc(r29)
/* 80341938 80 A4 00 00 */ lwz r5, 0(r4)
/* 8034193C 48 00 00 08 */ b lbl_80341944
lbl_80341940:
/* 80341940 80 A5 02 E0 */ lwz r5, 0x2e0(r5)
lbl_80341944:
/* 80341944 28 05 00 00 */ cmplwi r5, 0
/* 80341948 41 82 00 14 */ beq lbl_8034195C
/* 8034194C 80 65 02 D0 */ lwz r3, 0x2d0(r5)
/* 80341950 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 80341954 7C 03 00 00 */ cmpw r3, r0
/* 80341958 40 81 FF E8 */ ble lbl_80341940
lbl_8034195C:
/* 8034195C 28 05 00 00 */ cmplwi r5, 0
/* 80341960 40 82 00 34 */ bne lbl_80341994
/* 80341964 80 64 00 04 */ lwz r3, 4(r4)
/* 80341968 28 03 00 00 */ cmplwi r3, 0
/* 8034196C 40 82 00 0C */ bne lbl_80341978
/* 80341970 93 A4 00 00 */ stw r29, 0(r4)
/* 80341974 48 00 00 08 */ b lbl_8034197C
lbl_80341978:
/* 80341978 93 A3 02 E0 */ stw r29, 0x2e0(r3)
lbl_8034197C:
/* 8034197C 90 7D 02 E4 */ stw r3, 0x2e4(r29)
/* 80341980 38 00 00 00 */ li r0, 0
/* 80341984 90 1D 02 E0 */ stw r0, 0x2e0(r29)
/* 80341988 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 8034198C 93 A3 00 04 */ stw r29, 4(r3)
/* 80341990 48 00 00 2C */ b lbl_803419BC
lbl_80341994:
/* 80341994 90 BD 02 E0 */ stw r5, 0x2e0(r29)
/* 80341998 80 65 02 E4 */ lwz r3, 0x2e4(r5)
/* 8034199C 93 A5 02 E4 */ stw r29, 0x2e4(r5)
/* 803419A0 28 03 00 00 */ cmplwi r3, 0
/* 803419A4 90 7D 02 E4 */ stw r3, 0x2e4(r29)
/* 803419A8 40 82 00 10 */ bne lbl_803419B8
/* 803419AC 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 803419B0 93 A3 00 00 */ stw r29, 0(r3)
/* 803419B4 48 00 00 08 */ b lbl_803419BC
lbl_803419B8:
/* 803419B8 93 A3 02 E0 */ stw r29, 0x2e0(r3)
lbl_803419BC:
/* 803419BC 80 7D 02 F0 */ lwz r3, 0x2f0(r29)
/* 803419C0 28 03 00 00 */ cmplwi r3, 0
/* 803419C4 41 82 00 3C */ beq lbl_80341A00
/* 803419C8 83 A3 00 08 */ lwz r29, 8(r3)
lbl_803419CC:
/* 803419CC 80 1D 02 CC */ lwz r0, 0x2cc(r29)
/* 803419D0 2C 00 00 00 */ cmpwi r0, 0
/* 803419D4 41 81 00 2C */ bgt lbl_80341A00
/* 803419D8 7F A3 EB 78 */ mr r3, r29
/* 803419DC 4B FF F3 D1 */ bl __OSGetEffectivePriority
/* 803419E0 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 803419E4 38 83 00 00 */ addi r4, r3, 0
/* 803419E8 7C 00 20 00 */ cmpw r0, r4
/* 803419EC 41 82 00 14 */ beq lbl_80341A00
/* 803419F0 7F A3 EB 78 */ mr r3, r29
/* 803419F4 4B FF F3 F5 */ bl SetEffectivePriority
/* 803419F8 7C 7D 1B 79 */ or. r29, r3, r3
/* 803419FC 40 82 FF D0 */ bne lbl_803419CC
lbl_80341A00:
/* 80341A00 80 0D 91 44 */ lwz r0, RunQueueHint(r13)
/* 80341A04 2C 00 00 00 */ cmpwi r0, 0
/* 80341A08 41 82 00 0C */ beq lbl_80341A14
/* 80341A0C 38 60 00 00 */ li r3, 0
/* 80341A10 4B FF F5 E9 */ bl SelectThread
lbl_80341A14:
/* 80341A14 7F E3 FB 78 */ mr r3, r31
/* 80341A18 4B FF BD 05 */ bl OSRestoreInterrupts
/* 80341A1C 7F C3 F3 78 */ mr r3, r30
/* 80341A20 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80341A24 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80341A28 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80341A2C 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80341A30 38 21 00 28 */ addi r1, r1, 0x28
/* 80341A34 7C 08 03 A6 */ mtlr r0
/* 80341A38 4E 80 00 20 */ blr

View File

@ -1,34 +0,0 @@
lbl_80340AA8:
/* 80340AA8 7C 08 02 A6 */ mflr r0
/* 80340AAC 90 01 00 04 */ stw r0, 4(r1)
/* 80340AB0 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80340AB4 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80340AB8 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80340ABC 7C 7E 1B 78 */ mr r30, r3
/* 80340AC0 4B FF CC 35 */ bl OSDisableInterrupts
/* 80340AC4 28 1E 00 00 */ cmplwi r30, 0
/* 80340AC8 83 ED 84 38 */ lwz r31, SwitchThreadCallback(r13)
/* 80340ACC 41 82 00 0C */ beq lbl_80340AD8
/* 80340AD0 7F C0 F3 78 */ mr r0, r30
/* 80340AD4 48 00 00 0C */ b lbl_80340AE0
lbl_80340AD8:
/* 80340AD8 3C 80 80 34 */ lis r4, DefaultSwitchThreadCallback@ha /* 0x80340AA4@ha */
/* 80340ADC 38 04 0A A4 */ addi r0, r4, DefaultSwitchThreadCallback@l /* 0x80340AA4@l */
lbl_80340AE0:
/* 80340AE0 90 0D 84 38 */ stw r0, SwitchThreadCallback(r13)
/* 80340AE4 4B FF CC 39 */ bl OSRestoreInterrupts
/* 80340AE8 3C 60 80 34 */ lis r3, DefaultSwitchThreadCallback@ha /* 0x80340AA4@ha */
/* 80340AEC 38 03 0A A4 */ addi r0, r3, DefaultSwitchThreadCallback@l /* 0x80340AA4@l */
/* 80340AF0 7C 1F 00 40 */ cmplw r31, r0
/* 80340AF4 40 82 00 0C */ bne lbl_80340B00
/* 80340AF8 38 60 00 00 */ li r3, 0
/* 80340AFC 48 00 00 08 */ b lbl_80340B04
lbl_80340B00:
/* 80340B00 7F E3 FB 78 */ mr r3, r31
lbl_80340B04:
/* 80340B04 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80340B08 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80340B0C 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80340B10 38 21 00 18 */ addi r1, r1, 0x18
/* 80340B14 7C 08 03 A6 */ mtlr r0
/* 80340B18 4E 80 00 20 */ blr

View File

@ -1,55 +0,0 @@
lbl_80341D9C:
/* 80341D9C 7C 08 02 A6 */ mflr r0
/* 80341DA0 90 01 00 04 */ stw r0, 4(r1)
/* 80341DA4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80341DA8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80341DAC 7C 9F 23 79 */ or. r31, r4, r4
/* 80341DB0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80341DB4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80341DB8 3B A3 00 00 */ addi r29, r3, 0
/* 80341DBC 41 80 00 0C */ blt lbl_80341DC8
/* 80341DC0 2C 1F 00 1F */ cmpwi r31, 0x1f
/* 80341DC4 40 81 00 0C */ ble lbl_80341DD0
lbl_80341DC8:
/* 80341DC8 38 60 00 00 */ li r3, 0
/* 80341DCC 48 00 00 74 */ b lbl_80341E40
lbl_80341DD0:
/* 80341DD0 4B FF B9 25 */ bl OSDisableInterrupts
/* 80341DD4 80 1D 02 D4 */ lwz r0, 0x2d4(r29)
/* 80341DD8 3B C3 00 00 */ addi r30, r3, 0
/* 80341DDC 7C 00 F8 00 */ cmpw r0, r31
/* 80341DE0 41 82 00 54 */ beq lbl_80341E34
/* 80341DE4 93 FD 02 D4 */ stw r31, 0x2d4(r29)
/* 80341DE8 7F BF EB 78 */ mr r31, r29
lbl_80341DEC:
/* 80341DEC 80 1F 02 CC */ lwz r0, 0x2cc(r31)
/* 80341DF0 2C 00 00 00 */ cmpwi r0, 0
/* 80341DF4 41 81 00 2C */ bgt lbl_80341E20
/* 80341DF8 7F E3 FB 78 */ mr r3, r31
/* 80341DFC 4B FF EF B1 */ bl __OSGetEffectivePriority
/* 80341E00 80 1F 02 D0 */ lwz r0, 0x2d0(r31)
/* 80341E04 38 83 00 00 */ addi r4, r3, 0
/* 80341E08 7C 00 20 00 */ cmpw r0, r4
/* 80341E0C 41 82 00 14 */ beq lbl_80341E20
/* 80341E10 7F E3 FB 78 */ mr r3, r31
/* 80341E14 4B FF EF D5 */ bl SetEffectivePriority
/* 80341E18 7C 7F 1B 79 */ or. r31, r3, r3
/* 80341E1C 40 82 FF D0 */ bne lbl_80341DEC
lbl_80341E20:
/* 80341E20 80 0D 91 44 */ lwz r0, RunQueueHint(r13)
/* 80341E24 2C 00 00 00 */ cmpwi r0, 0
/* 80341E28 41 82 00 0C */ beq lbl_80341E34
/* 80341E2C 38 60 00 00 */ li r3, 0
/* 80341E30 4B FF F1 C9 */ bl SelectThread
lbl_80341E34:
/* 80341E34 7F C3 F3 78 */ mr r3, r30
/* 80341E38 4B FF B8 E5 */ bl OSRestoreInterrupts
/* 80341E3C 38 60 00 01 */ li r3, 1
lbl_80341E40:
/* 80341E40 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80341E44 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80341E48 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80341E4C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80341E50 38 21 00 20 */ addi r1, r1, 0x20
/* 80341E54 7C 08 03 A6 */ mtlr r0
/* 80341E58 4E 80 00 20 */ blr

View File

@ -1,69 +0,0 @@
lbl_80341BAC:
/* 80341BAC 7C 08 02 A6 */ mflr r0
/* 80341BB0 90 01 00 04 */ stw r0, 4(r1)
/* 80341BB4 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80341BB8 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80341BBC 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80341BC0 7C 7E 1B 78 */ mr r30, r3
/* 80341BC4 4B FF BB 31 */ bl OSDisableInterrupts
/* 80341BC8 3C 80 80 00 */ lis r4, 0x8000 /* 0x800000E4@ha */
/* 80341BCC 80 84 00 E4 */ lwz r4, 0x00E4(r4) /* 0x800000E4@l */
/* 80341BD0 38 00 00 04 */ li r0, 4
/* 80341BD4 7C 7F 1B 78 */ mr r31, r3
/* 80341BD8 B0 04 02 C8 */ sth r0, 0x2c8(r4)
/* 80341BDC 93 C4 02 DC */ stw r30, 0x2dc(r4)
/* 80341BE0 80 BE 00 00 */ lwz r5, 0(r30)
/* 80341BE4 48 00 00 08 */ b lbl_80341BEC
lbl_80341BE8:
/* 80341BE8 80 A5 02 E0 */ lwz r5, 0x2e0(r5)
lbl_80341BEC:
/* 80341BEC 28 05 00 00 */ cmplwi r5, 0
/* 80341BF0 41 82 00 14 */ beq lbl_80341C04
/* 80341BF4 80 65 02 D0 */ lwz r3, 0x2d0(r5)
/* 80341BF8 80 04 02 D0 */ lwz r0, 0x2d0(r4)
/* 80341BFC 7C 03 00 00 */ cmpw r3, r0
/* 80341C00 40 81 FF E8 */ ble lbl_80341BE8
lbl_80341C04:
/* 80341C04 28 05 00 00 */ cmplwi r5, 0
/* 80341C08 40 82 00 30 */ bne lbl_80341C38
/* 80341C0C 80 7E 00 04 */ lwz r3, 4(r30)
/* 80341C10 28 03 00 00 */ cmplwi r3, 0
/* 80341C14 40 82 00 0C */ bne lbl_80341C20
/* 80341C18 90 9E 00 00 */ stw r4, 0(r30)
/* 80341C1C 48 00 00 08 */ b lbl_80341C24
lbl_80341C20:
/* 80341C20 90 83 02 E0 */ stw r4, 0x2e0(r3)
lbl_80341C24:
/* 80341C24 90 64 02 E4 */ stw r3, 0x2e4(r4)
/* 80341C28 38 00 00 00 */ li r0, 0
/* 80341C2C 90 04 02 E0 */ stw r0, 0x2e0(r4)
/* 80341C30 90 9E 00 04 */ stw r4, 4(r30)
/* 80341C34 48 00 00 28 */ b lbl_80341C5C
lbl_80341C38:
/* 80341C38 90 A4 02 E0 */ stw r5, 0x2e0(r4)
/* 80341C3C 80 65 02 E4 */ lwz r3, 0x2e4(r5)
/* 80341C40 90 85 02 E4 */ stw r4, 0x2e4(r5)
/* 80341C44 28 03 00 00 */ cmplwi r3, 0
/* 80341C48 90 64 02 E4 */ stw r3, 0x2e4(r4)
/* 80341C4C 40 82 00 0C */ bne lbl_80341C58
/* 80341C50 90 9E 00 00 */ stw r4, 0(r30)
/* 80341C54 48 00 00 08 */ b lbl_80341C5C
lbl_80341C58:
/* 80341C58 90 83 02 E0 */ stw r4, 0x2e0(r3)
lbl_80341C5C:
/* 80341C5C 38 00 00 01 */ li r0, 1
/* 80341C60 90 0D 91 44 */ stw r0, RunQueueHint(r13)
/* 80341C64 80 0D 91 44 */ lwz r0, RunQueueHint(r13)
/* 80341C68 2C 00 00 00 */ cmpwi r0, 0
/* 80341C6C 41 82 00 0C */ beq lbl_80341C78
/* 80341C70 38 60 00 00 */ li r3, 0
/* 80341C74 4B FF F3 85 */ bl SelectThread
lbl_80341C78:
/* 80341C78 7F E3 FB 78 */ mr r3, r31
/* 80341C7C 4B FF BA A1 */ bl OSRestoreInterrupts
/* 80341C80 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80341C84 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80341C88 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80341C8C 38 21 00 18 */ addi r1, r1, 0x18
/* 80341C90 7C 08 03 A6 */ mtlr r0
/* 80341C94 4E 80 00 20 */ blr

View File

@ -1,106 +0,0 @@
lbl_80341A3C:
/* 80341A3C 7C 08 02 A6 */ mflr r0
/* 80341A40 90 01 00 04 */ stw r0, 4(r1)
/* 80341A44 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80341A48 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80341A4C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80341A50 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80341A54 7C 7D 1B 78 */ mr r29, r3
/* 80341A58 4B FF BC 9D */ bl OSDisableInterrupts
/* 80341A5C 80 9D 02 CC */ lwz r4, 0x2cc(r29)
/* 80341A60 3B E3 00 00 */ addi r31, r3, 0
/* 80341A64 38 04 00 01 */ addi r0, r4, 1
/* 80341A68 7C 9E 23 79 */ or. r30, r4, r4
/* 80341A6C 90 1D 02 CC */ stw r0, 0x2cc(r29)
/* 80341A70 40 82 01 14 */ bne lbl_80341B84
/* 80341A74 A0 1D 02 C8 */ lhz r0, 0x2c8(r29)
/* 80341A78 2C 00 00 03 */ cmpwi r0, 3
/* 80341A7C 41 82 00 F4 */ beq lbl_80341B70
/* 80341A80 40 80 00 14 */ bge lbl_80341A94
/* 80341A84 2C 00 00 01 */ cmpwi r0, 1
/* 80341A88 41 82 00 28 */ beq lbl_80341AB0
/* 80341A8C 40 80 00 14 */ bge lbl_80341AA0
/* 80341A90 48 00 00 E0 */ b lbl_80341B70
lbl_80341A94:
/* 80341A94 2C 00 00 05 */ cmpwi r0, 5
/* 80341A98 40 80 00 D8 */ bge lbl_80341B70
/* 80341A9C 48 00 00 20 */ b lbl_80341ABC
lbl_80341AA0:
/* 80341AA0 38 00 00 01 */ li r0, 1
/* 80341AA4 90 0D 91 44 */ stw r0, RunQueueHint(r13)
/* 80341AA8 B0 1D 02 C8 */ sth r0, 0x2c8(r29)
/* 80341AAC 48 00 00 C4 */ b lbl_80341B70
lbl_80341AB0:
/* 80341AB0 7F A3 EB 78 */ mr r3, r29
/* 80341AB4 4B FF F2 91 */ bl UnsetRun
/* 80341AB8 48 00 00 B8 */ b lbl_80341B70
lbl_80341ABC:
/* 80341ABC 80 9D 02 E0 */ lwz r4, 0x2e0(r29)
/* 80341AC0 80 BD 02 E4 */ lwz r5, 0x2e4(r29)
/* 80341AC4 28 04 00 00 */ cmplwi r4, 0
/* 80341AC8 40 82 00 10 */ bne lbl_80341AD8
/* 80341ACC 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 80341AD0 90 A3 00 04 */ stw r5, 4(r3)
/* 80341AD4 48 00 00 08 */ b lbl_80341ADC
lbl_80341AD8:
/* 80341AD8 90 A4 02 E4 */ stw r5, 0x2e4(r4)
lbl_80341ADC:
/* 80341ADC 28 05 00 00 */ cmplwi r5, 0
/* 80341AE0 40 82 00 10 */ bne lbl_80341AF0
/* 80341AE4 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 80341AE8 90 83 00 00 */ stw r4, 0(r3)
/* 80341AEC 48 00 00 08 */ b lbl_80341AF4
lbl_80341AF0:
/* 80341AF0 90 85 02 E0 */ stw r4, 0x2e0(r5)
lbl_80341AF4:
/* 80341AF4 38 00 00 20 */ li r0, 0x20
/* 80341AF8 90 1D 02 D0 */ stw r0, 0x2d0(r29)
/* 80341AFC 80 9D 02 DC */ lwz r4, 0x2dc(r29)
/* 80341B00 80 64 00 04 */ lwz r3, 4(r4)
/* 80341B04 28 03 00 00 */ cmplwi r3, 0
/* 80341B08 40 82 00 0C */ bne lbl_80341B14
/* 80341B0C 93 A4 00 00 */ stw r29, 0(r4)
/* 80341B10 48 00 00 08 */ b lbl_80341B18
lbl_80341B14:
/* 80341B14 93 A3 02 E0 */ stw r29, 0x2e0(r3)
lbl_80341B18:
/* 80341B18 90 7D 02 E4 */ stw r3, 0x2e4(r29)
/* 80341B1C 38 00 00 00 */ li r0, 0
/* 80341B20 90 1D 02 E0 */ stw r0, 0x2e0(r29)
/* 80341B24 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 80341B28 93 A3 00 04 */ stw r29, 4(r3)
/* 80341B2C 80 7D 02 F0 */ lwz r3, 0x2f0(r29)
/* 80341B30 28 03 00 00 */ cmplwi r3, 0
/* 80341B34 41 82 00 3C */ beq lbl_80341B70
/* 80341B38 83 A3 00 08 */ lwz r29, 8(r3)
lbl_80341B3C:
/* 80341B3C 80 1D 02 CC */ lwz r0, 0x2cc(r29)
/* 80341B40 2C 00 00 00 */ cmpwi r0, 0
/* 80341B44 41 81 00 2C */ bgt lbl_80341B70
/* 80341B48 7F A3 EB 78 */ mr r3, r29
/* 80341B4C 4B FF F2 61 */ bl __OSGetEffectivePriority
/* 80341B50 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 80341B54 38 83 00 00 */ addi r4, r3, 0
/* 80341B58 7C 00 20 00 */ cmpw r0, r4
/* 80341B5C 41 82 00 14 */ beq lbl_80341B70
/* 80341B60 7F A3 EB 78 */ mr r3, r29
/* 80341B64 4B FF F2 85 */ bl SetEffectivePriority
/* 80341B68 7C 7D 1B 79 */ or. r29, r3, r3
/* 80341B6C 40 82 FF D0 */ bne lbl_80341B3C
lbl_80341B70:
/* 80341B70 80 0D 91 44 */ lwz r0, RunQueueHint(r13)
/* 80341B74 2C 00 00 00 */ cmpwi r0, 0
/* 80341B78 41 82 00 0C */ beq lbl_80341B84
/* 80341B7C 38 60 00 00 */ li r3, 0
/* 80341B80 4B FF F4 79 */ bl SelectThread
lbl_80341B84:
/* 80341B84 7F E3 FB 78 */ mr r3, r31
/* 80341B88 4B FF BB 95 */ bl OSRestoreInterrupts
/* 80341B8C 7F C3 F3 78 */ mr r3, r30
/* 80341B90 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80341B94 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80341B98 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80341B9C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80341BA0 38 21 00 20 */ addi r1, r1, 0x20
/* 80341BA4 7C 08 03 A6 */ mtlr r0
/* 80341BA8 4E 80 00 20 */ blr

View File

@ -1,73 +0,0 @@
lbl_80341C98:
/* 80341C98 7C 08 02 A6 */ mflr r0
/* 80341C9C 90 01 00 04 */ stw r0, 4(r1)
/* 80341CA0 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80341CA4 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80341CA8 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80341CAC 7C 7E 1B 78 */ mr r30, r3
/* 80341CB0 4B FF BA 45 */ bl OSDisableInterrupts
/* 80341CB4 3C 80 80 45 */ lis r4, RunQueue@ha /* 0x8044BB78@ha */
/* 80341CB8 3B E3 00 00 */ addi r31, r3, 0
/* 80341CBC 38 A4 BB 78 */ addi r5, r4, RunQueue@l /* 0x8044BB78@l */
/* 80341CC0 48 00 00 9C */ b lbl_80341D5C
lbl_80341CC4:
/* 80341CC4 80 66 02 E0 */ lwz r3, 0x2e0(r6)
/* 80341CC8 28 03 00 00 */ cmplwi r3, 0
/* 80341CCC 40 82 00 10 */ bne lbl_80341CDC
/* 80341CD0 38 00 00 00 */ li r0, 0
/* 80341CD4 90 1E 00 04 */ stw r0, 4(r30)
/* 80341CD8 48 00 00 0C */ b lbl_80341CE4
lbl_80341CDC:
/* 80341CDC 38 00 00 00 */ li r0, 0
/* 80341CE0 90 03 02 E4 */ stw r0, 0x2e4(r3)
lbl_80341CE4:
/* 80341CE4 90 7E 00 00 */ stw r3, 0(r30)
/* 80341CE8 38 00 00 01 */ li r0, 1
/* 80341CEC B0 06 02 C8 */ sth r0, 0x2c8(r6)
/* 80341CF0 80 06 02 CC */ lwz r0, 0x2cc(r6)
/* 80341CF4 2C 00 00 00 */ cmpwi r0, 0
/* 80341CF8 41 81 00 64 */ bgt lbl_80341D5C
/* 80341CFC 80 06 02 D0 */ lwz r0, 0x2d0(r6)
/* 80341D00 54 00 18 38 */ slwi r0, r0, 3
/* 80341D04 7C 05 02 14 */ add r0, r5, r0
/* 80341D08 90 06 02 DC */ stw r0, 0x2dc(r6)
/* 80341D0C 80 86 02 DC */ lwz r4, 0x2dc(r6)
/* 80341D10 80 64 00 04 */ lwz r3, 4(r4)
/* 80341D14 28 03 00 00 */ cmplwi r3, 0
/* 80341D18 40 82 00 0C */ bne lbl_80341D24
/* 80341D1C 90 C4 00 00 */ stw r6, 0(r4)
/* 80341D20 48 00 00 08 */ b lbl_80341D28
lbl_80341D24:
/* 80341D24 90 C3 02 E0 */ stw r6, 0x2e0(r3)
lbl_80341D28:
/* 80341D28 90 66 02 E4 */ stw r3, 0x2e4(r6)
/* 80341D2C 38 00 00 00 */ li r0, 0
/* 80341D30 38 60 00 01 */ li r3, 1
/* 80341D34 90 06 02 E0 */ stw r0, 0x2e0(r6)
/* 80341D38 80 86 02 DC */ lwz r4, 0x2dc(r6)
/* 80341D3C 90 C4 00 04 */ stw r6, 4(r4)
/* 80341D40 80 06 02 D0 */ lwz r0, 0x2d0(r6)
/* 80341D44 80 8D 91 40 */ lwz r4, RunQueueBits(r13)
/* 80341D48 20 00 00 1F */ subfic r0, r0, 0x1f
/* 80341D4C 7C 60 00 30 */ slw r0, r3, r0
/* 80341D50 7C 80 03 78 */ or r0, r4, r0
/* 80341D54 90 0D 91 40 */ stw r0, RunQueueBits(r13)
/* 80341D58 90 6D 91 44 */ stw r3, RunQueueHint(r13)
lbl_80341D5C:
/* 80341D5C 80 DE 00 00 */ lwz r6, 0(r30)
/* 80341D60 28 06 00 00 */ cmplwi r6, 0
/* 80341D64 40 82 FF 60 */ bne lbl_80341CC4
/* 80341D68 80 0D 91 44 */ lwz r0, RunQueueHint(r13)
/* 80341D6C 2C 00 00 00 */ cmpwi r0, 0
/* 80341D70 41 82 00 0C */ beq lbl_80341D7C
/* 80341D74 38 60 00 00 */ li r3, 0
/* 80341D78 4B FF F2 81 */ bl SelectThread
lbl_80341D7C:
/* 80341D7C 7F E3 FB 78 */ mr r3, r31
/* 80341D80 4B FF B9 9D */ bl OSRestoreInterrupts
/* 80341D84 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80341D88 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80341D8C 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80341D90 38 21 00 18 */ addi r1, r1, 0x18
/* 80341D94 7C 08 03 A6 */ mtlr r0
/* 80341D98 4E 80 00 20 */ blr

View File

@ -1,153 +0,0 @@
lbl_80340FF8:
/* 80340FF8 7C 08 02 A6 */ mflr r0
/* 80340FFC 3C 80 80 45 */ lis r4, RunQueue@ha /* 0x8044BB78@ha */
/* 80341000 90 01 00 04 */ stw r0, 4(r1)
/* 80341004 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80341008 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8034100C 3B E4 BB 78 */ addi r31, r4, RunQueue@l /* 0x8044BB78@l */
/* 80341010 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80341014 3B C3 00 00 */ addi r30, r3, 0
/* 80341018 80 0D 91 48 */ lwz r0, Reschedule(r13)
/* 8034101C 2C 00 00 00 */ cmpwi r0, 0
/* 80341020 40 81 00 0C */ ble lbl_8034102C
/* 80341024 38 60 00 00 */ li r3, 0
/* 80341028 48 00 01 E0 */ b lbl_80341208
lbl_8034102C:
/* 8034102C 4B FF AE 69 */ bl OSGetCurrentContext
/* 80341030 3C 80 80 00 */ lis r4, 0x8000 /* 0x800000E4@ha */
/* 80341034 80 C4 00 E4 */ lwz r6, 0x00E4(r4) /* 0x800000E4@l */
/* 80341038 7C 03 30 40 */ cmplw r3, r6
/* 8034103C 38 66 00 00 */ addi r3, r6, 0
/* 80341040 41 82 00 0C */ beq lbl_8034104C
/* 80341044 38 60 00 00 */ li r3, 0
/* 80341048 48 00 01 C0 */ b lbl_80341208
lbl_8034104C:
/* 8034104C 28 06 00 00 */ cmplwi r6, 0
/* 80341050 41 82 00 BC */ beq lbl_8034110C
/* 80341054 A0 06 02 C8 */ lhz r0, 0x2c8(r6)
/* 80341058 28 00 00 02 */ cmplwi r0, 2
/* 8034105C 40 82 00 90 */ bne lbl_803410EC
/* 80341060 2C 1E 00 00 */ cmpwi r30, 0
/* 80341064 40 82 00 20 */ bne lbl_80341084
/* 80341068 80 8D 91 40 */ lwz r4, RunQueueBits(r13)
/* 8034106C 80 06 02 D0 */ lwz r0, 0x2d0(r6)
/* 80341070 7C 84 00 34 */ cntlzw r4, r4
/* 80341074 7C 00 20 00 */ cmpw r0, r4
/* 80341078 41 81 00 0C */ bgt lbl_80341084
/* 8034107C 38 60 00 00 */ li r3, 0
/* 80341080 48 00 01 88 */ b lbl_80341208
lbl_80341084:
/* 80341084 38 00 00 01 */ li r0, 1
/* 80341088 B0 06 02 C8 */ sth r0, 0x2c8(r6)
/* 8034108C 80 06 02 D0 */ lwz r0, 0x2d0(r6)
/* 80341090 54 00 18 38 */ slwi r0, r0, 3
/* 80341094 7C 1F 02 14 */ add r0, r31, r0
/* 80341098 90 06 02 DC */ stw r0, 0x2dc(r6)
/* 8034109C 80 A6 02 DC */ lwz r5, 0x2dc(r6)
/* 803410A0 80 85 00 04 */ lwz r4, 4(r5)
/* 803410A4 28 04 00 00 */ cmplwi r4, 0
/* 803410A8 40 82 00 0C */ bne lbl_803410B4
/* 803410AC 90 C5 00 00 */ stw r6, 0(r5)
/* 803410B0 48 00 00 08 */ b lbl_803410B8
lbl_803410B4:
/* 803410B4 90 C4 02 E0 */ stw r6, 0x2e0(r4)
lbl_803410B8:
/* 803410B8 90 86 02 E4 */ stw r4, 0x2e4(r6)
/* 803410BC 38 00 00 00 */ li r0, 0
/* 803410C0 38 80 00 01 */ li r4, 1
/* 803410C4 90 06 02 E0 */ stw r0, 0x2e0(r6)
/* 803410C8 80 A6 02 DC */ lwz r5, 0x2dc(r6)
/* 803410CC 90 C5 00 04 */ stw r6, 4(r5)
/* 803410D0 80 06 02 D0 */ lwz r0, 0x2d0(r6)
/* 803410D4 80 AD 91 40 */ lwz r5, RunQueueBits(r13)
/* 803410D8 20 00 00 1F */ subfic r0, r0, 0x1f
/* 803410DC 7C 80 00 30 */ slw r0, r4, r0
/* 803410E0 7C A0 03 78 */ or r0, r5, r0
/* 803410E4 90 0D 91 40 */ stw r0, RunQueueBits(r13)
/* 803410E8 90 8D 91 44 */ stw r4, RunQueueHint(r13)
lbl_803410EC:
/* 803410EC A0 06 01 A2 */ lhz r0, 0x1a2(r6)
/* 803410F0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 803410F4 40 82 00 18 */ bne lbl_8034110C
/* 803410F8 4B FF AD A9 */ bl OSSaveContext
/* 803410FC 28 03 00 00 */ cmplwi r3, 0
/* 80341100 41 82 00 0C */ beq lbl_8034110C
/* 80341104 38 60 00 00 */ li r3, 0
/* 80341108 48 00 01 00 */ b lbl_80341208
lbl_8034110C:
/* 8034110C 80 0D 91 40 */ lwz r0, RunQueueBits(r13)
/* 80341110 28 00 00 00 */ cmplwi r0, 0
/* 80341114 40 82 00 54 */ bne lbl_80341168
/* 80341118 81 8D 84 38 */ lwz r12, SwitchThreadCallback(r13)
/* 8034111C 3F C0 80 00 */ lis r30, 0x8000 /* 0x800000E4@ha */
/* 80341120 80 7E 00 E4 */ lwz r3, 0x00E4(r30) /* 0x800000E4@l */
/* 80341124 38 80 00 00 */ li r4, 0
/* 80341128 7D 88 03 A6 */ mtlr r12
/* 8034112C 4E 80 00 21 */ blrl
/* 80341130 38 00 00 00 */ li r0, 0
/* 80341134 90 1E 00 E4 */ stw r0, 0xe4(r30)
/* 80341138 38 7F 07 30 */ addi r3, r31, 0x730
/* 8034113C 4B FF AC FD */ bl OSSetCurrentContext
lbl_80341140:
/* 80341140 4B FF C5 C9 */ bl OSEnableInterrupts
lbl_80341144:
/* 80341144 80 0D 91 40 */ lwz r0, RunQueueBits(r13)
/* 80341148 28 00 00 00 */ cmplwi r0, 0
/* 8034114C 41 82 FF F8 */ beq lbl_80341144
/* 80341150 4B FF C5 A5 */ bl OSDisableInterrupts
/* 80341154 80 0D 91 40 */ lwz r0, RunQueueBits(r13)
/* 80341158 28 00 00 00 */ cmplwi r0, 0
/* 8034115C 41 82 FF E4 */ beq lbl_80341140
/* 80341160 38 7F 07 30 */ addi r3, r31, 0x730
/* 80341164 4B FF AE 9D */ bl OSClearContext
lbl_80341168:
/* 80341168 38 60 00 00 */ li r3, 0
/* 8034116C 90 6D 91 44 */ stw r3, RunQueueHint(r13)
/* 80341170 80 0D 91 40 */ lwz r0, RunQueueBits(r13)
/* 80341174 7C 07 00 34 */ cntlzw r7, r0
/* 80341178 54 E0 18 38 */ slwi r0, r7, 3
/* 8034117C 7C 9F 02 14 */ add r4, r31, r0
/* 80341180 80 A4 00 00 */ lwz r5, 0(r4)
/* 80341184 80 C5 02 E0 */ lwz r6, 0x2e0(r5)
/* 80341188 3B C5 00 00 */ addi r30, r5, 0
/* 8034118C 28 06 00 00 */ cmplwi r6, 0
/* 80341190 40 82 00 0C */ bne lbl_8034119C
/* 80341194 90 64 00 04 */ stw r3, 4(r4)
/* 80341198 48 00 00 08 */ b lbl_803411A0
lbl_8034119C:
/* 8034119C 90 66 02 E4 */ stw r3, 0x2e4(r6)
lbl_803411A0:
/* 803411A0 90 C4 00 00 */ stw r6, 0(r4)
/* 803411A4 80 04 00 00 */ lwz r0, 0(r4)
/* 803411A8 28 00 00 00 */ cmplwi r0, 0
/* 803411AC 40 82 00 1C */ bne lbl_803411C8
/* 803411B0 20 07 00 1F */ subfic r0, r7, 0x1f
/* 803411B4 80 8D 91 40 */ lwz r4, RunQueueBits(r13)
/* 803411B8 38 60 00 01 */ li r3, 1
/* 803411BC 7C 60 00 30 */ slw r0, r3, r0
/* 803411C0 7C 80 00 78 */ andc r0, r4, r0
/* 803411C4 90 0D 91 40 */ stw r0, RunQueueBits(r13)
lbl_803411C8:
/* 803411C8 38 00 00 00 */ li r0, 0
/* 803411CC 90 1E 02 DC */ stw r0, 0x2dc(r30)
/* 803411D0 38 00 00 02 */ li r0, 2
/* 803411D4 3F E0 80 00 */ lis r31, 0x8000 /* 0x800000E4@ha */
/* 803411D8 B0 1E 02 C8 */ sth r0, 0x2c8(r30)
/* 803411DC 7F C4 F3 78 */ mr r4, r30
/* 803411E0 81 8D 84 38 */ lwz r12, SwitchThreadCallback(r13)
/* 803411E4 80 7F 00 E4 */ lwz r3, 0x00E4(r31) /* 0x800000E4@l */
/* 803411E8 7D 88 03 A6 */ mtlr r12
/* 803411EC 4E 80 00 21 */ blrl
/* 803411F0 93 DF 00 E4 */ stw r30, 0xe4(r31)
/* 803411F4 7F C3 F3 78 */ mr r3, r30
/* 803411F8 4B FF AC 41 */ bl OSSetCurrentContext
/* 803411FC 7F C3 F3 78 */ mr r3, r30
/* 80341200 4B FF AD 21 */ bl OSLoadContext
/* 80341204 7F C3 F3 78 */ mr r3, r30
lbl_80341208:
/* 80341208 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8034120C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80341210 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80341214 38 21 00 18 */ addi r1, r1, 0x18
/* 80341218 7C 08 03 A6 */ mtlr r0
/* 8034121C 4E 80 00 20 */ blr

View File

@ -1,133 +0,0 @@
lbl_80340DE8:
/* 80340DE8 7C 08 02 A6 */ mflr r0
/* 80340DEC 90 01 00 04 */ stw r0, 4(r1)
/* 80340DF0 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80340DF4 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80340DF8 7C 7F 1B 78 */ mr r31, r3
/* 80340DFC 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80340E00 3B C4 00 00 */ addi r30, r4, 0
/* 80340E04 A0 03 02 C8 */ lhz r0, 0x2c8(r3)
/* 80340E08 2C 00 00 03 */ cmpwi r0, 3
/* 80340E0C 41 82 01 80 */ beq lbl_80340F8C
/* 80340E10 40 80 00 14 */ bge lbl_80340E24
/* 80340E14 2C 00 00 01 */ cmpwi r0, 1
/* 80340E18 41 82 00 18 */ beq lbl_80340E30
/* 80340E1C 40 80 01 64 */ bge lbl_80340F80
/* 80340E20 48 00 01 6C */ b lbl_80340F8C
lbl_80340E24:
/* 80340E24 2C 00 00 05 */ cmpwi r0, 5
/* 80340E28 40 80 01 64 */ bge lbl_80340F8C
/* 80340E2C 48 00 00 7C */ b lbl_80340EA8
lbl_80340E30:
/* 80340E30 7F E3 FB 78 */ mr r3, r31
/* 80340E34 4B FF FF 11 */ bl UnsetRun
/* 80340E38 93 DF 02 D0 */ stw r30, 0x2d0(r31)
/* 80340E3C 3C 60 80 45 */ lis r3, RunQueue@ha /* 0x8044BB78@ha */
/* 80340E40 38 03 BB 78 */ addi r0, r3, RunQueue@l /* 0x8044BB78@l */
/* 80340E44 80 7F 02 D0 */ lwz r3, 0x2d0(r31)
/* 80340E48 54 63 18 38 */ slwi r3, r3, 3
/* 80340E4C 7C 00 1A 14 */ add r0, r0, r3
/* 80340E50 90 1F 02 DC */ stw r0, 0x2dc(r31)
/* 80340E54 80 9F 02 DC */ lwz r4, 0x2dc(r31)
/* 80340E58 80 64 00 04 */ lwz r3, 4(r4)
/* 80340E5C 28 03 00 00 */ cmplwi r3, 0
/* 80340E60 40 82 00 0C */ bne lbl_80340E6C
/* 80340E64 93 E4 00 00 */ stw r31, 0(r4)
/* 80340E68 48 00 00 08 */ b lbl_80340E70
lbl_80340E6C:
/* 80340E6C 93 E3 02 E0 */ stw r31, 0x2e0(r3)
lbl_80340E70:
/* 80340E70 90 7F 02 E4 */ stw r3, 0x2e4(r31)
/* 80340E74 38 00 00 00 */ li r0, 0
/* 80340E78 38 60 00 01 */ li r3, 1
/* 80340E7C 90 1F 02 E0 */ stw r0, 0x2e0(r31)
/* 80340E80 80 9F 02 DC */ lwz r4, 0x2dc(r31)
/* 80340E84 93 E4 00 04 */ stw r31, 4(r4)
/* 80340E88 80 1F 02 D0 */ lwz r0, 0x2d0(r31)
/* 80340E8C 80 8D 91 40 */ lwz r4, RunQueueBits(r13)
/* 80340E90 20 00 00 1F */ subfic r0, r0, 0x1f
/* 80340E94 7C 60 00 30 */ slw r0, r3, r0
/* 80340E98 7C 80 03 78 */ or r0, r4, r0
/* 80340E9C 90 0D 91 40 */ stw r0, RunQueueBits(r13)
/* 80340EA0 90 6D 91 44 */ stw r3, RunQueueHint(r13)
/* 80340EA4 48 00 00 E8 */ b lbl_80340F8C
lbl_80340EA8:
/* 80340EA8 80 9F 02 E0 */ lwz r4, 0x2e0(r31)
/* 80340EAC 80 BF 02 E4 */ lwz r5, 0x2e4(r31)
/* 80340EB0 28 04 00 00 */ cmplwi r4, 0
/* 80340EB4 40 82 00 10 */ bne lbl_80340EC4
/* 80340EB8 80 7F 02 DC */ lwz r3, 0x2dc(r31)
/* 80340EBC 90 A3 00 04 */ stw r5, 4(r3)
/* 80340EC0 48 00 00 08 */ b lbl_80340EC8
lbl_80340EC4:
/* 80340EC4 90 A4 02 E4 */ stw r5, 0x2e4(r4)
lbl_80340EC8:
/* 80340EC8 28 05 00 00 */ cmplwi r5, 0
/* 80340ECC 40 82 00 10 */ bne lbl_80340EDC
/* 80340ED0 80 7F 02 DC */ lwz r3, 0x2dc(r31)
/* 80340ED4 90 83 00 00 */ stw r4, 0(r3)
/* 80340ED8 48 00 00 08 */ b lbl_80340EE0
lbl_80340EDC:
/* 80340EDC 90 85 02 E0 */ stw r4, 0x2e0(r5)
lbl_80340EE0:
/* 80340EE0 93 DF 02 D0 */ stw r30, 0x2d0(r31)
/* 80340EE4 80 9F 02 DC */ lwz r4, 0x2dc(r31)
/* 80340EE8 80 A4 00 00 */ lwz r5, 0(r4)
/* 80340EEC 48 00 00 08 */ b lbl_80340EF4
lbl_80340EF0:
/* 80340EF0 80 A5 02 E0 */ lwz r5, 0x2e0(r5)
lbl_80340EF4:
/* 80340EF4 28 05 00 00 */ cmplwi r5, 0
/* 80340EF8 41 82 00 14 */ beq lbl_80340F0C
/* 80340EFC 80 65 02 D0 */ lwz r3, 0x2d0(r5)
/* 80340F00 80 1F 02 D0 */ lwz r0, 0x2d0(r31)
/* 80340F04 7C 03 00 00 */ cmpw r3, r0
/* 80340F08 40 81 FF E8 */ ble lbl_80340EF0
lbl_80340F0C:
/* 80340F0C 28 05 00 00 */ cmplwi r5, 0
/* 80340F10 40 82 00 34 */ bne lbl_80340F44
/* 80340F14 80 64 00 04 */ lwz r3, 4(r4)
/* 80340F18 28 03 00 00 */ cmplwi r3, 0
/* 80340F1C 40 82 00 0C */ bne lbl_80340F28
/* 80340F20 93 E4 00 00 */ stw r31, 0(r4)
/* 80340F24 48 00 00 08 */ b lbl_80340F2C
lbl_80340F28:
/* 80340F28 93 E3 02 E0 */ stw r31, 0x2e0(r3)
lbl_80340F2C:
/* 80340F2C 90 7F 02 E4 */ stw r3, 0x2e4(r31)
/* 80340F30 38 00 00 00 */ li r0, 0
/* 80340F34 90 1F 02 E0 */ stw r0, 0x2e0(r31)
/* 80340F38 80 7F 02 DC */ lwz r3, 0x2dc(r31)
/* 80340F3C 93 E3 00 04 */ stw r31, 4(r3)
/* 80340F40 48 00 00 2C */ b lbl_80340F6C
lbl_80340F44:
/* 80340F44 90 BF 02 E0 */ stw r5, 0x2e0(r31)
/* 80340F48 80 65 02 E4 */ lwz r3, 0x2e4(r5)
/* 80340F4C 93 E5 02 E4 */ stw r31, 0x2e4(r5)
/* 80340F50 28 03 00 00 */ cmplwi r3, 0
/* 80340F54 90 7F 02 E4 */ stw r3, 0x2e4(r31)
/* 80340F58 40 82 00 10 */ bne lbl_80340F68
/* 80340F5C 80 7F 02 DC */ lwz r3, 0x2dc(r31)
/* 80340F60 93 E3 00 00 */ stw r31, 0(r3)
/* 80340F64 48 00 00 08 */ b lbl_80340F6C
lbl_80340F68:
/* 80340F68 93 E3 02 E0 */ stw r31, 0x2e0(r3)
lbl_80340F6C:
/* 80340F6C 80 7F 02 F0 */ lwz r3, 0x2f0(r31)
/* 80340F70 28 03 00 00 */ cmplwi r3, 0
/* 80340F74 41 82 00 18 */ beq lbl_80340F8C
/* 80340F78 80 63 00 08 */ lwz r3, 8(r3)
/* 80340F7C 48 00 00 14 */ b lbl_80340F90
lbl_80340F80:
/* 80340F80 38 00 00 01 */ li r0, 1
/* 80340F84 90 0D 91 44 */ stw r0, RunQueueHint(r13)
/* 80340F88 93 DF 02 D0 */ stw r30, 0x2d0(r31)
lbl_80340F8C:
/* 80340F8C 38 60 00 00 */ li r3, 0
lbl_80340F90:
/* 80340F90 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80340F94 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80340F98 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80340F9C 38 21 00 18 */ addi r1, r1, 0x18
/* 80340FA0 7C 08 03 A6 */ mtlr r0
/* 80340FA4 4E 80 00 20 */ blr

View File

@ -1,23 +0,0 @@
lbl_80340FA8:
/* 80340FA8 7C 08 02 A6 */ mflr r0
/* 80340FAC 90 01 00 04 */ stw r0, 4(r1)
/* 80340FB0 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80340FB4 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80340FB8 7C 9F 23 78 */ mr r31, r4
lbl_80340FBC:
/* 80340FBC 80 03 02 CC */ lwz r0, 0x2cc(r3)
/* 80340FC0 2C 00 00 00 */ cmpwi r0, 0
/* 80340FC4 41 81 00 20 */ bgt lbl_80340FE4
/* 80340FC8 80 03 02 D0 */ lwz r0, 0x2d0(r3)
/* 80340FCC 7C 00 F8 00 */ cmpw r0, r31
/* 80340FD0 40 81 00 14 */ ble lbl_80340FE4
/* 80340FD4 7F E4 FB 78 */ mr r4, r31
/* 80340FD8 4B FF FE 11 */ bl SetEffectivePriority
/* 80340FDC 28 03 00 00 */ cmplwi r3, 0
/* 80340FE0 40 82 FF DC */ bne lbl_80340FBC
lbl_80340FE4:
/* 80340FE4 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80340FE8 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80340FEC 38 21 00 18 */ addi r1, r1, 0x18
/* 80340FF0 7C 08 03 A6 */ mtlr r0
/* 80340FF4 4E 80 00 20 */ blr

View File

@ -104,9 +104,9 @@ void OSSleepThread(OSThreadQueue* queue);
void OSWakeupThread(OSThreadQueue* queue); void OSWakeupThread(OSThreadQueue* queue);
s32 OSSetThreadPriority(OSThread* thread, s32 priority); s32 OSSetThreadPriority(OSThread* thread, s32 priority);
s32 OSGetThreadPriority(OSThread* thread); s32 OSGetThreadPriority(OSThread* thread);
static s32 CheckThreadQueue(OSThread* thread); static s32 CheckThreadQueue(OSThreadQueue* thread);
s32 OSCheckActiveThreads(void); s32 OSCheckActiveThreads(void);
static void OSClearStack(u32 value); static void OSClearStack(u8 value);
extern u8 data_804516D0[8]; extern u8 data_804516D0[8];
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -79,7 +79,7 @@ volatile OSContext* __OSFPUContext : OS_BASE_CACHED + 0x00D8;
// External References: // External References:
// //
extern u8 __OSErrorTable[68 + 12 /* padding */]; extern OSErrorHandlerEx __OSErrorTable[17];
extern u32 __OSFpscrEnableBits; extern u32 __OSFpscrEnableBits;
void _epilog(); void _epilog();
@ -92,17 +92,27 @@ static void DefaultSwitchThreadCallback(OSThread* from, OSThread* to) {}
/* ############################################################################################## */ /* ############################################################################################## */
/* 804509B8-804509BC -00001 0004+00 3/3 0/0 0/0 .sdata SwitchThreadCallback */ /* 804509B8-804509BC -00001 0004+00 3/3 0/0 0/0 .sdata SwitchThreadCallback */
SECTION_SDATA static OSSwitchThreadCallback SwitchThreadCallback = DefaultSwitchThreadCallback; static OSSwitchThreadCallback SwitchThreadCallback = DefaultSwitchThreadCallback;
/* 80340AA8-80340B1C 33B3E8 0074+00 0/0 1/1 0/0 .text OSSetSwitchThreadCallback */ /* 80340AA8-80340B1C 33B3E8 0074+00 0/0 1/1 0/0 .text OSSetSwitchThreadCallback */
#pragma push OSSwitchThreadCallback OSSetSwitchThreadCallback(OSSwitchThreadCallback func) {
#pragma optimization_level 0 BOOL enable = OSDisableInterrupts();
#pragma optimizewithasm off OSSwitchThreadCallback prev = SwitchThreadCallback;
asm OSSwitchThreadCallback OSSetSwitchThreadCallback(OSSwitchThreadCallback func) { OSSwitchThreadCallback temp;
nofralloc if (func) {
#include "asm/dolphin/os/OSThread/OSSetSwitchThreadCallback.s" temp = func;
} else {
temp = DefaultSwitchThreadCallback;
}
SwitchThreadCallback = temp;
OSRestoreInterrupts(enable);
if (prev == DefaultSwitchThreadCallback) {
return NULL;
}
return prev;
} }
#pragma pop
/* ############################################################################################## */ /* ############################################################################################## */
/* 8044BB78-8044BC78 078898 0100+00 6/6 0/0 0/0 .bss RunQueue */ /* 8044BB78-8044BC78 078898 0100+00 6/6 0/0 0/0 .bss RunQueue */
@ -127,10 +137,10 @@ static OSContext IdleContext;
#pragma pop #pragma pop
/* 804516C0-804516C4 000BC0 0004+00 7/7 0/0 0/0 .sbss RunQueueBits */ /* 804516C0-804516C4 000BC0 0004+00 7/7 0/0 0/0 .sbss RunQueueBits */
static u32 RunQueueBits; static vu32 RunQueueBits;
/* 804516C4-804516C8 000BC4 0004+00 11/11 0/0 0/0 .sbss RunQueueHint */ /* 804516C4-804516C8 000BC4 0004+00 11/11 0/0 0/0 .sbss RunQueueHint */
static BOOL RunQueueHint; static volatile BOOL RunQueueHint;
/* 804516C8-804516D0 000BC8 0004+04 4/4 0/0 0/0 .sbss Reschedule */ /* 804516C8-804516D0 000BC8 0004+04 4/4 0/0 0/0 .sbss Reschedule */
static volatile s32 Reschedule; static volatile s32 Reschedule;
@ -213,24 +223,20 @@ BOOL OSIsThreadTerminated(OSThread* thread) {
} }
/* 80340CC4-80340D04 33B604 0040+00 0/0 8/8 0/0 .text OSDisableScheduler */ /* 80340CC4-80340D04 33B604 0040+00 0/0 8/8 0/0 .text OSDisableScheduler */
#pragma push s32 OSDisableScheduler(void) {
#pragma optimization_level 0 BOOL intr = OSDisableInterrupts();
#pragma optimizewithasm off s32 ret = Reschedule++;
asm s32 OSDisableScheduler(void) { OSRestoreInterrupts(intr);
nofralloc return ret;
#include "asm/dolphin/os/OSThread/OSDisableScheduler.s"
} }
#pragma pop
/* 80340D04-80340D44 33B644 0040+00 0/0 10/10 0/0 .text OSEnableScheduler */ /* 80340D04-80340D44 33B644 0040+00 0/0 10/10 0/0 .text OSEnableScheduler */
#pragma push s32 OSEnableScheduler(void) {
#pragma optimization_level 0 BOOL intr = OSDisableInterrupts();
#pragma optimizewithasm off s32 ret = Reschedule--;
asm s32 OSEnableScheduler(void) { OSRestoreInterrupts(intr);
nofralloc return ret;
#include "asm/dolphin/os/OSThread/OSEnableScheduler.s"
} }
#pragma pop
static inline void SetRun(OSThread* thread) { static inline void SetRun(OSThread* thread) {
thread->queue = &RunQueue[thread->effective_priority]; thread->queue = &RunQueue[thread->effective_priority];
@ -240,7 +246,8 @@ static inline void SetRun(OSThread* thread) {
} }
/* 80340D44-80340DAC 33B684 0068+00 3/3 0/0 0/0 .text UnsetRun */ /* 80340D44-80340DAC 33B684 0068+00 3/3 0/0 0/0 .text UnsetRun */
static void UnsetRun(OSThread* thread) { #pragma dont_inline on
static void UnsetRun(OSThread* thread) {
OSThreadQueue* queue; OSThreadQueue* queue;
OSThread* next; OSThread* next;
OSThread* prev; OSThread* prev;
@ -267,6 +274,7 @@ static void UnsetRun(OSThread* thread) {
thread->queue = NULL; thread->queue = NULL;
} }
#pragma dont_inline reset
/* 80340DAC-80340DE8 33B6EC 003C+00 4/4 2/2 0/0 .text __OSGetEffectivePriority */ /* 80340DAC-80340DE8 33B6EC 003C+00 4/4 2/2 0/0 .text __OSGetEffectivePriority */
s32 __OSGetEffectivePriority(OSThread* thread) { s32 __OSGetEffectivePriority(OSThread* thread) {
@ -284,8 +292,6 @@ s32 __OSGetEffectivePriority(OSThread* thread) {
} }
/* 80340DE8-80340FA8 33B728 01C0+00 5/5 0/0 0/0 .text SetEffectivePriority */ /* 80340DE8-80340FA8 33B728 01C0+00 5/5 0/0 0/0 .text SetEffectivePriority */
// needs compiler epilogue patch
#ifdef NONMATCHING
static OSThread* SetEffectivePriority(OSThread* thread, s32 priority) { static OSThread* SetEffectivePriority(OSThread* thread, s32 priority) {
switch (thread->state) { switch (thread->state) {
case OS_THREAD_STATE_READY: case OS_THREAD_STATE_READY:
@ -308,26 +314,32 @@ static OSThread* SetEffectivePriority(OSThread* thread, s32 priority) {
} }
return NULL; return NULL;
} }
#else
#pragma push static void UpdatePriority(OSThread* thread) {
#pragma optimization_level 0 OSPriority priority;
#pragma optimizewithasm off
static asm OSThread* SetEffectivePriority(OSThread* thread, s32 priority) { do {
nofralloc if (0 < thread->suspend_count) {
#include "asm/dolphin/os/OSThread/SetEffectivePriority.s" break;
}
priority = __OSGetEffectivePriority(thread);
if (thread->effective_priority == priority) {
break;
}
thread = SetEffectivePriority(thread, priority);
} while (thread);
} }
#pragma pop
#endif
/* 80340FA8-80340FF8 33B8E8 0050+00 0/0 1/1 0/0 .text __OSPromoteThread */ /* 80340FA8-80340FF8 33B8E8 0050+00 0/0 1/1 0/0 .text __OSPromoteThread */
#pragma push void __OSPromoteThread(OSThread* thread, s32 priority) {
#pragma optimization_level 0 do {
#pragma optimizewithasm off if (thread->suspend_count > 0 || thread->effective_priority <= priority) {
asm void __OSPromoteThread(OSThread* thread, s32 priority) { break;
nofralloc }
#include "asm/dolphin/os/OSThread/__OSPromoteThread.s"
thread = SetEffectivePriority(thread, priority);
} while(thread != NULL);
} }
#pragma pop
static inline void __OSSwitchThread(OSThread* nextThread) { static inline void __OSSwitchThread(OSThread* nextThread) {
OSSetCurrentThread(nextThread); OSSetCurrentThread(nextThread);
@ -336,7 +348,6 @@ static inline void __OSSwitchThread(OSThread* nextThread) {
} }
/* 80340FF8-80341220 33B938 0228+00 9/9 0/0 0/0 .text SelectThread */ /* 80340FF8-80341220 33B938 0228+00 9/9 0/0 0/0 .text SelectThread */
#ifdef NONMATCHING
inline OSThread* i_OSGetCurrentThread(void) { inline OSThread* i_OSGetCurrentThread(void) {
return OS_CURRENT_THREAD; return OS_CURRENT_THREAD;
} }
@ -376,8 +387,8 @@ static OSThread* SelectThread(BOOL yield) {
} }
} }
OSSetCurrentThread(NULL);
if (RunQueueBits == 0) { if (RunQueueBits == 0) {
OSSetCurrentThread(NULL);
OSSetCurrentContext(&IdleContext); OSSetCurrentContext(&IdleContext);
do { do {
OSEnableInterrupts(); OSEnableInterrupts();
@ -402,16 +413,6 @@ static OSThread* SelectThread(BOOL yield) {
__OSSwitchThread(nextThread); __OSSwitchThread(nextThread);
return nextThread; return nextThread;
} }
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm OSThread* SelectThread(BOOL yield) {
nofralloc
#include "asm/dolphin/os/OSThread/SelectThread.s"
}
#pragma pop
#endif
/* 80341220-80341250 33BB60 0030+00 0/0 3/3 0/0 .text __OSReschedule */ /* 80341220-80341250 33BB60 0030+00 0/0 3/3 0/0 .text __OSReschedule */
void __OSReschedule(void) { void __OSReschedule(void) {
@ -432,95 +433,258 @@ void OSYieldThread(void) {
} }
/* 8034128C-80341474 33BBCC 01E8+00 0/0 5/5 3/3 .text OSCreateThread */ /* 8034128C-80341474 33BBCC 01E8+00 0/0 5/5 3/3 .text OSCreateThread */
#pragma push BOOL OSCreateThread(OSThread* thread_, void* func, void* param, void* stackBase, u32 stackSize,
#pragma optimization_level 0 s32 priority, u16 attribute) {
#pragma optimizewithasm off BOOL enabled;
asm BOOL OSCreateThread(OSThread* thread, void* func, void* param, void* stackBase, u32 stackSize, u32 i;
s32 priority, u16 attribute) { u32* stack;
nofralloc OSThread* thread;
#include "asm/dolphin/os/OSThread/OSCreateThread.s" u32 stack1, stack2;
if (priority < 0 || priority > 31) {
return FALSE;
}
thread = thread_;
thread->state = OS_THREAD_STATE_READY;
thread->attributes = attribute & 1;
thread->base_priority = priority;
thread->effective_priority = priority;
thread->suspend_count = 1;
thread->exit_value = (void*)-1;
thread->mutex = NULL;
thread->join_queue.tail = NULL;
thread->join_queue.head = NULL;
thread->owned_mutexes.tail = NULL;
thread->owned_mutexes.head = NULL;
stack = (u32*)((u32)stackBase & 0xfffffff8);
stack[-2] = 0;
stack[-1] = 0;
OSInitContext(&thread->context, (u32)func,(u32)stack - 8);
thread->context.lr = (u32) OSExitThread;
thread->context.gpr[3] = (u32) param;
thread->stack_base = (u8*)stackBase;
thread->stack_end = (void*)((u32)stackBase - stackSize);
*(u32*)thread->stack_end = OS_THREAD_STACK_MAGIC;
thread->error_code = NULL;
thread->data[0] = NULL;
thread->data[1] = NULL;
enabled = OSDisableInterrupts();
if (__OSErrorTable[16]) {
thread->context.srr1 |= 0x900;
thread->context.state |= 1;
thread->context.fpscr = (__OSFpscrEnableBits & 0xf8) | 4;
for (i = 0; i < 32; ++i) {
*(u64*)&thread->context.fpr[i] = (u64)0xffffffffffffffffLL;
*(u64*)&thread->context.ps[i] = (u64)0xffffffffffffffffLL;
}
}
AddTail(&OS_THREAD_QUEUE, thread, active_threads_link);
OSRestoreInterrupts(enabled);
return TRUE;
} }
#pragma pop
/* 80341474-80341558 33BDB4 00E4+00 1/1 1/1 0/0 .text OSExitThread */ /* 80341474-80341558 33BDB4 00E4+00 1/1 1/1 0/0 .text OSExitThread */
#pragma push void OSExitThread(void* exitValue) {
#pragma optimization_level 0 OSThread* currentThread;
#pragma optimizewithasm off BOOL enabled;
asm void OSExitThread(void* exitValue) { enabled = OSDisableInterrupts();
nofralloc currentThread = OS_CURRENT_THREAD;
#include "asm/dolphin/os/OSThread/OSExitThread.s" OSClearContext(&currentThread->context);
if (currentThread->attributes & OS_THREAD_ATTR_DETACH) {
RemoveItem(&OS_THREAD_QUEUE, currentThread, active_threads_link);
currentThread->state = OS_THREAD_STATE_UNINITIALIZED;
} else {
currentThread->state = OS_THREAD_STATE_DEAD;
currentThread->exit_value = exitValue;
}
__OSUnlockAllMutex(currentThread);
OSWakeupThread(&currentThread->join_queue);
RunQueueHint = TRUE;
if (RunQueueHint) {
SelectThread(FALSE);
}
OSRestoreInterrupts(enabled);
} }
#pragma pop
/* 80341558-80341714 33BE98 01BC+00 0/0 4/4 3/3 .text OSCancelThread */ /* 80341558-80341714 33BE98 01BC+00 0/0 4/4 3/3 .text OSCancelThread */
#pragma push void OSCancelThread(OSThread* thread) {
#pragma optimization_level 0 BOOL enabled;
#pragma optimizewithasm off
asm void OSCancelThread(OSThread* thread) { enabled = OSDisableInterrupts();
nofralloc
#include "asm/dolphin/os/OSThread/OSCancelThread.s" switch (thread->state) {
case OS_THREAD_STATE_READY:
if (!(0 < thread->suspend_count)) {
UnsetRun(thread);
}
break;
case OS_THREAD_STATE_RUNNING:
RunQueueHint = TRUE;
break;
case OS_THREAD_STATE_WAITING:
RemoveItem(thread->queue, thread, link);
thread->queue = NULL;
if (!(0 < thread->suspend_count) && thread->mutex) {
UpdatePriority(thread->mutex->thread);
}
break;
default:
OSRestoreInterrupts(enabled);
return;
}
OSClearContext(&thread->context);
if (thread->attributes & OS_THREAD_ATTR_DETACH) {
RemoveItem(&__OSActiveThreadQueue, thread, active_threads_link);
thread->state = 0;
} else {
thread->state = OS_THREAD_STATE_DEAD;
}
__OSUnlockAllMutex(thread);
OSWakeupThread(&thread->join_queue);
__OSReschedule();
OSRestoreInterrupts(enabled);
} }
#pragma pop
/* 80341714-803417B4 33C054 00A0+00 0/0 2/2 0/0 .text OSDetachThread */ /* 80341714-803417B4 33C054 00A0+00 0/0 2/2 0/0 .text OSDetachThread */
#pragma push void OSDetachThread(OSThread* thread) {
#pragma optimization_level 0 BOOL enabled;
#pragma optimizewithasm off
asm void OSDetachThread(OSThread* thread) { enabled = OSDisableInterrupts();
nofralloc thread->attributes |= OS_THREAD_ATTR_DETACH;
#include "asm/dolphin/os/OSThread/OSDetachThread.s"
if (thread->state == OS_THREAD_STATE_DEAD) {
RemoveItem(&__OSActiveThreadQueue, thread, active_threads_link);
thread->state = OS_THREAD_STATE_UNINITIALIZED;
}
OSWakeupThread(&thread->join_queue);
OSRestoreInterrupts(enabled);
} }
#pragma pop
/* 803417B4-80341A3C 33C0F4 0288+00 0/0 13/13 3/3 .text OSResumeThread */ /* 803417B4-80341A3C 33C0F4 0288+00 0/0 13/13 3/3 .text OSResumeThread */
#pragma push s32 OSResumeThread(OSThread* thread) {
#pragma optimization_level 0 BOOL enabled;
#pragma optimizewithasm off s32 suspendCount;
asm s32 OSResumeThread(OSThread* thread) {
nofralloc enabled = OSDisableInterrupts();
#include "asm/dolphin/os/OSThread/OSResumeThread.s" suspendCount = thread->suspend_count--;
if (thread->suspend_count < 0) {
thread->suspend_count = 0;
} else if (thread->suspend_count == 0) {
switch (thread->state) {
case OS_THREAD_STATE_READY:
thread->effective_priority = __OSGetEffectivePriority(thread);
SetRun(thread);
break;
case OS_THREAD_STATE_WAITING:
RemoveItem(thread->queue, thread, link);
thread->effective_priority = __OSGetEffectivePriority(thread);
AddPrio(thread->queue, thread, link);
if (thread->mutex) {
UpdatePriority(thread->mutex->thread);
}
break;
}
__OSReschedule();
}
OSRestoreInterrupts(enabled);
return suspendCount;
} }
#pragma pop
/* 80341A3C-80341BAC 33C37C 0170+00 0/0 7/7 4/4 .text OSSuspendThread */ /* 80341A3C-80341BAC 33C37C 0170+00 0/0 7/7 4/4 .text OSSuspendThread */
#pragma push s32 OSSuspendThread(OSThread* thread) {
#pragma optimization_level 0 BOOL enabled;
#pragma optimizewithasm off s32 suspendCount;
asm s32 OSSuspendThread(OSThread* thread) {
nofralloc enabled = OSDisableInterrupts();
#include "asm/dolphin/os/OSThread/OSSuspendThread.s" suspendCount = thread->suspend_count++;
if (suspendCount == 0) {
switch (thread->state) {
case OS_THREAD_STATE_RUNNING:
RunQueueHint = TRUE;
thread->state = OS_THREAD_STATE_READY;
break;
case OS_THREAD_STATE_READY:
UnsetRun(thread);
break;
case OS_THREAD_STATE_WAITING:
RemoveItem(thread->queue, thread, link);
thread->effective_priority = 32;
AddTail(thread->queue, thread, link);
if (thread->mutex) {
UpdatePriority(thread->mutex->thread);
}
break;
}
__OSReschedule();
}
OSRestoreInterrupts(enabled);
return suspendCount;
} }
#pragma pop
/* 80341BAC-80341C98 33C4EC 00EC+00 0/0 12/12 0/0 .text OSSleepThread */ /* 80341BAC-80341C98 33C4EC 00EC+00 0/0 12/12 0/0 .text OSSleepThread */
#pragma push void OSSleepThread(OSThreadQueue* queue) {
#pragma optimization_level 0 BOOL enabled;
#pragma optimizewithasm off OSThread* currentThread;
asm void OSSleepThread(OSThreadQueue* queue) {
nofralloc enabled = OSDisableInterrupts();
#include "asm/dolphin/os/OSThread/OSSleepThread.s" currentThread = OSGetCurrentThread();
currentThread->state = OS_THREAD_STATE_WAITING;
currentThread->queue = queue;
AddPrio(queue, currentThread, link);
RunQueueHint = TRUE;
__OSReschedule();
OSRestoreInterrupts(enabled);
} }
#pragma pop
/* 80341C98-80341D9C 33C5D8 0104+00 3/3 13/13 0/0 .text OSWakeupThread */ /* 80341C98-80341D9C 33C5D8 0104+00 3/3 13/13 0/0 .text OSWakeupThread */
#pragma push void OSWakeupThread(OSThreadQueue* queue) {
#pragma optimization_level 0 BOOL enabled;
#pragma optimizewithasm off OSThread* thread;
asm void OSWakeupThread(OSThreadQueue* queue) {
nofralloc enabled = OSDisableInterrupts();
#include "asm/dolphin/os/OSThread/OSWakeupThread.s" while (queue->head) {
RemoveHead(queue, thread, link);
thread->state = OS_THREAD_STATE_READY;
if (!(0 < thread->suspend_count)) {
SetRun(thread);
}
}
__OSReschedule();
OSRestoreInterrupts(enabled);
} }
#pragma pop
/* 80341D9C-80341E5C 33C6DC 00C0+00 0/0 1/1 0/0 .text OSSetThreadPriority */ /* 80341D9C-80341E5C 33C6DC 00C0+00 0/0 1/1 0/0 .text OSSetThreadPriority */
#pragma push s32 OSSetThreadPriority(OSThread* thread, s32 priority) {
#pragma optimization_level 0 BOOL enabled;
#pragma optimizewithasm off
asm s32 OSSetThreadPriority(OSThread* thread, s32 priority) { if (priority < 0 || priority > 31) {
nofralloc return FALSE;
#include "asm/dolphin/os/OSThread/OSSetThreadPriority.s" }
enabled = OSDisableInterrupts();
if ((s32)thread->base_priority != priority) {
thread->base_priority = priority;
UpdatePriority(thread);
__OSReschedule();
}
OSRestoreInterrupts(enabled);
return TRUE;
} }
#pragma pop
/* 80341E5C-80341E64 33C79C 0008+00 0/0 4/4 0/0 .text OSGetThreadPriority */ /* 80341E5C-80341E64 33C79C 0008+00 0/0 4/4 0/0 .text OSGetThreadPriority */
s32 OSGetThreadPriority(OSThread* thread) { s32 OSGetThreadPriority(OSThread* thread) {
@ -528,210 +692,218 @@ s32 OSGetThreadPriority(OSThread* thread) {
} }
/* 80341E64-80341F00 33C7A4 009C+00 1/1 0/0 0/0 .text CheckThreadQueue */ /* 80341E64-80341F00 33C7A4 009C+00 1/1 0/0 0/0 .text CheckThreadQueue */
#pragma push s32 CheckThreadQueue(OSThreadQueue* thread) {
#pragma optimization_level 0 OSThread* current;
#pragma optimizewithasm off if (thread->head && thread->head->link.prev) {
static asm s32 CheckThreadQueue(OSThread* thread) { return 0;
nofralloc }
#include "asm/dolphin/os/OSThread/CheckThreadQueue.s"
if (thread->tail && thread->tail->link.next) {
return 0;
}
current = thread->head;
while(current) {
if (current->link.next && current != current->link.next->link.prev) {
return 0;
}
if (current->link.prev && current != current->link.prev->link.next) {
return 0;
}
current = current->link.next;
}
return 1;
} }
#pragma pop
/* ############################################################################################## */ static BOOL isMember(OSThreadQueue* queue, OSThread* thread) {
/* 803D0838-803D0898 02D958 005F+01 1/1 0/0 0/0 .data @831 */ OSThread* current = queue->head;
SECTION_DATA static char lit_831[] = "OSCheckActiveThreads: Failed RunQueue[prio].head != NULL && " while (current != NULL) {
"RunQueue[prio].tail != NULL in %d\n"; if (thread == current) {
return TRUE;
}
/* 803D0898-803D08A4 02D9B8 000B+01 0/1 0/0 0/0 .data @832 */ current = current->link.next;
#pragma push }
#pragma force_active on return FALSE;
SECTION_DATA static char lit_832[] = "OSThread.c"; }
#pragma pop
/* 803D08A4-803D0904 02D9C4 005F+01 0/1 0/0 0/0 .data @834 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_834[] = "OSCheckActiveThreads: Failed RunQueue[prio].head == NULL && "
"RunQueue[prio].tail == NULL in %d\n";
#pragma pop
/* 803D0904-803D094C 02DA24 0046+02 0/1 0/0 0/0 .data @835 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_835[] =
"OSCheckActiveThreads: Failed CheckThreadQueue(&RunQueue[prio]) in %d\n";
#pragma pop
/* 803D094C-803D09CC 02DA6C 007E+02 0/1 0/0 0/0 .data @836 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_836[] =
"OSCheckActiveThreads: Failed __OSActiveThreadQueue.head == NULL || "
"__OSActiveThreadQueue.head->linkActive.prev == NULL in %d\n";
#pragma pop
/* 803D09CC-803D0A4C 02DAEC 007E+02 0/1 0/0 0/0 .data @837 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_837[] =
"OSCheckActiveThreads: Failed __OSActiveThreadQueue.tail == NULL || "
"__OSActiveThreadQueue.tail->linkActive.next == NULL in %d\n";
#pragma pop
/* 803D0A4C-803D0AC8 02DB6C 007A+02 0/1 0/0 0/0 .data @838 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_838[] =
"OSCheckActiveThreads: Failed thread->linkActive.next == NULL || thread == "
"thread->linkActive.next->linkActive.prev in %d\n";
#pragma pop
/* 803D0AC8-803D0B44 02DBE8 007A+02 0/1 0/0 0/0 .data @839 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_839[] =
"OSCheckActiveThreads: Failed thread->linkActive.prev == NULL || thread == "
"thread->linkActive.prev->linkActive.next in %d\n";
#pragma pop
/* 803D0B44-803D0B98 02DC64 0051+03 0/1 0/0 0/0 .data @840 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_840[] =
"OSCheckActiveThreads: Failed *(thread->stackEnd) == OS_THREAD_STACK_MAGIC in %d\n";
#pragma pop
/* 803D0B98-803D0C0C 02DCB8 0071+03 0/1 0/0 0/0 .data @841 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_841[] =
"OSCheckActiveThreads: Failed OS_PRIORITY_MIN <= thread->priority && thread->priority <= "
"OS_PRIORITY_MAX+1 in %d\n";
#pragma pop
/* 803D0C0C-803D0C48 02DD2C 0039+03 0/1 0/0 0/0 .data @842 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_842[] = "OSCheckActiveThreads: Failed 0 <= thread->suspend in %d\n";
#pragma pop
/* 803D0C48-803D0C94 02DD68 0049+03 0/1 0/0 0/0 .data @843 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_843[] =
"OSCheckActiveThreads: Failed CheckThreadQueue(&thread->queueJoin) in %d\n";
#pragma pop
/* 803D0C94-803D0CE8 02DDB4 0051+03 0/1 0/0 0/0 .data @844 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_844[] =
"OSCheckActiveThreads: Failed thread->queue == &RunQueue[thread->priority] in %d\n";
#pragma pop
/* 803D0CE8-803D0D3C 02DE08 0052+02 0/1 0/0 0/0 .data @845 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_845[] =
"OSCheckActiveThreads: Failed IsMember(&RunQueue[thread->priority], thread) in %d\n";
#pragma pop
/* 803D0D3C-803D0D98 02DE5C 0059+03 0/1 0/0 0/0 .data @846 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_846[] =
"OSCheckActiveThreads: Failed thread->priority == __OSGetEffectivePriority(thread) in %d\n";
#pragma pop
/* 803D0D98-803D0DDC 02DEB8 0042+02 0/1 0/0 0/0 .data @847 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_847[] =
"OSCheckActiveThreads: Failed !IsSuspended(thread->suspend) in %d\n";
#pragma pop
/* 803D0DDC-803D0E18 02DEFC 003A+02 0/1 0/0 0/0 .data @848 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_848[] = "OSCheckActiveThreads: Failed thread->queue == NULL in %d\n";
#pragma pop
/* 803D0E18-803D0E54 02DF38 003A+02 0/1 0/0 0/0 .data @849 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_849[] = "OSCheckActiveThreads: Failed thread->queue != NULL in %d\n";
#pragma pop
/* 803D0E54-803D0E98 02DF74 0044+00 0/1 0/0 0/0 .data @850 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_850[] =
"OSCheckActiveThreads: Failed CheckThreadQueue(thread->queue) in %d\n";
#pragma pop
/* 803D0E98-803D0EDC 02DFB8 0044+00 0/1 0/0 0/0 .data @851 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_851[] =
"OSCheckActiveThreads: Failed IsMember(thread->queue, thread) in %d\n";
#pragma pop
/* 803D0EDC-803D0F18 02DFFC 003B+01 0/1 0/0 0/0 .data @852 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_852[] = "OSCheckActiveThreads: Failed thread->priority == 32 in %d\n";
#pragma pop
/* 803D0F18-803D0F58 02E038 003F+01 0/1 0/0 0/0 .data @853 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_853[] =
"OSCheckActiveThreads: Failed !__OSCheckDeadLock(thread) in %d\n";
#pragma pop
/* 803D0F58-803D0FC0 02E078 0067+01 0/1 0/0 0/0 .data @854 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_854[] = "OSCheckActiveThreads: Failed thread->queueMutex.head == NULL "
"&& thread->queueMutex.tail == NULL in %d\n";
#pragma pop
/* 803D0FC0-803D1008 02E0E0 0045+03 0/1 0/0 0/0 .data @855 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_855[] =
"OSCheckActiveThreads: Failed. unkown thread state (%d) of thread %p\n";
#pragma pop
/* 803D1008-803D1048 02E128 003D+03 0/1 0/0 0/0 .data @856 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_856[] =
"OSCheckActiveThreads: Failed __OSCheckMutexes(thread) in %d\n";
#pragma pop
/* 804509BC-804509C0 00043C 0001+03 1/1 0/0 0/0 .sdata @833 */
SECTION_SDATA static char lit_833[] = "";
/* 80341F00-80342650 33C840 0750+00 0/0 1/1 0/0 .text OSCheckActiveThreads */ /* 80341F00-80342650 33C840 0750+00 0/0 1/1 0/0 .text OSCheckActiveThreads */
#pragma push s32 OSCheckActiveThreads(void) {
#pragma optimization_level 0 s32 i;
#pragma optimizewithasm off OSThread* thread;
asm s32 OSCheckActiveThreads(void) { s32 rv = 0;
nofralloc BOOL enabled;
#include "asm/dolphin/os/OSThread/OSCheckActiveThreads.s" enabled = OSDisableInterrupts();
for (i = 0; i <= 31; i++) {
if (RunQueueBits & (1 << (31-i))) {
if (RunQueue[i].head == NULL || RunQueue[i].tail == NULL) {
OSReport("OSCheckActiveThreads: Failed RunQueue[prio].head != NULL && RunQueue[prio].tail != NULL in %d\n", 0x5e0);
OSPanic(__FILE__, 0x5e0, "");
}
} else {
if (RunQueue[i].head != NULL || RunQueue[i].tail != NULL) {
OSReport("OSCheckActiveThreads: Failed RunQueue[prio].head == NULL && RunQueue[prio].tail == NULL in %d\n", 0x5e5);
OSPanic(__FILE__, 0x5e5, "");
}
}
if (CheckThreadQueue(&RunQueue[i]) == 0) {
OSReport("OSCheckActiveThreads: Failed CheckThreadQueue(&RunQueue[prio]) in %d\n", 0x5e7);
OSPanic(__FILE__, 0x5e7, "");
}
}
if (OS_THREAD_QUEUE.head != NULL && OS_THREAD_QUEUE.head->active_threads_link.prev != NULL) {
OSReport("OSCheckActiveThreads: Failed __OSActiveThreadQueue.head == NULL || __OSActiveThreadQueue.head->linkActive.prev == NULL in %d\n", 0x5ec);
OSPanic(__FILE__, 0x5ec, "");
}
if (OS_THREAD_QUEUE.tail != NULL && OS_THREAD_QUEUE.tail->active_threads_link.next != NULL) {
OSReport("OSCheckActiveThreads: Failed __OSActiveThreadQueue.tail == NULL || __OSActiveThreadQueue.tail->linkActive.next == NULL in %d\n", 0x5ee);
OSPanic(__FILE__, 0x5ee, "");
}
thread = OS_THREAD_QUEUE.head;
while (thread != NULL) {
rv++;
if (thread->active_threads_link.next != NULL && thread != thread->active_threads_link.next->active_threads_link.prev) {
OSReport("OSCheckActiveThreads: Failed thread->linkActive.next == NULL || thread == thread->linkActive.next->linkActive.prev in %d\n", 0x5f6);
OSPanic(__FILE__, 0x5f6, "");
}
if (thread->active_threads_link.prev != NULL && thread != thread->active_threads_link.prev->active_threads_link.next) {
OSReport("OSCheckActiveThreads: Failed thread->linkActive.prev == NULL || thread == thread->linkActive.prev->linkActive.next in %d\n", 0x5f8);
OSPanic(__FILE__, 0x5f8, "");
}
if (*(u32*)thread->stack_end != OS_THREAD_STACK_MAGIC) {
OSReport("OSCheckActiveThreads: Failed *(thread->stackEnd) == OS_THREAD_STACK_MAGIC in %d\n", 0x5fb);
OSPanic(__FILE__, 0x5fb, "");
}
if (OS_PRIORITY_MIN > thread->effective_priority || thread->effective_priority > OS_PRIORITY_MAX+1) {
OSReport("OSCheckActiveThreads: Failed OS_PRIORITY_MIN <= thread->priority && thread->priority <= OS_PRIORITY_MAX+1 in %d\n", 0x5fe);
OSPanic(__FILE__, 0x5fe, "");
}
if (thread->suspend_count < 0) {
OSReport("OSCheckActiveThreads: Failed 0 <= thread->suspend in %d\n", 0x5ff);
OSPanic(__FILE__, 0x5ff, "");
}
if (!CheckThreadQueue(&thread->join_queue)) {
OSReport("OSCheckActiveThreads: Failed CheckThreadQueue(&thread->queueJoin) in %d\n", 0x600);
OSPanic(__FILE__, 0x600, "");
}
switch (thread->state) {
case OS_THREAD_STATE_READY:
if (thread->suspend_count <= 0) {
if (thread->queue != &RunQueue[thread->effective_priority]) {
OSReport("OSCheckActiveThreads: Failed thread->queue == &RunQueue[thread->priority] in %d\n", 0x606);
OSPanic(__FILE__, 0x606, "");
}
if (!isMember(&RunQueue[thread->effective_priority], thread)) {
OSReport("OSCheckActiveThreads: Failed IsMember(&RunQueue[thread->priority], thread) in %d\n", 0x607);
OSPanic(__FILE__, 0x607, "");
}
if (thread->effective_priority != __OSGetEffectivePriority(thread)) {
OSReport("OSCheckActiveThreads: Failed thread->priority == __OSGetEffectivePriority(thread) in %d\n", 0x608);
OSPanic(__FILE__, 0x608, "");
}
}
break;
case OS_THREAD_STATE_RUNNING:
if (thread->suspend_count > 0) {
OSReport("OSCheckActiveThreads: Failed !IsSuspended(thread->suspend) in %d\n", 0x60c);
OSPanic(__FILE__, 0x60c, "");
}
if (thread->queue != NULL) {
OSReport("OSCheckActiveThreads: Failed thread->queue == NULL in %d\n", 0x60d);
OSPanic(__FILE__, 0x60d, "");
}
if (thread->effective_priority != __OSGetEffectivePriority(thread)) {
OSReport("OSCheckActiveThreads: Failed thread->priority == __OSGetEffectivePriority(thread) in %d\n", 0x60e);
OSPanic(__FILE__, 0x60e, "");
}
break;
case OS_THREAD_STATE_WAITING:
if (thread->queue == NULL) {
OSReport("OSCheckActiveThreads: Failed thread->queue != NULL in %d\n", 0x611);
OSPanic(__FILE__, 0x611, "");
}
if (CheckThreadQueue(thread->queue) == 0) {
OSReport("OSCheckActiveThreads: Failed CheckThreadQueue(thread->queue) in %d\n", 0x612);
OSPanic(__FILE__, 0x612, "");
}
if (!isMember(thread->queue, thread)) {
OSReport("OSCheckActiveThreads: Failed IsMember(thread->queue, thread) in %d\n", 0x613);
OSPanic(__FILE__, 0x613, "");
}
if (thread->suspend_count <= 0) {
if (thread->effective_priority != __OSGetEffectivePriority(thread)) {
OSReport("OSCheckActiveThreads: Failed thread->priority == __OSGetEffectivePriority(thread) in %d\n", 0x616);
OSPanic(__FILE__, 0x616, "");
}
} else if (thread->effective_priority != 32) {
OSReport("OSCheckActiveThreads: Failed thread->priority == 32 in %d\n", 0x61a);
OSPanic(__FILE__, 0x61a, "");
}
if (__OSCheckDeadLock(thread)) {
OSReport("OSCheckActiveThreads: Failed !__OSCheckDeadLock(thread) in %d\n", 0x61c);
OSPanic(__FILE__, 0x61c, "");
}
break;
case OS_THREAD_STATE_DEAD:
if (thread->owned_mutexes.head != NULL || thread->owned_mutexes.tail != NULL) {
OSReport("OSCheckActiveThreads: Failed thread->queueMutex.head == NULL && thread->queueMutex.tail == NULL in %d\n", 0x620);
OSPanic(__FILE__, 0x620, "");
}
break;
default:
OSReport("OSCheckActiveThreads: Failed. unkown thread state (%d) of thread %p\n", thread->state, thread);
OSPanic(__FILE__, 0x626, "");
break;
}
if (!__OSCheckMutexes(thread)) {
OSReport("OSCheckActiveThreads: Failed __OSCheckMutexes(thread) in %d\n", 0x62b);
OSPanic(__FILE__, 0x62b, "");
}
thread = thread->active_threads_link.next;
}
OSRestoreInterrupts(enabled);
return rv;
} }
#pragma pop
/* 80342650-803426FC 33CF90 00AC+00 1/1 0/0 0/0 .text OSClearStack */ /* 80342650-803426FC 33CF90 00AC+00 1/1 0/0 0/0 .text OSClearStack */
#pragma push void OSClearStack(u8 val) {
#pragma optimization_level 0 u32* sp;
#pragma optimizewithasm off u32* p;
static asm void OSClearStack(u32 value) { u32 pattern;
nofralloc
#include "asm/dolphin/os/OSThread/OSClearStack.s" pattern = ((u32)val << 24) | ((u32)val << 16) | ((u32)val << 8) | (u32)val;
sp = (u32*)OSGetStackPointer();
for (p = ((u32*)__OSCurrentThread->stack_end) + 1; p < sp; ++p) {
*p = pattern;
}
} }
#pragma pop
/* ############################################################################################## */ /* ############################################################################################## */
/* 804516D0-804516D8 000BD0 0008+00 0/0 2/1 0/0 .sbss None */ /* 804516D0-804516D8 000BD0 0008+00 0/0 2/1 0/0 .sbss None */