tp/asm/dolphin/os/OSThread/OSCreateThread.s

131 lines
5.7 KiB
ArmAsm

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