mirror of https://github.com/zeldaret/tp.git
154 lines
6.4 KiB
ArmAsm
154 lines
6.4 KiB
ArmAsm
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
|