Split SDK objects

This commit is contained in:
Phillip Stephens 2022-04-02 14:03:04 -07:00
parent e1ad16dcc8
commit 84076de482
Signed by: Antidote
GPG Key ID: F8BEE4C83DACA60D
99 changed files with 38283 additions and 37985 deletions

View File

@ -55,7 +55,9 @@ endif
O_FILES := $(INIT_O_FILES) $(EXTAB_O_FILES) $(EXTABINDEX_O_FILES) $(KYOTO_CWD) \
$(CTORS_O_FILES) $(DTORS_O_FILES) $(RODATA_O_FILES) $(DATA_O_FILES) \
$(BSS_O_FILES) $(SDATA_O_FILES) $(SBSS_O_FILES) $(SDATA2_O_FILES) \
$(SBSS2_O_FILES) $(TEXT_O_FILES) $(MSL_PPCEABI_BARE_H) $(MUSYX_FILES) \
$(SBSS2_O_FILES) $(TEXT_O_FILES) $(AI_FILES) $(AR_FILES) $(BASE_FILES) \
$(DB_FILES) $(DSP_FILES) $(DVD_FILES) $(GX_FILES) $(MTX_FILES) $(OS_FILES) \
$(PAD_FILES) $(VI_FILES) $(MSL_PPCEABI_BARE_H) $(MUSYX_FILES) \
$(DTK_FILES) $(CARD_FILES) $(SI_FILES) $(EXI_FILES) $(THP_FILES) \
$(GBA_FILES)

1841
asm/Dolphin/AR/ar.s Normal file

File diff suppressed because it is too large Load Diff

281
asm/Dolphin/AR/arq.s Normal file
View File

@ -0,0 +1,281 @@
.include "macros.inc"
.section .text, "ax"
.global __ARQServiceQueueLo
__ARQServiceQueueLo:
/* 8036F430 0036C390 7C 08 02 A6 */ mflr r0
/* 8036F434 0036C394 90 01 00 04 */ stw r0, 4(r1)
/* 8036F438 0036C398 94 21 FF F8 */ stwu r1, -8(r1)
/* 8036F43C 0036C39C 80 0D AB 6C */ lwz r0, lbl_805A972C@sda21(r13)
/* 8036F440 0036C3A0 28 00 00 00 */ cmplwi r0, 0
/* 8036F444 0036C3A4 40 82 00 1C */ bne lbl_8036F460
/* 8036F448 0036C3A8 80 6D AB 60 */ lwz r3, lbl_805A9720@sda21(r13)
/* 8036F44C 0036C3AC 28 03 00 00 */ cmplwi r3, 0
/* 8036F450 0036C3B0 41 82 00 10 */ beq lbl_8036F460
/* 8036F454 0036C3B4 90 6D AB 6C */ stw r3, lbl_805A972C@sda21(r13)
/* 8036F458 0036C3B8 80 03 00 00 */ lwz r0, 0(r3)
/* 8036F45C 0036C3BC 90 0D AB 60 */ stw r0, lbl_805A9720@sda21(r13)
lbl_8036F460:
/* 8036F460 0036C3C0 80 AD AB 6C */ lwz r5, lbl_805A972C@sda21(r13)
/* 8036F464 0036C3C4 28 05 00 00 */ cmplwi r5, 0
/* 8036F468 0036C3C8 41 82 00 B8 */ beq lbl_8036F520
/* 8036F46C 0036C3CC 80 C5 00 18 */ lwz r6, 0x18(r5)
/* 8036F470 0036C3D0 80 0D AB 78 */ lwz r0, lbl_805A9738@sda21(r13)
/* 8036F474 0036C3D4 7C 06 00 40 */ cmplw r6, r0
/* 8036F478 0036C3D8 41 81 00 3C */ bgt lbl_8036F4B4
/* 8036F47C 0036C3DC 80 65 00 08 */ lwz r3, 8(r5)
/* 8036F480 0036C3E0 28 03 00 00 */ cmplwi r3, 0
/* 8036F484 0036C3E4 40 82 00 14 */ bne lbl_8036F498
/* 8036F488 0036C3E8 80 85 00 10 */ lwz r4, 0x10(r5)
/* 8036F48C 0036C3EC 80 A5 00 14 */ lwz r5, 0x14(r5)
/* 8036F490 0036C3F0 4B FF E4 95 */ bl ARStartDMA
/* 8036F494 0036C3F4 48 00 00 10 */ b lbl_8036F4A4
lbl_8036F498:
/* 8036F498 0036C3F8 80 85 00 14 */ lwz r4, 0x14(r5)
/* 8036F49C 0036C3FC 80 A5 00 10 */ lwz r5, 0x10(r5)
/* 8036F4A0 0036C400 4B FF E4 85 */ bl ARStartDMA
lbl_8036F4A4:
/* 8036F4A4 0036C404 80 6D AB 6C */ lwz r3, lbl_805A972C@sda21(r13)
/* 8036F4A8 0036C408 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8036F4AC 0036C40C 90 0D AB 74 */ stw r0, lbl_805A9734@sda21(r13)
/* 8036F4B0 0036C410 48 00 00 34 */ b lbl_8036F4E4
lbl_8036F4B4:
/* 8036F4B4 0036C414 80 65 00 08 */ lwz r3, 8(r5)
/* 8036F4B8 0036C418 28 03 00 00 */ cmplwi r3, 0
/* 8036F4BC 0036C41C 40 82 00 18 */ bne lbl_8036F4D4
/* 8036F4C0 0036C420 80 85 00 10 */ lwz r4, 0x10(r5)
/* 8036F4C4 0036C424 7C 06 03 78 */ mr r6, r0
/* 8036F4C8 0036C428 80 A5 00 14 */ lwz r5, 0x14(r5)
/* 8036F4CC 0036C42C 4B FF E4 59 */ bl ARStartDMA
/* 8036F4D0 0036C430 48 00 00 14 */ b lbl_8036F4E4
lbl_8036F4D4:
/* 8036F4D4 0036C434 80 85 00 14 */ lwz r4, 0x14(r5)
/* 8036F4D8 0036C438 7C 06 03 78 */ mr r6, r0
/* 8036F4DC 0036C43C 80 A5 00 10 */ lwz r5, 0x10(r5)
/* 8036F4E0 0036C440 4B FF E4 45 */ bl ARStartDMA
lbl_8036F4E4:
/* 8036F4E4 0036C444 80 6D AB 6C */ lwz r3, lbl_805A972C@sda21(r13)
/* 8036F4E8 0036C448 80 8D AB 78 */ lwz r4, lbl_805A9738@sda21(r13)
/* 8036F4EC 0036C44C 80 03 00 18 */ lwz r0, 0x18(r3)
/* 8036F4F0 0036C450 7C 04 00 50 */ subf r0, r4, r0
/* 8036F4F4 0036C454 90 03 00 18 */ stw r0, 0x18(r3)
/* 8036F4F8 0036C458 80 8D AB 6C */ lwz r4, lbl_805A972C@sda21(r13)
/* 8036F4FC 0036C45C 80 0D AB 78 */ lwz r0, lbl_805A9738@sda21(r13)
/* 8036F500 0036C460 80 64 00 10 */ lwz r3, 0x10(r4)
/* 8036F504 0036C464 7C 03 02 14 */ add r0, r3, r0
/* 8036F508 0036C468 90 04 00 10 */ stw r0, 0x10(r4)
/* 8036F50C 0036C46C 80 8D AB 6C */ lwz r4, lbl_805A972C@sda21(r13)
/* 8036F510 0036C470 80 0D AB 78 */ lwz r0, lbl_805A9738@sda21(r13)
/* 8036F514 0036C474 80 64 00 14 */ lwz r3, 0x14(r4)
/* 8036F518 0036C478 7C 03 02 14 */ add r0, r3, r0
/* 8036F51C 0036C47C 90 04 00 14 */ stw r0, 0x14(r4)
lbl_8036F520:
/* 8036F520 0036C480 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8036F524 0036C484 38 21 00 08 */ addi r1, r1, 8
/* 8036F528 0036C488 7C 08 03 A6 */ mtlr r0
/* 8036F52C 0036C48C 4E 80 00 20 */ blr
.global __ARQCallbackHack
__ARQCallbackHack:
/* 8036F530 0036C490 4E 80 00 20 */ blr
.global __ARQInterruptServiceRoutine
__ARQInterruptServiceRoutine:
/* 8036F534 0036C494 7C 08 02 A6 */ mflr r0
/* 8036F538 0036C498 90 01 00 04 */ stw r0, 4(r1)
/* 8036F53C 0036C49C 94 21 FF F8 */ stwu r1, -8(r1)
/* 8036F540 0036C4A0 81 8D AB 70 */ lwz r12, lbl_805A9730@sda21(r13)
/* 8036F544 0036C4A4 28 0C 00 00 */ cmplwi r12, 0
/* 8036F548 0036C4A8 41 82 00 20 */ beq lbl_8036F568
/* 8036F54C 0036C4AC 80 6D AB 68 */ lwz r3, lbl_805A9728@sda21(r13)
/* 8036F550 0036C4B0 7D 88 03 A6 */ mtlr r12
/* 8036F554 0036C4B4 4E 80 00 21 */ blrl
/* 8036F558 0036C4B8 38 00 00 00 */ li r0, 0
/* 8036F55C 0036C4BC 90 0D AB 68 */ stw r0, lbl_805A9728@sda21(r13)
/* 8036F560 0036C4C0 90 0D AB 70 */ stw r0, lbl_805A9730@sda21(r13)
/* 8036F564 0036C4C4 48 00 00 28 */ b lbl_8036F58C
lbl_8036F568:
/* 8036F568 0036C4C8 81 8D AB 74 */ lwz r12, lbl_805A9734@sda21(r13)
/* 8036F56C 0036C4CC 28 0C 00 00 */ cmplwi r12, 0
/* 8036F570 0036C4D0 41 82 00 1C */ beq lbl_8036F58C
/* 8036F574 0036C4D4 80 6D AB 6C */ lwz r3, lbl_805A972C@sda21(r13)
/* 8036F578 0036C4D8 7D 88 03 A6 */ mtlr r12
/* 8036F57C 0036C4DC 4E 80 00 21 */ blrl
/* 8036F580 0036C4E0 38 00 00 00 */ li r0, 0
/* 8036F584 0036C4E4 90 0D AB 6C */ stw r0, lbl_805A972C@sda21(r13)
/* 8036F588 0036C4E8 90 0D AB 74 */ stw r0, lbl_805A9734@sda21(r13)
lbl_8036F58C:
/* 8036F58C 0036C4EC 80 CD AB 58 */ lwz r6, lbl_805A9718@sda21(r13)
/* 8036F590 0036C4F0 28 06 00 00 */ cmplwi r6, 0
/* 8036F594 0036C4F4 41 82 00 4C */ beq lbl_8036F5E0
/* 8036F598 0036C4F8 80 66 00 08 */ lwz r3, 8(r6)
/* 8036F59C 0036C4FC 28 03 00 00 */ cmplwi r3, 0
/* 8036F5A0 0036C500 40 82 00 18 */ bne lbl_8036F5B8
/* 8036F5A4 0036C504 80 86 00 10 */ lwz r4, 0x10(r6)
/* 8036F5A8 0036C508 80 A6 00 14 */ lwz r5, 0x14(r6)
/* 8036F5AC 0036C50C 80 C6 00 18 */ lwz r6, 0x18(r6)
/* 8036F5B0 0036C510 4B FF E3 75 */ bl ARStartDMA
/* 8036F5B4 0036C514 48 00 00 14 */ b lbl_8036F5C8
lbl_8036F5B8:
/* 8036F5B8 0036C518 80 86 00 14 */ lwz r4, 0x14(r6)
/* 8036F5BC 0036C51C 80 A6 00 10 */ lwz r5, 0x10(r6)
/* 8036F5C0 0036C520 80 C6 00 18 */ lwz r6, 0x18(r6)
/* 8036F5C4 0036C524 4B FF E3 61 */ bl ARStartDMA
lbl_8036F5C8:
/* 8036F5C8 0036C528 80 6D AB 58 */ lwz r3, lbl_805A9718@sda21(r13)
/* 8036F5CC 0036C52C 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8036F5D0 0036C530 90 0D AB 70 */ stw r0, lbl_805A9730@sda21(r13)
/* 8036F5D4 0036C534 90 6D AB 68 */ stw r3, lbl_805A9728@sda21(r13)
/* 8036F5D8 0036C538 80 03 00 00 */ lwz r0, 0(r3)
/* 8036F5DC 0036C53C 90 0D AB 58 */ stw r0, lbl_805A9718@sda21(r13)
lbl_8036F5E0:
/* 8036F5E0 0036C540 80 0D AB 68 */ lwz r0, lbl_805A9728@sda21(r13)
/* 8036F5E4 0036C544 28 00 00 00 */ cmplwi r0, 0
/* 8036F5E8 0036C548 40 82 00 08 */ bne lbl_8036F5F0
/* 8036F5EC 0036C54C 4B FF FE 45 */ bl __ARQServiceQueueLo
lbl_8036F5F0:
/* 8036F5F0 0036C550 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8036F5F4 0036C554 38 21 00 08 */ addi r1, r1, 8
/* 8036F5F8 0036C558 7C 08 03 A6 */ mtlr r0
/* 8036F5FC 0036C55C 4E 80 00 20 */ blr
.global ARQInit
ARQInit:
/* 8036F600 0036C560 7C 08 02 A6 */ mflr r0
/* 8036F604 0036C564 90 01 00 04 */ stw r0, 4(r1)
/* 8036F608 0036C568 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8036F60C 0036C56C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8036F610 0036C570 80 0D AB 7C */ lwz r0, lbl_805A973C@sda21(r13)
/* 8036F614 0036C574 2C 00 00 01 */ cmpwi r0, 1
/* 8036F618 0036C578 41 82 00 44 */ beq lbl_8036F65C
/* 8036F61C 0036C57C 80 6D 9E B8 */ lwz r3, lbl_805A8A78@sda21(r13)
/* 8036F620 0036C580 48 00 EA 19 */ bl OSRegisterVersion
/* 8036F624 0036C584 3B E0 00 00 */ li r31, 0
/* 8036F628 0036C588 38 00 10 00 */ li r0, 0x1000
/* 8036F62C 0036C58C 93 ED AB 60 */ stw r31, lbl_805A9720@sda21(r13)
/* 8036F630 0036C590 3C 60 80 37 */ lis r3, __ARQInterruptServiceRoutine@ha
/* 8036F634 0036C594 93 ED AB 58 */ stw r31, lbl_805A9718@sda21(r13)
/* 8036F638 0036C598 38 63 F5 34 */ addi r3, r3, __ARQInterruptServiceRoutine@l
/* 8036F63C 0036C59C 90 0D AB 78 */ stw r0, lbl_805A9738@sda21(r13)
/* 8036F640 0036C5A0 4B FF E2 65 */ bl ARRegisterDMACallback
/* 8036F644 0036C5A4 38 00 00 01 */ li r0, 1
/* 8036F648 0036C5A8 93 ED AB 68 */ stw r31, lbl_805A9728@sda21(r13)
/* 8036F64C 0036C5AC 93 ED AB 6C */ stw r31, lbl_805A972C@sda21(r13)
/* 8036F650 0036C5B0 93 ED AB 70 */ stw r31, lbl_805A9730@sda21(r13)
/* 8036F654 0036C5B4 93 ED AB 74 */ stw r31, lbl_805A9734@sda21(r13)
/* 8036F658 0036C5B8 90 0D AB 7C */ stw r0, lbl_805A973C@sda21(r13)
lbl_8036F65C:
/* 8036F65C 0036C5BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8036F660 0036C5C0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8036F664 0036C5C4 38 21 00 10 */ addi r1, r1, 0x10
/* 8036F668 0036C5C8 7C 08 03 A6 */ mtlr r0
/* 8036F66C 0036C5CC 4E 80 00 20 */ blr
.global ARQPostRequest
ARQPostRequest:
/* 8036F670 0036C5D0 7C 08 02 A6 */ mflr r0
/* 8036F674 0036C5D4 28 0A 00 00 */ cmplwi r10, 0
/* 8036F678 0036C5D8 90 01 00 04 */ stw r0, 4(r1)
/* 8036F67C 0036C5DC 38 00 00 00 */ li r0, 0
/* 8036F680 0036C5E0 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 8036F684 0036C5E4 93 E1 00 34 */ stw r31, 0x34(r1)
/* 8036F688 0036C5E8 93 C1 00 30 */ stw r30, 0x30(r1)
/* 8036F68C 0036C5EC 3B C6 00 00 */ addi r30, r6, 0
/* 8036F690 0036C5F0 93 A1 00 2C */ stw r29, 0x2c(r1)
/* 8036F694 0036C5F4 3B A3 00 00 */ addi r29, r3, 0
/* 8036F698 0036C5F8 90 03 00 00 */ stw r0, 0(r3)
/* 8036F69C 0036C5FC 90 83 00 04 */ stw r4, 4(r3)
/* 8036F6A0 0036C600 90 A3 00 08 */ stw r5, 8(r3)
/* 8036F6A4 0036C604 90 E3 00 10 */ stw r7, 0x10(r3)
/* 8036F6A8 0036C608 91 03 00 14 */ stw r8, 0x14(r3)
/* 8036F6AC 0036C60C 91 23 00 18 */ stw r9, 0x18(r3)
/* 8036F6B0 0036C610 41 82 00 0C */ beq lbl_8036F6BC
/* 8036F6B4 0036C614 91 5D 00 1C */ stw r10, 0x1c(r29)
/* 8036F6B8 0036C618 48 00 00 10 */ b lbl_8036F6C8
lbl_8036F6BC:
/* 8036F6BC 0036C61C 3C 60 80 37 */ lis r3, __ARQCallbackHack@ha
/* 8036F6C0 0036C620 38 03 F5 30 */ addi r0, r3, __ARQCallbackHack@l
/* 8036F6C4 0036C624 90 1D 00 1C */ stw r0, 0x1c(r29)
lbl_8036F6C8:
/* 8036F6C8 0036C628 48 01 1F 99 */ bl OSDisableInterrupts
/* 8036F6CC 0036C62C 2C 1E 00 01 */ cmpwi r30, 1
/* 8036F6D0 0036C630 3B E3 00 00 */ addi r31, r3, 0
/* 8036F6D4 0036C634 41 82 00 38 */ beq lbl_8036F70C
/* 8036F6D8 0036C638 40 80 00 54 */ bge lbl_8036F72C
/* 8036F6DC 0036C63C 2C 1E 00 00 */ cmpwi r30, 0
/* 8036F6E0 0036C640 40 80 00 08 */ bge lbl_8036F6E8
/* 8036F6E4 0036C644 48 00 00 48 */ b lbl_8036F72C
lbl_8036F6E8:
/* 8036F6E8 0036C648 80 0D AB 60 */ lwz r0, lbl_805A9720@sda21(r13)
/* 8036F6EC 0036C64C 28 00 00 00 */ cmplwi r0, 0
/* 8036F6F0 0036C650 41 82 00 10 */ beq lbl_8036F700
/* 8036F6F4 0036C654 80 6D AB 64 */ lwz r3, lbl_805A9724@sda21(r13)
/* 8036F6F8 0036C658 93 A3 00 00 */ stw r29, 0(r3)
/* 8036F6FC 0036C65C 48 00 00 08 */ b lbl_8036F704
lbl_8036F700:
/* 8036F700 0036C660 93 AD AB 60 */ stw r29, lbl_805A9720@sda21(r13)
lbl_8036F704:
/* 8036F704 0036C664 93 AD AB 64 */ stw r29, lbl_805A9724@sda21(r13)
/* 8036F708 0036C668 48 00 00 24 */ b lbl_8036F72C
lbl_8036F70C:
/* 8036F70C 0036C66C 80 0D AB 58 */ lwz r0, lbl_805A9718@sda21(r13)
/* 8036F710 0036C670 28 00 00 00 */ cmplwi r0, 0
/* 8036F714 0036C674 41 82 00 10 */ beq lbl_8036F724
/* 8036F718 0036C678 80 6D AB 5C */ lwz r3, lbl_805A971C@sda21(r13)
/* 8036F71C 0036C67C 93 A3 00 00 */ stw r29, 0(r3)
/* 8036F720 0036C680 48 00 00 08 */ b lbl_8036F728
lbl_8036F724:
/* 8036F724 0036C684 93 AD AB 58 */ stw r29, lbl_805A9718@sda21(r13)
lbl_8036F728:
/* 8036F728 0036C688 93 AD AB 5C */ stw r29, lbl_805A971C@sda21(r13)
lbl_8036F72C:
/* 8036F72C 0036C68C 80 0D AB 68 */ lwz r0, lbl_805A9728@sda21(r13)
/* 8036F730 0036C690 28 00 00 00 */ cmplwi r0, 0
/* 8036F734 0036C694 40 82 00 74 */ bne lbl_8036F7A8
/* 8036F738 0036C698 80 0D AB 6C */ lwz r0, lbl_805A972C@sda21(r13)
/* 8036F73C 0036C69C 28 00 00 00 */ cmplwi r0, 0
/* 8036F740 0036C6A0 40 82 00 68 */ bne lbl_8036F7A8
/* 8036F744 0036C6A4 80 CD AB 58 */ lwz r6, lbl_805A9718@sda21(r13)
/* 8036F748 0036C6A8 28 06 00 00 */ cmplwi r6, 0
/* 8036F74C 0036C6AC 41 82 00 4C */ beq lbl_8036F798
/* 8036F750 0036C6B0 80 66 00 08 */ lwz r3, 8(r6)
/* 8036F754 0036C6B4 28 03 00 00 */ cmplwi r3, 0
/* 8036F758 0036C6B8 40 82 00 18 */ bne lbl_8036F770
/* 8036F75C 0036C6BC 80 86 00 10 */ lwz r4, 0x10(r6)
/* 8036F760 0036C6C0 80 A6 00 14 */ lwz r5, 0x14(r6)
/* 8036F764 0036C6C4 80 C6 00 18 */ lwz r6, 0x18(r6)
/* 8036F768 0036C6C8 4B FF E1 BD */ bl ARStartDMA
/* 8036F76C 0036C6CC 48 00 00 14 */ b lbl_8036F780
lbl_8036F770:
/* 8036F770 0036C6D0 80 86 00 14 */ lwz r4, 0x14(r6)
/* 8036F774 0036C6D4 80 A6 00 10 */ lwz r5, 0x10(r6)
/* 8036F778 0036C6D8 80 C6 00 18 */ lwz r6, 0x18(r6)
/* 8036F77C 0036C6DC 4B FF E1 A9 */ bl ARStartDMA
lbl_8036F780:
/* 8036F780 0036C6E0 80 6D AB 58 */ lwz r3, lbl_805A9718@sda21(r13)
/* 8036F784 0036C6E4 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8036F788 0036C6E8 90 0D AB 70 */ stw r0, lbl_805A9730@sda21(r13)
/* 8036F78C 0036C6EC 90 6D AB 68 */ stw r3, lbl_805A9728@sda21(r13)
/* 8036F790 0036C6F0 80 03 00 00 */ lwz r0, 0(r3)
/* 8036F794 0036C6F4 90 0D AB 58 */ stw r0, lbl_805A9718@sda21(r13)
lbl_8036F798:
/* 8036F798 0036C6F8 80 0D AB 68 */ lwz r0, lbl_805A9728@sda21(r13)
/* 8036F79C 0036C6FC 28 00 00 00 */ cmplwi r0, 0
/* 8036F7A0 0036C700 40 82 00 08 */ bne lbl_8036F7A8
/* 8036F7A4 0036C704 4B FF FC 8D */ bl __ARQServiceQueueLo
lbl_8036F7A8:
/* 8036F7A8 0036C708 7F E3 FB 78 */ mr r3, r31
/* 8036F7AC 0036C70C 48 01 1E DD */ bl OSRestoreInterrupts
/* 8036F7B0 0036C710 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 8036F7B4 0036C714 83 E1 00 34 */ lwz r31, 0x34(r1)
/* 8036F7B8 0036C718 83 C1 00 30 */ lwz r30, 0x30(r1)
/* 8036F7BC 0036C71C 83 A1 00 2C */ lwz r29, 0x2c(r1)
/* 8036F7C0 0036C720 38 21 00 38 */ addi r1, r1, 0x38
/* 8036F7C4 0036C724 7C 08 03 A6 */ mtlr r0
/* 8036F7C8 0036C728 4E 80 00 20 */ blr
.global sub_8036f7cc
sub_8036f7cc:
/* 8036F7CC 0036C72C 80 6D AB 78 */ lwz r3, lbl_805A9738@sda21(r13)
/* 8036F7D0 0036C730 4E 80 00 20 */ blr

166
asm/Dolphin/DSP/dsp.s Normal file
View File

@ -0,0 +1,166 @@
.include "macros.inc"
.section .text, "ax"
.global DSPCheckMailToDSP
DSPCheckMailToDSP:
/* 8036F9B8 0036C918 3C 60 CC 00 */ lis r3, 0xCC005000@ha
/* 8036F9BC 0036C91C A0 03 50 00 */ lhz r0, 0xCC005000@l(r3)
/* 8036F9C0 0036C920 54 03 8F FE */ rlwinm r3, r0, 0x11, 0x1f, 0x1f
/* 8036F9C4 0036C924 4E 80 00 20 */ blr
.global DSPCheckMailFromDSP
DSPCheckMailFromDSP:
/* 8036F9C8 0036C928 3C 60 CC 00 */ lis r3, 0xCC005004@ha
/* 8036F9CC 0036C92C A0 03 50 04 */ lhz r0, 0xCC005004@l(r3)
/* 8036F9D0 0036C930 54 03 8F FE */ rlwinm r3, r0, 0x11, 0x1f, 0x1f
/* 8036F9D4 0036C934 4E 80 00 20 */ blr
.global DSPReadMailFromDSP
DSPReadMailFromDSP:
/* 8036F9D8 0036C938 3C 60 CC 00 */ lis r3, 0xCC005000@ha
/* 8036F9DC 0036C93C 38 63 50 00 */ addi r3, r3, 0xCC005000@l
/* 8036F9E0 0036C940 A0 03 00 04 */ lhz r0, 4(r3)
/* 8036F9E4 0036C944 A0 63 00 06 */ lhz r3, 6(r3)
/* 8036F9E8 0036C948 50 03 80 1E */ rlwimi r3, r0, 0x10, 0, 0xf
/* 8036F9EC 0036C94C 4E 80 00 20 */ blr
.global DSPSendMailToDSP
DSPSendMailToDSP:
/* 8036F9F0 0036C950 3C 80 CC 00 */ lis r4, 0xCC005000@ha
/* 8036F9F4 0036C954 54 60 84 3E */ srwi r0, r3, 0x10
/* 8036F9F8 0036C958 B0 04 50 00 */ sth r0, 0xCC005000@l(r4)
/* 8036F9FC 0036C95C B0 64 50 02 */ sth r3, 0x5002(r4)
/* 8036FA00 0036C960 4E 80 00 20 */ blr
.global DSPInit
DSPInit:
/* 8036FA04 0036C964 7C 08 02 A6 */ mflr r0
/* 8036FA08 0036C968 3C 60 80 3F */ lis r3, lbl_803EF9D0@ha
/* 8036FA0C 0036C96C 90 01 00 04 */ stw r0, 4(r1)
/* 8036FA10 0036C970 38 A3 F9 D0 */ addi r5, r3, lbl_803EF9D0@l
/* 8036FA14 0036C974 4C C6 31 82 */ crclr 6
/* 8036FA18 0036C978 38 65 00 48 */ addi r3, r5, 0x48
/* 8036FA1C 0036C97C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8036FA20 0036C980 38 85 00 68 */ addi r4, r5, 0x68
/* 8036FA24 0036C984 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8036FA28 0036C988 38 A5 00 74 */ addi r5, r5, 0x74
/* 8036FA2C 0036C98C 48 00 01 A5 */ bl __DSP_debug_printf
/* 8036FA30 0036C990 80 0D AB 88 */ lwz r0, lbl_805A9748@sda21(r13)
/* 8036FA34 0036C994 2C 00 00 01 */ cmpwi r0, 1
/* 8036FA38 0036C998 41 82 00 7C */ beq lbl_8036FAB4
/* 8036FA3C 0036C99C 80 6D 9E C0 */ lwz r3, lbl_805A8A80@sda21(r13)
/* 8036FA40 0036C9A0 48 00 E5 F9 */ bl OSRegisterVersion
/* 8036FA44 0036C9A4 48 01 1C 1D */ bl OSDisableInterrupts
/* 8036FA48 0036C9A8 3C 80 80 37 */ lis r4, __DSPHandler@ha
/* 8036FA4C 0036C9AC 3B E3 00 00 */ addi r31, r3, 0
/* 8036FA50 0036C9B0 38 84 FC 20 */ addi r4, r4, __DSPHandler@l
/* 8036FA54 0036C9B4 38 60 00 07 */ li r3, 7
/* 8036FA58 0036C9B8 48 01 1C 55 */ bl __OSSetInterruptHandler
/* 8036FA5C 0036C9BC 3C 60 01 00 */ lis r3, 0x100
/* 8036FA60 0036C9C0 48 01 20 51 */ bl __OSUnmaskInterrupts
/* 8036FA64 0036C9C4 3C 60 CC 00 */ lis r3, 0xCC005000@ha
/* 8036FA68 0036C9C8 38 C3 50 00 */ addi r6, r3, 0xCC005000@l
/* 8036FA6C 0036C9CC A0 63 50 0A */ lhz r3, 0x500a(r3)
/* 8036FA70 0036C9D0 38 00 FF 57 */ li r0, -169
/* 8036FA74 0036C9D4 7C 60 00 38 */ and r0, r3, r0
/* 8036FA78 0036C9D8 60 00 08 00 */ ori r0, r0, 0x800
/* 8036FA7C 0036C9DC B0 06 00 0A */ sth r0, 0xa(r6)
/* 8036FA80 0036C9E0 38 A0 FF 53 */ li r5, -173
/* 8036FA84 0036C9E4 38 80 00 00 */ li r4, 0
/* 8036FA88 0036C9E8 A0 E6 00 0A */ lhz r7, 0xa(r6)
/* 8036FA8C 0036C9EC 38 00 00 01 */ li r0, 1
/* 8036FA90 0036C9F0 38 7F 00 00 */ addi r3, r31, 0
/* 8036FA94 0036C9F4 7C E5 28 38 */ and r5, r7, r5
/* 8036FA98 0036C9F8 B0 A6 00 0A */ sth r5, 0xa(r6)
/* 8036FA9C 0036C9FC 90 8D AB 98 */ stw r4, lbl_805A9758@sda21(r13)
/* 8036FAA0 0036CA00 90 8D AB A4 */ stw r4, lbl_805A9764@sda21(r13)
/* 8036FAA4 0036CA04 90 8D AB 9C */ stw r4, lbl_805A975C@sda21(r13)
/* 8036FAA8 0036CA08 90 8D AB A0 */ stw r4, lbl_805A9760@sda21(r13)
/* 8036FAAC 0036CA0C 90 0D AB 88 */ stw r0, lbl_805A9748@sda21(r13)
/* 8036FAB0 0036CA10 48 01 1B D9 */ bl OSRestoreInterrupts
lbl_8036FAB4:
/* 8036FAB4 0036CA14 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8036FAB8 0036CA18 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8036FABC 0036CA1C 38 21 00 10 */ addi r1, r1, 0x10
/* 8036FAC0 0036CA20 7C 08 03 A6 */ mtlr r0
/* 8036FAC4 0036CA24 4E 80 00 20 */ blr
.global DSPReset
DSPReset:
/* 8036FAC8 0036CA28 7C 08 02 A6 */ mflr r0
/* 8036FACC 0036CA2C 90 01 00 04 */ stw r0, 4(r1)
/* 8036FAD0 0036CA30 94 21 FF F8 */ stwu r1, -8(r1)
/* 8036FAD4 0036CA34 48 01 1B 8D */ bl OSDisableInterrupts
/* 8036FAD8 0036CA38 3C 80 CC 00 */ lis r4, 0xCC005000@ha
/* 8036FADC 0036CA3C 38 84 50 00 */ addi r4, r4, 0xCC005000@l
/* 8036FAE0 0036CA40 A0 A4 00 0A */ lhz r5, 0xa(r4)
/* 8036FAE4 0036CA44 38 00 FF 57 */ li r0, -169
/* 8036FAE8 0036CA48 7C A0 00 38 */ and r0, r5, r0
/* 8036FAEC 0036CA4C 60 00 08 01 */ ori r0, r0, 0x801
/* 8036FAF0 0036CA50 B0 04 00 0A */ sth r0, 0xa(r4)
/* 8036FAF4 0036CA54 38 00 00 00 */ li r0, 0
/* 8036FAF8 0036CA58 90 0D AB 88 */ stw r0, lbl_805A9748@sda21(r13)
/* 8036FAFC 0036CA5C 48 01 1B 8D */ bl OSRestoreInterrupts
/* 8036FB00 0036CA60 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8036FB04 0036CA64 38 21 00 08 */ addi r1, r1, 8
/* 8036FB08 0036CA68 7C 08 03 A6 */ mtlr r0
/* 8036FB0C 0036CA6C 4E 80 00 20 */ blr
.global DSPHalt
DSPHalt:
/* 8036FB10 0036CA70 7C 08 02 A6 */ mflr r0
/* 8036FB14 0036CA74 90 01 00 04 */ stw r0, 4(r1)
/* 8036FB18 0036CA78 94 21 FF F8 */ stwu r1, -8(r1)
/* 8036FB1C 0036CA7C 48 01 1B 45 */ bl OSDisableInterrupts
/* 8036FB20 0036CA80 3C 80 CC 00 */ lis r4, 0xCC005000@ha
/* 8036FB24 0036CA84 38 84 50 00 */ addi r4, r4, 0xCC005000@l
/* 8036FB28 0036CA88 A0 A4 00 0A */ lhz r5, 0xa(r4)
/* 8036FB2C 0036CA8C 38 00 FF 57 */ li r0, -169
/* 8036FB30 0036CA90 7C A0 00 38 */ and r0, r5, r0
/* 8036FB34 0036CA94 60 00 00 04 */ ori r0, r0, 4
/* 8036FB38 0036CA98 B0 04 00 0A */ sth r0, 0xa(r4)
/* 8036FB3C 0036CA9C 48 01 1B 4D */ bl OSRestoreInterrupts
/* 8036FB40 0036CAA0 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8036FB44 0036CAA4 38 21 00 08 */ addi r1, r1, 8
/* 8036FB48 0036CAA8 7C 08 03 A6 */ mtlr r0
/* 8036FB4C 0036CAAC 4E 80 00 20 */ blr
.global DSPGetDMAStatus
DSPGetDMAStatus:
/* 8036FB50 0036CAB0 3C 60 CC 00 */ lis r3, 0xCC00500A@ha
/* 8036FB54 0036CAB4 A0 03 50 0A */ lhz r0, 0xCC00500A@l(r3)
/* 8036FB58 0036CAB8 54 03 05 AC */ rlwinm r3, r0, 0, 0x16, 0x16
/* 8036FB5C 0036CABC 4E 80 00 20 */ blr
.global DSPAddTask
DSPAddTask:
/* 8036FB60 0036CAC0 7C 08 02 A6 */ mflr r0
/* 8036FB64 0036CAC4 90 01 00 04 */ stw r0, 4(r1)
/* 8036FB68 0036CAC8 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8036FB6C 0036CACC 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8036FB70 0036CAD0 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8036FB74 0036CAD4 7C 7E 1B 78 */ mr r30, r3
/* 8036FB78 0036CAD8 48 01 1A E9 */ bl OSDisableInterrupts
/* 8036FB7C 0036CADC 3B E3 00 00 */ addi r31, r3, 0
/* 8036FB80 0036CAE0 38 7E 00 00 */ addi r3, r30, 0
/* 8036FB84 0036CAE4 48 00 07 ED */ bl __DSP_insert_task
/* 8036FB88 0036CAE8 38 00 00 00 */ li r0, 0
/* 8036FB8C 0036CAEC 90 1E 00 00 */ stw r0, 0(r30)
/* 8036FB90 0036CAF0 38 00 00 01 */ li r0, 1
/* 8036FB94 0036CAF4 38 7F 00 00 */ addi r3, r31, 0
/* 8036FB98 0036CAF8 90 1E 00 08 */ stw r0, 8(r30)
/* 8036FB9C 0036CAFC 48 01 1A ED */ bl OSRestoreInterrupts
/* 8036FBA0 0036CB00 80 0D AB A0 */ lwz r0, lbl_805A9760@sda21(r13)
/* 8036FBA4 0036CB04 7C 1E 00 40 */ cmplw r30, r0
/* 8036FBA8 0036CB08 40 82 00 0C */ bne lbl_8036FBB4
/* 8036FBAC 0036CB0C 7F C3 F3 78 */ mr r3, r30
/* 8036FBB0 0036CB10 48 00 06 35 */ bl __DSP_boot_task
lbl_8036FBB4:
/* 8036FBB4 0036CB14 7F C3 F3 78 */ mr r3, r30
/* 8036FBB8 0036CB18 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8036FBBC 0036CB1C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8036FBC0 0036CB20 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8036FBC4 0036CB24 38 21 00 18 */ addi r1, r1, 0x18
/* 8036FBC8 0036CB28 7C 08 03 A6 */ mtlr r0
/* 8036FBCC 0036CB2C 4E 80 00 20 */ blr

View File

@ -0,0 +1,27 @@
.include "macros.inc"
.section .text, "ax"
.global __DSP_debug_printf
__DSP_debug_printf:
/* 8036FBD0 0036CB30 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8036FBD4 0036CB34 40 86 00 24 */ bne cr1, lbl_8036FBF8
/* 8036FBD8 0036CB38 D8 21 00 28 */ stfd f1, 0x28(r1)
/* 8036FBDC 0036CB3C D8 41 00 30 */ stfd f2, 0x30(r1)
/* 8036FBE0 0036CB40 D8 61 00 38 */ stfd f3, 0x38(r1)
/* 8036FBE4 0036CB44 D8 81 00 40 */ stfd f4, 0x40(r1)
/* 8036FBE8 0036CB48 D8 A1 00 48 */ stfd f5, 0x48(r1)
/* 8036FBEC 0036CB4C D8 C1 00 50 */ stfd f6, 0x50(r1)
/* 8036FBF0 0036CB50 D8 E1 00 58 */ stfd f7, 0x58(r1)
/* 8036FBF4 0036CB54 D9 01 00 60 */ stfd f8, 0x60(r1)
lbl_8036FBF8:
/* 8036FBF8 0036CB58 90 61 00 08 */ stw r3, 8(r1)
/* 8036FBFC 0036CB5C 90 81 00 0C */ stw r4, 0xc(r1)
/* 8036FC00 0036CB60 90 A1 00 10 */ stw r5, 0x10(r1)
/* 8036FC04 0036CB64 90 C1 00 14 */ stw r6, 0x14(r1)
/* 8036FC08 0036CB68 90 E1 00 18 */ stw r7, 0x18(r1)
/* 8036FC0C 0036CB6C 91 01 00 1C */ stw r8, 0x1c(r1)
/* 8036FC10 0036CB70 91 21 00 20 */ stw r9, 0x20(r1)
/* 8036FC14 0036CB74 91 41 00 24 */ stw r10, 0x24(r1)
/* 8036FC18 0036CB78 38 21 00 70 */ addi r1, r1, 0x70
/* 8036FC1C 0036CB7C 4E 80 00 20 */ blr

634
asm/Dolphin/DSP/dsp_task.s Normal file
View File

@ -0,0 +1,634 @@
.include "macros.inc"
.section .text, "ax"
.global __DSPHandler
__DSPHandler:
/* 8036FC20 0036CB80 7C 08 02 A6 */ mflr r0
/* 8036FC24 0036CB84 3C 60 CC 00 */ lis r3, 0xCC005000@ha
/* 8036FC28 0036CB88 90 01 00 04 */ stw r0, 4(r1)
/* 8036FC2C 0036CB8C 38 63 50 00 */ addi r3, r3, 0xCC005000@l
/* 8036FC30 0036CB90 38 00 FF D7 */ li r0, -41
/* 8036FC34 0036CB94 94 21 FD 18 */ stwu r1, -0x2e8(r1)
/* 8036FC38 0036CB98 93 E1 02 E4 */ stw r31, 0x2e4(r1)
/* 8036FC3C 0036CB9C 3B E4 00 00 */ addi r31, r4, 0
/* 8036FC40 0036CBA0 A0 A3 00 0A */ lhz r5, 0xa(r3)
/* 8036FC44 0036CBA4 7C A0 00 38 */ and r0, r5, r0
/* 8036FC48 0036CBA8 60 00 00 80 */ ori r0, r0, 0x80
/* 8036FC4C 0036CBAC B0 03 00 0A */ sth r0, 0xa(r3)
/* 8036FC50 0036CBB0 38 61 00 10 */ addi r3, r1, 0x10
/* 8036FC54 0036CBB4 48 00 F9 C1 */ bl OSClearContext
/* 8036FC58 0036CBB8 38 61 00 10 */ addi r3, r1, 0x10
/* 8036FC5C 0036CBBC 48 00 F7 C1 */ bl OSSetCurrentContext
lbl_8036FC60:
/* 8036FC60 0036CBC0 4B FF FD 69 */ bl DSPCheckMailFromDSP
/* 8036FC64 0036CBC4 28 03 00 00 */ cmplwi r3, 0
/* 8036FC68 0036CBC8 41 82 FF F8 */ beq lbl_8036FC60
/* 8036FC6C 0036CBCC 4B FF FD 6D */ bl DSPReadMailFromDSP
/* 8036FC70 0036CBD0 80 AD AB A4 */ lwz r5, lbl_805A9764@sda21(r13)
/* 8036FC74 0036CBD4 80 05 00 08 */ lwz r0, 8(r5)
/* 8036FC78 0036CBD8 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 8036FC7C 0036CBDC 41 82 00 18 */ beq lbl_8036FC94
/* 8036FC80 0036CBE0 3C 03 23 2F */ addis r0, r3, 0x232f
/* 8036FC84 0036CBE4 28 00 00 02 */ cmplwi r0, 2
/* 8036FC88 0036CBE8 40 82 00 0C */ bne lbl_8036FC94
/* 8036FC8C 0036CBEC 3C 60 DC D1 */ lis r3, 0xDCD10003@ha
/* 8036FC90 0036CBF0 38 63 00 03 */ addi r3, r3, 0xDCD10003@l
lbl_8036FC94:
/* 8036FC94 0036CBF4 3C 80 DC D1 */ lis r4, 0xDCD10002@ha
/* 8036FC98 0036CBF8 38 04 00 02 */ addi r0, r4, 0xDCD10002@l
/* 8036FC9C 0036CBFC 7C 03 00 00 */ cmpw r3, r0
/* 8036FCA0 0036CC00 41 82 00 74 */ beq lbl_8036FD14
/* 8036FCA4 0036CC04 40 80 00 14 */ bge lbl_8036FCB8
/* 8036FCA8 0036CC08 7C 03 20 00 */ cmpw r3, r4
/* 8036FCAC 0036CC0C 41 82 00 20 */ beq lbl_8036FCCC
/* 8036FCB0 0036CC10 40 80 00 40 */ bge lbl_8036FCF0
/* 8036FCB4 0036CC14 48 00 03 6C */ b lbl_80370020
lbl_8036FCB8:
/* 8036FCB8 0036CC18 38 04 00 04 */ addi r0, r4, 4
/* 8036FCBC 0036CC1C 7C 03 00 00 */ cmpw r3, r0
/* 8036FCC0 0036CC20 41 82 03 48 */ beq lbl_80370008
/* 8036FCC4 0036CC24 40 80 03 5C */ bge lbl_80370020
/* 8036FCC8 0036CC28 48 00 01 B4 */ b lbl_8036FE7C
lbl_8036FCCC:
/* 8036FCCC 0036CC2C 38 00 00 01 */ li r0, 1
/* 8036FCD0 0036CC30 90 05 00 00 */ stw r0, 0(r5)
/* 8036FCD4 0036CC34 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FCD8 0036CC38 81 83 00 28 */ lwz r12, 0x28(r3)
/* 8036FCDC 0036CC3C 28 0C 00 00 */ cmplwi r12, 0
/* 8036FCE0 0036CC40 41 82 03 40 */ beq lbl_80370020
/* 8036FCE4 0036CC44 7D 88 03 A6 */ mtlr r12
/* 8036FCE8 0036CC48 4E 80 00 21 */ blrl
/* 8036FCEC 0036CC4C 48 00 03 34 */ b lbl_80370020
lbl_8036FCF0:
/* 8036FCF0 0036CC50 38 00 00 01 */ li r0, 1
/* 8036FCF4 0036CC54 90 05 00 00 */ stw r0, 0(r5)
/* 8036FCF8 0036CC58 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FCFC 0036CC5C 81 83 00 2C */ lwz r12, 0x2c(r3)
/* 8036FD00 0036CC60 28 0C 00 00 */ cmplwi r12, 0
/* 8036FD04 0036CC64 41 82 03 1C */ beq lbl_80370020
/* 8036FD08 0036CC68 7D 88 03 A6 */ mtlr r12
/* 8036FD0C 0036CC6C 4E 80 00 21 */ blrl
/* 8036FD10 0036CC70 48 00 03 10 */ b lbl_80370020
lbl_8036FD14:
/* 8036FD14 0036CC74 80 0D AB 90 */ lwz r0, lbl_805A9750@sda21(r13)
/* 8036FD18 0036CC78 2C 00 00 00 */ cmpwi r0, 0
/* 8036FD1C 0036CC7C 41 82 00 98 */ beq lbl_8036FDB4
/* 8036FD20 0036CC80 80 0D AB 94 */ lwz r0, lbl_805A9754@sda21(r13)
/* 8036FD24 0036CC84 7C 05 00 40 */ cmplw r5, r0
/* 8036FD28 0036CC88 40 82 00 44 */ bne lbl_8036FD6C
/* 8036FD2C 0036CC8C 3C 60 CD D1 */ lis r3, 0xCDD10003@ha
/* 8036FD30 0036CC90 38 63 00 03 */ addi r3, r3, 0xCDD10003@l
/* 8036FD34 0036CC94 4B FF FC BD */ bl DSPSendMailToDSP
lbl_8036FD38:
/* 8036FD38 0036CC98 4B FF FC 81 */ bl DSPCheckMailToDSP
/* 8036FD3C 0036CC9C 28 03 00 00 */ cmplwi r3, 0
/* 8036FD40 0036CCA0 40 82 FF F8 */ bne lbl_8036FD38
/* 8036FD44 0036CCA4 38 00 00 00 */ li r0, 0
/* 8036FD48 0036CCA8 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FD4C 0036CCAC 90 0D AB 94 */ stw r0, lbl_805A9754@sda21(r13)
/* 8036FD50 0036CCB0 90 0D AB 90 */ stw r0, lbl_805A9750@sda21(r13)
/* 8036FD54 0036CCB4 81 83 00 2C */ lwz r12, 0x2c(r3)
/* 8036FD58 0036CCB8 28 0C 00 00 */ cmplwi r12, 0
/* 8036FD5C 0036CCBC 41 82 02 C4 */ beq lbl_80370020
/* 8036FD60 0036CCC0 7D 88 03 A6 */ mtlr r12
/* 8036FD64 0036CCC4 4E 80 00 21 */ blrl
/* 8036FD68 0036CCC8 48 00 02 B8 */ b lbl_80370020
lbl_8036FD6C:
/* 8036FD6C 0036CCCC 3C 60 CD D1 */ lis r3, 0xCDD10001@ha
/* 8036FD70 0036CCD0 38 63 00 01 */ addi r3, r3, 0xCDD10001@l
/* 8036FD74 0036CCD4 4B FF FC 7D */ bl DSPSendMailToDSP
lbl_8036FD78:
/* 8036FD78 0036CCD8 4B FF FC 41 */ bl DSPCheckMailToDSP
/* 8036FD7C 0036CCDC 28 03 00 00 */ cmplwi r3, 0
/* 8036FD80 0036CCE0 40 82 FF F8 */ bne lbl_8036FD78
/* 8036FD84 0036CCE4 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FD88 0036CCE8 80 8D AB 94 */ lwz r4, lbl_805A9754@sda21(r13)
/* 8036FD8C 0036CCEC 48 00 02 B9 */ bl __DSP_exec_task
/* 8036FD90 0036CCF0 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FD94 0036CCF4 38 80 00 02 */ li r4, 2
/* 8036FD98 0036CCF8 38 00 00 00 */ li r0, 0
/* 8036FD9C 0036CCFC 90 83 00 00 */ stw r4, 0(r3)
/* 8036FDA0 0036CD00 80 6D AB 94 */ lwz r3, lbl_805A9754@sda21(r13)
/* 8036FDA4 0036CD04 90 0D AB 90 */ stw r0, lbl_805A9750@sda21(r13)
/* 8036FDA8 0036CD08 90 6D AB A4 */ stw r3, lbl_805A9764@sda21(r13)
/* 8036FDAC 0036CD0C 90 0D AB 94 */ stw r0, lbl_805A9754@sda21(r13)
/* 8036FDB0 0036CD10 48 00 02 70 */ b lbl_80370020
lbl_8036FDB4:
/* 8036FDB4 0036CD14 80 05 00 38 */ lwz r0, 0x38(r5)
/* 8036FDB8 0036CD18 28 00 00 00 */ cmplwi r0, 0
/* 8036FDBC 0036CD1C 40 82 00 80 */ bne lbl_8036FE3C
/* 8036FDC0 0036CD20 80 0D AB A0 */ lwz r0, lbl_805A9760@sda21(r13)
/* 8036FDC4 0036CD24 7C 05 00 40 */ cmplw r5, r0
/* 8036FDC8 0036CD28 40 82 00 38 */ bne lbl_8036FE00
/* 8036FDCC 0036CD2C 3C 60 CD D1 */ lis r3, 0xCDD10003@ha
/* 8036FDD0 0036CD30 38 63 00 03 */ addi r3, r3, 0xCDD10003@l
/* 8036FDD4 0036CD34 4B FF FC 1D */ bl DSPSendMailToDSP
lbl_8036FDD8:
/* 8036FDD8 0036CD38 4B FF FB E1 */ bl DSPCheckMailToDSP
/* 8036FDDC 0036CD3C 28 03 00 00 */ cmplwi r3, 0
/* 8036FDE0 0036CD40 40 82 FF F8 */ bne lbl_8036FDD8
/* 8036FDE4 0036CD44 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FDE8 0036CD48 81 83 00 2C */ lwz r12, 0x2c(r3)
/* 8036FDEC 0036CD4C 28 0C 00 00 */ cmplwi r12, 0
/* 8036FDF0 0036CD50 41 82 02 30 */ beq lbl_80370020
/* 8036FDF4 0036CD54 7D 88 03 A6 */ mtlr r12
/* 8036FDF8 0036CD58 4E 80 00 21 */ blrl
/* 8036FDFC 0036CD5C 48 00 02 24 */ b lbl_80370020
lbl_8036FE00:
/* 8036FE00 0036CD60 3C 60 CD D1 */ lis r3, 0xCDD10001@ha
/* 8036FE04 0036CD64 38 63 00 01 */ addi r3, r3, 0xCDD10001@l
/* 8036FE08 0036CD68 4B FF FB E9 */ bl DSPSendMailToDSP
lbl_8036FE0C:
/* 8036FE0C 0036CD6C 4B FF FB AD */ bl DSPCheckMailToDSP
/* 8036FE10 0036CD70 28 03 00 00 */ cmplwi r3, 0
/* 8036FE14 0036CD74 40 82 FF F8 */ bne lbl_8036FE0C
/* 8036FE18 0036CD78 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FE1C 0036CD7C 80 8D AB A0 */ lwz r4, lbl_805A9760@sda21(r13)
/* 8036FE20 0036CD80 48 00 02 25 */ bl __DSP_exec_task
/* 8036FE24 0036CD84 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FE28 0036CD88 38 00 00 02 */ li r0, 2
/* 8036FE2C 0036CD8C 90 03 00 00 */ stw r0, 0(r3)
/* 8036FE30 0036CD90 80 0D AB A0 */ lwz r0, lbl_805A9760@sda21(r13)
/* 8036FE34 0036CD94 90 0D AB A4 */ stw r0, lbl_805A9764@sda21(r13)
/* 8036FE38 0036CD98 48 00 01 E8 */ b lbl_80370020
lbl_8036FE3C:
/* 8036FE3C 0036CD9C 3C 60 CD D1 */ lis r3, 0xCDD10001@ha
/* 8036FE40 0036CDA0 38 63 00 01 */ addi r3, r3, 0xCDD10001@l
/* 8036FE44 0036CDA4 4B FF FB AD */ bl DSPSendMailToDSP
lbl_8036FE48:
/* 8036FE48 0036CDA8 4B FF FB 71 */ bl DSPCheckMailToDSP
/* 8036FE4C 0036CDAC 28 03 00 00 */ cmplwi r3, 0
/* 8036FE50 0036CDB0 40 82 FF F8 */ bne lbl_8036FE48
/* 8036FE54 0036CDB4 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FE58 0036CDB8 80 83 00 38 */ lwz r4, 0x38(r3)
/* 8036FE5C 0036CDBC 48 00 01 E9 */ bl __DSP_exec_task
/* 8036FE60 0036CDC0 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FE64 0036CDC4 38 00 00 02 */ li r0, 2
/* 8036FE68 0036CDC8 90 03 00 00 */ stw r0, 0(r3)
/* 8036FE6C 0036CDCC 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FE70 0036CDD0 80 03 00 38 */ lwz r0, 0x38(r3)
/* 8036FE74 0036CDD4 90 0D AB A4 */ stw r0, lbl_805A9764@sda21(r13)
/* 8036FE78 0036CDD8 48 00 01 A8 */ b lbl_80370020
lbl_8036FE7C:
/* 8036FE7C 0036CDDC 80 0D AB 90 */ lwz r0, lbl_805A9750@sda21(r13)
/* 8036FE80 0036CDE0 2C 00 00 00 */ cmpwi r0, 0
/* 8036FE84 0036CDE4 41 82 00 60 */ beq lbl_8036FEE4
/* 8036FE88 0036CDE8 81 85 00 30 */ lwz r12, 0x30(r5)
/* 8036FE8C 0036CDEC 28 0C 00 00 */ cmplwi r12, 0
/* 8036FE90 0036CDF0 41 82 00 10 */ beq lbl_8036FEA0
/* 8036FE94 0036CDF4 7D 88 03 A6 */ mtlr r12
/* 8036FE98 0036CDF8 38 65 00 00 */ addi r3, r5, 0
/* 8036FE9C 0036CDFC 4E 80 00 21 */ blrl
lbl_8036FEA0:
/* 8036FEA0 0036CE00 3C 60 CD D1 */ lis r3, 0xCDD10001@ha
/* 8036FEA4 0036CE04 38 63 00 01 */ addi r3, r3, 0xCDD10001@l
/* 8036FEA8 0036CE08 4B FF FB 49 */ bl DSPSendMailToDSP
lbl_8036FEAC:
/* 8036FEAC 0036CE0C 4B FF FB 0D */ bl DSPCheckMailToDSP
/* 8036FEB0 0036CE10 28 03 00 00 */ cmplwi r3, 0
/* 8036FEB4 0036CE14 40 82 FF F8 */ bne lbl_8036FEAC
/* 8036FEB8 0036CE18 38 60 00 00 */ li r3, 0
/* 8036FEBC 0036CE1C 80 8D AB 94 */ lwz r4, lbl_805A9754@sda21(r13)
/* 8036FEC0 0036CE20 48 00 01 85 */ bl __DSP_exec_task
/* 8036FEC4 0036CE24 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FEC8 0036CE28 48 00 05 49 */ bl __DSP_remove_task
/* 8036FECC 0036CE2C 80 6D AB 94 */ lwz r3, lbl_805A9754@sda21(r13)
/* 8036FED0 0036CE30 38 00 00 00 */ li r0, 0
/* 8036FED4 0036CE34 90 0D AB 90 */ stw r0, lbl_805A9750@sda21(r13)
/* 8036FED8 0036CE38 90 6D AB A4 */ stw r3, lbl_805A9764@sda21(r13)
/* 8036FEDC 0036CE3C 90 0D AB 94 */ stw r0, lbl_805A9754@sda21(r13)
/* 8036FEE0 0036CE40 48 00 01 40 */ b lbl_80370020
lbl_8036FEE4:
/* 8036FEE4 0036CE44 80 05 00 38 */ lwz r0, 0x38(r5)
/* 8036FEE8 0036CE48 28 00 00 00 */ cmplwi r0, 0
/* 8036FEEC 0036CE4C 40 82 00 B4 */ bne lbl_8036FFA0
/* 8036FEF0 0036CE50 80 0D AB A0 */ lwz r0, lbl_805A9760@sda21(r13)
/* 8036FEF4 0036CE54 7C 05 00 40 */ cmplw r5, r0
/* 8036FEF8 0036CE58 40 82 00 4C */ bne lbl_8036FF44
/* 8036FEFC 0036CE5C 81 85 00 30 */ lwz r12, 0x30(r5)
/* 8036FF00 0036CE60 28 0C 00 00 */ cmplwi r12, 0
/* 8036FF04 0036CE64 41 82 00 10 */ beq lbl_8036FF14
/* 8036FF08 0036CE68 7D 88 03 A6 */ mtlr r12
/* 8036FF0C 0036CE6C 38 65 00 00 */ addi r3, r5, 0
/* 8036FF10 0036CE70 4E 80 00 21 */ blrl
lbl_8036FF14:
/* 8036FF14 0036CE74 3C 60 CD D1 */ lis r3, 0xCDD10002@ha
/* 8036FF18 0036CE78 38 63 00 02 */ addi r3, r3, 0xCDD10002@l
/* 8036FF1C 0036CE7C 4B FF FA D5 */ bl DSPSendMailToDSP
lbl_8036FF20:
/* 8036FF20 0036CE80 4B FF FA 99 */ bl DSPCheckMailToDSP
/* 8036FF24 0036CE84 28 03 00 00 */ cmplwi r3, 0
/* 8036FF28 0036CE88 40 82 FF F8 */ bne lbl_8036FF20
/* 8036FF2C 0036CE8C 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FF30 0036CE90 38 00 00 03 */ li r0, 3
/* 8036FF34 0036CE94 90 03 00 00 */ stw r0, 0(r3)
/* 8036FF38 0036CE98 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FF3C 0036CE9C 48 00 04 D5 */ bl __DSP_remove_task
/* 8036FF40 0036CEA0 48 00 00 E0 */ b lbl_80370020
lbl_8036FF44:
/* 8036FF44 0036CEA4 81 85 00 30 */ lwz r12, 0x30(r5)
/* 8036FF48 0036CEA8 28 0C 00 00 */ cmplwi r12, 0
/* 8036FF4C 0036CEAC 41 82 00 10 */ beq lbl_8036FF5C
/* 8036FF50 0036CEB0 7D 88 03 A6 */ mtlr r12
/* 8036FF54 0036CEB4 38 65 00 00 */ addi r3, r5, 0
/* 8036FF58 0036CEB8 4E 80 00 21 */ blrl
lbl_8036FF5C:
/* 8036FF5C 0036CEBC 3C 60 CD D1 */ lis r3, 0xCDD10001@ha
/* 8036FF60 0036CEC0 38 63 00 01 */ addi r3, r3, 0xCDD10001@l
/* 8036FF64 0036CEC4 4B FF FA 8D */ bl DSPSendMailToDSP
lbl_8036FF68:
/* 8036FF68 0036CEC8 4B FF FA 51 */ bl DSPCheckMailToDSP
/* 8036FF6C 0036CECC 28 03 00 00 */ cmplwi r3, 0
/* 8036FF70 0036CED0 40 82 FF F8 */ bne lbl_8036FF68
/* 8036FF74 0036CED4 80 8D AB A4 */ lwz r4, lbl_805A9764@sda21(r13)
/* 8036FF78 0036CED8 38 00 00 03 */ li r0, 3
/* 8036FF7C 0036CEDC 38 60 00 00 */ li r3, 0
/* 8036FF80 0036CEE0 90 04 00 00 */ stw r0, 0(r4)
/* 8036FF84 0036CEE4 80 8D AB A0 */ lwz r4, lbl_805A9760@sda21(r13)
/* 8036FF88 0036CEE8 48 00 00 BD */ bl __DSP_exec_task
/* 8036FF8C 0036CEEC 80 0D AB A0 */ lwz r0, lbl_805A9760@sda21(r13)
/* 8036FF90 0036CEF0 80 6D AB 9C */ lwz r3, lbl_805A975C@sda21(r13)
/* 8036FF94 0036CEF4 90 0D AB A4 */ stw r0, lbl_805A9764@sda21(r13)
/* 8036FF98 0036CEF8 48 00 04 79 */ bl __DSP_remove_task
/* 8036FF9C 0036CEFC 48 00 00 84 */ b lbl_80370020
lbl_8036FFA0:
/* 8036FFA0 0036CF00 81 85 00 30 */ lwz r12, 0x30(r5)
/* 8036FFA4 0036CF04 28 0C 00 00 */ cmplwi r12, 0
/* 8036FFA8 0036CF08 41 82 00 10 */ beq lbl_8036FFB8
/* 8036FFAC 0036CF0C 7D 88 03 A6 */ mtlr r12
/* 8036FFB0 0036CF10 38 65 00 00 */ addi r3, r5, 0
/* 8036FFB4 0036CF14 4E 80 00 21 */ blrl
lbl_8036FFB8:
/* 8036FFB8 0036CF18 3C 60 CD D1 */ lis r3, 0xCDD10001@ha
/* 8036FFBC 0036CF1C 38 63 00 01 */ addi r3, r3, 0xCDD10001@l
/* 8036FFC0 0036CF20 4B FF FA 31 */ bl DSPSendMailToDSP
lbl_8036FFC4:
/* 8036FFC4 0036CF24 4B FF F9 F5 */ bl DSPCheckMailToDSP
/* 8036FFC8 0036CF28 28 03 00 00 */ cmplwi r3, 0
/* 8036FFCC 0036CF2C 40 82 FF F8 */ bne lbl_8036FFC4
/* 8036FFD0 0036CF30 80 8D AB A4 */ lwz r4, lbl_805A9764@sda21(r13)
/* 8036FFD4 0036CF34 38 00 00 03 */ li r0, 3
/* 8036FFD8 0036CF38 38 60 00 00 */ li r3, 0
/* 8036FFDC 0036CF3C 90 04 00 00 */ stw r0, 0(r4)
/* 8036FFE0 0036CF40 80 8D AB A4 */ lwz r4, lbl_805A9764@sda21(r13)
/* 8036FFE4 0036CF44 80 84 00 38 */ lwz r4, 0x38(r4)
/* 8036FFE8 0036CF48 48 00 00 5D */ bl __DSP_exec_task
/* 8036FFEC 0036CF4C 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FFF0 0036CF50 80 03 00 38 */ lwz r0, 0x38(r3)
/* 8036FFF4 0036CF54 90 0D AB A4 */ stw r0, lbl_805A9764@sda21(r13)
/* 8036FFF8 0036CF58 80 6D AB A4 */ lwz r3, lbl_805A9764@sda21(r13)
/* 8036FFFC 0036CF5C 80 63 00 3C */ lwz r3, 0x3c(r3)
/* 80370000 0036CF60 48 00 04 11 */ bl __DSP_remove_task
/* 80370004 0036CF64 48 00 00 1C */ b lbl_80370020
lbl_80370008:
/* 80370008 0036CF68 81 85 00 34 */ lwz r12, 0x34(r5)
/* 8037000C 0036CF6C 28 0C 00 00 */ cmplwi r12, 0
/* 80370010 0036CF70 41 82 00 10 */ beq lbl_80370020
/* 80370014 0036CF74 7D 88 03 A6 */ mtlr r12
/* 80370018 0036CF78 38 65 00 00 */ addi r3, r5, 0
/* 8037001C 0036CF7C 4E 80 00 21 */ blrl
lbl_80370020:
/* 80370020 0036CF80 38 61 00 10 */ addi r3, r1, 0x10
/* 80370024 0036CF84 48 00 F5 F1 */ bl OSClearContext
/* 80370028 0036CF88 7F E3 FB 78 */ mr r3, r31
/* 8037002C 0036CF8C 48 00 F3 F1 */ bl OSSetCurrentContext
/* 80370030 0036CF90 80 01 02 EC */ lwz r0, 0x2ec(r1)
/* 80370034 0036CF94 83 E1 02 E4 */ lwz r31, 0x2e4(r1)
/* 80370038 0036CF98 38 21 02 E8 */ addi r1, r1, 0x2e8
/* 8037003C 0036CF9C 7C 08 03 A6 */ mtlr r0
/* 80370040 0036CFA0 4E 80 00 20 */ blr
.global __DSP_exec_task
__DSP_exec_task:
/* 80370044 0036CFA4 7C 08 02 A6 */ mflr r0
/* 80370048 0036CFA8 90 01 00 04 */ stw r0, 4(r1)
/* 8037004C 0036CFAC 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80370050 0036CFB0 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80370054 0036CFB4 3B E4 00 00 */ addi r31, r4, 0
/* 80370058 0036CFB8 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8037005C 0036CFBC 7C 7E 1B 79 */ or. r30, r3, r3
/* 80370060 0036CFC0 41 82 00 44 */ beq lbl_803700A4
/* 80370064 0036CFC4 80 7E 00 18 */ lwz r3, 0x18(r30)
/* 80370068 0036CFC8 4B FF F9 89 */ bl DSPSendMailToDSP
lbl_8037006C:
/* 8037006C 0036CFCC 4B FF F9 4D */ bl DSPCheckMailToDSP
/* 80370070 0036CFD0 28 03 00 00 */ cmplwi r3, 0
/* 80370074 0036CFD4 40 82 FF F8 */ bne lbl_8037006C
/* 80370078 0036CFD8 80 7E 00 1C */ lwz r3, 0x1c(r30)
/* 8037007C 0036CFDC 4B FF F9 75 */ bl DSPSendMailToDSP
lbl_80370080:
/* 80370080 0036CFE0 4B FF F9 39 */ bl DSPCheckMailToDSP
/* 80370084 0036CFE4 28 03 00 00 */ cmplwi r3, 0
/* 80370088 0036CFE8 40 82 FF F8 */ bne lbl_80370080
/* 8037008C 0036CFEC 80 7E 00 20 */ lwz r3, 0x20(r30)
/* 80370090 0036CFF0 4B FF F9 61 */ bl DSPSendMailToDSP
lbl_80370094:
/* 80370094 0036CFF4 4B FF F9 25 */ bl DSPCheckMailToDSP
/* 80370098 0036CFF8 28 03 00 00 */ cmplwi r3, 0
/* 8037009C 0036CFFC 40 82 FF F8 */ bne lbl_80370094
/* 803700A0 0036D000 48 00 00 40 */ b lbl_803700E0
lbl_803700A4:
/* 803700A4 0036D004 38 60 00 00 */ li r3, 0
/* 803700A8 0036D008 4B FF F9 49 */ bl DSPSendMailToDSP
lbl_803700AC:
/* 803700AC 0036D00C 4B FF F9 0D */ bl DSPCheckMailToDSP
/* 803700B0 0036D010 28 03 00 00 */ cmplwi r3, 0
/* 803700B4 0036D014 40 82 FF F8 */ bne lbl_803700AC
/* 803700B8 0036D018 38 60 00 00 */ li r3, 0
/* 803700BC 0036D01C 4B FF F9 35 */ bl DSPSendMailToDSP
lbl_803700C0:
/* 803700C0 0036D020 4B FF F8 F9 */ bl DSPCheckMailToDSP
/* 803700C4 0036D024 28 03 00 00 */ cmplwi r3, 0
/* 803700C8 0036D028 40 82 FF F8 */ bne lbl_803700C0
/* 803700CC 0036D02C 38 60 00 00 */ li r3, 0
/* 803700D0 0036D030 4B FF F9 21 */ bl DSPSendMailToDSP
lbl_803700D4:
/* 803700D4 0036D034 4B FF F8 E5 */ bl DSPCheckMailToDSP
/* 803700D8 0036D038 28 03 00 00 */ cmplwi r3, 0
/* 803700DC 0036D03C 40 82 FF F8 */ bne lbl_803700D4
lbl_803700E0:
/* 803700E0 0036D040 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 803700E4 0036D044 4B FF F9 0D */ bl DSPSendMailToDSP
lbl_803700E8:
/* 803700E8 0036D048 4B FF F8 D1 */ bl DSPCheckMailToDSP
/* 803700EC 0036D04C 28 03 00 00 */ cmplwi r3, 0
/* 803700F0 0036D050 40 82 FF F8 */ bne lbl_803700E8
/* 803700F4 0036D054 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 803700F8 0036D058 4B FF F8 F9 */ bl DSPSendMailToDSP
lbl_803700FC:
/* 803700FC 0036D05C 4B FF F8 BD */ bl DSPCheckMailToDSP
/* 80370100 0036D060 28 03 00 00 */ cmplwi r3, 0
/* 80370104 0036D064 40 82 FF F8 */ bne lbl_803700FC
/* 80370108 0036D068 80 7F 00 14 */ lwz r3, 0x14(r31)
/* 8037010C 0036D06C 4B FF F8 E5 */ bl DSPSendMailToDSP
lbl_80370110:
/* 80370110 0036D070 4B FF F8 A9 */ bl DSPCheckMailToDSP
/* 80370114 0036D074 28 03 00 00 */ cmplwi r3, 0
/* 80370118 0036D078 40 82 FF F8 */ bne lbl_80370110
/* 8037011C 0036D07C 80 1F 00 00 */ lwz r0, 0(r31)
/* 80370120 0036D080 28 00 00 00 */ cmplwi r0, 0
/* 80370124 0036D084 40 82 00 58 */ bne lbl_8037017C
/* 80370128 0036D088 A0 7F 00 24 */ lhz r3, 0x24(r31)
/* 8037012C 0036D08C 4B FF F8 C5 */ bl DSPSendMailToDSP
lbl_80370130:
/* 80370130 0036D090 4B FF F8 89 */ bl DSPCheckMailToDSP
/* 80370134 0036D094 28 03 00 00 */ cmplwi r3, 0
/* 80370138 0036D098 40 82 FF F8 */ bne lbl_80370130
/* 8037013C 0036D09C 38 60 00 00 */ li r3, 0
/* 80370140 0036D0A0 4B FF F8 B1 */ bl DSPSendMailToDSP
lbl_80370144:
/* 80370144 0036D0A4 4B FF F8 75 */ bl DSPCheckMailToDSP
/* 80370148 0036D0A8 28 03 00 00 */ cmplwi r3, 0
/* 8037014C 0036D0AC 40 82 FF F8 */ bne lbl_80370144
/* 80370150 0036D0B0 38 60 00 00 */ li r3, 0
/* 80370154 0036D0B4 4B FF F8 9D */ bl DSPSendMailToDSP
lbl_80370158:
/* 80370158 0036D0B8 4B FF F8 61 */ bl DSPCheckMailToDSP
/* 8037015C 0036D0BC 28 03 00 00 */ cmplwi r3, 0
/* 80370160 0036D0C0 40 82 FF F8 */ bne lbl_80370158
/* 80370164 0036D0C4 38 60 00 00 */ li r3, 0
/* 80370168 0036D0C8 4B FF F8 89 */ bl DSPSendMailToDSP
lbl_8037016C:
/* 8037016C 0036D0CC 4B FF F8 4D */ bl DSPCheckMailToDSP
/* 80370170 0036D0D0 28 03 00 00 */ cmplwi r3, 0
/* 80370174 0036D0D4 40 82 FF F8 */ bne lbl_8037016C
/* 80370178 0036D0D8 48 00 00 54 */ b lbl_803701CC
lbl_8037017C:
/* 8037017C 0036D0DC A0 7F 00 26 */ lhz r3, 0x26(r31)
/* 80370180 0036D0E0 4B FF F8 71 */ bl DSPSendMailToDSP
lbl_80370184:
/* 80370184 0036D0E4 4B FF F8 35 */ bl DSPCheckMailToDSP
/* 80370188 0036D0E8 28 03 00 00 */ cmplwi r3, 0
/* 8037018C 0036D0EC 40 82 FF F8 */ bne lbl_80370184
/* 80370190 0036D0F0 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 80370194 0036D0F4 4B FF F8 5D */ bl DSPSendMailToDSP
lbl_80370198:
/* 80370198 0036D0F8 4B FF F8 21 */ bl DSPCheckMailToDSP
/* 8037019C 0036D0FC 28 03 00 00 */ cmplwi r3, 0
/* 803701A0 0036D100 40 82 FF F8 */ bne lbl_80370198
/* 803701A4 0036D104 80 7F 00 1C */ lwz r3, 0x1c(r31)
/* 803701A8 0036D108 4B FF F8 49 */ bl DSPSendMailToDSP
lbl_803701AC:
/* 803701AC 0036D10C 4B FF F8 0D */ bl DSPCheckMailToDSP
/* 803701B0 0036D110 28 03 00 00 */ cmplwi r3, 0
/* 803701B4 0036D114 40 82 FF F8 */ bne lbl_803701AC
/* 803701B8 0036D118 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 803701BC 0036D11C 4B FF F8 35 */ bl DSPSendMailToDSP
lbl_803701C0:
/* 803701C0 0036D120 4B FF F7 F9 */ bl DSPCheckMailToDSP
/* 803701C4 0036D124 28 03 00 00 */ cmplwi r3, 0
/* 803701C8 0036D128 40 82 FF F8 */ bne lbl_803701C0
lbl_803701CC:
/* 803701CC 0036D12C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803701D0 0036D130 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803701D4 0036D134 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803701D8 0036D138 38 21 00 18 */ addi r1, r1, 0x18
/* 803701DC 0036D13C 7C 08 03 A6 */ mtlr r0
/* 803701E0 0036D140 4E 80 00 20 */ blr
.global __DSP_boot_task
__DSP_boot_task:
/* 803701E4 0036D144 7C 08 02 A6 */ mflr r0
/* 803701E8 0036D148 3C 80 80 3F */ lis r4, lbl_803EFA50@ha
/* 803701EC 0036D14C 90 01 00 04 */ stw r0, 4(r1)
/* 803701F0 0036D150 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803701F4 0036D154 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803701F8 0036D158 3B E4 FA 50 */ addi r31, r4, lbl_803EFA50@l
/* 803701FC 0036D15C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80370200 0036D160 3B C3 00 00 */ addi r30, r3, 0
lbl_80370204:
/* 80370204 0036D164 4B FF F7 C5 */ bl DSPCheckMailFromDSP
/* 80370208 0036D168 28 03 00 00 */ cmplwi r3, 0
/* 8037020C 0036D16C 41 82 FF F8 */ beq lbl_80370204
/* 80370210 0036D170 4B FF F7 C9 */ bl DSPReadMailFromDSP
/* 80370214 0036D174 90 61 00 0C */ stw r3, 0xc(r1)
/* 80370218 0036D178 3C 60 80 F4 */ lis r3, 0x80F3A001@ha
/* 8037021C 0036D17C 38 63 A0 01 */ addi r3, r3, 0x80F3A001@l
/* 80370220 0036D180 4B FF F7 D1 */ bl DSPSendMailToDSP
lbl_80370224:
/* 80370224 0036D184 4B FF F7 95 */ bl DSPCheckMailToDSP
/* 80370228 0036D188 28 03 00 00 */ cmplwi r3, 0
/* 8037022C 0036D18C 40 82 FF F8 */ bne lbl_80370224
/* 80370230 0036D190 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 80370234 0036D194 4B FF F7 BD */ bl DSPSendMailToDSP
lbl_80370238:
/* 80370238 0036D198 4B FF F7 81 */ bl DSPCheckMailToDSP
/* 8037023C 0036D19C 28 03 00 00 */ cmplwi r3, 0
/* 80370240 0036D1A0 40 82 FF F8 */ bne lbl_80370238
/* 80370244 0036D1A4 3C 60 80 F4 */ lis r3, 0x80F3C002@ha
/* 80370248 0036D1A8 38 63 C0 02 */ addi r3, r3, 0x80F3C002@l
/* 8037024C 0036D1AC 4B FF F7 A5 */ bl DSPSendMailToDSP
lbl_80370250:
/* 80370250 0036D1B0 4B FF F7 69 */ bl DSPCheckMailToDSP
/* 80370254 0036D1B4 28 03 00 00 */ cmplwi r3, 0
/* 80370258 0036D1B8 40 82 FF F8 */ bne lbl_80370250
/* 8037025C 0036D1BC 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 80370260 0036D1C0 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 80370264 0036D1C4 4B FF F7 8D */ bl DSPSendMailToDSP
lbl_80370268:
/* 80370268 0036D1C8 4B FF F7 51 */ bl DSPCheckMailToDSP
/* 8037026C 0036D1CC 28 03 00 00 */ cmplwi r3, 0
/* 80370270 0036D1D0 40 82 FF F8 */ bne lbl_80370268
/* 80370274 0036D1D4 3C 60 80 F4 */ lis r3, 0x80F3A002@ha
/* 80370278 0036D1D8 38 63 A0 02 */ addi r3, r3, 0x80F3A002@l
/* 8037027C 0036D1DC 4B FF F7 75 */ bl DSPSendMailToDSP
lbl_80370280:
/* 80370280 0036D1E0 4B FF F7 39 */ bl DSPCheckMailToDSP
/* 80370284 0036D1E4 28 03 00 00 */ cmplwi r3, 0
/* 80370288 0036D1E8 40 82 FF F8 */ bne lbl_80370280
/* 8037028C 0036D1EC 80 7E 00 10 */ lwz r3, 0x10(r30)
/* 80370290 0036D1F0 4B FF F7 61 */ bl DSPSendMailToDSP
lbl_80370294:
/* 80370294 0036D1F4 4B FF F7 25 */ bl DSPCheckMailToDSP
/* 80370298 0036D1F8 28 03 00 00 */ cmplwi r3, 0
/* 8037029C 0036D1FC 40 82 FF F8 */ bne lbl_80370294
/* 803702A0 0036D200 3C 60 80 F4 */ lis r3, 0x80F3B002@ha
/* 803702A4 0036D204 38 63 B0 02 */ addi r3, r3, 0x80F3B002@l
/* 803702A8 0036D208 4B FF F7 49 */ bl DSPSendMailToDSP
lbl_803702AC:
/* 803702AC 0036D20C 4B FF F7 0D */ bl DSPCheckMailToDSP
/* 803702B0 0036D210 28 03 00 00 */ cmplwi r3, 0
/* 803702B4 0036D214 40 82 FF F8 */ bne lbl_803702AC
/* 803702B8 0036D218 38 60 00 00 */ li r3, 0
/* 803702BC 0036D21C 4B FF F7 35 */ bl DSPSendMailToDSP
lbl_803702C0:
/* 803702C0 0036D220 4B FF F6 F9 */ bl DSPCheckMailToDSP
/* 803702C4 0036D224 28 03 00 00 */ cmplwi r3, 0
/* 803702C8 0036D228 40 82 FF F8 */ bne lbl_803702C0
/* 803702CC 0036D22C 3C 60 80 F4 */ lis r3, 0x80F3D001@ha
/* 803702D0 0036D230 38 63 D0 01 */ addi r3, r3, 0x80F3D001@l
/* 803702D4 0036D234 4B FF F7 1D */ bl DSPSendMailToDSP
lbl_803702D8:
/* 803702D8 0036D238 4B FF F6 E1 */ bl DSPCheckMailToDSP
/* 803702DC 0036D23C 28 03 00 00 */ cmplwi r3, 0
/* 803702E0 0036D240 40 82 FF F8 */ bne lbl_803702D8
/* 803702E4 0036D244 A0 7E 00 24 */ lhz r3, 0x24(r30)
/* 803702E8 0036D248 4B FF F7 09 */ bl DSPSendMailToDSP
lbl_803702EC:
/* 803702EC 0036D24C 4B FF F6 CD */ bl DSPCheckMailToDSP
/* 803702F0 0036D250 28 03 00 00 */ cmplwi r3, 0
/* 803702F4 0036D254 40 82 FF F8 */ bne lbl_803702EC
/* 803702F8 0036D258 38 7F 00 00 */ addi r3, r31, 0
/* 803702FC 0036D25C 4C C6 31 82 */ crclr 6
/* 80370300 0036D260 38 9E 00 00 */ addi r4, r30, 0
/* 80370304 0036D264 4B FF F8 CD */ bl __DSP_debug_printf
/* 80370308 0036D268 80 9E 00 0C */ lwz r4, 0xc(r30)
/* 8037030C 0036D26C 38 7F 00 20 */ addi r3, r31, 0x20
/* 80370310 0036D270 4C C6 31 82 */ crclr 6
/* 80370314 0036D274 4B FF F8 BD */ bl __DSP_debug_printf
/* 80370318 0036D278 80 9E 00 14 */ lwz r4, 0x14(r30)
/* 8037031C 0036D27C 38 7F 00 50 */ addi r3, r31, 0x50
/* 80370320 0036D280 4C C6 31 82 */ crclr 6
/* 80370324 0036D284 4B FF F8 AD */ bl __DSP_debug_printf
/* 80370328 0036D288 80 9E 00 10 */ lwz r4, 0x10(r30)
/* 8037032C 0036D28C 38 7F 00 80 */ addi r3, r31, 0x80
/* 80370330 0036D290 4C C6 31 82 */ crclr 6
/* 80370334 0036D294 4B FF F8 9D */ bl __DSP_debug_printf
/* 80370338 0036D298 80 9E 00 1C */ lwz r4, 0x1c(r30)
/* 8037033C 0036D29C 38 7F 00 B0 */ addi r3, r31, 0xb0
/* 80370340 0036D2A0 4C C6 31 82 */ crclr 6
/* 80370344 0036D2A4 4B FF F8 8D */ bl __DSP_debug_printf
/* 80370348 0036D2A8 A0 9E 00 24 */ lhz r4, 0x24(r30)
/* 8037034C 0036D2AC 38 7F 00 E0 */ addi r3, r31, 0xe0
/* 80370350 0036D2B0 4C C6 31 82 */ crclr 6
/* 80370354 0036D2B4 4B FF F8 7D */ bl __DSP_debug_printf
/* 80370358 0036D2B8 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8037035C 0036D2BC 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80370360 0036D2C0 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80370364 0036D2C4 38 21 00 18 */ addi r1, r1, 0x18
/* 80370368 0036D2C8 7C 08 03 A6 */ mtlr r0
/* 8037036C 0036D2CC 4E 80 00 20 */ blr
.global __DSP_insert_task
__DSP_insert_task:
/* 80370370 0036D2D0 80 0D AB A0 */ lwz r0, lbl_805A9760@sda21(r13)
/* 80370374 0036D2D4 28 00 00 00 */ cmplwi r0, 0
/* 80370378 0036D2D8 40 82 00 20 */ bne lbl_80370398
/* 8037037C 0036D2DC 90 6D AB A4 */ stw r3, lbl_805A9764@sda21(r13)
/* 80370380 0036D2E0 38 00 00 00 */ li r0, 0
/* 80370384 0036D2E4 90 6D AB 9C */ stw r3, lbl_805A975C@sda21(r13)
/* 80370388 0036D2E8 90 6D AB A0 */ stw r3, lbl_805A9760@sda21(r13)
/* 8037038C 0036D2EC 90 03 00 3C */ stw r0, 0x3c(r3)
/* 80370390 0036D2F0 90 03 00 38 */ stw r0, 0x38(r3)
/* 80370394 0036D2F4 4E 80 00 20 */ blr
lbl_80370398:
/* 80370398 0036D2F8 7C 05 03 78 */ mr r5, r0
/* 8037039C 0036D2FC 48 00 00 44 */ b lbl_803703E0
lbl_803703A0:
/* 803703A0 0036D300 80 83 00 04 */ lwz r4, 4(r3)
/* 803703A4 0036D304 80 05 00 04 */ lwz r0, 4(r5)
/* 803703A8 0036D308 7C 04 00 40 */ cmplw r4, r0
/* 803703AC 0036D30C 40 80 00 30 */ bge lbl_803703DC
/* 803703B0 0036D310 80 05 00 3C */ lwz r0, 0x3c(r5)
/* 803703B4 0036D314 90 03 00 3C */ stw r0, 0x3c(r3)
/* 803703B8 0036D318 90 65 00 3C */ stw r3, 0x3c(r5)
/* 803703BC 0036D31C 90 A3 00 38 */ stw r5, 0x38(r3)
/* 803703C0 0036D320 80 83 00 3C */ lwz r4, 0x3c(r3)
/* 803703C4 0036D324 28 04 00 00 */ cmplwi r4, 0
/* 803703C8 0036D328 40 82 00 0C */ bne lbl_803703D4
/* 803703CC 0036D32C 90 6D AB A0 */ stw r3, lbl_805A9760@sda21(r13)
/* 803703D0 0036D330 48 00 00 18 */ b lbl_803703E8
lbl_803703D4:
/* 803703D4 0036D334 90 64 00 38 */ stw r3, 0x38(r4)
/* 803703D8 0036D338 48 00 00 10 */ b lbl_803703E8
lbl_803703DC:
/* 803703DC 0036D33C 80 A5 00 38 */ lwz r5, 0x38(r5)
lbl_803703E0:
/* 803703E0 0036D340 28 05 00 00 */ cmplwi r5, 0
/* 803703E4 0036D344 40 82 FF BC */ bne lbl_803703A0
lbl_803703E8:
/* 803703E8 0036D348 28 05 00 00 */ cmplwi r5, 0
/* 803703EC 0036D34C 4C 82 00 20 */ bnelr
/* 803703F0 0036D350 80 8D AB 9C */ lwz r4, lbl_805A975C@sda21(r13)
/* 803703F4 0036D354 38 00 00 00 */ li r0, 0
/* 803703F8 0036D358 90 64 00 38 */ stw r3, 0x38(r4)
/* 803703FC 0036D35C 90 03 00 38 */ stw r0, 0x38(r3)
/* 80370400 0036D360 80 0D AB 9C */ lwz r0, lbl_805A975C@sda21(r13)
/* 80370404 0036D364 90 03 00 3C */ stw r0, 0x3c(r3)
/* 80370408 0036D368 90 6D AB 9C */ stw r3, lbl_805A975C@sda21(r13)
/* 8037040C 0036D36C 4E 80 00 20 */ blr
.global __DSP_remove_task
__DSP_remove_task:
/* 80370410 0036D370 38 80 00 00 */ li r4, 0
/* 80370414 0036D374 90 83 00 08 */ stw r4, 8(r3)
/* 80370418 0036D378 38 00 00 03 */ li r0, 3
/* 8037041C 0036D37C 90 03 00 00 */ stw r0, 0(r3)
/* 80370420 0036D380 80 0D AB A0 */ lwz r0, lbl_805A9760@sda21(r13)
/* 80370424 0036D384 7C 00 18 40 */ cmplw r0, r3
/* 80370428 0036D388 40 82 00 30 */ bne lbl_80370458
/* 8037042C 0036D38C 80 03 00 38 */ lwz r0, 0x38(r3)
/* 80370430 0036D390 28 00 00 00 */ cmplwi r0, 0
/* 80370434 0036D394 41 82 00 14 */ beq lbl_80370448
/* 80370438 0036D398 90 0D AB A0 */ stw r0, lbl_805A9760@sda21(r13)
/* 8037043C 0036D39C 80 63 00 38 */ lwz r3, 0x38(r3)
/* 80370440 0036D3A0 90 83 00 3C */ stw r4, 0x3c(r3)
/* 80370444 0036D3A4 4E 80 00 20 */ blr
lbl_80370448:
/* 80370448 0036D3A8 90 8D AB A4 */ stw r4, lbl_805A9764@sda21(r13)
/* 8037044C 0036D3AC 90 8D AB 9C */ stw r4, lbl_805A975C@sda21(r13)
/* 80370450 0036D3B0 90 8D AB A0 */ stw r4, lbl_805A9760@sda21(r13)
/* 80370454 0036D3B4 4E 80 00 20 */ blr
lbl_80370458:
/* 80370458 0036D3B8 80 0D AB 9C */ lwz r0, lbl_805A975C@sda21(r13)
/* 8037045C 0036D3BC 7C 00 18 40 */ cmplw r0, r3
/* 80370460 0036D3C0 40 82 00 20 */ bne lbl_80370480
/* 80370464 0036D3C4 80 03 00 3C */ lwz r0, 0x3c(r3)
/* 80370468 0036D3C8 90 0D AB 9C */ stw r0, lbl_805A975C@sda21(r13)
/* 8037046C 0036D3CC 80 63 00 3C */ lwz r3, 0x3c(r3)
/* 80370470 0036D3D0 90 83 00 38 */ stw r4, 0x38(r3)
/* 80370474 0036D3D4 80 0D AB A0 */ lwz r0, lbl_805A9760@sda21(r13)
/* 80370478 0036D3D8 90 0D AB A4 */ stw r0, lbl_805A9764@sda21(r13)
/* 8037047C 0036D3DC 4E 80 00 20 */ blr
lbl_80370480:
/* 80370480 0036D3E0 80 03 00 38 */ lwz r0, 0x38(r3)
/* 80370484 0036D3E4 90 0D AB A4 */ stw r0, lbl_805A9764@sda21(r13)
/* 80370488 0036D3E8 80 03 00 38 */ lwz r0, 0x38(r3)
/* 8037048C 0036D3EC 80 83 00 3C */ lwz r4, 0x3c(r3)
/* 80370490 0036D3F0 90 04 00 38 */ stw r0, 0x38(r4)
/* 80370494 0036D3F4 80 03 00 3C */ lwz r0, 0x3c(r3)
/* 80370498 0036D3F8 80 63 00 38 */ lwz r3, 0x38(r3)
/* 8037049C 0036D3FC 90 03 00 3C */ stw r0, 0x3c(r3)
/* 803704A0 0036D400 4E 80 00 20 */ blr

3310
asm/Dolphin/DVD/dvd.s Normal file

File diff suppressed because it is too large Load Diff

126
asm/Dolphin/DVD/dvderror.s Normal file
View File

@ -0,0 +1,126 @@
.include "macros.inc"
.section .text, "ax"
.global ErrorCode2Num
ErrorCode2Num:
/* 80374AB0 00371A10 38 00 00 02 */ li r0, 2
/* 80374AB4 00371A14 3C 80 80 3F */ lis r4, lbl_803F0100@ha
/* 80374AB8 00371A18 7C 09 03 A6 */ mtctr r0
/* 80374ABC 00371A1C 38 84 01 00 */ addi r4, r4, lbl_803F0100@l
/* 80374AC0 00371A20 38 A0 00 00 */ li r5, 0
lbl_80374AC4:
/* 80374AC4 00371A24 80 04 00 00 */ lwz r0, 0(r4)
/* 80374AC8 00371A28 7C 03 00 40 */ cmplw r3, r0
/* 80374ACC 00371A2C 40 82 00 0C */ bne lbl_80374AD8
/* 80374AD0 00371A30 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 80374AD4 00371A34 4E 80 00 20 */ blr
lbl_80374AD8:
/* 80374AD8 00371A38 84 04 00 04 */ lwzu r0, 4(r4)
/* 80374ADC 00371A3C 38 A5 00 01 */ addi r5, r5, 1
/* 80374AE0 00371A40 7C 03 00 40 */ cmplw r3, r0
/* 80374AE4 00371A44 40 82 00 0C */ bne lbl_80374AF0
/* 80374AE8 00371A48 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 80374AEC 00371A4C 4E 80 00 20 */ blr
lbl_80374AF0:
/* 80374AF0 00371A50 84 04 00 04 */ lwzu r0, 4(r4)
/* 80374AF4 00371A54 38 A5 00 01 */ addi r5, r5, 1
/* 80374AF8 00371A58 7C 03 00 40 */ cmplw r3, r0
/* 80374AFC 00371A5C 40 82 00 0C */ bne lbl_80374B08
/* 80374B00 00371A60 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 80374B04 00371A64 4E 80 00 20 */ blr
lbl_80374B08:
/* 80374B08 00371A68 84 04 00 04 */ lwzu r0, 4(r4)
/* 80374B0C 00371A6C 38 A5 00 01 */ addi r5, r5, 1
/* 80374B10 00371A70 7C 03 00 40 */ cmplw r3, r0
/* 80374B14 00371A74 40 82 00 0C */ bne lbl_80374B20
/* 80374B18 00371A78 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 80374B1C 00371A7C 4E 80 00 20 */ blr
lbl_80374B20:
/* 80374B20 00371A80 84 04 00 04 */ lwzu r0, 4(r4)
/* 80374B24 00371A84 38 A5 00 01 */ addi r5, r5, 1
/* 80374B28 00371A88 7C 03 00 40 */ cmplw r3, r0
/* 80374B2C 00371A8C 40 82 00 0C */ bne lbl_80374B38
/* 80374B30 00371A90 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 80374B34 00371A94 4E 80 00 20 */ blr
lbl_80374B38:
/* 80374B38 00371A98 84 04 00 04 */ lwzu r0, 4(r4)
/* 80374B3C 00371A9C 38 A5 00 01 */ addi r5, r5, 1
/* 80374B40 00371AA0 7C 03 00 40 */ cmplw r3, r0
/* 80374B44 00371AA4 40 82 00 0C */ bne lbl_80374B50
/* 80374B48 00371AA8 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 80374B4C 00371AAC 4E 80 00 20 */ blr
lbl_80374B50:
/* 80374B50 00371AB0 84 04 00 04 */ lwzu r0, 4(r4)
/* 80374B54 00371AB4 38 A5 00 01 */ addi r5, r5, 1
/* 80374B58 00371AB8 7C 03 00 40 */ cmplw r3, r0
/* 80374B5C 00371ABC 40 82 00 0C */ bne lbl_80374B68
/* 80374B60 00371AC0 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 80374B64 00371AC4 4E 80 00 20 */ blr
lbl_80374B68:
/* 80374B68 00371AC8 84 04 00 04 */ lwzu r0, 4(r4)
/* 80374B6C 00371ACC 38 A5 00 01 */ addi r5, r5, 1
/* 80374B70 00371AD0 7C 03 00 40 */ cmplw r3, r0
/* 80374B74 00371AD4 40 82 00 0C */ bne lbl_80374B80
/* 80374B78 00371AD8 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 80374B7C 00371ADC 4E 80 00 20 */ blr
lbl_80374B80:
/* 80374B80 00371AE0 84 04 00 04 */ lwzu r0, 4(r4)
/* 80374B84 00371AE4 38 A5 00 01 */ addi r5, r5, 1
/* 80374B88 00371AE8 7C 03 00 40 */ cmplw r3, r0
/* 80374B8C 00371AEC 40 82 00 0C */ bne lbl_80374B98
/* 80374B90 00371AF0 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 80374B94 00371AF4 4E 80 00 20 */ blr
lbl_80374B98:
/* 80374B98 00371AF8 38 84 00 04 */ addi r4, r4, 4
/* 80374B9C 00371AFC 38 A5 00 01 */ addi r5, r5, 1
/* 80374BA0 00371B00 42 00 FF 24 */ bdnz lbl_80374AC4
/* 80374BA4 00371B04 3C 80 00 10 */ lis r4, 0x10
/* 80374BA8 00371B08 7C 03 20 40 */ cmplw r3, r4
/* 80374BAC 00371B0C 41 80 00 18 */ blt lbl_80374BC4
/* 80374BB0 00371B10 38 04 00 08 */ addi r0, r4, 8
/* 80374BB4 00371B14 7C 03 00 40 */ cmplw r3, r0
/* 80374BB8 00371B18 41 81 00 0C */ bgt lbl_80374BC4
/* 80374BBC 00371B1C 38 60 00 11 */ li r3, 0x11
/* 80374BC0 00371B20 4E 80 00 20 */ blr
lbl_80374BC4:
/* 80374BC4 00371B24 38 60 00 1D */ li r3, 0x1d
/* 80374BC8 00371B28 4E 80 00 20 */ blr
.global __DVDStoreErrorCode
__DVDStoreErrorCode:
/* 80374BCC 00371B2C 7C 08 02 A6 */ mflr r0
/* 80374BD0 00371B30 90 01 00 04 */ stw r0, 4(r1)
/* 80374BD4 00371B34 3C 03 FE DD */ addis r0, r3, 0xfedd
/* 80374BD8 00371B38 28 00 45 67 */ cmplwi r0, 0x4567
/* 80374BDC 00371B3C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80374BE0 00371B40 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80374BE4 00371B44 40 82 00 0C */ bne lbl_80374BF0
/* 80374BE8 00371B48 3B E0 00 FF */ li r31, 0xff
/* 80374BEC 00371B4C 48 00 00 38 */ b lbl_80374C24
lbl_80374BF0:
/* 80374BF0 00371B50 28 00 45 68 */ cmplwi r0, 0x4568
/* 80374BF4 00371B54 40 82 00 0C */ bne lbl_80374C00
/* 80374BF8 00371B58 3B E0 00 FE */ li r31, 0xfe
/* 80374BFC 00371B5C 48 00 00 28 */ b lbl_80374C24
lbl_80374C00:
/* 80374C00 00371B60 54 7F 46 3E */ srwi r31, r3, 0x18
/* 80374C04 00371B64 54 63 02 3E */ clrlwi r3, r3, 8
/* 80374C08 00371B68 4B FF FE A9 */ bl ErrorCode2Num
/* 80374C0C 00371B6C 28 1F 00 06 */ cmplwi r31, 6
/* 80374C10 00371B70 41 80 00 08 */ blt lbl_80374C18
/* 80374C14 00371B74 3B E0 00 06 */ li r31, 6
lbl_80374C18:
/* 80374C18 00371B78 1C 1F 00 1E */ mulli r0, r31, 0x1e
/* 80374C1C 00371B7C 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 80374C20 00371B80 7F E3 02 14 */ add r31, r3, r0
lbl_80374C24:
/* 80374C24 00371B84 48 00 EF 0D */ bl __OSLockSramEx
/* 80374C28 00371B88 9B E3 00 24 */ stb r31, 0x24(r3)
/* 80374C2C 00371B8C 38 60 00 01 */ li r3, 1
/* 80374C30 00371B90 48 00 F2 89 */ bl __OSUnlockSramEx
/* 80374C34 00371B94 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80374C38 00371B98 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80374C3C 00371B9C 38 21 00 18 */ addi r1, r1, 0x18
/* 80374C40 00371BA0 7C 08 03 A6 */ mtlr r0
/* 80374C44 00371BA4 4E 80 00 20 */ blr

View File

@ -0,0 +1,95 @@
.include "macros.inc"
.section .text, "ax"
.global ShowMessage
ShowMessage:
/* 80374D40 00371CA0 7C 08 02 A6 */ mflr r0
/* 80374D44 00371CA4 90 01 00 04 */ stw r0, 4(r1)
/* 80374D48 00371CA8 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80374D4C 00371CAC 80 62 CE 00 */ lwz r3, lbl_805AEB20@sda21(r2)
/* 80374D50 00371CB0 80 02 CE 04 */ lwz r0, lbl_805AEB24@sda21(r2)
/* 80374D54 00371CB4 90 61 00 14 */ stw r3, 0x14(r1)
/* 80374D58 00371CB8 90 01 00 10 */ stw r0, 0x10(r1)
/* 80374D5C 00371CBC 48 01 47 7D */ bl VIGetTvFormat
/* 80374D60 00371CC0 28 03 00 00 */ cmplwi r3, 0
/* 80374D64 00371CC4 40 82 00 24 */ bne lbl_80374D88
/* 80374D68 00371CC8 48 00 C1 DD */ bl OSGetFontEncode
/* 80374D6C 00371CCC 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 80374D70 00371CD0 28 00 00 01 */ cmplwi r0, 1
/* 80374D74 00371CD4 40 82 00 0C */ bne lbl_80374D80
/* 80374D78 00371CD8 80 AD 9E F0 */ lwz r5, lbl_805A8AB0@sda21(r13)
/* 80374D7C 00371CDC 48 00 00 24 */ b lbl_80374DA0
lbl_80374D80:
/* 80374D80 00371CE0 80 AD 9E F4 */ lwz r5, lbl_805A8AB4@sda21(r13)
/* 80374D84 00371CE4 48 00 00 1C */ b lbl_80374DA0
lbl_80374D88:
/* 80374D88 00371CE8 48 00 F4 C1 */ bl OSGetLanguage
/* 80374D8C 00371CEC 3C 80 80 3E */ lis r4, lbl_803D8570@ha
/* 80374D90 00371CF0 54 63 15 BA */ rlwinm r3, r3, 2, 0x16, 0x1d
/* 80374D94 00371CF4 38 04 85 70 */ addi r0, r4, lbl_803D8570@l
/* 80374D98 00371CF8 7C 60 1A 14 */ add r3, r0, r3
/* 80374D9C 00371CFC 80 A3 00 00 */ lwz r5, 0(r3)
lbl_80374DA0:
/* 80374DA0 00371D00 80 C1 00 14 */ lwz r6, 0x14(r1)
/* 80374DA4 00371D04 38 81 00 08 */ addi r4, r1, 8
/* 80374DA8 00371D08 80 01 00 10 */ lwz r0, 0x10(r1)
/* 80374DAC 00371D0C 38 61 00 0C */ addi r3, r1, 0xc
/* 80374DB0 00371D10 90 C1 00 08 */ stw r6, 8(r1)
/* 80374DB4 00371D14 90 01 00 0C */ stw r0, 0xc(r1)
/* 80374DB8 00371D18 48 00 B7 79 */ bl OSFatal
/* 80374DBC 00371D1C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80374DC0 00371D20 38 21 00 18 */ addi r1, r1, 0x18
/* 80374DC4 00371D24 7C 08 03 A6 */ mtlr r0
/* 80374DC8 00371D28 4E 80 00 20 */ blr
.global DVDSetAutoFatalMessaging
DVDSetAutoFatalMessaging:
/* 80374DCC 00371D2C 7C 08 02 A6 */ mflr r0
/* 80374DD0 00371D30 90 01 00 04 */ stw r0, 4(r1)
/* 80374DD4 00371D34 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80374DD8 00371D38 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80374DDC 00371D3C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80374DE0 00371D40 7C 7E 1B 78 */ mr r30, r3
/* 80374DE4 00371D44 48 00 C8 7D */ bl OSDisableInterrupts
/* 80374DE8 00371D48 80 0D AC 60 */ lwz r0, lbl_805A9820@sda21(r13)
/* 80374DEC 00371D4C 28 00 00 00 */ cmplwi r0, 0
/* 80374DF0 00371D50 41 82 00 0C */ beq lbl_80374DFC
/* 80374DF4 00371D54 3B E0 00 01 */ li r31, 1
/* 80374DF8 00371D58 48 00 00 08 */ b lbl_80374E00
lbl_80374DFC:
/* 80374DFC 00371D5C 3B E0 00 00 */ li r31, 0
lbl_80374E00:
/* 80374E00 00371D60 2C 1E 00 00 */ cmpwi r30, 0
/* 80374E04 00371D64 41 82 00 10 */ beq lbl_80374E14
/* 80374E08 00371D68 3C 80 80 37 */ lis r4, ShowMessage@ha
/* 80374E0C 00371D6C 38 04 4D 40 */ addi r0, r4, ShowMessage@l
/* 80374E10 00371D70 48 00 00 08 */ b lbl_80374E18
lbl_80374E14:
/* 80374E14 00371D74 38 00 00 00 */ li r0, 0
lbl_80374E18:
/* 80374E18 00371D78 90 0D AC 60 */ stw r0, lbl_805A9820@sda21(r13)
/* 80374E1C 00371D7C 48 00 C8 6D */ bl OSRestoreInterrupts
/* 80374E20 00371D80 7F E3 FB 78 */ mr r3, r31
/* 80374E24 00371D84 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80374E28 00371D88 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80374E2C 00371D8C 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80374E30 00371D90 38 21 00 18 */ addi r1, r1, 0x18
/* 80374E34 00371D94 7C 08 03 A6 */ mtlr r0
/* 80374E38 00371D98 4E 80 00 20 */ blr
.global __DVDPrintFatalMessage
__DVDPrintFatalMessage:
/* 80374E3C 00371D9C 7C 08 02 A6 */ mflr r0
/* 80374E40 00371DA0 90 01 00 04 */ stw r0, 4(r1)
/* 80374E44 00371DA4 94 21 FF F8 */ stwu r1, -8(r1)
/* 80374E48 00371DA8 81 8D AC 60 */ lwz r12, lbl_805A9820@sda21(r13)
/* 80374E4C 00371DAC 28 0C 00 00 */ cmplwi r12, 0
/* 80374E50 00371DB0 41 82 00 0C */ beq lbl_80374E5C
/* 80374E54 00371DB4 7D 88 03 A6 */ mtlr r12
/* 80374E58 00371DB8 4E 80 00 21 */ blrl
lbl_80374E5C:
/* 80374E5C 00371DBC 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80374E60 00371DC0 38 21 00 08 */ addi r1, r1, 8
/* 80374E64 00371DC4 7C 08 03 A6 */ mtlr r0
/* 80374E68 00371DC8 4E 80 00 20 */ blr

677
asm/Dolphin/DVD/dvdfs.s Normal file
View File

@ -0,0 +1,677 @@
.include "macros.inc"
.section .text, "ax"
.global __DVDFSInit
__DVDFSInit:
/* 803712E4 0036E244 3C 60 80 00 */ lis r3, 0x80000038@ha
/* 803712E8 0036E248 90 6D AB F0 */ stw r3, lbl_805A97B0@sda21(r13)
/* 803712EC 0036E24C 80 03 00 38 */ lwz r0, 0x80000038@l(r3)
/* 803712F0 0036E250 90 0D AB F4 */ stw r0, lbl_805A97B4@sda21(r13)
/* 803712F4 0036E254 80 6D AB F4 */ lwz r3, lbl_805A97B4@sda21(r13)
/* 803712F8 0036E258 28 03 00 00 */ cmplwi r3, 0
/* 803712FC 0036E25C 4D 82 00 20 */ beqlr
/* 80371300 0036E260 80 03 00 08 */ lwz r0, 8(r3)
/* 80371304 0036E264 90 0D AB FC */ stw r0, lbl_805A97BC@sda21(r13)
/* 80371308 0036E268 80 0D AB FC */ lwz r0, lbl_805A97BC@sda21(r13)
/* 8037130C 0036E26C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 80371310 0036E270 7C 03 02 14 */ add r0, r3, r0
/* 80371314 0036E274 90 0D AB F8 */ stw r0, lbl_805A97B8@sda21(r13)
/* 80371318 0036E278 4E 80 00 20 */ blr
.global DVDConvertPathToEntrynum
DVDConvertPathToEntrynum:
/* 8037131C 0036E27C 7C 08 02 A6 */ mflr r0
/* 80371320 0036E280 90 01 00 04 */ stw r0, 4(r1)
/* 80371324 0036E284 94 21 FF B8 */ stwu r1, -0x48(r1)
/* 80371328 0036E288 BE 81 00 18 */ stmw r20, 0x18(r1)
/* 8037132C 0036E28C 7C 77 1B 78 */ mr r23, r3
/* 80371330 0036E290 3C 60 80 3F */ lis r3, lbl_803EFB90@ha
/* 80371334 0036E294 3B 37 00 00 */ addi r25, r23, 0
/* 80371338 0036E298 3B E3 FB 90 */ addi r31, r3, lbl_803EFB90@l
/* 8037133C 0036E29C 83 4D AC 00 */ lwz r26, lbl_805A97C0@sda21(r13)
lbl_80371340:
/* 80371340 0036E2A0 88 77 00 00 */ lbz r3, 0(r23)
/* 80371344 0036E2A4 7C 60 07 75 */ extsb. r0, r3
/* 80371348 0036E2A8 40 82 00 0C */ bne lbl_80371354
/* 8037134C 0036E2AC 7F 43 D3 78 */ mr r3, r26
/* 80371350 0036E2B0 48 00 02 AC */ b lbl_803715FC
lbl_80371354:
/* 80371354 0036E2B4 7C 60 07 74 */ extsb r0, r3
/* 80371358 0036E2B8 2C 00 00 2F */ cmpwi r0, 0x2f
/* 8037135C 0036E2BC 40 82 00 10 */ bne lbl_8037136C
/* 80371360 0036E2C0 3B 40 00 00 */ li r26, 0
/* 80371364 0036E2C4 3A F7 00 01 */ addi r23, r23, 1
/* 80371368 0036E2C8 4B FF FF D8 */ b lbl_80371340
lbl_8037136C:
/* 8037136C 0036E2CC 2C 00 00 2E */ cmpwi r0, 0x2e
/* 80371370 0036E2D0 40 82 00 74 */ bne lbl_803713E4
/* 80371374 0036E2D4 88 77 00 01 */ lbz r3, 1(r23)
/* 80371378 0036E2D8 7C 60 07 74 */ extsb r0, r3
/* 8037137C 0036E2DC 2C 00 00 2E */ cmpwi r0, 0x2e
/* 80371380 0036E2E0 40 82 00 44 */ bne lbl_803713C4
/* 80371384 0036E2E4 88 77 00 02 */ lbz r3, 2(r23)
/* 80371388 0036E2E8 2C 03 00 2F */ cmpwi r3, 0x2f
/* 8037138C 0036E2EC 40 82 00 1C */ bne lbl_803713A8
/* 80371390 0036E2F0 1C 7A 00 0C */ mulli r3, r26, 0xc
/* 80371394 0036E2F4 80 8D AB F4 */ lwz r4, lbl_805A97B4@sda21(r13)
/* 80371398 0036E2F8 38 03 00 04 */ addi r0, r3, 4
/* 8037139C 0036E2FC 7F 44 00 2E */ lwzx r26, r4, r0
/* 803713A0 0036E300 3A F7 00 03 */ addi r23, r23, 3
/* 803713A4 0036E304 4B FF FF 9C */ b lbl_80371340
lbl_803713A8:
/* 803713A8 0036E308 7C 60 07 75 */ extsb. r0, r3
/* 803713AC 0036E30C 40 82 00 38 */ bne lbl_803713E4
/* 803713B0 0036E310 1C 1A 00 0C */ mulli r0, r26, 0xc
/* 803713B4 0036E314 80 6D AB F4 */ lwz r3, lbl_805A97B4@sda21(r13)
/* 803713B8 0036E318 7C 63 02 14 */ add r3, r3, r0
/* 803713BC 0036E31C 80 63 00 04 */ lwz r3, 4(r3)
/* 803713C0 0036E320 48 00 02 3C */ b lbl_803715FC
lbl_803713C4:
/* 803713C4 0036E324 2C 00 00 2F */ cmpwi r0, 0x2f
/* 803713C8 0036E328 40 82 00 0C */ bne lbl_803713D4
/* 803713CC 0036E32C 3A F7 00 02 */ addi r23, r23, 2
/* 803713D0 0036E330 4B FF FF 70 */ b lbl_80371340
lbl_803713D4:
/* 803713D4 0036E334 7C 60 07 75 */ extsb. r0, r3
/* 803713D8 0036E338 40 82 00 0C */ bne lbl_803713E4
/* 803713DC 0036E33C 7F 43 D3 78 */ mr r3, r26
/* 803713E0 0036E340 48 00 02 1C */ b lbl_803715FC
lbl_803713E4:
/* 803713E4 0036E344 80 0D AC 04 */ lwz r0, lbl_805A97C4@sda21(r13)
/* 803713E8 0036E348 28 00 00 00 */ cmplwi r0, 0
/* 803713EC 0036E34C 40 82 00 AC */ bne lbl_80371498
/* 803713F0 0036E350 3B 97 00 00 */ addi r28, r23, 0
/* 803713F4 0036E354 38 A0 00 00 */ li r5, 0
/* 803713F8 0036E358 38 80 00 00 */ li r4, 0
/* 803713FC 0036E35C 48 00 00 48 */ b lbl_80371444
lbl_80371400:
/* 80371400 0036E360 7C 60 07 74 */ extsb r0, r3
/* 80371404 0036E364 2C 00 00 2E */ cmpwi r0, 0x2e
/* 80371408 0036E368 40 82 00 2C */ bne lbl_80371434
/* 8037140C 0036E36C 7C 17 E0 50 */ subf r0, r23, r28
/* 80371410 0036E370 2C 00 00 08 */ cmpwi r0, 8
/* 80371414 0036E374 41 81 00 0C */ bgt lbl_80371420
/* 80371418 0036E378 2C 05 00 01 */ cmpwi r5, 1
/* 8037141C 0036E37C 40 82 00 0C */ bne lbl_80371428
lbl_80371420:
/* 80371420 0036E380 38 80 00 01 */ li r4, 1
/* 80371424 0036E384 48 00 00 38 */ b lbl_8037145C
lbl_80371428:
/* 80371428 0036E388 3B 1C 00 01 */ addi r24, r28, 1
/* 8037142C 0036E38C 38 A0 00 01 */ li r5, 1
/* 80371430 0036E390 48 00 00 10 */ b lbl_80371440
lbl_80371434:
/* 80371434 0036E394 2C 00 00 20 */ cmpwi r0, 0x20
/* 80371438 0036E398 40 82 00 08 */ bne lbl_80371440
/* 8037143C 0036E39C 38 80 00 01 */ li r4, 1
lbl_80371440:
/* 80371440 0036E3A0 3B 9C 00 01 */ addi r28, r28, 1
lbl_80371444:
/* 80371444 0036E3A4 88 7C 00 00 */ lbz r3, 0(r28)
/* 80371448 0036E3A8 7C 60 07 75 */ extsb. r0, r3
/* 8037144C 0036E3AC 41 82 00 10 */ beq lbl_8037145C
/* 80371450 0036E3B0 7C 60 07 74 */ extsb r0, r3
/* 80371454 0036E3B4 2C 00 00 2F */ cmpwi r0, 0x2f
/* 80371458 0036E3B8 40 82 FF A8 */ bne lbl_80371400
lbl_8037145C:
/* 8037145C 0036E3BC 2C 05 00 01 */ cmpwi r5, 1
/* 80371460 0036E3C0 40 82 00 14 */ bne lbl_80371474
/* 80371464 0036E3C4 7C 18 E0 50 */ subf r0, r24, r28
/* 80371468 0036E3C8 2C 00 00 03 */ cmpwi r0, 3
/* 8037146C 0036E3CC 40 81 00 08 */ ble lbl_80371474
/* 80371470 0036E3D0 38 80 00 01 */ li r4, 1
lbl_80371474:
/* 80371474 0036E3D4 2C 04 00 00 */ cmpwi r4, 0
/* 80371478 0036E3D8 41 82 00 44 */ beq lbl_803714BC
/* 8037147C 0036E3DC 38 BF 00 00 */ addi r5, r31, 0
/* 80371480 0036E3E0 4C C6 31 82 */ crclr 6
/* 80371484 0036E3E4 38 D9 00 00 */ addi r6, r25, 0
/* 80371488 0036E3E8 38 6D 9E D0 */ addi r3, r13, lbl_805A8A90@sda21
/* 8037148C 0036E3EC 38 80 01 7B */ li r4, 0x17b
/* 80371490 0036E3F0 48 00 E5 9D */ bl OSPanic
/* 80371494 0036E3F4 48 00 00 28 */ b lbl_803714BC
lbl_80371498:
/* 80371498 0036E3F8 7E FC BB 78 */ mr r28, r23
/* 8037149C 0036E3FC 48 00 00 08 */ b lbl_803714A4
lbl_803714A0:
/* 803714A0 0036E400 3B 9C 00 01 */ addi r28, r28, 1
lbl_803714A4:
/* 803714A4 0036E404 88 7C 00 00 */ lbz r3, 0(r28)
/* 803714A8 0036E408 7C 60 07 75 */ extsb. r0, r3
/* 803714AC 0036E40C 41 82 00 10 */ beq lbl_803714BC
/* 803714B0 0036E410 7C 60 07 74 */ extsb r0, r3
/* 803714B4 0036E414 2C 00 00 2F */ cmpwi r0, 0x2f
/* 803714B8 0036E418 40 82 FF E8 */ bne lbl_803714A0
lbl_803714BC:
/* 803714BC 0036E41C 88 1C 00 00 */ lbz r0, 0(r28)
/* 803714C0 0036E420 7C 00 07 75 */ extsb. r0, r0
/* 803714C4 0036E424 40 82 00 0C */ bne lbl_803714D0
/* 803714C8 0036E428 3B C0 00 00 */ li r30, 0
/* 803714CC 0036E42C 48 00 00 08 */ b lbl_803714D4
lbl_803714D0:
/* 803714D0 0036E430 3B C0 00 01 */ li r30, 1
lbl_803714D4:
/* 803714D4 0036E434 1F BA 00 0C */ mulli r29, r26, 0xc
/* 803714D8 0036E438 7F 77 E0 50 */ subf r27, r23, r28
/* 803714DC 0036E43C 3B 5A 00 01 */ addi r26, r26, 1
/* 803714E0 0036E440 48 00 00 E4 */ b lbl_803715C4
lbl_803714E4:
/* 803714E4 0036E444 1F 9A 00 0C */ mulli r28, r26, 0xc
/* 803714E8 0036E448 7C 83 E0 2E */ lwzx r4, r3, r28
/* 803714EC 0036E44C 54 80 00 0F */ rlwinm. r0, r4, 0, 0, 7
/* 803714F0 0036E450 40 82 00 0C */ bne lbl_803714FC
/* 803714F4 0036E454 38 00 00 00 */ li r0, 0
/* 803714F8 0036E458 48 00 00 08 */ b lbl_80371500
lbl_803714FC:
/* 803714FC 0036E45C 38 00 00 01 */ li r0, 1
lbl_80371500:
/* 80371500 0036E460 2C 00 00 00 */ cmpwi r0, 0
/* 80371504 0036E464 40 82 00 0C */ bne lbl_80371510
/* 80371508 0036E468 2C 1E 00 01 */ cmpwi r30, 1
/* 8037150C 0036E46C 41 82 00 80 */ beq lbl_8037158C
lbl_80371510:
/* 80371510 0036E470 80 6D AB F8 */ lwz r3, lbl_805A97B8@sda21(r13)
/* 80371514 0036E474 54 80 02 3E */ clrlwi r0, r4, 8
/* 80371518 0036E478 3A B7 00 00 */ addi r21, r23, 0
/* 8037151C 0036E47C 7E 83 02 14 */ add r20, r3, r0
/* 80371520 0036E480 48 00 00 38 */ b lbl_80371558
lbl_80371524:
/* 80371524 0036E484 88 14 00 00 */ lbz r0, 0(r20)
/* 80371528 0036E488 3A 94 00 01 */ addi r20, r20, 1
/* 8037152C 0036E48C 7C 03 07 74 */ extsb r3, r0
/* 80371530 0036E490 48 01 B9 F5 */ bl tolower
/* 80371534 0036E494 88 15 00 00 */ lbz r0, 0(r21)
/* 80371538 0036E498 3A C3 00 00 */ addi r22, r3, 0
/* 8037153C 0036E49C 3A B5 00 01 */ addi r21, r21, 1
/* 80371540 0036E4A0 7C 03 07 74 */ extsb r3, r0
/* 80371544 0036E4A4 48 01 B9 E1 */ bl tolower
/* 80371548 0036E4A8 7C 03 B0 00 */ cmpw r3, r22
/* 8037154C 0036E4AC 41 82 00 0C */ beq lbl_80371558
/* 80371550 0036E4B0 38 00 00 00 */ li r0, 0
/* 80371554 0036E4B4 48 00 00 30 */ b lbl_80371584
lbl_80371558:
/* 80371558 0036E4B8 88 14 00 00 */ lbz r0, 0(r20)
/* 8037155C 0036E4BC 7C 00 07 75 */ extsb. r0, r0
/* 80371560 0036E4C0 40 82 FF C4 */ bne lbl_80371524
/* 80371564 0036E4C4 88 75 00 00 */ lbz r3, 0(r21)
/* 80371568 0036E4C8 2C 03 00 2F */ cmpwi r3, 0x2f
/* 8037156C 0036E4CC 41 82 00 0C */ beq lbl_80371578
/* 80371570 0036E4D0 7C 60 07 75 */ extsb. r0, r3
/* 80371574 0036E4D4 40 82 00 0C */ bne lbl_80371580
lbl_80371578:
/* 80371578 0036E4D8 38 00 00 01 */ li r0, 1
/* 8037157C 0036E4DC 48 00 00 08 */ b lbl_80371584
lbl_80371580:
/* 80371580 0036E4E0 38 00 00 00 */ li r0, 0
lbl_80371584:
/* 80371584 0036E4E4 2C 00 00 01 */ cmpwi r0, 1
/* 80371588 0036E4E8 41 82 00 58 */ beq lbl_803715E0
lbl_8037158C:
/* 8037158C 0036E4EC 80 0D AB F4 */ lwz r0, lbl_805A97B4@sda21(r13)
/* 80371590 0036E4F0 7C 60 E2 14 */ add r3, r0, r28
/* 80371594 0036E4F4 80 03 00 00 */ lwz r0, 0(r3)
/* 80371598 0036E4F8 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 8037159C 0036E4FC 40 82 00 0C */ bne lbl_803715A8
/* 803715A0 0036E500 38 00 00 00 */ li r0, 0
/* 803715A4 0036E504 48 00 00 08 */ b lbl_803715AC
lbl_803715A8:
/* 803715A8 0036E508 38 00 00 01 */ li r0, 1
lbl_803715AC:
/* 803715AC 0036E50C 2C 00 00 00 */ cmpwi r0, 0
/* 803715B0 0036E510 41 82 00 0C */ beq lbl_803715BC
/* 803715B4 0036E514 80 03 00 08 */ lwz r0, 8(r3)
/* 803715B8 0036E518 48 00 00 08 */ b lbl_803715C0
lbl_803715BC:
/* 803715BC 0036E51C 38 1A 00 01 */ addi r0, r26, 1
lbl_803715C0:
/* 803715C0 0036E520 7C 1A 03 78 */ mr r26, r0
lbl_803715C4:
/* 803715C4 0036E524 80 6D AB F4 */ lwz r3, lbl_805A97B4@sda21(r13)
/* 803715C8 0036E528 38 03 00 08 */ addi r0, r3, 8
/* 803715CC 0036E52C 7C 1D 00 2E */ lwzx r0, r29, r0
/* 803715D0 0036E530 7C 1A 00 40 */ cmplw r26, r0
/* 803715D4 0036E534 41 80 FF 10 */ blt lbl_803714E4
/* 803715D8 0036E538 38 60 FF FF */ li r3, -1
/* 803715DC 0036E53C 48 00 00 20 */ b lbl_803715FC
lbl_803715E0:
/* 803715E0 0036E540 2C 1E 00 00 */ cmpwi r30, 0
/* 803715E4 0036E544 40 82 00 0C */ bne lbl_803715F0
/* 803715E8 0036E548 7F 43 D3 78 */ mr r3, r26
/* 803715EC 0036E54C 48 00 00 10 */ b lbl_803715FC
lbl_803715F0:
/* 803715F0 0036E550 7E FB BA 14 */ add r23, r27, r23
/* 803715F4 0036E554 3A F7 00 01 */ addi r23, r23, 1
/* 803715F8 0036E558 4B FF FD 48 */ b lbl_80371340
lbl_803715FC:
/* 803715FC 0036E55C BA 81 00 18 */ lmw r20, 0x18(r1)
/* 80371600 0036E560 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 80371604 0036E564 38 21 00 48 */ addi r1, r1, 0x48
/* 80371608 0036E568 7C 08 03 A6 */ mtlr r0
/* 8037160C 0036E56C 4E 80 00 20 */ blr
.global DVDFastOpen
DVDFastOpen:
/* 80371610 0036E570 2C 03 00 00 */ cmpwi r3, 0
/* 80371614 0036E574 41 80 00 38 */ blt lbl_8037164C
/* 80371618 0036E578 80 0D AB FC */ lwz r0, lbl_805A97BC@sda21(r13)
/* 8037161C 0036E57C 7C 03 00 40 */ cmplw r3, r0
/* 80371620 0036E580 40 80 00 2C */ bge lbl_8037164C
/* 80371624 0036E584 1C C3 00 0C */ mulli r6, r3, 0xc
/* 80371628 0036E588 80 6D AB F4 */ lwz r3, lbl_805A97B4@sda21(r13)
/* 8037162C 0036E58C 7C 03 30 2E */ lwzx r0, r3, r6
/* 80371630 0036E590 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 80371634 0036E594 40 82 00 0C */ bne lbl_80371640
/* 80371638 0036E598 38 00 00 00 */ li r0, 0
/* 8037163C 0036E59C 48 00 00 08 */ b lbl_80371644
lbl_80371640:
/* 80371640 0036E5A0 38 00 00 01 */ li r0, 1
lbl_80371644:
/* 80371644 0036E5A4 2C 00 00 00 */ cmpwi r0, 0
/* 80371648 0036E5A8 41 82 00 0C */ beq lbl_80371654
lbl_8037164C:
/* 8037164C 0036E5AC 38 60 00 00 */ li r3, 0
/* 80371650 0036E5B0 4E 80 00 20 */ blr
lbl_80371654:
/* 80371654 0036E5B4 7C 63 32 14 */ add r3, r3, r6
/* 80371658 0036E5B8 80 A3 00 04 */ lwz r5, 4(r3)
/* 8037165C 0036E5BC 38 00 00 00 */ li r0, 0
/* 80371660 0036E5C0 38 60 00 01 */ li r3, 1
/* 80371664 0036E5C4 90 A4 00 30 */ stw r5, 0x30(r4)
/* 80371668 0036E5C8 80 AD AB F4 */ lwz r5, lbl_805A97B4@sda21(r13)
/* 8037166C 0036E5CC 7C A5 32 14 */ add r5, r5, r6
/* 80371670 0036E5D0 80 A5 00 08 */ lwz r5, 8(r5)
/* 80371674 0036E5D4 90 A4 00 34 */ stw r5, 0x34(r4)
/* 80371678 0036E5D8 90 04 00 38 */ stw r0, 0x38(r4)
/* 8037167C 0036E5DC 90 04 00 0C */ stw r0, 0xc(r4)
/* 80371680 0036E5E0 4E 80 00 20 */ blr
.global DVDOpen
DVDOpen:
/* 80371684 0036E5E4 7C 08 02 A6 */ mflr r0
/* 80371688 0036E5E8 90 01 00 04 */ stw r0, 4(r1)
/* 8037168C 0036E5EC 94 21 FF 68 */ stwu r1, -0x98(r1)
/* 80371690 0036E5F0 93 E1 00 94 */ stw r31, 0x94(r1)
/* 80371694 0036E5F4 3B E4 00 00 */ addi r31, r4, 0
/* 80371698 0036E5F8 93 C1 00 90 */ stw r30, 0x90(r1)
/* 8037169C 0036E5FC 3B C3 00 00 */ addi r30, r3, 0
/* 803716A0 0036E600 4B FF FC 7D */ bl DVDConvertPathToEntrynum
/* 803716A4 0036E604 2C 03 00 00 */ cmpwi r3, 0
/* 803716A8 0036E608 40 80 00 30 */ bge lbl_803716D8
/* 803716AC 0036E60C 38 61 00 10 */ addi r3, r1, 0x10
/* 803716B0 0036E610 38 80 00 80 */ li r4, 0x80
/* 803716B4 0036E614 48 00 02 1D */ bl DVDGetCurrentDir
/* 803716B8 0036E618 3C 60 80 3F */ lis r3, lbl_803EFC58@ha
/* 803716BC 0036E61C 4C C6 31 82 */ crclr 6
/* 803716C0 0036E620 38 63 FC 58 */ addi r3, r3, lbl_803EFC58@l
/* 803716C4 0036E624 38 9E 00 00 */ addi r4, r30, 0
/* 803716C8 0036E628 38 A1 00 10 */ addi r5, r1, 0x10
/* 803716CC 0036E62C 48 00 E2 E1 */ bl OSReport
/* 803716D0 0036E630 38 60 00 00 */ li r3, 0
/* 803716D4 0036E634 48 00 00 60 */ b lbl_80371734
lbl_803716D8:
/* 803716D8 0036E638 1C A3 00 0C */ mulli r5, r3, 0xc
/* 803716DC 0036E63C 80 6D AB F4 */ lwz r3, lbl_805A97B4@sda21(r13)
/* 803716E0 0036E640 7C 03 28 2E */ lwzx r0, r3, r5
/* 803716E4 0036E644 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 803716E8 0036E648 40 82 00 0C */ bne lbl_803716F4
/* 803716EC 0036E64C 38 00 00 00 */ li r0, 0
/* 803716F0 0036E650 48 00 00 08 */ b lbl_803716F8
lbl_803716F4:
/* 803716F4 0036E654 38 00 00 01 */ li r0, 1
lbl_803716F8:
/* 803716F8 0036E658 2C 00 00 00 */ cmpwi r0, 0
/* 803716FC 0036E65C 41 82 00 0C */ beq lbl_80371708
/* 80371700 0036E660 38 60 00 00 */ li r3, 0
/* 80371704 0036E664 48 00 00 30 */ b lbl_80371734
lbl_80371708:
/* 80371708 0036E668 7C 63 2A 14 */ add r3, r3, r5
/* 8037170C 0036E66C 80 83 00 04 */ lwz r4, 4(r3)
/* 80371710 0036E670 38 00 00 00 */ li r0, 0
/* 80371714 0036E674 38 60 00 01 */ li r3, 1
/* 80371718 0036E678 90 9F 00 30 */ stw r4, 0x30(r31)
/* 8037171C 0036E67C 80 8D AB F4 */ lwz r4, lbl_805A97B4@sda21(r13)
/* 80371720 0036E680 7C 84 2A 14 */ add r4, r4, r5
/* 80371724 0036E684 80 84 00 08 */ lwz r4, 8(r4)
/* 80371728 0036E688 90 9F 00 34 */ stw r4, 0x34(r31)
/* 8037172C 0036E68C 90 1F 00 38 */ stw r0, 0x38(r31)
/* 80371730 0036E690 90 1F 00 0C */ stw r0, 0xc(r31)
lbl_80371734:
/* 80371734 0036E694 80 01 00 9C */ lwz r0, 0x9c(r1)
/* 80371738 0036E698 83 E1 00 94 */ lwz r31, 0x94(r1)
/* 8037173C 0036E69C 83 C1 00 90 */ lwz r30, 0x90(r1)
/* 80371740 0036E6A0 38 21 00 98 */ addi r1, r1, 0x98
/* 80371744 0036E6A4 7C 08 03 A6 */ mtlr r0
/* 80371748 0036E6A8 4E 80 00 20 */ blr
.global DVDClose
DVDClose:
/* 8037174C 0036E6AC 7C 08 02 A6 */ mflr r0
/* 80371750 0036E6B0 90 01 00 04 */ stw r0, 4(r1)
/* 80371754 0036E6B4 94 21 FF F8 */ stwu r1, -8(r1)
/* 80371758 0036E6B8 48 00 2D 25 */ bl DVDCancel
/* 8037175C 0036E6BC 38 60 00 01 */ li r3, 1
/* 80371760 0036E6C0 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80371764 0036E6C4 38 21 00 08 */ addi r1, r1, 8
/* 80371768 0036E6C8 7C 08 03 A6 */ mtlr r0
/* 8037176C 0036E6CC 4E 80 00 20 */ blr
.global entryToPath
entryToPath:
/* 80371770 0036E6D0 7C 08 02 A6 */ mflr r0
/* 80371774 0036E6D4 28 03 00 00 */ cmplwi r3, 0
/* 80371778 0036E6D8 90 01 00 04 */ stw r0, 4(r1)
/* 8037177C 0036E6DC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80371780 0036E6E0 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80371784 0036E6E4 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80371788 0036E6E8 3B C5 00 00 */ addi r30, r5, 0
/* 8037178C 0036E6EC 93 A1 00 24 */ stw r29, 0x24(r1)
/* 80371790 0036E6F0 3B A4 00 00 */ addi r29, r4, 0
/* 80371794 0036E6F4 93 81 00 20 */ stw r28, 0x20(r1)
/* 80371798 0036E6F8 40 82 00 0C */ bne lbl_803717A4
/* 8037179C 0036E6FC 38 60 00 00 */ li r3, 0
/* 803717A0 0036E700 48 00 01 10 */ b lbl_803718B0
lbl_803717A4:
/* 803717A4 0036E704 80 8D AB F4 */ lwz r4, lbl_805A97B4@sda21(r13)
/* 803717A8 0036E708 1C 63 00 0C */ mulli r3, r3, 0xc
/* 803717AC 0036E70C 80 CD AB F8 */ lwz r6, lbl_805A97B8@sda21(r13)
/* 803717B0 0036E710 38 A4 00 04 */ addi r5, r4, 4
/* 803717B4 0036E714 7C 04 18 2E */ lwzx r0, r4, r3
/* 803717B8 0036E718 7C 65 18 2E */ lwzx r3, r5, r3
/* 803717BC 0036E71C 54 00 02 3E */ clrlwi r0, r0, 8
/* 803717C0 0036E720 28 03 00 00 */ cmplwi r3, 0
/* 803717C4 0036E724 7F E6 02 14 */ add r31, r6, r0
/* 803717C8 0036E728 40 82 00 0C */ bne lbl_803717D4
/* 803717CC 0036E72C 38 60 00 00 */ li r3, 0
/* 803717D0 0036E730 48 00 00 80 */ b lbl_80371850
lbl_803717D4:
/* 803717D4 0036E734 1C 63 00 0C */ mulli r3, r3, 0xc
/* 803717D8 0036E738 7C 04 18 2E */ lwzx r0, r4, r3
/* 803717DC 0036E73C 7F A4 EB 78 */ mr r4, r29
/* 803717E0 0036E740 7C 65 18 2E */ lwzx r3, r5, r3
/* 803717E4 0036E744 38 BE 00 00 */ addi r5, r30, 0
/* 803717E8 0036E748 54 00 02 3E */ clrlwi r0, r0, 8
/* 803717EC 0036E74C 7F 86 02 14 */ add r28, r6, r0
/* 803717F0 0036E750 4B FF FF 81 */ bl entryToPath
/* 803717F4 0036E754 7C 03 F0 40 */ cmplw r3, r30
/* 803717F8 0036E758 40 82 00 08 */ bne lbl_80371800
/* 803717FC 0036E75C 48 00 00 54 */ b lbl_80371850
lbl_80371800:
/* 80371800 0036E760 38 03 00 00 */ addi r0, r3, 0
/* 80371804 0036E764 38 63 00 01 */ addi r3, r3, 1
/* 80371808 0036E768 38 80 00 2F */ li r4, 0x2f
/* 8037180C 0036E76C 7C C3 F0 50 */ subf r6, r3, r30
/* 80371810 0036E770 7C 9D 01 AE */ stbx r4, r29, r0
/* 80371814 0036E774 38 86 00 00 */ addi r4, r6, 0
/* 80371818 0036E778 7C BD 1A 14 */ add r5, r29, r3
/* 8037181C 0036E77C 48 00 00 18 */ b lbl_80371834
lbl_80371820:
/* 80371820 0036E780 88 1C 00 00 */ lbz r0, 0(r28)
/* 80371824 0036E784 3B 9C 00 01 */ addi r28, r28, 1
/* 80371828 0036E788 38 84 FF FF */ addi r4, r4, -1
/* 8037182C 0036E78C 98 05 00 00 */ stb r0, 0(r5)
/* 80371830 0036E790 38 A5 00 01 */ addi r5, r5, 1
lbl_80371834:
/* 80371834 0036E794 28 04 00 00 */ cmplwi r4, 0
/* 80371838 0036E798 41 82 00 10 */ beq lbl_80371848
/* 8037183C 0036E79C 88 1C 00 00 */ lbz r0, 0(r28)
/* 80371840 0036E7A0 7C 00 07 75 */ extsb. r0, r0
/* 80371844 0036E7A4 40 82 FF DC */ bne lbl_80371820
lbl_80371848:
/* 80371848 0036E7A8 7C 04 30 50 */ subf r0, r4, r6
/* 8037184C 0036E7AC 7C 63 02 14 */ add r3, r3, r0
lbl_80371850:
/* 80371850 0036E7B0 7C 03 F0 40 */ cmplw r3, r30
/* 80371854 0036E7B4 40 82 00 08 */ bne lbl_8037185C
/* 80371858 0036E7B8 48 00 00 58 */ b lbl_803718B0
lbl_8037185C:
/* 8037185C 0036E7BC 38 03 00 00 */ addi r0, r3, 0
/* 80371860 0036E7C0 38 63 00 01 */ addi r3, r3, 1
/* 80371864 0036E7C4 38 80 00 2F */ li r4, 0x2f
/* 80371868 0036E7C8 7C E3 F0 50 */ subf r7, r3, r30
/* 8037186C 0036E7CC 7C 9D 01 AE */ stbx r4, r29, r0
/* 80371870 0036E7D0 38 DF 00 00 */ addi r6, r31, 0
/* 80371874 0036E7D4 38 87 00 00 */ addi r4, r7, 0
/* 80371878 0036E7D8 7C BD 1A 14 */ add r5, r29, r3
/* 8037187C 0036E7DC 48 00 00 18 */ b lbl_80371894
lbl_80371880:
/* 80371880 0036E7E0 88 06 00 00 */ lbz r0, 0(r6)
/* 80371884 0036E7E4 38 C6 00 01 */ addi r6, r6, 1
/* 80371888 0036E7E8 38 84 FF FF */ addi r4, r4, -1
/* 8037188C 0036E7EC 98 05 00 00 */ stb r0, 0(r5)
/* 80371890 0036E7F0 38 A5 00 01 */ addi r5, r5, 1
lbl_80371894:
/* 80371894 0036E7F4 28 04 00 00 */ cmplwi r4, 0
/* 80371898 0036E7F8 41 82 00 10 */ beq lbl_803718A8
/* 8037189C 0036E7FC 88 06 00 00 */ lbz r0, 0(r6)
/* 803718A0 0036E800 7C 00 07 75 */ extsb. r0, r0
/* 803718A4 0036E804 40 82 FF DC */ bne lbl_80371880
lbl_803718A8:
/* 803718A8 0036E808 7C 04 38 50 */ subf r0, r4, r7
/* 803718AC 0036E80C 7C 63 02 14 */ add r3, r3, r0
lbl_803718B0:
/* 803718B0 0036E810 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803718B4 0036E814 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 803718B8 0036E818 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 803718BC 0036E81C 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 803718C0 0036E820 83 81 00 20 */ lwz r28, 0x20(r1)
/* 803718C4 0036E824 38 21 00 30 */ addi r1, r1, 0x30
/* 803718C8 0036E828 7C 08 03 A6 */ mtlr r0
/* 803718CC 0036E82C 4E 80 00 20 */ blr
.global DVDGetCurrentDir
DVDGetCurrentDir:
/* 803718D0 0036E830 7C 08 02 A6 */ mflr r0
/* 803718D4 0036E834 90 01 00 04 */ stw r0, 4(r1)
/* 803718D8 0036E838 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803718DC 0036E83C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803718E0 0036E840 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803718E4 0036E844 3B C4 00 00 */ addi r30, r4, 0
/* 803718E8 0036E848 38 BE 00 00 */ addi r5, r30, 0
/* 803718EC 0036E84C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803718F0 0036E850 3B A3 00 00 */ addi r29, r3, 0
/* 803718F4 0036E854 38 9D 00 00 */ addi r4, r29, 0
/* 803718F8 0036E858 83 ED AC 00 */ lwz r31, lbl_805A97C0@sda21(r13)
/* 803718FC 0036E85C 38 7F 00 00 */ addi r3, r31, 0
/* 80371900 0036E860 4B FF FE 71 */ bl entryToPath
/* 80371904 0036E864 7C 03 F0 40 */ cmplw r3, r30
/* 80371908 0036E868 40 82 00 14 */ bne lbl_8037191C
/* 8037190C 0036E86C 38 00 00 00 */ li r0, 0
/* 80371910 0036E870 7C 7D F2 14 */ add r3, r29, r30
/* 80371914 0036E874 98 03 FF FF */ stb r0, -1(r3)
/* 80371918 0036E878 48 00 00 5C */ b lbl_80371974
lbl_8037191C:
/* 8037191C 0036E87C 1C 1F 00 0C */ mulli r0, r31, 0xc
/* 80371920 0036E880 80 8D AB F4 */ lwz r4, lbl_805A97B4@sda21(r13)
/* 80371924 0036E884 7C 04 00 2E */ lwzx r0, r4, r0
/* 80371928 0036E888 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 8037192C 0036E88C 40 82 00 0C */ bne lbl_80371938
/* 80371930 0036E890 38 00 00 00 */ li r0, 0
/* 80371934 0036E894 48 00 00 08 */ b lbl_8037193C
lbl_80371938:
/* 80371938 0036E898 38 00 00 01 */ li r0, 1
lbl_8037193C:
/* 8037193C 0036E89C 2C 00 00 00 */ cmpwi r0, 0
/* 80371940 0036E8A0 41 82 00 28 */ beq lbl_80371968
/* 80371944 0036E8A4 38 1E FF FF */ addi r0, r30, -1
/* 80371948 0036E8A8 7C 03 00 40 */ cmplw r3, r0
/* 8037194C 0036E8AC 40 82 00 10 */ bne lbl_8037195C
/* 80371950 0036E8B0 38 00 00 00 */ li r0, 0
/* 80371954 0036E8B4 7C 1D 19 AE */ stbx r0, r29, r3
/* 80371958 0036E8B8 48 00 00 1C */ b lbl_80371974
lbl_8037195C:
/* 8037195C 0036E8BC 38 00 00 2F */ li r0, 0x2f
/* 80371960 0036E8C0 7C 1D 19 AE */ stbx r0, r29, r3
/* 80371964 0036E8C4 38 63 00 01 */ addi r3, r3, 1
lbl_80371968:
/* 80371968 0036E8C8 38 00 00 00 */ li r0, 0
/* 8037196C 0036E8CC 7C 1D 19 AE */ stbx r0, r29, r3
/* 80371970 0036E8D0 38 00 00 01 */ li r0, 1
lbl_80371974:
/* 80371974 0036E8D4 7C 03 03 78 */ mr r3, r0
/* 80371978 0036E8D8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8037197C 0036E8DC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80371980 0036E8E0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80371984 0036E8E4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80371988 0036E8E8 38 21 00 20 */ addi r1, r1, 0x20
/* 8037198C 0036E8EC 7C 08 03 A6 */ mtlr r0
/* 80371990 0036E8F0 4E 80 00 20 */ blr
.global DVDReadAsyncPrio
DVDReadAsyncPrio:
/* 80371994 0036E8F4 7C 08 02 A6 */ mflr r0
/* 80371998 0036E8F8 90 01 00 04 */ stw r0, 4(r1)
/* 8037199C 0036E8FC 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 803719A0 0036E900 BF 41 00 20 */ stmw r26, 0x20(r1)
/* 803719A4 0036E904 7C DD 33 79 */ or. r29, r6, r6
/* 803719A8 0036E908 3B 43 00 00 */ addi r26, r3, 0
/* 803719AC 0036E90C 3B 64 00 00 */ addi r27, r4, 0
/* 803719B0 0036E910 3B 85 00 00 */ addi r28, r5, 0
/* 803719B4 0036E914 3B C7 00 00 */ addi r30, r7, 0
/* 803719B8 0036E918 3B E8 00 00 */ addi r31, r8, 0
/* 803719BC 0036E91C 41 80 00 10 */ blt lbl_803719CC
/* 803719C0 0036E920 80 1A 00 34 */ lwz r0, 0x34(r26)
/* 803719C4 0036E924 7C 1D 00 40 */ cmplw r29, r0
/* 803719C8 0036E928 41 80 00 1C */ blt lbl_803719E4
lbl_803719CC:
/* 803719CC 0036E92C 3C 60 80 3F */ lis r3, lbl_803EFC90@ha
/* 803719D0 0036E930 4C C6 31 82 */ crclr 6
/* 803719D4 0036E934 38 A3 FC 90 */ addi r5, r3, lbl_803EFC90@l
/* 803719D8 0036E938 38 6D 9E D0 */ addi r3, r13, lbl_805A8A90@sda21
/* 803719DC 0036E93C 38 80 02 E6 */ li r4, 0x2e6
/* 803719E0 0036E940 48 00 E0 4D */ bl OSPanic
lbl_803719E4:
/* 803719E4 0036E944 7C 9D E2 15 */ add. r4, r29, r28
/* 803719E8 0036E948 41 80 00 14 */ blt lbl_803719FC
/* 803719EC 0036E94C 80 7A 00 34 */ lwz r3, 0x34(r26)
/* 803719F0 0036E950 38 03 00 20 */ addi r0, r3, 0x20
/* 803719F4 0036E954 7C 04 00 40 */ cmplw r4, r0
/* 803719F8 0036E958 41 80 00 1C */ blt lbl_80371A14
lbl_803719FC:
/* 803719FC 0036E95C 3C 60 80 3F */ lis r3, lbl_803EFC90@ha
/* 80371A00 0036E960 4C C6 31 82 */ crclr 6
/* 80371A04 0036E964 38 A3 FC 90 */ addi r5, r3, lbl_803EFC90@l
/* 80371A08 0036E968 38 6D 9E D0 */ addi r3, r13, lbl_805A8A90@sda21
/* 80371A0C 0036E96C 38 80 02 EC */ li r4, 0x2ec
/* 80371A10 0036E970 48 00 E0 1D */ bl OSPanic
lbl_80371A14:
/* 80371A14 0036E974 93 DA 00 38 */ stw r30, 0x38(r26)
/* 80371A18 0036E978 3C 60 80 37 */ lis r3, cbForReadAsync@ha
/* 80371A1C 0036E97C 38 E3 1A 54 */ addi r7, r3, cbForReadAsync@l
/* 80371A20 0036E980 80 1A 00 30 */ lwz r0, 0x30(r26)
/* 80371A24 0036E984 38 7A 00 00 */ addi r3, r26, 0
/* 80371A28 0036E988 38 9B 00 00 */ addi r4, r27, 0
/* 80371A2C 0036E98C 38 BC 00 00 */ addi r5, r28, 0
/* 80371A30 0036E990 39 1F 00 00 */ addi r8, r31, 0
/* 80371A34 0036E994 7C C0 EA 14 */ add r6, r0, r29
/* 80371A38 0036E998 48 00 1E BD */ bl DVDReadAbsAsyncPrio
/* 80371A3C 0036E99C BB 41 00 20 */ lmw r26, 0x20(r1)
/* 80371A40 0036E9A0 38 60 00 01 */ li r3, 1
/* 80371A44 0036E9A4 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80371A48 0036E9A8 38 21 00 38 */ addi r1, r1, 0x38
/* 80371A4C 0036E9AC 7C 08 03 A6 */ mtlr r0
/* 80371A50 0036E9B0 4E 80 00 20 */ blr
.global cbForReadAsync
cbForReadAsync:
/* 80371A54 0036E9B4 7C 08 02 A6 */ mflr r0
/* 80371A58 0036E9B8 90 01 00 04 */ stw r0, 4(r1)
/* 80371A5C 0036E9BC 94 21 FF F8 */ stwu r1, -8(r1)
/* 80371A60 0036E9C0 81 84 00 38 */ lwz r12, 0x38(r4)
/* 80371A64 0036E9C4 28 0C 00 00 */ cmplwi r12, 0
/* 80371A68 0036E9C8 41 82 00 0C */ beq lbl_80371A74
/* 80371A6C 0036E9CC 7D 88 03 A6 */ mtlr r12
/* 80371A70 0036E9D0 4E 80 00 21 */ blrl
lbl_80371A74:
/* 80371A74 0036E9D4 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80371A78 0036E9D8 38 21 00 08 */ addi r1, r1, 8
/* 80371A7C 0036E9DC 7C 08 03 A6 */ mtlr r0
/* 80371A80 0036E9E0 4E 80 00 20 */ blr
.global DVDPrepareStreamAsync
DVDPrepareStreamAsync:
/* 80371A84 0036E9E4 7C 08 02 A6 */ mflr r0
/* 80371A88 0036E9E8 90 01 00 04 */ stw r0, 4(r1)
/* 80371A8C 0036E9EC 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 80371A90 0036E9F0 BF 61 00 24 */ stmw r27, 0x24(r1)
/* 80371A94 0036E9F4 3B A5 00 00 */ addi r29, r5, 0
/* 80371A98 0036E9F8 7C 7B 1B 78 */ mr r27, r3
/* 80371A9C 0036E9FC 3B 84 00 00 */ addi r28, r4, 0
/* 80371AA0 0036EA00 3B C6 00 00 */ addi r30, r6, 0
/* 80371AA4 0036EA04 80 E3 00 30 */ lwz r7, 0x30(r3)
/* 80371AA8 0036EA08 3C 60 80 3F */ lis r3, lbl_803EFB90@ha
/* 80371AAC 0036EA0C 3B E3 FB 90 */ addi r31, r3, lbl_803EFB90@l
/* 80371AB0 0036EA10 7C 07 EA 14 */ add r0, r7, r29
/* 80371AB4 0036EA14 54 00 04 7F */ clrlwi. r0, r0, 0x11
/* 80371AB8 0036EA18 41 82 00 20 */ beq lbl_80371AD8
/* 80371ABC 0036EA1C 38 C7 00 00 */ addi r6, r7, 0
/* 80371AC0 0036EA20 4C C6 31 82 */ crclr 6
/* 80371AC4 0036EA24 38 FD 00 00 */ addi r7, r29, 0
/* 80371AC8 0036EA28 38 BF 01 C8 */ addi r5, r31, 0x1c8
/* 80371ACC 0036EA2C 38 6D 9E D0 */ addi r3, r13, lbl_805A8A90@sda21
/* 80371AD0 0036EA30 38 80 04 A5 */ li r4, 0x4a5
/* 80371AD4 0036EA34 48 00 DF 59 */ bl OSPanic
lbl_80371AD8:
/* 80371AD8 0036EA38 28 1C 00 00 */ cmplwi r28, 0
/* 80371ADC 0036EA3C 40 82 00 0C */ bne lbl_80371AE8
/* 80371AE0 0036EA40 80 1B 00 34 */ lwz r0, 0x34(r27)
/* 80371AE4 0036EA44 7F 9D 00 50 */ subf r28, r29, r0
lbl_80371AE8:
/* 80371AE8 0036EA48 57 80 04 7F */ clrlwi. r0, r28, 0x11
/* 80371AEC 0036EA4C 41 82 00 1C */ beq lbl_80371B08
/* 80371AF0 0036EA50 38 DC 00 00 */ addi r6, r28, 0
/* 80371AF4 0036EA54 4C C6 31 82 */ crclr 6
/* 80371AF8 0036EA58 38 BF 02 30 */ addi r5, r31, 0x230
/* 80371AFC 0036EA5C 38 6D 9E D0 */ addi r3, r13, lbl_805A8A90@sda21
/* 80371B00 0036EA60 38 80 04 AF */ li r4, 0x4af
/* 80371B04 0036EA64 48 00 DF 29 */ bl OSPanic
lbl_80371B08:
/* 80371B08 0036EA68 80 7B 00 34 */ lwz r3, 0x34(r27)
/* 80371B0C 0036EA6C 7C 1D 18 40 */ cmplw r29, r3
/* 80371B10 0036EA70 40 80 00 10 */ bge lbl_80371B20
/* 80371B14 0036EA74 7C 1D E2 14 */ add r0, r29, r28
/* 80371B18 0036EA78 7C 00 18 40 */ cmplw r0, r3
/* 80371B1C 0036EA7C 40 81 00 20 */ ble lbl_80371B3C
lbl_80371B20:
/* 80371B20 0036EA80 38 DD 00 00 */ addi r6, r29, 0
/* 80371B24 0036EA84 4C C6 31 82 */ crclr 6
/* 80371B28 0036EA88 38 FC 00 00 */ addi r7, r28, 0
/* 80371B2C 0036EA8C 38 BF 02 88 */ addi r5, r31, 0x288
/* 80371B30 0036EA90 38 6D 9E D0 */ addi r3, r13, lbl_805A8A90@sda21
/* 80371B34 0036EA94 38 80 04 B7 */ li r4, 0x4b7
/* 80371B38 0036EA98 48 00 DE F5 */ bl OSPanic
lbl_80371B3C:
/* 80371B3C 0036EA9C 93 DB 00 38 */ stw r30, 0x38(r27)
/* 80371B40 0036EAA0 3C 60 80 37 */ lis r3, cbForPrepareStreamAsync@ha
/* 80371B44 0036EAA4 38 C3 1B 70 */ addi r6, r3, cbForPrepareStreamAsync@l
/* 80371B48 0036EAA8 80 1B 00 30 */ lwz r0, 0x30(r27)
/* 80371B4C 0036EAAC 38 7B 00 00 */ addi r3, r27, 0
/* 80371B50 0036EAB0 38 9C 00 00 */ addi r4, r28, 0
/* 80371B54 0036EAB4 7C A0 EA 14 */ add r5, r0, r29
/* 80371B58 0036EAB8 48 00 20 1D */ bl sub_80373b74
/* 80371B5C 0036EABC BB 61 00 24 */ lmw r27, 0x24(r1)
/* 80371B60 0036EAC0 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80371B64 0036EAC4 38 21 00 38 */ addi r1, r1, 0x38
/* 80371B68 0036EAC8 7C 08 03 A6 */ mtlr r0
/* 80371B6C 0036EACC 4E 80 00 20 */ blr
.global cbForPrepareStreamAsync
cbForPrepareStreamAsync:
/* 80371B70 0036EAD0 7C 08 02 A6 */ mflr r0
/* 80371B74 0036EAD4 90 01 00 04 */ stw r0, 4(r1)
/* 80371B78 0036EAD8 94 21 FF F8 */ stwu r1, -8(r1)
/* 80371B7C 0036EADC 81 84 00 38 */ lwz r12, 0x38(r4)
/* 80371B80 0036EAE0 28 0C 00 00 */ cmplwi r12, 0
/* 80371B84 0036EAE4 41 82 00 0C */ beq lbl_80371B90
/* 80371B88 0036EAE8 7D 88 03 A6 */ mtlr r12
/* 80371B8C 0036EAEC 4E 80 00 21 */ blrl
lbl_80371B90:
/* 80371B90 0036EAF0 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80371B94 0036EAF4 38 21 00 08 */ addi r1, r1, 8
/* 80371B98 0036EAF8 7C 08 03 A6 */ mtlr r0
/* 80371B9C 0036EAFC 4E 80 00 20 */ blr
.global nullsub_62
nullsub_62:
/* 80371BA0 0036EB00 4E 80 00 20 */ blr

View File

@ -0,0 +1,74 @@
.include "macros.inc"
.section .text, "ax"
.global DVDCompareDiskID
DVDCompareDiskID:
/* 80374C48 00371BA8 7C 08 02 A6 */ mflr r0
/* 80374C4C 00371BAC 90 01 00 04 */ stw r0, 4(r1)
/* 80374C50 00371BB0 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80374C54 00371BB4 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80374C58 00371BB8 3B E4 00 00 */ addi r31, r4, 0
/* 80374C5C 00371BBC 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80374C60 00371BC0 7C 7E 1B 78 */ mr r30, r3
/* 80374C64 00371BC4 88 03 00 00 */ lbz r0, 0(r3)
/* 80374C68 00371BC8 7C 00 07 75 */ extsb. r0, r0
/* 80374C6C 00371BCC 41 82 00 30 */ beq lbl_80374C9C
/* 80374C70 00371BD0 88 1F 00 00 */ lbz r0, 0(r31)
/* 80374C74 00371BD4 7C 00 07 75 */ extsb. r0, r0
/* 80374C78 00371BD8 41 82 00 24 */ beq lbl_80374C9C
/* 80374C7C 00371BDC 38 7E 00 00 */ addi r3, r30, 0
/* 80374C80 00371BE0 38 9F 00 00 */ addi r4, r31, 0
/* 80374C84 00371BE4 38 A0 00 04 */ li r5, 4
/* 80374C88 00371BE8 48 01 B2 D5 */ bl strncmp
/* 80374C8C 00371BEC 2C 03 00 00 */ cmpwi r3, 0
/* 80374C90 00371BF0 41 82 00 0C */ beq lbl_80374C9C
/* 80374C94 00371BF4 38 60 00 00 */ li r3, 0
/* 80374C98 00371BF8 48 00 00 90 */ b lbl_80374D28
lbl_80374C9C:
/* 80374C9C 00371BFC 88 1E 00 04 */ lbz r0, 4(r30)
/* 80374CA0 00371C00 7C 00 07 75 */ extsb. r0, r0
/* 80374CA4 00371C04 41 82 00 28 */ beq lbl_80374CCC
/* 80374CA8 00371C08 88 1F 00 04 */ lbz r0, 4(r31)
/* 80374CAC 00371C0C 7C 00 07 75 */ extsb. r0, r0
/* 80374CB0 00371C10 41 82 00 1C */ beq lbl_80374CCC
/* 80374CB4 00371C14 38 7E 00 04 */ addi r3, r30, 4
/* 80374CB8 00371C18 38 9F 00 04 */ addi r4, r31, 4
/* 80374CBC 00371C1C 38 A0 00 02 */ li r5, 2
/* 80374CC0 00371C20 48 01 B2 9D */ bl strncmp
/* 80374CC4 00371C24 2C 03 00 00 */ cmpwi r3, 0
/* 80374CC8 00371C28 41 82 00 0C */ beq lbl_80374CD4
lbl_80374CCC:
/* 80374CCC 00371C2C 38 60 00 00 */ li r3, 0
/* 80374CD0 00371C30 48 00 00 58 */ b lbl_80374D28
lbl_80374CD4:
/* 80374CD4 00371C34 88 7E 00 06 */ lbz r3, 6(r30)
/* 80374CD8 00371C38 28 03 00 FF */ cmplwi r3, 0xff
/* 80374CDC 00371C3C 41 82 00 20 */ beq lbl_80374CFC
/* 80374CE0 00371C40 88 1F 00 06 */ lbz r0, 6(r31)
/* 80374CE4 00371C44 28 00 00 FF */ cmplwi r0, 0xff
/* 80374CE8 00371C48 41 82 00 14 */ beq lbl_80374CFC
/* 80374CEC 00371C4C 7C 03 00 40 */ cmplw r3, r0
/* 80374CF0 00371C50 41 82 00 0C */ beq lbl_80374CFC
/* 80374CF4 00371C54 38 60 00 00 */ li r3, 0
/* 80374CF8 00371C58 48 00 00 30 */ b lbl_80374D28
lbl_80374CFC:
/* 80374CFC 00371C5C 88 7E 00 07 */ lbz r3, 7(r30)
/* 80374D00 00371C60 28 03 00 FF */ cmplwi r3, 0xff
/* 80374D04 00371C64 41 82 00 20 */ beq lbl_80374D24
/* 80374D08 00371C68 88 1F 00 07 */ lbz r0, 7(r31)
/* 80374D0C 00371C6C 28 00 00 FF */ cmplwi r0, 0xff
/* 80374D10 00371C70 41 82 00 14 */ beq lbl_80374D24
/* 80374D14 00371C74 7C 03 00 40 */ cmplw r3, r0
/* 80374D18 00371C78 41 82 00 0C */ beq lbl_80374D24
/* 80374D1C 00371C7C 38 60 00 00 */ li r3, 0
/* 80374D20 00371C80 48 00 00 08 */ b lbl_80374D28
lbl_80374D24:
/* 80374D24 00371C84 38 60 00 01 */ li r3, 1
lbl_80374D28:
/* 80374D28 00371C88 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80374D2C 00371C8C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80374D30 00371C90 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80374D34 00371C94 38 21 00 18 */ addi r1, r1, 0x18
/* 80374D38 00371C98 7C 08 03 A6 */ mtlr r0
/* 80374D3C 00371C9C 4E 80 00 20 */ blr

1018
asm/Dolphin/DVD/dvdlow.s Normal file

File diff suppressed because it is too large Load Diff

153
asm/Dolphin/DVD/dvdqueue.s Normal file
View File

@ -0,0 +1,153 @@
.include "macros.inc"
.section .text, "ax"
.global __DVDClearWaitingQueue
__DVDClearWaitingQueue:
/* 803748B8 00371818 3C 60 80 54 */ lis r3, lbl_80540BF8@ha
/* 803748BC 0037181C 38 63 0B F8 */ addi r3, r3, lbl_80540BF8@l
/* 803748C0 00371820 90 63 00 00 */ stw r3, 0(r3)
/* 803748C4 00371824 38 A3 00 08 */ addi r5, r3, 8
/* 803748C8 00371828 38 83 00 10 */ addi r4, r3, 0x10
/* 803748CC 0037182C 90 63 00 04 */ stw r3, 4(r3)
/* 803748D0 00371830 38 63 00 18 */ addi r3, r3, 0x18
/* 803748D4 00371834 90 A5 00 00 */ stw r5, 0(r5)
/* 803748D8 00371838 90 A5 00 04 */ stw r5, 4(r5)
/* 803748DC 0037183C 90 84 00 00 */ stw r4, 0(r4)
/* 803748E0 00371840 90 84 00 04 */ stw r4, 4(r4)
/* 803748E4 00371844 90 63 00 00 */ stw r3, 0(r3)
/* 803748E8 00371848 90 63 00 04 */ stw r3, 4(r3)
/* 803748EC 0037184C 4E 80 00 20 */ blr
.global __DVDPushWaitingQueue
__DVDPushWaitingQueue:
/* 803748F0 00371850 7C 08 02 A6 */ mflr r0
/* 803748F4 00371854 90 01 00 04 */ stw r0, 4(r1)
/* 803748F8 00371858 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803748FC 0037185C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80374900 00371860 3B E4 00 00 */ addi r31, r4, 0
/* 80374904 00371864 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80374908 00371868 3B C3 00 00 */ addi r30, r3, 0
/* 8037490C 0037186C 48 00 CD 55 */ bl OSDisableInterrupts
/* 80374910 00371870 3C 80 80 54 */ lis r4, lbl_80540BF8@ha
/* 80374914 00371874 57 C5 18 38 */ slwi r5, r30, 3
/* 80374918 00371878 38 04 0B F8 */ addi r0, r4, lbl_80540BF8@l
/* 8037491C 0037187C 7C A0 2A 14 */ add r5, r0, r5
/* 80374920 00371880 80 85 00 04 */ lwz r4, 4(r5)
/* 80374924 00371884 93 E4 00 00 */ stw r31, 0(r4)
/* 80374928 00371888 80 05 00 04 */ lwz r0, 4(r5)
/* 8037492C 0037188C 90 1F 00 04 */ stw r0, 4(r31)
/* 80374930 00371890 90 BF 00 00 */ stw r5, 0(r31)
/* 80374934 00371894 93 E5 00 04 */ stw r31, 4(r5)
/* 80374938 00371898 48 00 CD 51 */ bl OSRestoreInterrupts
/* 8037493C 0037189C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80374940 003718A0 38 60 00 01 */ li r3, 1
/* 80374944 003718A4 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80374948 003718A8 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8037494C 003718AC 38 21 00 18 */ addi r1, r1, 0x18
/* 80374950 003718B0 7C 08 03 A6 */ mtlr r0
/* 80374954 003718B4 4E 80 00 20 */ blr
.global __DVDPopWaitingQueue
__DVDPopWaitingQueue:
/* 80374958 003718B8 7C 08 02 A6 */ mflr r0
/* 8037495C 003718BC 90 01 00 04 */ stw r0, 4(r1)
/* 80374960 003718C0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80374964 003718C4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80374968 003718C8 48 00 CC F9 */ bl OSDisableInterrupts
/* 8037496C 003718CC 38 00 00 04 */ li r0, 4
/* 80374970 003718D0 3C 80 80 54 */ lis r4, lbl_80540BF8@ha
/* 80374974 003718D4 7C 09 03 A6 */ mtctr r0
/* 80374978 003718D8 38 84 0B F8 */ addi r4, r4, lbl_80540BF8@l
/* 8037497C 003718DC 3B E0 00 00 */ li r31, 0
lbl_80374980:
/* 80374980 003718E0 80 04 00 00 */ lwz r0, 0(r4)
/* 80374984 003718E4 7C 00 20 40 */ cmplw r0, r4
/* 80374988 003718E8 41 82 00 48 */ beq lbl_803749D0
/* 8037498C 003718EC 48 00 CC FD */ bl OSRestoreInterrupts
/* 80374990 003718F0 48 00 CC D1 */ bl OSDisableInterrupts
/* 80374994 003718F4 3C 80 80 54 */ lis r4, lbl_80540BF8@ha
/* 80374998 003718F8 57 E5 18 38 */ slwi r5, r31, 3
/* 8037499C 003718FC 38 04 0B F8 */ addi r0, r4, lbl_80540BF8@l
/* 803749A0 00371900 7C A0 2A 14 */ add r5, r0, r5
/* 803749A4 00371904 83 E5 00 00 */ lwz r31, 0(r5)
/* 803749A8 00371908 80 1F 00 00 */ lwz r0, 0(r31)
/* 803749AC 0037190C 90 05 00 00 */ stw r0, 0(r5)
/* 803749B0 00371910 80 9F 00 00 */ lwz r4, 0(r31)
/* 803749B4 00371914 90 A4 00 04 */ stw r5, 4(r4)
/* 803749B8 00371918 48 00 CC D1 */ bl OSRestoreInterrupts
/* 803749BC 0037191C 38 00 00 00 */ li r0, 0
/* 803749C0 00371920 90 1F 00 00 */ stw r0, 0(r31)
/* 803749C4 00371924 7F E3 FB 78 */ mr r3, r31
/* 803749C8 00371928 90 1F 00 04 */ stw r0, 4(r31)
/* 803749CC 0037192C 48 00 00 18 */ b lbl_803749E4
lbl_803749D0:
/* 803749D0 00371930 38 84 00 08 */ addi r4, r4, 8
/* 803749D4 00371934 3B FF 00 01 */ addi r31, r31, 1
/* 803749D8 00371938 42 00 FF A8 */ bdnz lbl_80374980
/* 803749DC 0037193C 48 00 CC AD */ bl OSRestoreInterrupts
/* 803749E0 00371940 38 60 00 00 */ li r3, 0
lbl_803749E4:
/* 803749E4 00371944 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803749E8 00371948 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803749EC 0037194C 38 21 00 10 */ addi r1, r1, 0x10
/* 803749F0 00371950 7C 08 03 A6 */ mtlr r0
/* 803749F4 00371954 4E 80 00 20 */ blr
.global __DVDCheckWaitingQueue
__DVDCheckWaitingQueue:
/* 803749F8 00371958 7C 08 02 A6 */ mflr r0
/* 803749FC 0037195C 90 01 00 04 */ stw r0, 4(r1)
/* 80374A00 00371960 94 21 FF F8 */ stwu r1, -8(r1)
/* 80374A04 00371964 48 00 CC 5D */ bl OSDisableInterrupts
/* 80374A08 00371968 38 00 00 04 */ li r0, 4
/* 80374A0C 0037196C 3C 80 80 54 */ lis r4, lbl_80540BF8@ha
/* 80374A10 00371970 7C 09 03 A6 */ mtctr r0
/* 80374A14 00371974 38 84 0B F8 */ addi r4, r4, lbl_80540BF8@l
lbl_80374A18:
/* 80374A18 00371978 80 04 00 00 */ lwz r0, 0(r4)
/* 80374A1C 0037197C 7C 00 20 40 */ cmplw r0, r4
/* 80374A20 00371980 41 82 00 10 */ beq lbl_80374A30
/* 80374A24 00371984 48 00 CC 65 */ bl OSRestoreInterrupts
/* 80374A28 00371988 38 60 00 01 */ li r3, 1
/* 80374A2C 0037198C 48 00 00 14 */ b lbl_80374A40
lbl_80374A30:
/* 80374A30 00371990 38 84 00 08 */ addi r4, r4, 8
/* 80374A34 00371994 42 00 FF E4 */ bdnz lbl_80374A18
/* 80374A38 00371998 48 00 CC 51 */ bl OSRestoreInterrupts
/* 80374A3C 0037199C 38 60 00 00 */ li r3, 0
lbl_80374A40:
/* 80374A40 003719A0 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80374A44 003719A4 38 21 00 08 */ addi r1, r1, 8
/* 80374A48 003719A8 7C 08 03 A6 */ mtlr r0
/* 80374A4C 003719AC 4E 80 00 20 */ blr
.global __DVDDequeueWaitingQueue
__DVDDequeueWaitingQueue:
/* 80374A50 003719B0 7C 08 02 A6 */ mflr r0
/* 80374A54 003719B4 90 01 00 04 */ stw r0, 4(r1)
/* 80374A58 003719B8 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80374A5C 003719BC 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80374A60 003719C0 7C 7F 1B 78 */ mr r31, r3
/* 80374A64 003719C4 48 00 CB FD */ bl OSDisableInterrupts
/* 80374A68 003719C8 80 9F 00 04 */ lwz r4, 4(r31)
/* 80374A6C 003719CC 80 BF 00 00 */ lwz r5, 0(r31)
/* 80374A70 003719D0 28 04 00 00 */ cmplwi r4, 0
/* 80374A74 003719D4 41 82 00 0C */ beq lbl_80374A80
/* 80374A78 003719D8 28 05 00 00 */ cmplwi r5, 0
/* 80374A7C 003719DC 40 82 00 10 */ bne lbl_80374A8C
lbl_80374A80:
/* 80374A80 003719E0 48 00 CC 09 */ bl OSRestoreInterrupts
/* 80374A84 003719E4 38 60 00 00 */ li r3, 0
/* 80374A88 003719E8 48 00 00 14 */ b lbl_80374A9C
lbl_80374A8C:
/* 80374A8C 003719EC 90 A4 00 00 */ stw r5, 0(r4)
/* 80374A90 003719F0 90 85 00 04 */ stw r4, 4(r5)
/* 80374A94 003719F4 48 00 CB F5 */ bl OSRestoreInterrupts
/* 80374A98 003719F8 38 60 00 01 */ li r3, 1
lbl_80374A9C:
/* 80374A9C 003719FC 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80374AA0 00371A00 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80374AA4 00371A04 38 21 00 18 */ addi r1, r1, 0x18
/* 80374AA8 00371A08 7C 08 03 A6 */ mtlr r0
/* 80374AAC 00371A0C 4E 80 00 20 */ blr

160
asm/Dolphin/DVD/fstload.s Normal file
View File

@ -0,0 +1,160 @@
.include "macros.inc"
.section .text, "ax"
.global cb
cb:
/* 80374E6C 00371DCC 7C 08 02 A6 */ mflr r0
/* 80374E70 00371DD0 2C 03 00 00 */ cmpwi r3, 0
/* 80374E74 00371DD4 90 01 00 04 */ stw r0, 4(r1)
/* 80374E78 00371DD8 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80374E7C 00371DDC 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80374E80 00371DE0 3B E4 00 00 */ addi r31, r4, 0
/* 80374E84 00371DE4 40 81 00 7C */ ble lbl_80374F00
/* 80374E88 00371DE8 80 0D AC 68 */ lwz r0, lbl_805A9828@sda21(r13)
/* 80374E8C 00371DEC 2C 00 00 01 */ cmpwi r0, 1
/* 80374E90 00371DF0 41 82 00 3C */ beq lbl_80374ECC
/* 80374E94 00371DF4 40 80 00 9C */ bge lbl_80374F30
/* 80374E98 00371DF8 2C 00 00 00 */ cmpwi r0, 0
/* 80374E9C 00371DFC 40 80 00 08 */ bge lbl_80374EA4
/* 80374EA0 00371E00 48 00 00 90 */ b lbl_80374F30
lbl_80374EA4:
/* 80374EA4 00371E04 38 00 00 01 */ li r0, 1
/* 80374EA8 00371E08 80 8D AC 6C */ lwz r4, lbl_805A982C@sda21(r13)
/* 80374EAC 00371E0C 3C 60 80 37 */ lis r3, cb@ha
/* 80374EB0 00371E10 90 0D AC 68 */ stw r0, lbl_805A9828@sda21(r13)
/* 80374EB4 00371E14 38 E3 4E 6C */ addi r7, r3, cb@l
/* 80374EB8 00371E18 38 7F 00 00 */ addi r3, r31, 0
/* 80374EBC 00371E1C 38 A0 00 20 */ li r5, 0x20
/* 80374EC0 00371E20 38 C0 04 20 */ li r6, 0x420
/* 80374EC4 00371E24 4B FF EB 0D */ bl DVDReadAbsAsyncForBS
/* 80374EC8 00371E28 48 00 00 68 */ b lbl_80374F30
lbl_80374ECC:
/* 80374ECC 00371E2C 38 00 00 02 */ li r0, 2
/* 80374ED0 00371E30 80 CD AC 6C */ lwz r6, lbl_805A982C@sda21(r13)
/* 80374ED4 00371E34 90 0D AC 68 */ stw r0, lbl_805A9828@sda21(r13)
/* 80374ED8 00371E38 3C 60 80 37 */ lis r3, cb@ha
/* 80374EDC 00371E3C 38 E3 4E 6C */ addi r7, r3, cb@l
/* 80374EE0 00371E40 80 A6 00 08 */ lwz r5, 8(r6)
/* 80374EE4 00371E44 7F E3 FB 78 */ mr r3, r31
/* 80374EE8 00371E48 80 86 00 10 */ lwz r4, 0x10(r6)
/* 80374EEC 00371E4C 38 05 00 1F */ addi r0, r5, 0x1f
/* 80374EF0 00371E50 80 C6 00 04 */ lwz r6, 4(r6)
/* 80374EF4 00371E54 54 05 00 34 */ rlwinm r5, r0, 0, 0, 0x1a
/* 80374EF8 00371E58 4B FF EA D9 */ bl DVDReadAbsAsyncForBS
/* 80374EFC 00371E5C 48 00 00 34 */ b lbl_80374F30
lbl_80374F00:
/* 80374F00 00371E60 2C 03 FF FF */ cmpwi r3, -1
/* 80374F04 00371E64 41 82 00 2C */ beq lbl_80374F30
/* 80374F08 00371E68 2C 03 FF FC */ cmpwi r3, -4
/* 80374F0C 00371E6C 40 82 00 24 */ bne lbl_80374F30
/* 80374F10 00371E70 38 00 00 00 */ li r0, 0
/* 80374F14 00371E74 90 0D AC 68 */ stw r0, lbl_805A9828@sda21(r13)
/* 80374F18 00371E78 4B FF F1 A9 */ bl DVDReset
/* 80374F1C 00371E7C 3C 60 80 37 */ lis r3, cb@ha
/* 80374F20 00371E80 80 8D AC 70 */ lwz r4, lbl_805A9830@sda21(r13)
/* 80374F24 00371E84 38 A3 4E 6C */ addi r5, r3, cb@l
/* 80374F28 00371E88 38 7F 00 00 */ addi r3, r31, 0
/* 80374F2C 00371E8C 4B FF EB 75 */ bl DVDReadDiskID
lbl_80374F30:
/* 80374F30 00371E90 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80374F34 00371E94 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80374F38 00371E98 38 21 00 18 */ addi r1, r1, 0x18
/* 80374F3C 00371E9C 7C 08 03 A6 */ mtlr r0
/* 80374F40 00371EA0 4E 80 00 20 */ blr
.global __fstLoad
__fstLoad:
/* 80374F44 00371EA4 7C 08 02 A6 */ mflr r0
/* 80374F48 00371EA8 3C 60 80 3F */ lis r3, lbl_803F0578@ha
/* 80374F4C 00371EAC 90 01 00 04 */ stw r0, 4(r1)
/* 80374F50 00371EB0 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 80374F54 00371EB4 93 E1 00 5C */ stw r31, 0x5c(r1)
/* 80374F58 00371EB8 3B E3 05 78 */ addi r31, r3, lbl_803F0578@l
/* 80374F5C 00371EBC 93 C1 00 58 */ stw r30, 0x58(r1)
/* 80374F60 00371EC0 93 A1 00 54 */ stw r29, 0x54(r1)
/* 80374F64 00371EC4 48 00 98 2D */ bl OSGetArenaHi
/* 80374F68 00371EC8 3C 60 80 54 */ lis r3, lbl_80540C18@ha
/* 80374F6C 00371ECC 38 63 0C 18 */ addi r3, r3, lbl_80540C18@l
/* 80374F70 00371ED0 38 81 00 2B */ addi r4, r1, 0x2b
/* 80374F74 00371ED4 38 03 00 1F */ addi r0, r3, 0x1f
/* 80374F78 00371ED8 54 83 00 34 */ rlwinm r3, r4, 0, 0, 0x1a
/* 80374F7C 00371EDC 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a
/* 80374F80 00371EE0 90 6D AC 70 */ stw r3, lbl_805A9830@sda21(r13)
/* 80374F84 00371EE4 90 0D AC 6C */ stw r0, lbl_805A982C@sda21(r13)
/* 80374F88 00371EE8 4B FF F1 39 */ bl DVDReset
/* 80374F8C 00371EEC 3C 60 80 54 */ lis r3, lbl_80540C58@ha
/* 80374F90 00371EF0 80 8D AC 70 */ lwz r4, lbl_805A9830@sda21(r13)
/* 80374F94 00371EF4 3C A0 80 37 */ lis r5, cb@ha
/* 80374F98 00371EF8 38 63 0C 58 */ addi r3, r3, lbl_80540C58@l
/* 80374F9C 00371EFC 38 A5 4E 6C */ addi r5, r5, cb@l
/* 80374FA0 00371F00 4B FF EB 01 */ bl DVDReadDiskID
lbl_80374FA4:
/* 80374FA4 00371F04 4B FF F1 AD */ bl DVDGetDriveStatus
/* 80374FA8 00371F08 2C 03 00 00 */ cmpwi r3, 0
/* 80374FAC 00371F0C 40 82 FF F8 */ bne lbl_80374FA4
/* 80374FB0 00371F10 80 6D AC 6C */ lwz r3, lbl_805A982C@sda21(r13)
/* 80374FB4 00371F14 3F A0 80 00 */ lis r29, 0x80000000@ha
/* 80374FB8 00371F18 3F C0 80 00 */ lis r30, 0x80000038@ha
/* 80374FBC 00371F1C 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80374FC0 00371F20 38 7D 00 00 */ addi r3, r29, 0x80000000@l
/* 80374FC4 00371F24 38 A0 00 20 */ li r5, 0x20
/* 80374FC8 00371F28 90 1E 00 38 */ stw r0, 0x80000038@l(r30)
/* 80374FCC 00371F2C 80 8D AC 6C */ lwz r4, lbl_805A982C@sda21(r13)
/* 80374FD0 00371F30 80 04 00 0C */ lwz r0, 0xc(r4)
/* 80374FD4 00371F34 90 1E 00 3C */ stw r0, 0x3c(r30)
/* 80374FD8 00371F38 80 8D AC 70 */ lwz r4, lbl_805A9830@sda21(r13)
/* 80374FDC 00371F3C 4B C8 E4 B5 */ bl memcpy
/* 80374FE0 00371F40 38 6D 9E F8 */ addi r3, r13, lbl_805A8AB8@sda21
/* 80374FE4 00371F44 4C C6 31 82 */ crclr 6
/* 80374FE8 00371F48 48 00 A9 C5 */ bl OSReport
/* 80374FEC 00371F4C 88 9D 00 00 */ lbz r4, 0(r29)
/* 80374FF0 00371F50 7F E3 FB 78 */ mr r3, r31
/* 80374FF4 00371F54 88 BD 00 01 */ lbz r5, 1(r29)
/* 80374FF8 00371F58 4C C6 31 82 */ crclr 6
/* 80374FFC 00371F5C 88 DD 00 02 */ lbz r6, 2(r29)
/* 80375000 00371F60 88 FD 00 03 */ lbz r7, 3(r29)
/* 80375004 00371F64 7C 84 07 74 */ extsb r4, r4
/* 80375008 00371F68 7C A5 07 74 */ extsb r5, r5
/* 8037500C 00371F6C 7C C6 07 74 */ extsb r6, r6
/* 80375010 00371F70 7C E7 07 74 */ extsb r7, r7
/* 80375014 00371F74 48 00 A9 99 */ bl OSReport
/* 80375018 00371F78 88 9D 00 04 */ lbz r4, 4(r29)
/* 8037501C 00371F7C 38 7F 00 1C */ addi r3, r31, 0x1c
/* 80375020 00371F80 88 BD 00 05 */ lbz r5, 5(r29)
/* 80375024 00371F84 4C C6 31 82 */ crclr 6
/* 80375028 00371F88 7C 84 07 74 */ extsb r4, r4
/* 8037502C 00371F8C 7C A5 07 74 */ extsb r5, r5
/* 80375030 00371F90 48 00 A9 7D */ bl OSReport
/* 80375034 00371F94 88 9D 00 06 */ lbz r4, 6(r29)
/* 80375038 00371F98 38 7F 00 34 */ addi r3, r31, 0x34
/* 8037503C 00371F9C 4C C6 31 82 */ crclr 6
/* 80375040 00371FA0 48 00 A9 6D */ bl OSReport
/* 80375044 00371FA4 88 9D 00 07 */ lbz r4, 7(r29)
/* 80375048 00371FA8 38 7F 00 48 */ addi r3, r31, 0x48
/* 8037504C 00371FAC 4C C6 31 82 */ crclr 6
/* 80375050 00371FB0 48 00 A9 5D */ bl OSReport
/* 80375054 00371FB4 88 1E 00 08 */ lbz r0, 8(r30)
/* 80375058 00371FB8 28 00 00 00 */ cmplwi r0, 0
/* 8037505C 00371FBC 40 82 00 0C */ bne lbl_80375068
/* 80375060 00371FC0 38 8D 9E FC */ addi r4, r13, lbl_805A8ABC@sda21
/* 80375064 00371FC4 48 00 00 08 */ b lbl_8037506C
lbl_80375068:
/* 80375068 00371FC8 38 8D 9F 00 */ addi r4, r13, lbl_805A8AC0@sda21
lbl_8037506C:
/* 8037506C 00371FCC 4C C6 31 82 */ crclr 6
/* 80375070 00371FD0 38 7F 00 5C */ addi r3, r31, 0x5c
/* 80375074 00371FD4 48 00 A9 39 */ bl OSReport
/* 80375078 00371FD8 38 6D 9E F8 */ addi r3, r13, lbl_805A8AB8@sda21
/* 8037507C 00371FDC 4C C6 31 82 */ crclr 6
/* 80375080 00371FE0 48 00 A9 2D */ bl OSReport
/* 80375084 00371FE4 80 6D AC 6C */ lwz r3, lbl_805A982C@sda21(r13)
/* 80375088 00371FE8 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8037508C 00371FEC 48 00 97 15 */ bl OSSetArenaHi
/* 80375090 00371FF0 80 01 00 64 */ lwz r0, 0x64(r1)
/* 80375094 00371FF4 83 E1 00 5C */ lwz r31, 0x5c(r1)
/* 80375098 00371FF8 83 C1 00 58 */ lwz r30, 0x58(r1)
/* 8037509C 00371FFC 83 A1 00 54 */ lwz r29, 0x54(r1)
/* 803750A0 00372000 38 21 00 60 */ addi r1, r1, 0x60
/* 803750A4 00372004 7C 08 03 A6 */ mtlr r0
/* 803750A8 00372008 4E 80 00 20 */ blr

1441
asm/Dolphin/GX/GXAttr.s Normal file

File diff suppressed because it is too large Load Diff

433
asm/Dolphin/GX/GXBump.s Normal file
View File

@ -0,0 +1,433 @@
.include "macros.inc"
.section .text, "ax"
.global GXSetTevIndirect
GXSetTevIndirect:
/* 8037AE2C 00377D8C 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8037AE30 00377D90 54 84 07 B6 */ rlwinm r4, r4, 0, 0x1e, 0x1b
/* 8037AE34 00377D94 54 A0 10 3A */ slwi r0, r5, 2
/* 8037AE38 00377D98 7C 80 03 78 */ or r0, r4, r0
/* 8037AE3C 00377D9C 81 61 00 34 */ lwz r11, 0x34(r1)
/* 8037AE40 00377DA0 54 05 07 30 */ rlwinm r5, r0, 0, 0x1c, 0x18
/* 8037AE44 00377DA4 89 81 00 33 */ lbz r12, 0x33(r1)
/* 8037AE48 00377DA8 54 C0 20 36 */ slwi r0, r6, 4
/* 8037AE4C 00377DAC 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037AE50 00377DB0 7C A0 03 78 */ or r0, r5, r0
/* 8037AE54 00377DB4 54 05 06 6C */ rlwinm r5, r0, 0, 0x19, 0x16
/* 8037AE58 00377DB8 55 60 38 30 */ slwi r0, r11, 7
/* 8037AE5C 00377DBC 7C A0 03 78 */ or r0, r5, r0
/* 8037AE60 00377DC0 54 05 05 E4 */ rlwinm r5, r0, 0, 0x17, 0x12
/* 8037AE64 00377DC4 54 E0 48 2C */ slwi r0, r7, 9
/* 8037AE68 00377DC8 7C A0 03 78 */ or r0, r5, r0
/* 8037AE6C 00377DCC 54 05 04 DE */ rlwinm r5, r0, 0, 0x13, 0xf
/* 8037AE70 00377DD0 55 00 68 24 */ slwi r0, r8, 0xd
/* 8037AE74 00377DD4 7C A0 03 78 */ or r0, r5, r0
/* 8037AE78 00377DD8 38 A3 00 10 */ addi r5, r3, 0x10
/* 8037AE7C 00377DDC 54 03 04 18 */ rlwinm r3, r0, 0, 0x10, 0xc
/* 8037AE80 00377DE0 55 20 80 1E */ slwi r0, r9, 0x10
/* 8037AE84 00377DE4 7C 60 03 78 */ or r0, r3, r0
/* 8037AE88 00377DE8 54 03 03 56 */ rlwinm r3, r0, 0, 0xd, 0xb
/* 8037AE8C 00377DEC 55 80 98 18 */ slwi r0, r12, 0x13
/* 8037AE90 00377DF0 7C 60 03 78 */ or r0, r3, r0
/* 8037AE94 00377DF4 54 03 03 14 */ rlwinm r3, r0, 0, 0xc, 0xa
/* 8037AE98 00377DF8 55 40 A1 16 */ rlwinm r0, r10, 0x14, 4, 0xb
/* 8037AE9C 00377DFC 7C 66 03 78 */ or r6, r3, r0
/* 8037AEA0 00377E00 38 00 00 61 */ li r0, 0x61
/* 8037AEA4 00377E04 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037AEA8 00377E08 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AEAC 00377E0C 54 A0 C0 0E */ slwi r0, r5, 0x18
/* 8037AEB0 00377E10 50 C0 02 3E */ rlwimi r0, r6, 0, 8, 0x1f
/* 8037AEB4 00377E14 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 8037AEB8 00377E18 38 00 00 00 */ li r0, 0
/* 8037AEBC 00377E1C B0 04 00 02 */ sth r0, 2(r4)
/* 8037AEC0 00377E20 38 21 00 28 */ addi r1, r1, 0x28
/* 8037AEC4 00377E24 4E 80 00 20 */ blr
.global GXSetIndTexMtx
GXSetIndTexMtx:
/* 8037AEC8 00377E28 2C 03 00 08 */ cmpwi r3, 8
/* 8037AECC 00377E2C 94 21 FF 88 */ stwu r1, -0x78(r1)
/* 8037AED0 00377E30 41 82 00 44 */ beq lbl_8037AF14
/* 8037AED4 00377E34 40 80 00 1C */ bge lbl_8037AEF0
/* 8037AED8 00377E38 2C 03 00 04 */ cmpwi r3, 4
/* 8037AEDC 00377E3C 41 82 00 38 */ beq lbl_8037AF14
/* 8037AEE0 00377E40 40 80 00 24 */ bge lbl_8037AF04
/* 8037AEE4 00377E44 2C 03 00 01 */ cmpwi r3, 1
/* 8037AEE8 00377E48 40 80 00 14 */ bge lbl_8037AEFC
/* 8037AEEC 00377E4C 48 00 00 28 */ b lbl_8037AF14
lbl_8037AEF0:
/* 8037AEF0 00377E50 2C 03 00 0C */ cmpwi r3, 0xc
/* 8037AEF4 00377E54 40 80 00 20 */ bge lbl_8037AF14
/* 8037AEF8 00377E58 48 00 00 14 */ b lbl_8037AF0C
lbl_8037AEFC:
/* 8037AEFC 00377E5C 38 03 FF FF */ addi r0, r3, -1
/* 8037AF00 00377E60 48 00 00 18 */ b lbl_8037AF18
lbl_8037AF04:
/* 8037AF04 00377E64 38 03 FF FB */ addi r0, r3, -5
/* 8037AF08 00377E68 48 00 00 10 */ b lbl_8037AF18
lbl_8037AF0C:
/* 8037AF0C 00377E6C 38 03 FF F7 */ addi r0, r3, -9
/* 8037AF10 00377E70 48 00 00 08 */ b lbl_8037AF18
lbl_8037AF14:
/* 8037AF14 00377E74 38 00 00 00 */ li r0, 0
lbl_8037AF18:
/* 8037AF18 00377E78 C0 42 CE 90 */ lfs f2, lbl_805AEBB0@sda21(r2)
/* 8037AF1C 00377E7C 1C 60 00 03 */ mulli r3, r0, 3
/* 8037AF20 00377E80 C0 24 00 00 */ lfs f1, 0(r4)
/* 8037AF24 00377E84 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 8037AF28 00377E88 EC 22 00 72 */ fmuls f1, f2, f1
/* 8037AF2C 00377E8C 39 65 00 11 */ addi r11, r5, 0x11
/* 8037AF30 00377E90 EC 02 00 32 */ fmuls f0, f2, f0
/* 8037AF34 00377E94 38 03 00 06 */ addi r0, r3, 6
/* 8037AF38 00377E98 7D 6B 07 74 */ extsb r11, r11
/* 8037AF3C 00377E9C FC 20 08 1E */ fctiwz f1, f1
/* 8037AF40 00377EA0 39 40 00 61 */ li r10, 0x61
/* 8037AF44 00377EA4 FC 00 00 1E */ fctiwz f0, f0
/* 8037AF48 00377EA8 3D 20 CC 01 */ lis r9, 0xCC008000@ha
/* 8037AF4C 00377EAC 99 49 80 00 */ stb r10, 0xCC008000@l(r9)
/* 8037AF50 00377EB0 D8 21 00 70 */ stfd f1, 0x70(r1)
/* 8037AF54 00377EB4 54 00 C0 0E */ slwi r0, r0, 0x18
/* 8037AF58 00377EB8 38 C3 00 07 */ addi r6, r3, 7
/* 8037AF5C 00377EBC D8 01 00 68 */ stfd f0, 0x68(r1)
/* 8037AF60 00377EC0 38 A3 00 08 */ addi r5, r3, 8
/* 8037AF64 00377EC4 81 01 00 74 */ lwz r8, 0x74(r1)
/* 8037AF68 00377EC8 80 E1 00 6C */ lwz r7, 0x6c(r1)
/* 8037AF6C 00377ECC 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037AF70 00377ED0 54 E7 5A A8 */ rlwinm r7, r7, 0xb, 0xa, 0x14
/* 8037AF74 00377ED4 51 07 05 7E */ rlwimi r7, r8, 0, 0x15, 0x1f
/* 8037AF78 00377ED8 54 E7 02 8E */ rlwinm r7, r7, 0, 0xa, 7
/* 8037AF7C 00377EDC 51 67 B2 12 */ rlwimi r7, r11, 0x16, 8, 9
/* 8037AF80 00377EE0 50 E0 02 3E */ rlwimi r0, r7, 0, 8, 0x1f
/* 8037AF84 00377EE4 90 09 80 00 */ stw r0, 0xCC008000@l(r9)
/* 8037AF88 00377EE8 38 00 00 00 */ li r0, 0
/* 8037AF8C 00377EEC C0 24 00 04 */ lfs f1, 4(r4)
/* 8037AF90 00377EF0 C0 04 00 10 */ lfs f0, 0x10(r4)
/* 8037AF94 00377EF4 EC 22 00 72 */ fmuls f1, f2, f1
/* 8037AF98 00377EF8 EC 02 00 32 */ fmuls f0, f2, f0
/* 8037AF9C 00377EFC 99 49 80 00 */ stb r10, 0xCC008000@l(r9)
/* 8037AFA0 00377F00 FC 20 08 1E */ fctiwz f1, f1
/* 8037AFA4 00377F04 FC 00 00 1E */ fctiwz f0, f0
/* 8037AFA8 00377F08 D8 21 00 60 */ stfd f1, 0x60(r1)
/* 8037AFAC 00377F0C D8 01 00 58 */ stfd f0, 0x58(r1)
/* 8037AFB0 00377F10 81 01 00 64 */ lwz r8, 0x64(r1)
/* 8037AFB4 00377F14 80 E1 00 5C */ lwz r7, 0x5c(r1)
/* 8037AFB8 00377F18 54 E7 5A A8 */ rlwinm r7, r7, 0xb, 0xa, 0x14
/* 8037AFBC 00377F1C 51 07 05 7E */ rlwimi r7, r8, 0, 0x15, 0x1f
/* 8037AFC0 00377F20 54 E7 02 8E */ rlwinm r7, r7, 0, 0xa, 7
/* 8037AFC4 00377F24 51 67 A2 12 */ rlwimi r7, r11, 0x14, 8, 9
/* 8037AFC8 00377F28 54 E7 02 3E */ clrlwi r7, r7, 8
/* 8037AFCC 00377F2C 50 C7 C0 0E */ rlwimi r7, r6, 0x18, 0, 7
/* 8037AFD0 00377F30 90 E9 80 00 */ stw r7, 0xCC008000@l(r9)
/* 8037AFD4 00377F34 C0 24 00 08 */ lfs f1, 8(r4)
/* 8037AFD8 00377F38 C0 04 00 14 */ lfs f0, 0x14(r4)
/* 8037AFDC 00377F3C EC 22 00 72 */ fmuls f1, f2, f1
/* 8037AFE0 00377F40 EC 02 00 32 */ fmuls f0, f2, f0
/* 8037AFE4 00377F44 99 49 80 00 */ stb r10, 0xCC008000@l(r9)
/* 8037AFE8 00377F48 FC 20 08 1E */ fctiwz f1, f1
/* 8037AFEC 00377F4C FC 00 00 1E */ fctiwz f0, f0
/* 8037AFF0 00377F50 D8 21 00 50 */ stfd f1, 0x50(r1)
/* 8037AFF4 00377F54 D8 01 00 48 */ stfd f0, 0x48(r1)
/* 8037AFF8 00377F58 80 C1 00 54 */ lwz r6, 0x54(r1)
/* 8037AFFC 00377F5C 80 81 00 4C */ lwz r4, 0x4c(r1)
/* 8037B000 00377F60 54 84 5A A8 */ rlwinm r4, r4, 0xb, 0xa, 0x14
/* 8037B004 00377F64 50 C4 05 7E */ rlwimi r4, r6, 0, 0x15, 0x1f
/* 8037B008 00377F68 54 84 02 8E */ rlwinm r4, r4, 0, 0xa, 7
/* 8037B00C 00377F6C 51 64 92 12 */ rlwimi r4, r11, 0x12, 8, 9
/* 8037B010 00377F70 54 84 02 3E */ clrlwi r4, r4, 8
/* 8037B014 00377F74 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7
/* 8037B018 00377F78 90 89 80 00 */ stw r4, 0xCC008000@l(r9)
/* 8037B01C 00377F7C B0 03 00 02 */ sth r0, 2(r3)
/* 8037B020 00377F80 38 21 00 78 */ addi r1, r1, 0x78
/* 8037B024 00377F84 4E 80 00 20 */ blr
.global GXSetIndTexCoordScale
GXSetIndTexCoordScale:
/* 8037B028 00377F88 2C 03 00 02 */ cmpwi r3, 2
/* 8037B02C 00377F8C 41 82 00 C8 */ beq lbl_8037B0F4
/* 8037B030 00377F90 40 80 00 14 */ bge lbl_8037B044
/* 8037B034 00377F94 2C 03 00 00 */ cmpwi r3, 0
/* 8037B038 00377F98 41 82 00 18 */ beq lbl_8037B050
/* 8037B03C 00377F9C 40 80 00 64 */ bge lbl_8037B0A0
/* 8037B040 00377FA0 48 00 01 54 */ b lbl_8037B194
lbl_8037B044:
/* 8037B044 00377FA4 2C 03 00 04 */ cmpwi r3, 4
/* 8037B048 00377FA8 40 80 01 4C */ bge lbl_8037B194
/* 8037B04C 00377FAC 48 00 00 F8 */ b lbl_8037B144
lbl_8037B050:
/* 8037B050 00377FB0 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 8037B054 00377FB4 54 A5 20 36 */ slwi r5, r5, 4
/* 8037B058 00377FB8 38 00 00 61 */ li r0, 0x61
/* 8037B05C 00377FBC 80 C7 01 28 */ lwz r6, 0x128(r7)
/* 8037B060 00377FC0 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037B064 00377FC4 54 C6 00 36 */ rlwinm r6, r6, 0, 0, 0x1b
/* 8037B068 00377FC8 7C C4 23 78 */ or r4, r6, r4
/* 8037B06C 00377FCC 90 87 01 28 */ stw r4, 0x128(r7)
/* 8037B070 00377FD0 80 87 01 28 */ lwz r4, 0x128(r7)
/* 8037B074 00377FD4 54 84 07 2E */ rlwinm r4, r4, 0, 0x1c, 0x17
/* 8037B078 00377FD8 7C 84 2B 78 */ or r4, r4, r5
/* 8037B07C 00377FDC 90 87 01 28 */ stw r4, 0x128(r7)
/* 8037B080 00377FE0 80 87 01 28 */ lwz r4, 0x128(r7)
/* 8037B084 00377FE4 54 84 02 3E */ clrlwi r4, r4, 8
/* 8037B088 00377FE8 64 84 25 00 */ oris r4, r4, 0x2500
/* 8037B08C 00377FEC 90 87 01 28 */ stw r4, 0x128(r7)
/* 8037B090 00377FF0 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037B094 00377FF4 80 07 01 28 */ lwz r0, 0x128(r7)
/* 8037B098 00377FF8 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 8037B09C 00377FFC 48 00 00 F8 */ b lbl_8037B194
lbl_8037B0A0:
/* 8037B0A0 00378000 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 8037B0A4 00378004 54 86 40 2E */ slwi r6, r4, 8
/* 8037B0A8 00378008 54 A4 60 26 */ slwi r4, r5, 0xc
/* 8037B0AC 0037800C 80 A7 01 28 */ lwz r5, 0x128(r7)
/* 8037B0B0 00378010 38 00 00 61 */ li r0, 0x61
/* 8037B0B4 00378014 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037B0B8 00378018 54 A5 06 26 */ rlwinm r5, r5, 0, 0x18, 0x13
/* 8037B0BC 0037801C 7C A5 33 78 */ or r5, r5, r6
/* 8037B0C0 00378020 90 A7 01 28 */ stw r5, 0x128(r7)
/* 8037B0C4 00378024 80 A7 01 28 */ lwz r5, 0x128(r7)
/* 8037B0C8 00378028 54 A5 05 1E */ rlwinm r5, r5, 0, 0x14, 0xf
/* 8037B0CC 0037802C 7C A4 23 78 */ or r4, r5, r4
/* 8037B0D0 00378030 90 87 01 28 */ stw r4, 0x128(r7)
/* 8037B0D4 00378034 80 87 01 28 */ lwz r4, 0x128(r7)
/* 8037B0D8 00378038 54 84 02 3E */ clrlwi r4, r4, 8
/* 8037B0DC 0037803C 64 84 25 00 */ oris r4, r4, 0x2500
/* 8037B0E0 00378040 90 87 01 28 */ stw r4, 0x128(r7)
/* 8037B0E4 00378044 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037B0E8 00378048 80 07 01 28 */ lwz r0, 0x128(r7)
/* 8037B0EC 0037804C 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 8037B0F0 00378050 48 00 00 A4 */ b lbl_8037B194
lbl_8037B0F4:
/* 8037B0F4 00378054 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 8037B0F8 00378058 54 A5 20 36 */ slwi r5, r5, 4
/* 8037B0FC 0037805C 38 00 00 61 */ li r0, 0x61
/* 8037B100 00378060 80 C7 01 2C */ lwz r6, 0x12c(r7)
/* 8037B104 00378064 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037B108 00378068 54 C6 00 36 */ rlwinm r6, r6, 0, 0, 0x1b
/* 8037B10C 0037806C 7C C4 23 78 */ or r4, r6, r4
/* 8037B110 00378070 90 87 01 2C */ stw r4, 0x12c(r7)
/* 8037B114 00378074 80 87 01 2C */ lwz r4, 0x12c(r7)
/* 8037B118 00378078 54 84 07 2E */ rlwinm r4, r4, 0, 0x1c, 0x17
/* 8037B11C 0037807C 7C 84 2B 78 */ or r4, r4, r5
/* 8037B120 00378080 90 87 01 2C */ stw r4, 0x12c(r7)
/* 8037B124 00378084 80 87 01 2C */ lwz r4, 0x12c(r7)
/* 8037B128 00378088 54 84 02 3E */ clrlwi r4, r4, 8
/* 8037B12C 0037808C 64 84 26 00 */ oris r4, r4, 0x2600
/* 8037B130 00378090 90 87 01 2C */ stw r4, 0x12c(r7)
/* 8037B134 00378094 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037B138 00378098 80 07 01 2C */ lwz r0, 0x12c(r7)
/* 8037B13C 0037809C 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 8037B140 003780A0 48 00 00 54 */ b lbl_8037B194
lbl_8037B144:
/* 8037B144 003780A4 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 8037B148 003780A8 54 86 40 2E */ slwi r6, r4, 8
/* 8037B14C 003780AC 54 A4 60 26 */ slwi r4, r5, 0xc
/* 8037B150 003780B0 80 A7 01 2C */ lwz r5, 0x12c(r7)
/* 8037B154 003780B4 38 00 00 61 */ li r0, 0x61
/* 8037B158 003780B8 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037B15C 003780BC 54 A5 06 26 */ rlwinm r5, r5, 0, 0x18, 0x13
/* 8037B160 003780C0 7C A5 33 78 */ or r5, r5, r6
/* 8037B164 003780C4 90 A7 01 2C */ stw r5, 0x12c(r7)
/* 8037B168 003780C8 80 A7 01 2C */ lwz r5, 0x12c(r7)
/* 8037B16C 003780CC 54 A5 05 1E */ rlwinm r5, r5, 0, 0x14, 0xf
/* 8037B170 003780D0 7C A4 23 78 */ or r4, r5, r4
/* 8037B174 003780D4 90 87 01 2C */ stw r4, 0x12c(r7)
/* 8037B178 003780D8 80 87 01 2C */ lwz r4, 0x12c(r7)
/* 8037B17C 003780DC 54 84 02 3E */ clrlwi r4, r4, 8
/* 8037B180 003780E0 64 84 26 00 */ oris r4, r4, 0x2600
/* 8037B184 003780E4 90 87 01 2C */ stw r4, 0x12c(r7)
/* 8037B188 003780E8 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037B18C 003780EC 80 07 01 2C */ lwz r0, 0x12c(r7)
/* 8037B190 003780F0 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
lbl_8037B194:
/* 8037B194 003780F4 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037B198 003780F8 38 00 00 00 */ li r0, 0
/* 8037B19C 003780FC B0 03 00 02 */ sth r0, 2(r3)
/* 8037B1A0 00378100 4E 80 00 20 */ blr
.global GXSetIndTexOrder
GXSetIndTexOrder:
/* 8037B1A4 00378104 2C 03 00 02 */ cmpwi r3, 2
/* 8037B1A8 00378108 41 82 00 84 */ beq lbl_8037B22C
/* 8037B1AC 0037810C 40 80 00 14 */ bge lbl_8037B1C0
/* 8037B1B0 00378110 2C 03 00 00 */ cmpwi r3, 0
/* 8037B1B4 00378114 41 82 00 18 */ beq lbl_8037B1CC
/* 8037B1B8 00378118 40 80 00 44 */ bge lbl_8037B1FC
/* 8037B1BC 0037811C 48 00 00 CC */ b lbl_8037B288
lbl_8037B1C0:
/* 8037B1C0 00378120 2C 03 00 04 */ cmpwi r3, 4
/* 8037B1C4 00378124 40 80 00 C4 */ bge lbl_8037B288
/* 8037B1C8 00378128 48 00 00 94 */ b lbl_8037B25C
lbl_8037B1CC:
/* 8037B1CC 0037812C 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037B1D0 00378130 54 80 18 38 */ slwi r0, r4, 3
/* 8037B1D4 00378134 38 83 01 20 */ addi r4, r3, 0x120
/* 8037B1D8 00378138 80 63 01 20 */ lwz r3, 0x120(r3)
/* 8037B1DC 0037813C 54 63 00 38 */ rlwinm r3, r3, 0, 0, 0x1c
/* 8037B1E0 00378140 7C 63 2B 78 */ or r3, r3, r5
/* 8037B1E4 00378144 90 64 00 00 */ stw r3, 0(r4)
/* 8037B1E8 00378148 80 64 00 00 */ lwz r3, 0(r4)
/* 8037B1EC 0037814C 54 63 07 72 */ rlwinm r3, r3, 0, 0x1d, 0x19
/* 8037B1F0 00378150 7C 60 03 78 */ or r0, r3, r0
/* 8037B1F4 00378154 90 04 00 00 */ stw r0, 0(r4)
/* 8037B1F8 00378158 48 00 00 90 */ b lbl_8037B288
lbl_8037B1FC:
/* 8037B1FC 0037815C 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 8037B200 00378160 54 80 48 2C */ slwi r0, r4, 9
/* 8037B204 00378164 54 A3 30 32 */ slwi r3, r5, 6
/* 8037B208 00378168 80 86 01 20 */ lwz r4, 0x120(r6)
/* 8037B20C 0037816C 54 84 06 AC */ rlwinm r4, r4, 0, 0x1a, 0x16
/* 8037B210 00378170 7C 83 1B 78 */ or r3, r4, r3
/* 8037B214 00378174 90 66 01 20 */ stw r3, 0x120(r6)
/* 8037B218 00378178 80 66 01 20 */ lwz r3, 0x120(r6)
/* 8037B21C 0037817C 54 63 05 E6 */ rlwinm r3, r3, 0, 0x17, 0x13
/* 8037B220 00378180 7C 60 03 78 */ or r0, r3, r0
/* 8037B224 00378184 90 06 01 20 */ stw r0, 0x120(r6)
/* 8037B228 00378188 48 00 00 60 */ b lbl_8037B288
lbl_8037B22C:
/* 8037B22C 0037818C 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 8037B230 00378190 54 80 78 20 */ slwi r0, r4, 0xf
/* 8037B234 00378194 54 A3 60 26 */ slwi r3, r5, 0xc
/* 8037B238 00378198 80 86 01 20 */ lwz r4, 0x120(r6)
/* 8037B23C 0037819C 54 84 05 20 */ rlwinm r4, r4, 0, 0x14, 0x10
/* 8037B240 003781A0 7C 83 1B 78 */ or r3, r4, r3
/* 8037B244 003781A4 90 66 01 20 */ stw r3, 0x120(r6)
/* 8037B248 003781A8 80 66 01 20 */ lwz r3, 0x120(r6)
/* 8037B24C 003781AC 54 63 04 5A */ rlwinm r3, r3, 0, 0x11, 0xd
/* 8037B250 003781B0 7C 60 03 78 */ or r0, r3, r0
/* 8037B254 003781B4 90 06 01 20 */ stw r0, 0x120(r6)
/* 8037B258 003781B8 48 00 00 30 */ b lbl_8037B288
lbl_8037B25C:
/* 8037B25C 003781BC 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 8037B260 003781C0 54 80 A8 14 */ slwi r0, r4, 0x15
/* 8037B264 003781C4 54 A3 90 1A */ slwi r3, r5, 0x12
/* 8037B268 003781C8 80 86 01 20 */ lwz r4, 0x120(r6)
/* 8037B26C 003781CC 54 84 03 94 */ rlwinm r4, r4, 0, 0xe, 0xa
/* 8037B270 003781D0 7C 83 1B 78 */ or r3, r4, r3
/* 8037B274 003781D4 90 66 01 20 */ stw r3, 0x120(r6)
/* 8037B278 003781D8 80 66 01 20 */ lwz r3, 0x120(r6)
/* 8037B27C 003781DC 54 63 02 CE */ rlwinm r3, r3, 0, 0xb, 7
/* 8037B280 003781E0 7C 60 03 78 */ or r0, r3, r0
/* 8037B284 003781E4 90 06 01 20 */ stw r0, 0x120(r6)
lbl_8037B288:
/* 8037B288 003781E8 38 00 00 61 */ li r0, 0x61
/* 8037B28C 003781EC 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037B290 003781F0 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037B294 003781F4 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037B298 003781F8 38 00 00 00 */ li r0, 0
/* 8037B29C 003781FC 80 64 01 20 */ lwz r3, 0x120(r4)
/* 8037B2A0 00378200 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037B2A4 00378204 80 64 04 F4 */ lwz r3, 0x4f4(r4)
/* 8037B2A8 00378208 60 63 00 03 */ ori r3, r3, 3
/* 8037B2AC 0037820C 90 64 04 F4 */ stw r3, 0x4f4(r4)
/* 8037B2B0 00378210 B0 04 00 02 */ sth r0, 2(r4)
/* 8037B2B4 00378214 4E 80 00 20 */ blr
.global GXSetNumIndStages
GXSetNumIndStages:
/* 8037B2B8 00378218 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037B2BC 0037821C 54 60 82 1E */ rlwinm r0, r3, 0x10, 8, 0xf
/* 8037B2C0 00378220 80 64 02 04 */ lwz r3, 0x204(r4)
/* 8037B2C4 00378224 54 63 04 18 */ rlwinm r3, r3, 0, 0x10, 0xc
/* 8037B2C8 00378228 7C 60 03 78 */ or r0, r3, r0
/* 8037B2CC 0037822C 90 04 02 04 */ stw r0, 0x204(r4)
/* 8037B2D0 00378230 80 04 04 F4 */ lwz r0, 0x4f4(r4)
/* 8037B2D4 00378234 60 00 00 06 */ ori r0, r0, 6
/* 8037B2D8 00378238 90 04 04 F4 */ stw r0, 0x4f4(r4)
/* 8037B2DC 0037823C 4E 80 00 20 */ blr
.global GXSetTevDirect
GXSetTevDirect:
/* 8037B2E0 00378240 7C 08 02 A6 */ mflr r0
/* 8037B2E4 00378244 38 80 00 00 */ li r4, 0
/* 8037B2E8 00378248 90 01 00 04 */ stw r0, 4(r1)
/* 8037B2EC 0037824C 38 00 00 00 */ li r0, 0
/* 8037B2F0 00378250 38 A0 00 00 */ li r5, 0
/* 8037B2F4 00378254 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8037B2F8 00378258 38 C0 00 00 */ li r6, 0
/* 8037B2FC 0037825C 38 E0 00 00 */ li r7, 0
/* 8037B300 00378260 90 01 00 08 */ stw r0, 8(r1)
/* 8037B304 00378264 39 00 00 00 */ li r8, 0
/* 8037B308 00378268 39 20 00 00 */ li r9, 0
/* 8037B30C 0037826C 90 01 00 0C */ stw r0, 0xc(r1)
/* 8037B310 00378270 39 40 00 00 */ li r10, 0
/* 8037B314 00378274 4B FF FB 19 */ bl GXSetTevIndirect
/* 8037B318 00378278 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8037B31C 0037827C 38 21 00 18 */ addi r1, r1, 0x18
/* 8037B320 00378280 7C 08 03 A6 */ mtlr r0
/* 8037B324 00378284 4E 80 00 20 */ blr
.global __GXUpdateBPMask
__GXUpdateBPMask:
/* 8037B328 00378288 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037B32C 0037828C 38 C0 00 00 */ li r6, 0
/* 8037B330 00378290 38 80 00 00 */ li r4, 0
/* 8037B334 00378294 80 03 02 04 */ lwz r0, 0x204(r3)
/* 8037B338 00378298 54 00 87 7E */ rlwinm r0, r0, 0x10, 0x1d, 0x1f
/* 8037B33C 0037829C 28 00 00 00 */ cmplwi r0, 0
/* 8037B340 003782A0 7C 09 03 A6 */ mtctr r0
/* 8037B344 003782A4 40 81 00 6C */ ble lbl_8037B3B0
lbl_8037B348:
/* 8037B348 003782A8 2C 04 00 02 */ cmpwi r4, 2
/* 8037B34C 003782AC 41 82 00 3C */ beq lbl_8037B388
/* 8037B350 003782B0 40 80 00 14 */ bge lbl_8037B364
/* 8037B354 003782B4 2C 04 00 00 */ cmpwi r4, 0
/* 8037B358 003782B8 41 82 00 18 */ beq lbl_8037B370
/* 8037B35C 003782BC 40 80 00 20 */ bge lbl_8037B37C
/* 8037B360 003782C0 48 00 00 3C */ b lbl_8037B39C
lbl_8037B364:
/* 8037B364 003782C4 2C 04 00 04 */ cmpwi r4, 4
/* 8037B368 003782C8 40 80 00 34 */ bge lbl_8037B39C
/* 8037B36C 003782CC 48 00 00 28 */ b lbl_8037B394
lbl_8037B370:
/* 8037B370 003782D0 80 03 01 20 */ lwz r0, 0x120(r3)
/* 8037B374 003782D4 54 05 07 7E */ clrlwi r5, r0, 0x1d
/* 8037B378 003782D8 48 00 00 24 */ b lbl_8037B39C
lbl_8037B37C:
/* 8037B37C 003782DC 80 03 01 20 */ lwz r0, 0x120(r3)
/* 8037B380 003782E0 54 05 D7 7E */ rlwinm r5, r0, 0x1a, 0x1d, 0x1f
/* 8037B384 003782E4 48 00 00 18 */ b lbl_8037B39C
lbl_8037B388:
/* 8037B388 003782E8 80 03 01 20 */ lwz r0, 0x120(r3)
/* 8037B38C 003782EC 54 05 A7 7E */ rlwinm r5, r0, 0x14, 0x1d, 0x1f
/* 8037B390 003782F0 48 00 00 0C */ b lbl_8037B39C
lbl_8037B394:
/* 8037B394 003782F4 80 03 01 20 */ lwz r0, 0x120(r3)
/* 8037B398 003782F8 54 05 77 7E */ rlwinm r5, r0, 0xe, 0x1d, 0x1f
lbl_8037B39C:
/* 8037B39C 003782FC 38 00 00 01 */ li r0, 1
/* 8037B3A0 00378300 7C 00 28 30 */ slw r0, r0, r5
/* 8037B3A4 00378304 7C C6 03 78 */ or r6, r6, r0
/* 8037B3A8 00378308 38 84 00 01 */ addi r4, r4, 1
/* 8037B3AC 0037830C 42 00 FF 9C */ bdnz lbl_8037B348
lbl_8037B3B0:
/* 8037B3B0 00378310 38 83 01 24 */ addi r4, r3, 0x124
/* 8037B3B4 00378314 80 63 01 24 */ lwz r3, 0x124(r3)
/* 8037B3B8 00378318 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8037B3BC 0037831C 7C 00 30 40 */ cmplw r0, r6
/* 8037B3C0 00378320 4D 82 00 20 */ beqlr
/* 8037B3C4 00378324 54 60 00 2E */ rlwinm r0, r3, 0, 0, 0x17
/* 8037B3C8 00378328 7C 00 33 78 */ or r0, r0, r6
/* 8037B3CC 0037832C 90 04 00 00 */ stw r0, 0(r4)
/* 8037B3D0 00378330 38 00 00 61 */ li r0, 0x61
/* 8037B3D4 00378334 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037B3D8 00378338 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037B3DC 0037833C 38 00 00 00 */ li r0, 0
/* 8037B3E0 00378340 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037B3E4 00378344 80 64 01 24 */ lwz r3, 0x124(r4)
/* 8037B3E8 00378348 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037B3EC 0037834C B0 04 00 02 */ sth r0, 2(r4)
/* 8037B3F0 00378350 4E 80 00 20 */ blr
.global __GXFlushTextureState
__GXFlushTextureState:
/* 8037B3F4 00378354 38 00 00 61 */ li r0, 0x61
/* 8037B3F8 00378358 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037B3FC 0037835C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037B400 00378360 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037B404 00378364 38 00 00 00 */ li r0, 0
/* 8037B408 00378368 80 64 01 24 */ lwz r3, 0x124(r4)
/* 8037B40C 0037836C 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037B410 00378370 B0 04 00 02 */ sth r0, 2(r4)
/* 8037B414 00378374 4E 80 00 20 */ blr

View File

@ -0,0 +1,36 @@
.include "macros.inc"
.section .text, "ax"
.global GXCallDisplayList
GXCallDisplayList:
/* 8037C1D4 00379134 7C 08 02 A6 */ mflr r0
/* 8037C1D8 00379138 90 01 00 04 */ stw r0, 4(r1)
/* 8037C1DC 0037913C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8037C1E0 00379140 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8037C1E4 00379144 3B E4 00 00 */ addi r31, r4, 0
/* 8037C1E8 00379148 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8037C1EC 0037914C 3B C3 00 00 */ addi r30, r3, 0
/* 8037C1F0 00379150 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037C1F4 00379154 80 05 04 F4 */ lwz r0, 0x4f4(r5)
/* 8037C1F8 00379158 28 00 00 00 */ cmplwi r0, 0
/* 8037C1FC 0037915C 41 82 00 08 */ beq lbl_8037C204
/* 8037C200 00379160 4B FF C6 55 */ bl __GXSetDirtyState
lbl_8037C204:
/* 8037C204 00379164 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037C208 00379168 80 03 00 00 */ lwz r0, 0(r3)
/* 8037C20C 0037916C 28 00 00 00 */ cmplwi r0, 0
/* 8037C210 00379170 40 82 00 08 */ bne lbl_8037C218
/* 8037C214 00379174 4B FF C7 D1 */ bl __GXSendFlushPrim
lbl_8037C218:
/* 8037C218 00379178 38 00 00 40 */ li r0, 0x40
/* 8037C21C 0037917C 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037C220 00379180 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037C224 00379184 93 C3 80 00 */ stw r30, 0xCC008000@l(r3)
/* 8037C228 00379188 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
/* 8037C22C 0037918C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8037C230 00379190 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8037C234 00379194 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8037C238 00379198 38 21 00 18 */ addi r1, r1, 0x18
/* 8037C23C 0037919C 7C 08 03 A6 */ mtlr r0
/* 8037C240 003791A0 4E 80 00 20 */ blr

813
asm/Dolphin/GX/GXFifo.s Normal file
View File

@ -0,0 +1,813 @@
.include "macros.inc"
.section .text, "ax"
.global GXCPInterruptHandler
GXCPInterruptHandler:
/* 8037627C 003731DC 7C 08 02 A6 */ mflr r0
/* 80376280 003731E0 90 01 00 04 */ stw r0, 4(r1)
/* 80376284 003731E4 94 21 FD 20 */ stwu r1, -0x2e0(r1)
/* 80376288 003731E8 93 E1 02 DC */ stw r31, 0x2dc(r1)
/* 8037628C 003731EC 7C 9F 23 78 */ mr r31, r4
/* 80376290 003731F0 80 AD AC 7C */ lwz r5, lbl_805A983C@sda21(r13)
/* 80376294 003731F4 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80376298 003731F8 A0 05 00 00 */ lhz r0, 0(r5)
/* 8037629C 003731FC 90 03 00 0C */ stw r0, 0xc(r3)
/* 803762A0 00373200 80 03 00 08 */ lwz r0, 8(r3)
/* 803762A4 00373204 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 803762A8 00373208 41 82 00 38 */ beq lbl_803762E0
/* 803762AC 0037320C 80 03 00 0C */ lwz r0, 0xc(r3)
/* 803762B0 00373210 54 00 FF FF */ rlwinm. r0, r0, 0x1f, 0x1f, 0x1f
/* 803762B4 00373214 41 82 00 2C */ beq lbl_803762E0
/* 803762B8 00373218 80 6D AC 90 */ lwz r3, lbl_805A9850@sda21(r13)
/* 803762BC 0037321C 48 00 EA 59 */ bl OSResumeThread
/* 803762C0 00373220 38 00 00 00 */ li r0, 0
/* 803762C4 00373224 90 0D AC 98 */ stw r0, lbl_805A9858@sda21(r13)
/* 803762C8 00373228 38 60 00 01 */ li r3, 1
/* 803762CC 0037322C 38 80 00 01 */ li r4, 1
/* 803762D0 00373230 48 00 07 19 */ bl __GXWriteFifoIntReset
/* 803762D4 00373234 38 60 00 01 */ li r3, 1
/* 803762D8 00373238 38 80 00 00 */ li r4, 0
/* 803762DC 0037323C 48 00 06 D1 */ bl __GXWriteFifoIntEnable
lbl_803762E0:
/* 803762E0 00373240 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 803762E4 00373244 80 03 00 08 */ lwz r0, 8(r3)
/* 803762E8 00373248 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
/* 803762EC 0037324C 41 82 00 44 */ beq lbl_80376330
/* 803762F0 00373250 80 03 00 0C */ lwz r0, 0xc(r3)
/* 803762F4 00373254 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 803762F8 00373258 41 82 00 38 */ beq lbl_80376330
/* 803762FC 0037325C 80 AD AC A0 */ lwz r5, lbl_805A9860@sda21(r13)
/* 80376300 00373260 38 60 00 00 */ li r3, 0
/* 80376304 00373264 38 80 00 01 */ li r4, 1
/* 80376308 00373268 38 05 00 01 */ addi r0, r5, 1
/* 8037630C 0037326C 90 0D AC A0 */ stw r0, lbl_805A9860@sda21(r13)
/* 80376310 00373270 48 00 06 9D */ bl __GXWriteFifoIntEnable
/* 80376314 00373274 38 60 00 01 */ li r3, 1
/* 80376318 00373278 38 80 00 00 */ li r4, 0
/* 8037631C 0037327C 48 00 06 CD */ bl __GXWriteFifoIntReset
/* 80376320 00373280 38 00 00 01 */ li r0, 1
/* 80376324 00373284 80 6D AC 90 */ lwz r3, lbl_805A9850@sda21(r13)
/* 80376328 00373288 90 0D AC 98 */ stw r0, lbl_805A9858@sda21(r13)
/* 8037632C 0037328C 48 00 EC 71 */ bl OSSuspendThread
lbl_80376330:
/* 80376330 00373290 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80376334 00373294 80 83 00 08 */ lwz r4, 8(r3)
/* 80376338 00373298 38 A3 00 08 */ addi r5, r3, 8
/* 8037633C 0037329C 54 80 DF FF */ rlwinm. r0, r4, 0x1b, 0x1f, 0x1f
/* 80376340 003732A0 41 82 00 5C */ beq lbl_8037639C
/* 80376344 003732A4 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80376348 003732A8 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
/* 8037634C 003732AC 41 82 00 50 */ beq lbl_8037639C
/* 80376350 003732B0 54 80 06 F2 */ rlwinm r0, r4, 0, 0x1b, 0x19
/* 80376354 003732B4 90 05 00 00 */ stw r0, 0(r5)
/* 80376358 003732B8 80 03 00 08 */ lwz r0, 8(r3)
/* 8037635C 003732BC 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376360 003732C0 B0 03 00 02 */ sth r0, 2(r3)
/* 80376364 003732C4 80 0D AC 9C */ lwz r0, lbl_805A985C@sda21(r13)
/* 80376368 003732C8 28 00 00 00 */ cmplwi r0, 0
/* 8037636C 003732CC 41 82 00 30 */ beq lbl_8037639C
/* 80376370 003732D0 38 61 00 10 */ addi r3, r1, 0x10
/* 80376374 003732D4 48 00 92 A1 */ bl OSClearContext
/* 80376378 003732D8 38 61 00 10 */ addi r3, r1, 0x10
/* 8037637C 003732DC 48 00 90 A1 */ bl OSSetCurrentContext
/* 80376380 003732E0 81 8D AC 9C */ lwz r12, lbl_805A985C@sda21(r13)
/* 80376384 003732E4 7D 88 03 A6 */ mtlr r12
/* 80376388 003732E8 4E 80 00 21 */ blrl
/* 8037638C 003732EC 38 61 00 10 */ addi r3, r1, 0x10
/* 80376390 003732F0 48 00 92 85 */ bl OSClearContext
/* 80376394 003732F4 7F E3 FB 78 */ mr r3, r31
/* 80376398 003732F8 48 00 90 85 */ bl OSSetCurrentContext
lbl_8037639C:
/* 8037639C 003732FC 80 01 02 E4 */ lwz r0, 0x2e4(r1)
/* 803763A0 00373300 83 E1 02 DC */ lwz r31, 0x2dc(r1)
/* 803763A4 00373304 38 21 02 E0 */ addi r1, r1, 0x2e0
/* 803763A8 00373308 7C 08 03 A6 */ mtlr r0
/* 803763AC 0037330C 4E 80 00 20 */ blr
.global GXInitFifoBase
GXInitFifoBase:
/* 803763B0 00373310 7C 08 02 A6 */ mflr r0
/* 803763B4 00373314 90 01 00 04 */ stw r0, 4(r1)
/* 803763B8 00373318 38 05 FF FC */ addi r0, r5, -4
/* 803763BC 0037331C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803763C0 00373320 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803763C4 00373324 3B E4 00 00 */ addi r31, r4, 0
/* 803763C8 00373328 7C 1F 02 14 */ add r0, r31, r0
/* 803763CC 0037332C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803763D0 00373330 3B C3 00 00 */ addi r30, r3, 0
/* 803763D4 00373334 38 85 C0 00 */ addi r4, r5, -16384
/* 803763D8 00373338 93 E3 00 00 */ stw r31, 0(r3)
/* 803763DC 0037333C 90 03 00 04 */ stw r0, 4(r3)
/* 803763E0 00373340 38 00 00 00 */ li r0, 0
/* 803763E4 00373344 90 A3 00 08 */ stw r5, 8(r3)
/* 803763E8 00373348 54 A5 F8 74 */ rlwinm r5, r5, 0x1f, 1, 0x1a
/* 803763EC 0037334C 90 1E 00 1C */ stw r0, 0x1c(r30)
/* 803763F0 00373350 48 00 00 9D */ bl GXInitFifoLimits
/* 803763F4 00373354 38 7E 00 00 */ addi r3, r30, 0
/* 803763F8 00373358 38 9F 00 00 */ addi r4, r31, 0
/* 803763FC 0037335C 38 BF 00 00 */ addi r5, r31, 0
/* 80376400 00373360 48 00 00 1D */ bl GXInitFifoPtrs
/* 80376404 00373364 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80376408 00373368 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8037640C 0037336C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80376410 00373370 38 21 00 20 */ addi r1, r1, 0x20
/* 80376414 00373374 7C 08 03 A6 */ mtlr r0
/* 80376418 00373378 4E 80 00 20 */ blr
.global GXInitFifoPtrs
GXInitFifoPtrs:
/* 8037641C 0037337C 7C 08 02 A6 */ mflr r0
/* 80376420 00373380 90 01 00 04 */ stw r0, 4(r1)
/* 80376424 00373384 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80376428 00373388 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8037642C 0037338C 3B E5 00 00 */ addi r31, r5, 0
/* 80376430 00373390 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80376434 00373394 3B C4 00 00 */ addi r30, r4, 0
/* 80376438 00373398 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 8037643C 0037339C 3B A3 00 00 */ addi r29, r3, 0
/* 80376440 003733A0 48 00 B2 21 */ bl OSDisableInterrupts
/* 80376444 003733A4 93 DD 00 14 */ stw r30, 0x14(r29)
/* 80376448 003733A8 7C 1E F8 50 */ subf r0, r30, r31
/* 8037644C 003733AC 93 FD 00 18 */ stw r31, 0x18(r29)
/* 80376450 003733B0 90 1D 00 1C */ stw r0, 0x1c(r29)
/* 80376454 003733B4 80 9D 00 1C */ lwz r4, 0x1c(r29)
/* 80376458 003733B8 2C 04 00 00 */ cmpwi r4, 0
/* 8037645C 003733BC 40 80 00 10 */ bge lbl_8037646C
/* 80376460 003733C0 80 1D 00 08 */ lwz r0, 8(r29)
/* 80376464 003733C4 7C 04 02 14 */ add r0, r4, r0
/* 80376468 003733C8 90 1D 00 1C */ stw r0, 0x1c(r29)
lbl_8037646C:
/* 8037646C 003733CC 48 00 B2 1D */ bl OSRestoreInterrupts
/* 80376470 003733D0 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80376474 003733D4 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80376478 003733D8 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 8037647C 003733DC 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80376480 003733E0 38 21 00 28 */ addi r1, r1, 0x28
/* 80376484 003733E4 7C 08 03 A6 */ mtlr r0
/* 80376488 003733E8 4E 80 00 20 */ blr
.global GXInitFifoLimits
GXInitFifoLimits:
/* 8037648C 003733EC 90 83 00 0C */ stw r4, 0xc(r3)
/* 80376490 003733F0 90 A3 00 10 */ stw r5, 0x10(r3)
/* 80376494 003733F4 4E 80 00 20 */ blr
.global GXSetCPUFifo
GXSetCPUFifo:
/* 80376498 003733F8 7C 08 02 A6 */ mflr r0
/* 8037649C 003733FC 90 01 00 04 */ stw r0, 4(r1)
/* 803764A0 00373400 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803764A4 00373404 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803764A8 00373408 93 C1 00 10 */ stw r30, 0x10(r1)
/* 803764AC 0037340C 7C 7E 1B 78 */ mr r30, r3
/* 803764B0 00373410 48 00 B1 B1 */ bl OSDisableInterrupts
/* 803764B4 00373414 80 0D AC 8C */ lwz r0, lbl_805A984C@sda21(r13)
/* 803764B8 00373418 3B E3 00 00 */ addi r31, r3, 0
/* 803764BC 0037341C 93 CD AC 88 */ stw r30, lbl_805A9848@sda21(r13)
/* 803764C0 00373420 7C 1E 00 40 */ cmplw r30, r0
/* 803764C4 00373424 40 82 00 64 */ bne lbl_80376528
/* 803764C8 00373428 80 BE 00 00 */ lwz r5, 0(r30)
/* 803764CC 0037342C 38 00 00 01 */ li r0, 1
/* 803764D0 00373430 80 8D AC 78 */ lwz r4, lbl_805A9838@sda21(r13)
/* 803764D4 00373434 38 60 00 01 */ li r3, 1
/* 803764D8 00373438 54 A5 00 BE */ clrlwi r5, r5, 2
/* 803764DC 0037343C 90 A4 00 0C */ stw r5, 0xc(r4)
/* 803764E0 00373440 38 80 00 01 */ li r4, 1
/* 803764E4 00373444 80 DE 00 04 */ lwz r6, 4(r30)
/* 803764E8 00373448 80 AD AC 78 */ lwz r5, lbl_805A9838@sda21(r13)
/* 803764EC 0037344C 54 C6 00 BE */ clrlwi r6, r6, 2
/* 803764F0 00373450 90 C5 00 10 */ stw r6, 0x10(r5)
/* 803764F4 00373454 80 DE 00 18 */ lwz r6, 0x18(r30)
/* 803764F8 00373458 80 AD AC 78 */ lwz r5, lbl_805A9838@sda21(r13)
/* 803764FC 0037345C 54 C6 00 B4 */ rlwinm r6, r6, 0, 2, 0x1a
/* 80376500 00373460 54 C6 01 88 */ rlwinm r6, r6, 0, 6, 4
/* 80376504 00373464 90 C5 00 14 */ stw r6, 0x14(r5)
/* 80376508 00373468 98 0D AC 94 */ stb r0, lbl_805A9854@sda21(r13)
/* 8037650C 0037346C 48 00 04 DD */ bl __GXWriteFifoIntReset
/* 80376510 00373470 38 60 00 01 */ li r3, 1
/* 80376514 00373474 38 80 00 00 */ li r4, 0
/* 80376518 00373478 48 00 04 95 */ bl __GXWriteFifoIntEnable
/* 8037651C 0037347C 38 60 00 01 */ li r3, 1
/* 80376520 00373480 48 00 04 51 */ bl __GXFifoLink
/* 80376524 00373484 48 00 00 60 */ b lbl_80376584
lbl_80376528:
/* 80376528 00373488 88 0D AC 94 */ lbz r0, lbl_805A9854@sda21(r13)
/* 8037652C 0037348C 28 00 00 00 */ cmplwi r0, 0
/* 80376530 00373490 41 82 00 14 */ beq lbl_80376544
/* 80376534 00373494 38 60 00 00 */ li r3, 0
/* 80376538 00373498 48 00 04 39 */ bl __GXFifoLink
/* 8037653C 0037349C 38 00 00 00 */ li r0, 0
/* 80376540 003734A0 98 0D AC 94 */ stb r0, lbl_805A9854@sda21(r13)
lbl_80376544:
/* 80376544 003734A4 38 60 00 00 */ li r3, 0
/* 80376548 003734A8 38 80 00 00 */ li r4, 0
/* 8037654C 003734AC 48 00 04 61 */ bl __GXWriteFifoIntEnable
/* 80376550 003734B0 80 1E 00 00 */ lwz r0, 0(r30)
/* 80376554 003734B4 80 6D AC 78 */ lwz r3, lbl_805A9838@sda21(r13)
/* 80376558 003734B8 54 00 00 BE */ clrlwi r0, r0, 2
/* 8037655C 003734BC 90 03 00 0C */ stw r0, 0xc(r3)
/* 80376560 003734C0 80 1E 00 04 */ lwz r0, 4(r30)
/* 80376564 003734C4 80 6D AC 78 */ lwz r3, lbl_805A9838@sda21(r13)
/* 80376568 003734C8 54 00 00 BE */ clrlwi r0, r0, 2
/* 8037656C 003734CC 90 03 00 10 */ stw r0, 0x10(r3)
/* 80376570 003734D0 80 1E 00 18 */ lwz r0, 0x18(r30)
/* 80376574 003734D4 80 6D AC 78 */ lwz r3, lbl_805A9838@sda21(r13)
/* 80376578 003734D8 54 00 00 B4 */ rlwinm r0, r0, 0, 2, 0x1a
/* 8037657C 003734DC 54 00 01 88 */ rlwinm r0, r0, 0, 6, 4
/* 80376580 003734E0 90 03 00 14 */ stw r0, 0x14(r3)
lbl_80376584:
/* 80376584 003734E4 4B FF 92 89 */ bl PPCSync
/* 80376588 003734E8 7F E3 FB 78 */ mr r3, r31
/* 8037658C 003734EC 48 00 B0 FD */ bl OSRestoreInterrupts
/* 80376590 003734F0 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80376594 003734F4 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80376598 003734F8 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8037659C 003734FC 38 21 00 18 */ addi r1, r1, 0x18
/* 803765A0 00373500 7C 08 03 A6 */ mtlr r0
/* 803765A4 00373504 4E 80 00 20 */ blr
.global GXSetGPFifo
GXSetGPFifo:
/* 803765A8 00373508 7C 08 02 A6 */ mflr r0
/* 803765AC 0037350C 90 01 00 04 */ stw r0, 4(r1)
/* 803765B0 00373510 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803765B4 00373514 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803765B8 00373518 93 C1 00 10 */ stw r30, 0x10(r1)
/* 803765BC 0037351C 7C 7E 1B 78 */ mr r30, r3
/* 803765C0 00373520 48 00 B0 A1 */ bl OSDisableInterrupts
/* 803765C4 00373524 7C 7F 1B 78 */ mr r31, r3
/* 803765C8 00373528 48 00 03 89 */ bl __GXFifoReadDisable
/* 803765CC 0037352C 38 60 00 00 */ li r3, 0
/* 803765D0 00373530 38 80 00 00 */ li r4, 0
/* 803765D4 00373534 48 00 03 D9 */ bl __GXWriteFifoIntEnable
/* 803765D8 00373538 93 CD AC 8C */ stw r30, lbl_805A984C@sda21(r13)
/* 803765DC 0037353C 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 803765E0 00373540 80 1E 00 00 */ lwz r0, 0(r30)
/* 803765E4 00373544 B0 03 00 20 */ sth r0, 0x20(r3)
/* 803765E8 00373548 80 1E 00 04 */ lwz r0, 4(r30)
/* 803765EC 0037354C 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 803765F0 00373550 B0 03 00 24 */ sth r0, 0x24(r3)
/* 803765F4 00373554 80 1E 00 1C */ lwz r0, 0x1c(r30)
/* 803765F8 00373558 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 803765FC 0037355C B0 03 00 30 */ sth r0, 0x30(r3)
/* 80376600 00373560 80 1E 00 18 */ lwz r0, 0x18(r30)
/* 80376604 00373564 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376608 00373568 B0 03 00 34 */ sth r0, 0x34(r3)
/* 8037660C 0037356C 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 80376610 00373570 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376614 00373574 B0 03 00 38 */ sth r0, 0x38(r3)
/* 80376618 00373578 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 8037661C 0037357C 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376620 00373580 B0 03 00 28 */ sth r0, 0x28(r3)
/* 80376624 00373584 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 80376628 00373588 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 8037662C 0037358C B0 03 00 2C */ sth r0, 0x2c(r3)
/* 80376630 00373590 80 1E 00 00 */ lwz r0, 0(r30)
/* 80376634 00373594 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376638 00373598 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f
/* 8037663C 0037359C B0 03 00 22 */ sth r0, 0x22(r3)
/* 80376640 003735A0 80 1E 00 04 */ lwz r0, 4(r30)
/* 80376644 003735A4 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376648 003735A8 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f
/* 8037664C 003735AC B0 03 00 26 */ sth r0, 0x26(r3)
/* 80376650 003735B0 80 1E 00 1C */ lwz r0, 0x1c(r30)
/* 80376654 003735B4 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376658 003735B8 7C 00 86 70 */ srawi r0, r0, 0x10
/* 8037665C 003735BC B0 03 00 32 */ sth r0, 0x32(r3)
/* 80376660 003735C0 80 1E 00 18 */ lwz r0, 0x18(r30)
/* 80376664 003735C4 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376668 003735C8 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f
/* 8037666C 003735CC B0 03 00 36 */ sth r0, 0x36(r3)
/* 80376670 003735D0 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 80376674 003735D4 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376678 003735D8 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f
/* 8037667C 003735DC B0 03 00 3A */ sth r0, 0x3a(r3)
/* 80376680 003735E0 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 80376684 003735E4 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376688 003735E8 54 00 84 3E */ srwi r0, r0, 0x10
/* 8037668C 003735EC B0 03 00 2A */ sth r0, 0x2a(r3)
/* 80376690 003735F0 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 80376694 003735F4 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376698 003735F8 54 00 84 3E */ srwi r0, r0, 0x10
/* 8037669C 003735FC B0 03 00 2E */ sth r0, 0x2e(r3)
/* 803766A0 00373600 4B FF 91 6D */ bl PPCSync
/* 803766A4 00373604 80 6D AC 88 */ lwz r3, lbl_805A9848@sda21(r13)
/* 803766A8 00373608 80 0D AC 8C */ lwz r0, lbl_805A984C@sda21(r13)
/* 803766AC 0037360C 7C 03 00 40 */ cmplw r3, r0
/* 803766B0 00373610 40 82 00 24 */ bne lbl_803766D4
/* 803766B4 00373614 38 00 00 01 */ li r0, 1
/* 803766B8 00373618 98 0D AC 94 */ stb r0, lbl_805A9854@sda21(r13)
/* 803766BC 0037361C 38 60 00 01 */ li r3, 1
/* 803766C0 00373620 38 80 00 00 */ li r4, 0
/* 803766C4 00373624 48 00 02 E9 */ bl __GXWriteFifoIntEnable
/* 803766C8 00373628 38 60 00 01 */ li r3, 1
/* 803766CC 0037362C 48 00 02 A5 */ bl __GXFifoLink
/* 803766D0 00373630 48 00 00 20 */ b lbl_803766F0
lbl_803766D4:
/* 803766D4 00373634 38 00 00 00 */ li r0, 0
/* 803766D8 00373638 98 0D AC 94 */ stb r0, lbl_805A9854@sda21(r13)
/* 803766DC 0037363C 38 60 00 00 */ li r3, 0
/* 803766E0 00373640 38 80 00 00 */ li r4, 0
/* 803766E4 00373644 48 00 02 C9 */ bl __GXWriteFifoIntEnable
/* 803766E8 00373648 38 60 00 00 */ li r3, 0
/* 803766EC 0037364C 48 00 02 85 */ bl __GXFifoLink
lbl_803766F0:
/* 803766F0 00373650 38 60 00 01 */ li r3, 1
/* 803766F4 00373654 38 80 00 01 */ li r4, 1
/* 803766F8 00373658 48 00 02 F1 */ bl __GXWriteFifoIntReset
/* 803766FC 0037365C 48 00 02 31 */ bl __GXFifoReadEnable
/* 80376700 00373660 7F E3 FB 78 */ mr r3, r31
/* 80376704 00373664 48 00 AF 85 */ bl OSRestoreInterrupts
/* 80376708 00373668 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8037670C 0037366C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80376710 00373670 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80376714 00373674 38 21 00 18 */ addi r1, r1, 0x18
/* 80376718 00373678 7C 08 03 A6 */ mtlr r0
/* 8037671C 0037367C 4E 80 00 20 */ blr
.global __GXSaveCPUFifoAux
__GXSaveCPUFifoAux:
/* 80376720 00373680 80 0D AC 88 */ lwz r0, lbl_805A9848@sda21(r13)
/* 80376724 00373684 7C 03 00 40 */ cmplw r3, r0
/* 80376728 00373688 40 82 00 18 */ bne lbl_80376740
/* 8037672C 0037368C 80 CD AC 78 */ lwz r6, lbl_805A9838@sda21(r13)
/* 80376730 00373690 80 06 00 14 */ lwz r0, 0x14(r6)
/* 80376734 00373694 54 06 01 88 */ rlwinm r6, r0, 0, 6, 4
/* 80376738 00373698 3C 06 80 00 */ addis r0, r6, 0x8000
/* 8037673C 0037369C 90 03 00 18 */ stw r0, 0x18(r3)
lbl_80376740:
/* 80376740 003736A0 80 0D AC 8C */ lwz r0, lbl_805A984C@sda21(r13)
/* 80376744 003736A4 7C 03 00 40 */ cmplw r3, r0
/* 80376748 003736A8 40 82 00 34 */ bne lbl_8037677C
/* 8037674C 003736AC 80 ED AC 7C */ lwz r7, lbl_805A983C@sda21(r13)
/* 80376750 003736B0 A0 C7 00 3A */ lhz r6, 0x3a(r7)
/* 80376754 003736B4 A0 E7 00 38 */ lhz r7, 0x38(r7)
/* 80376758 003736B8 50 C7 80 1E */ rlwimi r7, r6, 0x10, 0, 0xf
/* 8037675C 003736BC 3C 07 80 00 */ addis r0, r7, 0x8000
/* 80376760 003736C0 90 03 00 14 */ stw r0, 0x14(r3)
/* 80376764 003736C4 80 ED AC 7C */ lwz r7, lbl_805A983C@sda21(r13)
/* 80376768 003736C8 A0 C7 00 32 */ lhz r6, 0x32(r7)
/* 8037676C 003736CC A0 07 00 30 */ lhz r0, 0x30(r7)
/* 80376770 003736D0 50 C0 80 1E */ rlwimi r0, r6, 0x10, 0, 0xf
/* 80376774 003736D4 90 03 00 1C */ stw r0, 0x1c(r3)
/* 80376778 003736D8 48 00 00 2C */ b lbl_803767A4
lbl_8037677C:
/* 8037677C 003736DC 80 C3 00 14 */ lwz r6, 0x14(r3)
/* 80376780 003736E0 80 03 00 18 */ lwz r0, 0x18(r3)
/* 80376784 003736E4 7C 06 00 50 */ subf r0, r6, r0
/* 80376788 003736E8 90 03 00 1C */ stw r0, 0x1c(r3)
/* 8037678C 003736EC 80 C3 00 1C */ lwz r6, 0x1c(r3)
/* 80376790 003736F0 2C 06 00 00 */ cmpwi r6, 0
/* 80376794 003736F4 40 80 00 10 */ bge lbl_803767A4
/* 80376798 003736F8 80 03 00 08 */ lwz r0, 8(r3)
/* 8037679C 003736FC 7C 06 02 14 */ add r0, r6, r0
/* 803767A0 00373700 90 03 00 1C */ stw r0, 0x1c(r3)
lbl_803767A4:
/* 803767A4 00373704 80 03 00 14 */ lwz r0, 0x14(r3)
/* 803767A8 00373708 90 04 00 00 */ stw r0, 0(r4)
/* 803767AC 0037370C 80 03 00 18 */ lwz r0, 0x18(r3)
/* 803767B0 00373710 90 05 00 00 */ stw r0, 0(r5)
/* 803767B4 00373714 4E 80 00 20 */ blr
.global GXSetBreakPtCallback
GXSetBreakPtCallback:
/* 803767B8 00373718 7C 08 02 A6 */ mflr r0
/* 803767BC 0037371C 90 01 00 04 */ stw r0, 4(r1)
/* 803767C0 00373720 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803767C4 00373724 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803767C8 00373728 93 C1 00 10 */ stw r30, 0x10(r1)
/* 803767CC 0037372C 7C 7E 1B 78 */ mr r30, r3
/* 803767D0 00373730 83 ED AC 9C */ lwz r31, lbl_805A985C@sda21(r13)
/* 803767D4 00373734 48 00 AE 8D */ bl OSDisableInterrupts
/* 803767D8 00373738 93 CD AC 9C */ stw r30, lbl_805A985C@sda21(r13)
/* 803767DC 0037373C 48 00 AE AD */ bl OSRestoreInterrupts
/* 803767E0 00373740 7F E3 FB 78 */ mr r3, r31
/* 803767E4 00373744 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803767E8 00373748 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803767EC 0037374C 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803767F0 00373750 38 21 00 18 */ addi r1, r1, 0x18
/* 803767F4 00373754 7C 08 03 A6 */ mtlr r0
/* 803767F8 00373758 4E 80 00 20 */ blr
.global GXEnableBreakPt
GXEnableBreakPt:
/* 803767FC 0037375C 7C 08 02 A6 */ mflr r0
/* 80376800 00373760 90 01 00 04 */ stw r0, 4(r1)
/* 80376804 00373764 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80376808 00373768 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8037680C 0037376C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80376810 00373770 7C 7E 1B 78 */ mr r30, r3
/* 80376814 00373774 48 00 AE 4D */ bl OSDisableInterrupts
/* 80376818 00373778 7C 7F 1B 78 */ mr r31, r3
/* 8037681C 0037377C 48 00 01 35 */ bl __GXFifoReadDisable
/* 80376820 00373780 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376824 00373784 57 C0 84 BE */ rlwinm r0, r30, 0x10, 0x12, 0x1f
/* 80376828 00373788 B3 C3 00 3C */ sth r30, 0x3c(r3)
/* 8037682C 0037378C 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376830 00373790 B0 03 00 3E */ sth r0, 0x3e(r3)
/* 80376834 00373794 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80376838 00373798 80 03 00 08 */ lwz r0, 8(r3)
/* 8037683C 0037379C 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80376840 003737A0 60 00 00 02 */ ori r0, r0, 2
/* 80376844 003737A4 90 03 00 08 */ stw r0, 8(r3)
/* 80376848 003737A8 80 03 00 08 */ lwz r0, 8(r3)
/* 8037684C 003737AC 54 00 06 F2 */ rlwinm r0, r0, 0, 0x1b, 0x19
/* 80376850 003737B0 60 00 00 20 */ ori r0, r0, 0x20
/* 80376854 003737B4 90 03 00 08 */ stw r0, 8(r3)
/* 80376858 003737B8 80 03 00 08 */ lwz r0, 8(r3)
/* 8037685C 003737BC 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376860 003737C0 B0 03 00 02 */ sth r0, 2(r3)
/* 80376864 003737C4 93 CD AC A4 */ stw r30, lbl_805A9864@sda21(r13)
/* 80376868 003737C8 48 00 00 C5 */ bl __GXFifoReadEnable
/* 8037686C 003737CC 7F E3 FB 78 */ mr r3, r31
/* 80376870 003737D0 48 00 AE 19 */ bl OSRestoreInterrupts
/* 80376874 003737D4 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80376878 003737D8 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8037687C 003737DC 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80376880 003737E0 38 21 00 18 */ addi r1, r1, 0x18
/* 80376884 003737E4 7C 08 03 A6 */ mtlr r0
/* 80376888 003737E8 4E 80 00 20 */ blr
.global GXDisableBreakPt
GXDisableBreakPt:
/* 8037688C 003737EC 7C 08 02 A6 */ mflr r0
/* 80376890 003737F0 90 01 00 04 */ stw r0, 4(r1)
/* 80376894 003737F4 94 21 FF F8 */ stwu r1, -8(r1)
/* 80376898 003737F8 48 00 AD C9 */ bl OSDisableInterrupts
/* 8037689C 003737FC 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 803768A0 00373800 38 00 00 00 */ li r0, 0
/* 803768A4 00373804 80 85 00 08 */ lwz r4, 8(r5)
/* 803768A8 00373808 54 84 07 FA */ rlwinm r4, r4, 0, 0x1f, 0x1d
/* 803768AC 0037380C 90 85 00 08 */ stw r4, 8(r5)
/* 803768B0 00373810 80 85 00 08 */ lwz r4, 8(r5)
/* 803768B4 00373814 54 84 06 F2 */ rlwinm r4, r4, 0, 0x1b, 0x19
/* 803768B8 00373818 90 85 00 08 */ stw r4, 8(r5)
/* 803768BC 0037381C 80 A5 00 08 */ lwz r5, 8(r5)
/* 803768C0 00373820 80 8D AC 7C */ lwz r4, lbl_805A983C@sda21(r13)
/* 803768C4 00373824 B0 A4 00 02 */ sth r5, 2(r4)
/* 803768C8 00373828 90 0D AC A4 */ stw r0, lbl_805A9864@sda21(r13)
/* 803768CC 0037382C 48 00 AD BD */ bl OSRestoreInterrupts
/* 803768D0 00373830 80 01 00 0C */ lwz r0, 0xc(r1)
/* 803768D4 00373834 38 21 00 08 */ addi r1, r1, 8
/* 803768D8 00373838 7C 08 03 A6 */ mtlr r0
/* 803768DC 0037383C 4E 80 00 20 */ blr
.global __GXFifoInit
__GXFifoInit:
/* 803768E0 00373840 7C 08 02 A6 */ mflr r0
/* 803768E4 00373844 3C 60 80 37 */ lis r3, GXCPInterruptHandler@ha
/* 803768E8 00373848 90 01 00 04 */ stw r0, 4(r1)
/* 803768EC 0037384C 38 83 62 7C */ addi r4, r3, GXCPInterruptHandler@l
/* 803768F0 00373850 38 60 00 11 */ li r3, 0x11
/* 803768F4 00373854 94 21 FF F8 */ stwu r1, -8(r1)
/* 803768F8 00373858 48 00 AD B5 */ bl __OSSetInterruptHandler
/* 803768FC 0037385C 38 60 40 00 */ li r3, 0x4000
/* 80376900 00373860 48 00 B1 B1 */ bl __OSUnmaskInterrupts
/* 80376904 00373864 48 00 DC D1 */ bl OSGetCurrentThread
/* 80376908 00373868 38 00 00 00 */ li r0, 0
/* 8037690C 0037386C 90 6D AC 90 */ stw r3, lbl_805A9850@sda21(r13)
/* 80376910 00373870 90 0D AC 98 */ stw r0, lbl_805A9858@sda21(r13)
/* 80376914 00373874 90 0D AC 88 */ stw r0, lbl_805A9848@sda21(r13)
/* 80376918 00373878 90 0D AC 8C */ stw r0, lbl_805A984C@sda21(r13)
/* 8037691C 0037387C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80376920 00373880 38 21 00 08 */ addi r1, r1, 8
/* 80376924 00373884 7C 08 03 A6 */ mtlr r0
/* 80376928 00373888 4E 80 00 20 */ blr
.global __GXFifoReadEnable
__GXFifoReadEnable:
/* 8037692C 0037388C 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80376930 00373890 80 03 00 08 */ lwz r0, 8(r3)
/* 80376934 00373894 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 80376938 00373898 60 00 00 01 */ ori r0, r0, 1
/* 8037693C 0037389C 90 03 00 08 */ stw r0, 8(r3)
/* 80376940 003738A0 80 03 00 08 */ lwz r0, 8(r3)
/* 80376944 003738A4 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376948 003738A8 B0 03 00 02 */ sth r0, 2(r3)
/* 8037694C 003738AC 4E 80 00 20 */ blr
.global __GXFifoReadDisable
__GXFifoReadDisable:
/* 80376950 003738B0 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80376954 003738B4 80 03 00 08 */ lwz r0, 8(r3)
/* 80376958 003738B8 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8037695C 003738BC 90 03 00 08 */ stw r0, 8(r3)
/* 80376960 003738C0 80 03 00 08 */ lwz r0, 8(r3)
/* 80376964 003738C4 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376968 003738C8 B0 03 00 02 */ sth r0, 2(r3)
/* 8037696C 003738CC 4E 80 00 20 */ blr
.global __GXFifoLink
__GXFifoLink:
/* 80376970 003738D0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80376974 003738D4 41 82 00 0C */ beq lbl_80376980
/* 80376978 003738D8 38 00 00 01 */ li r0, 1
/* 8037697C 003738DC 48 00 00 08 */ b lbl_80376984
lbl_80376980:
/* 80376980 003738E0 38 00 00 00 */ li r0, 0
lbl_80376984:
/* 80376984 003738E4 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 80376988 003738E8 54 00 20 36 */ slwi r0, r0, 4
/* 8037698C 003738EC 80 64 00 08 */ lwz r3, 8(r4)
/* 80376990 003738F0 54 63 07 34 */ rlwinm r3, r3, 0, 0x1c, 0x1a
/* 80376994 003738F4 7C 60 03 78 */ or r0, r3, r0
/* 80376998 003738F8 90 04 00 08 */ stw r0, 8(r4)
/* 8037699C 003738FC 80 04 00 08 */ lwz r0, 8(r4)
/* 803769A0 00373900 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 803769A4 00373904 B0 03 00 02 */ sth r0, 2(r3)
/* 803769A8 00373908 4E 80 00 20 */ blr
.global __GXWriteFifoIntEnable
__GXWriteFifoIntEnable:
/* 803769AC 0037390C 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 803769B0 00373910 54 63 15 BA */ rlwinm r3, r3, 2, 0x16, 0x1d
/* 803769B4 00373914 54 80 1D 78 */ rlwinm r0, r4, 3, 0x15, 0x1c
/* 803769B8 00373918 80 A6 00 08 */ lwz r5, 8(r6)
/* 803769BC 0037391C 54 A4 07 B8 */ rlwinm r4, r5, 0, 0x1e, 0x1c
/* 803769C0 00373920 7C 83 1B 78 */ or r3, r4, r3
/* 803769C4 00373924 90 66 00 08 */ stw r3, 8(r6)
/* 803769C8 00373928 80 66 00 08 */ lwz r3, 8(r6)
/* 803769CC 0037392C 54 63 07 76 */ rlwinm r3, r3, 0, 0x1d, 0x1b
/* 803769D0 00373930 7C 60 03 78 */ or r0, r3, r0
/* 803769D4 00373934 90 06 00 08 */ stw r0, 8(r6)
/* 803769D8 00373938 80 06 00 08 */ lwz r0, 8(r6)
/* 803769DC 0037393C 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 803769E0 00373940 B0 03 00 02 */ sth r0, 2(r3)
/* 803769E4 00373944 4E 80 00 20 */ blr
.global __GXWriteFifoIntReset
__GXWriteFifoIntReset:
/* 803769E8 00373948 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 803769EC 0037394C 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 803769F0 00373950 54 80 0D FC */ rlwinm r0, r4, 1, 0x17, 0x1e
/* 803769F4 00373954 80 A6 00 10 */ lwz r5, 0x10(r6)
/* 803769F8 00373958 54 A4 00 3C */ rlwinm r4, r5, 0, 0, 0x1e
/* 803769FC 0037395C 7C 83 1B 78 */ or r3, r4, r3
/* 80376A00 00373960 90 66 00 10 */ stw r3, 0x10(r6)
/* 80376A04 00373964 80 66 00 10 */ lwz r3, 0x10(r6)
/* 80376A08 00373968 54 63 07 FA */ rlwinm r3, r3, 0, 0x1f, 0x1d
/* 80376A0C 0037396C 7C 60 03 78 */ or r0, r3, r0
/* 80376A10 00373970 90 06 00 10 */ stw r0, 0x10(r6)
/* 80376A14 00373974 80 06 00 10 */ lwz r0, 0x10(r6)
/* 80376A18 00373978 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376A1C 0037397C B0 03 00 04 */ sth r0, 4(r3)
/* 80376A20 00373980 4E 80 00 20 */ blr
.global __GXCleanGPFifo
__GXCleanGPFifo:
/* 80376A24 00373984 7C 08 02 A6 */ mflr r0
/* 80376A28 00373988 90 01 00 04 */ stw r0, 4(r1)
/* 80376A2C 0037398C 94 21 FF 58 */ stwu r1, -0xa8(r1)
/* 80376A30 00373990 93 E1 00 A4 */ stw r31, 0xa4(r1)
/* 80376A34 00373994 93 C1 00 A0 */ stw r30, 0xa0(r1)
/* 80376A38 00373998 93 A1 00 9C */ stw r29, 0x9c(r1)
/* 80376A3C 0037399C 48 00 00 F1 */ bl GXGetGPFifo
/* 80376A40 003739A0 7C 7F 1B 79 */ or. r31, r3, r3
/* 80376A44 003739A4 41 82 00 C4 */ beq lbl_80376B08
/* 80376A48 003739A8 48 00 00 DD */ bl GXGetCPUFifo
/* 80376A4C 003739AC 38 00 00 10 */ li r0, 0x10
/* 80376A50 003739B0 83 BF 00 00 */ lwz r29, 0(r31)
/* 80376A54 003739B4 7C 09 03 A6 */ mtctr r0
/* 80376A58 003739B8 3B C3 00 00 */ addi r30, r3, 0
/* 80376A5C 003739BC 38 A1 00 0C */ addi r5, r1, 0xc
/* 80376A60 003739C0 38 9F FF F8 */ addi r4, r31, -8
lbl_80376A64:
/* 80376A64 003739C4 84 64 00 08 */ lwzu r3, 8(r4)
/* 80376A68 003739C8 80 04 00 04 */ lwz r0, 4(r4)
/* 80376A6C 003739CC 94 65 00 08 */ stwu r3, 8(r5)
/* 80376A70 003739D0 90 05 00 04 */ stw r0, 4(r5)
/* 80376A74 003739D4 42 00 FF F0 */ bdnz lbl_80376A64
/* 80376A78 003739D8 48 00 AB E9 */ bl OSDisableInterrupts
/* 80376A7C 003739DC 93 A1 00 28 */ stw r29, 0x28(r1)
/* 80376A80 003739E0 38 00 00 00 */ li r0, 0
/* 80376A84 003739E4 93 A1 00 2C */ stw r29, 0x2c(r1)
/* 80376A88 003739E8 90 01 00 30 */ stw r0, 0x30(r1)
/* 80376A8C 003739EC 80 81 00 30 */ lwz r4, 0x30(r1)
/* 80376A90 003739F0 2C 04 00 00 */ cmpwi r4, 0
/* 80376A94 003739F4 40 80 00 10 */ bge lbl_80376AA4
/* 80376A98 003739F8 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80376A9C 003739FC 7C 04 02 14 */ add r0, r4, r0
/* 80376AA0 00373A00 90 01 00 30 */ stw r0, 0x30(r1)
lbl_80376AA4:
/* 80376AA4 00373A04 48 00 AB E5 */ bl OSRestoreInterrupts
/* 80376AA8 00373A08 38 61 00 14 */ addi r3, r1, 0x14
/* 80376AAC 00373A0C 4B FF FA FD */ bl GXSetGPFifo
/* 80376AB0 00373A10 7C 1E F8 40 */ cmplw r30, r31
/* 80376AB4 00373A14 40 82 00 0C */ bne lbl_80376AC0
/* 80376AB8 00373A18 38 61 00 14 */ addi r3, r1, 0x14
/* 80376ABC 00373A1C 4B FF F9 DD */ bl GXSetCPUFifo
lbl_80376AC0:
/* 80376AC0 00373A20 48 00 AB A1 */ bl OSDisableInterrupts
/* 80376AC4 00373A24 93 BF 00 14 */ stw r29, 0x14(r31)
/* 80376AC8 00373A28 38 00 00 00 */ li r0, 0
/* 80376ACC 00373A2C 93 BF 00 18 */ stw r29, 0x18(r31)
/* 80376AD0 00373A30 90 1F 00 1C */ stw r0, 0x1c(r31)
/* 80376AD4 00373A34 80 9F 00 1C */ lwz r4, 0x1c(r31)
/* 80376AD8 00373A38 2C 04 00 00 */ cmpwi r4, 0
/* 80376ADC 00373A3C 40 80 00 10 */ bge lbl_80376AEC
/* 80376AE0 00373A40 80 1F 00 08 */ lwz r0, 8(r31)
/* 80376AE4 00373A44 7C 04 02 14 */ add r0, r4, r0
/* 80376AE8 00373A48 90 1F 00 1C */ stw r0, 0x1c(r31)
lbl_80376AEC:
/* 80376AEC 00373A4C 48 00 AB 9D */ bl OSRestoreInterrupts
/* 80376AF0 00373A50 7F E3 FB 78 */ mr r3, r31
/* 80376AF4 00373A54 4B FF FA B5 */ bl GXSetGPFifo
/* 80376AF8 00373A58 7C 1E F8 40 */ cmplw r30, r31
/* 80376AFC 00373A5C 40 82 00 0C */ bne lbl_80376B08
/* 80376B00 00373A60 7F C3 F3 78 */ mr r3, r30
/* 80376B04 00373A64 4B FF F9 95 */ bl GXSetCPUFifo
lbl_80376B08:
/* 80376B08 00373A68 80 01 00 AC */ lwz r0, 0xac(r1)
/* 80376B0C 00373A6C 83 E1 00 A4 */ lwz r31, 0xa4(r1)
/* 80376B10 00373A70 83 C1 00 A0 */ lwz r30, 0xa0(r1)
/* 80376B14 00373A74 83 A1 00 9C */ lwz r29, 0x9c(r1)
/* 80376B18 00373A78 38 21 00 A8 */ addi r1, r1, 0xa8
/* 80376B1C 00373A7C 7C 08 03 A6 */ mtlr r0
/* 80376B20 00373A80 4E 80 00 20 */ blr
.global GXGetCPUFifo
GXGetCPUFifo:
/* 80376B24 00373A84 80 6D AC 88 */ lwz r3, lbl_805A9848@sda21(r13)
/* 80376B28 00373A88 4E 80 00 20 */ blr
.global GXGetGPFifo
GXGetGPFifo:
/* 80376B2C 00373A8C 80 6D AC 8C */ lwz r3, lbl_805A984C@sda21(r13)
/* 80376B30 00373A90 4E 80 00 20 */ blr
.global GXRedirectWriteGatherPipe
GXRedirectWriteGatherPipe:
/* 80376B34 00373A94 7C 08 02 A6 */ mflr r0
/* 80376B38 00373A98 90 01 00 04 */ stw r0, 4(r1)
/* 80376B3C 00373A9C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80376B40 00373AA0 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80376B44 00373AA4 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80376B48 00373AA8 7C 7E 1B 78 */ mr r30, r3
/* 80376B4C 00373AAC 48 00 AB 15 */ bl OSDisableInterrupts
/* 80376B50 00373AB0 7C 7F 1B 78 */ mr r31, r3
/* 80376B54 00373AB4 48 00 17 BD */ bl GXFlush
lbl_80376B58:
/* 80376B58 00373AB8 4B FF 8D 29 */ bl PPCMfwpar
/* 80376B5C 00373ABC 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 80376B60 00373AC0 40 82 FF F8 */ bne lbl_80376B58
/* 80376B64 00373AC4 3C 60 0C 01 */ lis r3, 0x0C008000@ha
/* 80376B68 00373AC8 38 63 80 00 */ addi r3, r3, 0x0C008000@l
/* 80376B6C 00373ACC 4B FF 8D 21 */ bl PPCMtwpar
/* 80376B70 00373AD0 88 0D AC 94 */ lbz r0, lbl_805A9854@sda21(r13)
/* 80376B74 00373AD4 28 00 00 00 */ cmplwi r0, 0
/* 80376B78 00373AD8 41 82 00 44 */ beq lbl_80376BBC
/* 80376B7C 00373ADC 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 80376B80 00373AE0 80 04 00 08 */ lwz r0, 8(r4)
/* 80376B84 00373AE4 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
/* 80376B88 00373AE8 90 04 00 08 */ stw r0, 8(r4)
/* 80376B8C 00373AEC 80 04 00 08 */ lwz r0, 8(r4)
/* 80376B90 00373AF0 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376B94 00373AF4 B0 03 00 02 */ sth r0, 2(r3)
/* 80376B98 00373AF8 80 04 00 08 */ lwz r0, 8(r4)
/* 80376B9C 00373AFC 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
/* 80376BA0 00373B00 90 04 00 08 */ stw r0, 8(r4)
/* 80376BA4 00373B04 80 04 00 08 */ lwz r0, 8(r4)
/* 80376BA8 00373B08 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
/* 80376BAC 00373B0C 90 04 00 08 */ stw r0, 8(r4)
/* 80376BB0 00373B10 80 04 00 08 */ lwz r0, 8(r4)
/* 80376BB4 00373B14 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376BB8 00373B18 B0 03 00 02 */ sth r0, 2(r3)
lbl_80376BBC:
/* 80376BBC 00373B1C 80 8D AC 78 */ lwz r4, lbl_805A9838@sda21(r13)
/* 80376BC0 00373B20 57 C5 00 B4 */ rlwinm r5, r30, 0, 2, 0x1a
/* 80376BC4 00373B24 80 6D AC 88 */ lwz r3, lbl_805A9848@sda21(r13)
/* 80376BC8 00373B28 54 A5 01 88 */ rlwinm r5, r5, 0, 6, 4
/* 80376BCC 00373B2C 80 04 00 14 */ lwz r0, 0x14(r4)
/* 80376BD0 00373B30 54 04 01 88 */ rlwinm r4, r0, 0, 6, 4
/* 80376BD4 00373B34 3C 04 80 00 */ addis r0, r4, 0x8000
/* 80376BD8 00373B38 90 03 00 18 */ stw r0, 0x18(r3)
/* 80376BDC 00373B3C 38 80 00 00 */ li r4, 0
/* 80376BE0 00373B40 3C 00 04 00 */ lis r0, 0x400
/* 80376BE4 00373B44 80 6D AC 78 */ lwz r3, lbl_805A9838@sda21(r13)
/* 80376BE8 00373B48 90 83 00 0C */ stw r4, 0xc(r3)
/* 80376BEC 00373B4C 80 6D AC 78 */ lwz r3, lbl_805A9838@sda21(r13)
/* 80376BF0 00373B50 90 03 00 10 */ stw r0, 0x10(r3)
/* 80376BF4 00373B54 80 6D AC 78 */ lwz r3, lbl_805A9838@sda21(r13)
/* 80376BF8 00373B58 90 A3 00 14 */ stw r5, 0x14(r3)
/* 80376BFC 00373B5C 4B FF 8C 11 */ bl PPCSync
/* 80376C00 00373B60 7F E3 FB 78 */ mr r3, r31
/* 80376C04 00373B64 48 00 AA 85 */ bl OSRestoreInterrupts
/* 80376C08 00373B68 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80376C0C 00373B6C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80376C10 00373B70 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80376C14 00373B74 38 63 80 00 */ addi r3, r3, 0xCC008000@l
/* 80376C18 00373B78 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80376C1C 00373B7C 38 21 00 18 */ addi r1, r1, 0x18
/* 80376C20 00373B80 7C 08 03 A6 */ mtlr r0
/* 80376C24 00373B84 4E 80 00 20 */ blr
.global GXRestoreWriteGatherPipe
GXRestoreWriteGatherPipe:
/* 80376C28 00373B88 7C 08 02 A6 */ mflr r0
/* 80376C2C 00373B8C 90 01 00 04 */ stw r0, 4(r1)
/* 80376C30 00373B90 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80376C34 00373B94 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80376C38 00373B98 48 00 AA 29 */ bl OSDisableInterrupts
/* 80376C3C 00373B9C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80376C40 00373BA0 38 80 00 00 */ li r4, 0
/* 80376C44 00373BA4 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C48 00373BA8 38 C0 00 18 */ li r6, 0x18
/* 80376C4C 00373BAC 20 06 00 1F */ subfic r0, r6, 0x1f
/* 80376C50 00373BB0 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C54 00373BB4 28 06 00 1F */ cmplwi r6, 0x1f
/* 80376C58 00373BB8 7C 09 03 A6 */ mtctr r0
/* 80376C5C 00373BBC 7C 7F 1B 78 */ mr r31, r3
/* 80376C60 00373BC0 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C64 00373BC4 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C68 00373BC8 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C6C 00373BCC 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C70 00373BD0 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C74 00373BD4 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C78 00373BD8 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C7C 00373BDC 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C80 00373BE0 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C84 00373BE4 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C88 00373BE8 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C8C 00373BEC 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C90 00373BF0 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C94 00373BF4 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C98 00373BF8 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376C9C 00373BFC 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376CA0 00373C00 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376CA4 00373C04 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376CA8 00373C08 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376CAC 00373C0C 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376CB0 00373C10 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376CB4 00373C14 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376CB8 00373C18 40 80 00 0C */ bge lbl_80376CC4
lbl_80376CBC:
/* 80376CBC 00373C1C 98 85 80 00 */ stb r4, 0xCC008000@l(r5)
/* 80376CC0 00373C20 42 00 FF FC */ bdnz lbl_80376CBC
lbl_80376CC4:
/* 80376CC4 00373C24 4B FF 8B 49 */ bl PPCSync
lbl_80376CC8:
/* 80376CC8 00373C28 4B FF 8B B9 */ bl PPCMfwpar
/* 80376CCC 00373C2C 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 80376CD0 00373C30 40 82 FF F8 */ bne lbl_80376CC8
/* 80376CD4 00373C34 3C 60 0C 01 */ lis r3, 0x0C008000@ha
/* 80376CD8 00373C38 38 63 80 00 */ addi r3, r3, 0x0C008000@l
/* 80376CDC 00373C3C 4B FF 8B B1 */ bl PPCMtwpar
/* 80376CE0 00373C40 80 8D AC 88 */ lwz r4, lbl_805A9848@sda21(r13)
/* 80376CE4 00373C44 80 6D AC 78 */ lwz r3, lbl_805A9838@sda21(r13)
/* 80376CE8 00373C48 80 04 00 00 */ lwz r0, 0(r4)
/* 80376CEC 00373C4C 54 00 00 BE */ clrlwi r0, r0, 2
/* 80376CF0 00373C50 90 03 00 0C */ stw r0, 0xc(r3)
/* 80376CF4 00373C54 80 8D AC 88 */ lwz r4, lbl_805A9848@sda21(r13)
/* 80376CF8 00373C58 80 6D AC 78 */ lwz r3, lbl_805A9838@sda21(r13)
/* 80376CFC 00373C5C 80 04 00 04 */ lwz r0, 4(r4)
/* 80376D00 00373C60 54 00 00 BE */ clrlwi r0, r0, 2
/* 80376D04 00373C64 90 03 00 10 */ stw r0, 0x10(r3)
/* 80376D08 00373C68 80 8D AC 88 */ lwz r4, lbl_805A9848@sda21(r13)
/* 80376D0C 00373C6C 80 6D AC 78 */ lwz r3, lbl_805A9838@sda21(r13)
/* 80376D10 00373C70 80 04 00 18 */ lwz r0, 0x18(r4)
/* 80376D14 00373C74 54 00 00 B4 */ rlwinm r0, r0, 0, 2, 0x1a
/* 80376D18 00373C78 54 00 01 88 */ rlwinm r0, r0, 0, 6, 4
/* 80376D1C 00373C7C 90 03 00 14 */ stw r0, 0x14(r3)
/* 80376D20 00373C80 88 0D AC 94 */ lbz r0, lbl_805A9854@sda21(r13)
/* 80376D24 00373C84 28 00 00 00 */ cmplwi r0, 0
/* 80376D28 00373C88 41 82 00 78 */ beq lbl_80376DA0
/* 80376D2C 00373C8C 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 80376D30 00373C90 80 04 00 10 */ lwz r0, 0x10(r4)
/* 80376D34 00373C94 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 80376D38 00373C98 60 00 00 01 */ ori r0, r0, 1
/* 80376D3C 00373C9C 90 04 00 10 */ stw r0, 0x10(r4)
/* 80376D40 00373CA0 80 04 00 10 */ lwz r0, 0x10(r4)
/* 80376D44 00373CA4 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80376D48 00373CA8 60 00 00 02 */ ori r0, r0, 2
/* 80376D4C 00373CAC 90 04 00 10 */ stw r0, 0x10(r4)
/* 80376D50 00373CB0 80 04 00 10 */ lwz r0, 0x10(r4)
/* 80376D54 00373CB4 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376D58 00373CB8 B0 03 00 04 */ sth r0, 4(r3)
/* 80376D5C 00373CBC 80 04 00 08 */ lwz r0, 8(r4)
/* 80376D60 00373CC0 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
/* 80376D64 00373CC4 60 00 00 04 */ ori r0, r0, 4
/* 80376D68 00373CC8 90 04 00 08 */ stw r0, 8(r4)
/* 80376D6C 00373CCC 80 04 00 08 */ lwz r0, 8(r4)
/* 80376D70 00373CD0 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
/* 80376D74 00373CD4 90 04 00 08 */ stw r0, 8(r4)
/* 80376D78 00373CD8 80 04 00 08 */ lwz r0, 8(r4)
/* 80376D7C 00373CDC 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376D80 00373CE0 B0 03 00 02 */ sth r0, 2(r3)
/* 80376D84 00373CE4 80 04 00 08 */ lwz r0, 8(r4)
/* 80376D88 00373CE8 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
/* 80376D8C 00373CEC 60 00 00 10 */ ori r0, r0, 0x10
/* 80376D90 00373CF0 90 04 00 08 */ stw r0, 8(r4)
/* 80376D94 00373CF4 80 04 00 08 */ lwz r0, 8(r4)
/* 80376D98 00373CF8 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 80376D9C 00373CFC B0 03 00 02 */ sth r0, 2(r3)
lbl_80376DA0:
/* 80376DA0 00373D00 4B FF 8A 6D */ bl PPCSync
/* 80376DA4 00373D04 7F E3 FB 78 */ mr r3, r31
/* 80376DA8 00373D08 48 00 A8 E1 */ bl OSRestoreInterrupts
/* 80376DAC 00373D0C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80376DB0 00373D10 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80376DB4 00373D14 38 21 00 18 */ addi r1, r1, 0x18
/* 80376DB8 00373D18 7C 08 03 A6 */ mtlr r0
/* 80376DBC 00373D1C 4E 80 00 20 */ blr

769
asm/Dolphin/GX/GXFrameBuf.s Normal file
View File

@ -0,0 +1,769 @@
.include "macros.inc"
.section .text, "ax"
.global GXAdjustForOverscan
GXAdjustForOverscan:
/* 80378C04 00375B64 7C 03 20 40 */ cmplw r3, r4
/* 80378C08 00375B68 54 A7 04 3E */ clrlwi r7, r5, 0x10
/* 80378C0C 00375B6C 54 C0 04 3E */ clrlwi r0, r6, 0x10
/* 80378C10 00375B70 54 A5 0C 3C */ rlwinm r5, r5, 1, 0x10, 0x1e
/* 80378C14 00375B74 54 C6 0C 3C */ rlwinm r6, r6, 1, 0x10, 0x1e
/* 80378C18 00375B78 41 82 00 7C */ beq lbl_80378C94
/* 80378C1C 00375B7C 81 23 00 00 */ lwz r9, 0(r3)
/* 80378C20 00375B80 81 03 00 04 */ lwz r8, 4(r3)
/* 80378C24 00375B84 91 24 00 00 */ stw r9, 0(r4)
/* 80378C28 00375B88 91 04 00 04 */ stw r8, 4(r4)
/* 80378C2C 00375B8C 81 23 00 08 */ lwz r9, 8(r3)
/* 80378C30 00375B90 81 03 00 0C */ lwz r8, 0xc(r3)
/* 80378C34 00375B94 91 24 00 08 */ stw r9, 8(r4)
/* 80378C38 00375B98 91 04 00 0C */ stw r8, 0xc(r4)
/* 80378C3C 00375B9C 81 23 00 10 */ lwz r9, 0x10(r3)
/* 80378C40 00375BA0 81 03 00 14 */ lwz r8, 0x14(r3)
/* 80378C44 00375BA4 91 24 00 10 */ stw r9, 0x10(r4)
/* 80378C48 00375BA8 91 04 00 14 */ stw r8, 0x14(r4)
/* 80378C4C 00375BAC 81 23 00 18 */ lwz r9, 0x18(r3)
/* 80378C50 00375BB0 81 03 00 1C */ lwz r8, 0x1c(r3)
/* 80378C54 00375BB4 91 24 00 18 */ stw r9, 0x18(r4)
/* 80378C58 00375BB8 91 04 00 1C */ stw r8, 0x1c(r4)
/* 80378C5C 00375BBC 81 23 00 20 */ lwz r9, 0x20(r3)
/* 80378C60 00375BC0 81 03 00 24 */ lwz r8, 0x24(r3)
/* 80378C64 00375BC4 91 24 00 20 */ stw r9, 0x20(r4)
/* 80378C68 00375BC8 91 04 00 24 */ stw r8, 0x24(r4)
/* 80378C6C 00375BCC 81 23 00 28 */ lwz r9, 0x28(r3)
/* 80378C70 00375BD0 81 03 00 2C */ lwz r8, 0x2c(r3)
/* 80378C74 00375BD4 91 24 00 28 */ stw r9, 0x28(r4)
/* 80378C78 00375BD8 91 04 00 2C */ stw r8, 0x2c(r4)
/* 80378C7C 00375BDC 81 23 00 30 */ lwz r9, 0x30(r3)
/* 80378C80 00375BE0 81 03 00 34 */ lwz r8, 0x34(r3)
/* 80378C84 00375BE4 91 24 00 30 */ stw r9, 0x30(r4)
/* 80378C88 00375BE8 91 04 00 34 */ stw r8, 0x34(r4)
/* 80378C8C 00375BEC 81 03 00 38 */ lwz r8, 0x38(r3)
/* 80378C90 00375BF0 91 04 00 38 */ stw r8, 0x38(r4)
lbl_80378C94:
/* 80378C94 00375BF4 A1 03 00 04 */ lhz r8, 4(r3)
/* 80378C98 00375BF8 7D 05 40 50 */ subf r8, r5, r8
/* 80378C9C 00375BFC B1 04 00 04 */ sth r8, 4(r4)
/* 80378CA0 00375C00 A1 43 00 06 */ lhz r10, 6(r3)
/* 80378CA4 00375C04 A1 03 00 08 */ lhz r8, 8(r3)
/* 80378CA8 00375C08 7D 26 51 D6 */ mullw r9, r6, r10
/* 80378CAC 00375C0C 7D 09 43 96 */ divwu r8, r9, r8
/* 80378CB0 00375C10 7D 08 50 50 */ subf r8, r8, r10
/* 80378CB4 00375C14 B1 04 00 06 */ sth r8, 6(r4)
/* 80378CB8 00375C18 81 03 00 14 */ lwz r8, 0x14(r3)
/* 80378CBC 00375C1C 2C 08 00 00 */ cmpwi r8, 0
/* 80378CC0 00375C20 40 82 00 24 */ bne lbl_80378CE4
/* 80378CC4 00375C24 81 03 00 00 */ lwz r8, 0(r3)
/* 80378CC8 00375C28 55 08 07 BC */ rlwinm r8, r8, 0, 0x1e, 0x1e
/* 80378CCC 00375C2C 2C 08 00 02 */ cmpwi r8, 2
/* 80378CD0 00375C30 41 82 00 14 */ beq lbl_80378CE4
/* 80378CD4 00375C34 A1 03 00 08 */ lhz r8, 8(r3)
/* 80378CD8 00375C38 7D 00 40 50 */ subf r8, r0, r8
/* 80378CDC 00375C3C B1 04 00 08 */ sth r8, 8(r4)
/* 80378CE0 00375C40 48 00 00 10 */ b lbl_80378CF0
lbl_80378CE4:
/* 80378CE4 00375C44 A1 03 00 08 */ lhz r8, 8(r3)
/* 80378CE8 00375C48 7D 06 40 50 */ subf r8, r6, r8
/* 80378CEC 00375C4C B1 04 00 08 */ sth r8, 8(r4)
lbl_80378CF0:
/* 80378CF0 00375C50 A1 03 00 0E */ lhz r8, 0xe(r3)
/* 80378CF4 00375C54 7C A5 40 50 */ subf r5, r5, r8
/* 80378CF8 00375C58 B0 A4 00 0E */ sth r5, 0xe(r4)
/* 80378CFC 00375C5C A0 A3 00 10 */ lhz r5, 0x10(r3)
/* 80378D00 00375C60 7C A6 28 50 */ subf r5, r6, r5
/* 80378D04 00375C64 B0 A4 00 10 */ sth r5, 0x10(r4)
/* 80378D08 00375C68 A0 A3 00 0A */ lhz r5, 0xa(r3)
/* 80378D0C 00375C6C 7C A5 3A 14 */ add r5, r5, r7
/* 80378D10 00375C70 B0 A4 00 0A */ sth r5, 0xa(r4)
/* 80378D14 00375C74 A0 63 00 0C */ lhz r3, 0xc(r3)
/* 80378D18 00375C78 7C 03 02 14 */ add r0, r3, r0
/* 80378D1C 00375C7C B0 04 00 0C */ sth r0, 0xc(r4)
/* 80378D20 00375C80 4E 80 00 20 */ blr
.global GXSetDispCopySrc
GXSetDispCopySrc:
/* 80378D24 00375C84 81 22 CE 08 */ lwz r9, lbl_805AEB28@sda21(r2)
/* 80378D28 00375C88 39 40 00 00 */ li r10, 0
/* 80378D2C 00375C8C 54 A7 04 3E */ clrlwi r7, r5, 0x10
/* 80378D30 00375C90 91 49 01 E0 */ stw r10, 0x1e0(r9)
/* 80378D34 00375C94 54 C5 04 3E */ clrlwi r5, r6, 0x10
/* 80378D38 00375C98 38 05 FF FF */ addi r0, r5, -1
/* 80378D3C 00375C9C 81 09 01 E0 */ lwz r8, 0x1e0(r9)
/* 80378D40 00375CA0 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 80378D44 00375CA4 54 84 51 AA */ rlwinm r4, r4, 0xa, 6, 0x15
/* 80378D48 00375CA8 55 05 00 2A */ rlwinm r5, r8, 0, 0, 0x15
/* 80378D4C 00375CAC 7C A3 1B 78 */ or r3, r5, r3
/* 80378D50 00375CB0 90 69 01 E0 */ stw r3, 0x1e0(r9)
/* 80378D54 00375CB4 38 67 FF FF */ addi r3, r7, -1
/* 80378D58 00375CB8 54 00 50 2A */ slwi r0, r0, 0xa
/* 80378D5C 00375CBC 80 A9 01 E0 */ lwz r5, 0x1e0(r9)
/* 80378D60 00375CC0 54 A5 05 96 */ rlwinm r5, r5, 0, 0x16, 0xb
/* 80378D64 00375CC4 7C A4 23 78 */ or r4, r5, r4
/* 80378D68 00375CC8 90 89 01 E0 */ stw r4, 0x1e0(r9)
/* 80378D6C 00375CCC 80 89 01 E0 */ lwz r4, 0x1e0(r9)
/* 80378D70 00375CD0 54 84 02 3E */ clrlwi r4, r4, 8
/* 80378D74 00375CD4 64 84 49 00 */ oris r4, r4, 0x4900
/* 80378D78 00375CD8 90 89 01 E0 */ stw r4, 0x1e0(r9)
/* 80378D7C 00375CDC 91 49 01 E4 */ stw r10, 0x1e4(r9)
/* 80378D80 00375CE0 80 89 01 E4 */ lwz r4, 0x1e4(r9)
/* 80378D84 00375CE4 54 84 00 2A */ rlwinm r4, r4, 0, 0, 0x15
/* 80378D88 00375CE8 7C 83 1B 78 */ or r3, r4, r3
/* 80378D8C 00375CEC 90 69 01 E4 */ stw r3, 0x1e4(r9)
/* 80378D90 00375CF0 80 69 01 E4 */ lwz r3, 0x1e4(r9)
/* 80378D94 00375CF4 54 63 05 96 */ rlwinm r3, r3, 0, 0x16, 0xb
/* 80378D98 00375CF8 7C 60 03 78 */ or r0, r3, r0
/* 80378D9C 00375CFC 90 09 01 E4 */ stw r0, 0x1e4(r9)
/* 80378DA0 00375D00 80 09 01 E4 */ lwz r0, 0x1e4(r9)
/* 80378DA4 00375D04 54 00 02 3E */ clrlwi r0, r0, 8
/* 80378DA8 00375D08 64 00 4A 00 */ oris r0, r0, 0x4a00
/* 80378DAC 00375D0C 90 09 01 E4 */ stw r0, 0x1e4(r9)
/* 80378DB0 00375D10 4E 80 00 20 */ blr
.global GXSetTexCopySrc
GXSetTexCopySrc:
/* 80378DB4 00375D14 81 22 CE 08 */ lwz r9, lbl_805AEB28@sda21(r2)
/* 80378DB8 00375D18 39 40 00 00 */ li r10, 0
/* 80378DBC 00375D1C 54 A7 04 3E */ clrlwi r7, r5, 0x10
/* 80378DC0 00375D20 91 49 01 F0 */ stw r10, 0x1f0(r9)
/* 80378DC4 00375D24 54 C5 04 3E */ clrlwi r5, r6, 0x10
/* 80378DC8 00375D28 38 05 FF FF */ addi r0, r5, -1
/* 80378DCC 00375D2C 81 09 01 F0 */ lwz r8, 0x1f0(r9)
/* 80378DD0 00375D30 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 80378DD4 00375D34 54 84 51 AA */ rlwinm r4, r4, 0xa, 6, 0x15
/* 80378DD8 00375D38 55 05 00 2A */ rlwinm r5, r8, 0, 0, 0x15
/* 80378DDC 00375D3C 7C A3 1B 78 */ or r3, r5, r3
/* 80378DE0 00375D40 90 69 01 F0 */ stw r3, 0x1f0(r9)
/* 80378DE4 00375D44 38 67 FF FF */ addi r3, r7, -1
/* 80378DE8 00375D48 54 00 50 2A */ slwi r0, r0, 0xa
/* 80378DEC 00375D4C 80 A9 01 F0 */ lwz r5, 0x1f0(r9)
/* 80378DF0 00375D50 54 A5 05 96 */ rlwinm r5, r5, 0, 0x16, 0xb
/* 80378DF4 00375D54 7C A4 23 78 */ or r4, r5, r4
/* 80378DF8 00375D58 90 89 01 F0 */ stw r4, 0x1f0(r9)
/* 80378DFC 00375D5C 80 89 01 F0 */ lwz r4, 0x1f0(r9)
/* 80378E00 00375D60 54 84 02 3E */ clrlwi r4, r4, 8
/* 80378E04 00375D64 64 84 49 00 */ oris r4, r4, 0x4900
/* 80378E08 00375D68 90 89 01 F0 */ stw r4, 0x1f0(r9)
/* 80378E0C 00375D6C 91 49 01 F4 */ stw r10, 0x1f4(r9)
/* 80378E10 00375D70 80 89 01 F4 */ lwz r4, 0x1f4(r9)
/* 80378E14 00375D74 54 84 00 2A */ rlwinm r4, r4, 0, 0, 0x15
/* 80378E18 00375D78 7C 83 1B 78 */ or r3, r4, r3
/* 80378E1C 00375D7C 90 69 01 F4 */ stw r3, 0x1f4(r9)
/* 80378E20 00375D80 80 69 01 F4 */ lwz r3, 0x1f4(r9)
/* 80378E24 00375D84 54 63 05 96 */ rlwinm r3, r3, 0, 0x16, 0xb
/* 80378E28 00375D88 7C 60 03 78 */ or r0, r3, r0
/* 80378E2C 00375D8C 90 09 01 F4 */ stw r0, 0x1f4(r9)
/* 80378E30 00375D90 80 09 01 F4 */ lwz r0, 0x1f4(r9)
/* 80378E34 00375D94 54 00 02 3E */ clrlwi r0, r0, 8
/* 80378E38 00375D98 64 00 4A 00 */ oris r0, r0, 0x4a00
/* 80378E3C 00375D9C 90 09 01 F4 */ stw r0, 0x1f4(r9)
/* 80378E40 00375DA0 4E 80 00 20 */ blr
.global GXSetDispCopyDst
GXSetDispCopyDst:
/* 80378E44 00375DA4 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 80378E48 00375DA8 38 00 00 00 */ li r0, 0
/* 80378E4C 00375DAC 90 04 01 E8 */ stw r0, 0x1e8(r4)
/* 80378E50 00375DB0 38 A4 01 E8 */ addi r5, r4, 0x1e8
/* 80378E54 00375DB4 54 60 0C 3C */ rlwinm r0, r3, 1, 0x10, 0x1e
/* 80378E58 00375DB8 80 84 01 E8 */ lwz r4, 0x1e8(r4)
/* 80378E5C 00375DBC 7C 00 2E 70 */ srawi r0, r0, 5
/* 80378E60 00375DC0 54 83 00 2A */ rlwinm r3, r4, 0, 0, 0x15
/* 80378E64 00375DC4 7C 60 03 78 */ or r0, r3, r0
/* 80378E68 00375DC8 90 05 00 00 */ stw r0, 0(r5)
/* 80378E6C 00375DCC 80 05 00 00 */ lwz r0, 0(r5)
/* 80378E70 00375DD0 54 00 02 3E */ clrlwi r0, r0, 8
/* 80378E74 00375DD4 64 00 4D 00 */ oris r0, r0, 0x4d00
/* 80378E78 00375DD8 90 05 00 00 */ stw r0, 0(r5)
/* 80378E7C 00375DDC 4E 80 00 20 */ blr
.global GXSetTexCopyDst
GXSetTexCopyDst:
/* 80378E80 00375DE0 7C 08 02 A6 */ mflr r0
/* 80378E84 00375DE4 2C 05 00 13 */ cmpwi r5, 0x13
/* 80378E88 00375DE8 90 01 00 04 */ stw r0, 4(r1)
/* 80378E8C 00375DEC 38 00 00 00 */ li r0, 0
/* 80378E90 00375DF0 39 03 00 00 */ addi r8, r3, 0
/* 80378E94 00375DF4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80378E98 00375DF8 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80378E9C 00375DFC 54 BF 07 3E */ clrlwi r31, r5, 0x1c
/* 80378EA0 00375E00 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80378EA4 00375E04 3B C6 00 00 */ addi r30, r6, 0
/* 80378EA8 00375E08 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 80378EAC 00375E0C 98 07 02 00 */ stb r0, 0x200(r7)
/* 80378EB0 00375E10 38 E4 00 00 */ addi r7, r4, 0
/* 80378EB4 00375E14 40 82 00 08 */ bne lbl_80378EBC
/* 80378EB8 00375E18 3B E0 00 0B */ li r31, 0xb
lbl_80378EBC:
/* 80378EBC 00375E1C 2C 05 00 26 */ cmpwi r5, 0x26
/* 80378EC0 00375E20 41 82 00 1C */ beq lbl_80378EDC
/* 80378EC4 00375E24 40 80 00 34 */ bge lbl_80378EF8
/* 80378EC8 00375E28 2C 05 00 04 */ cmpwi r5, 4
/* 80378ECC 00375E2C 40 80 00 2C */ bge lbl_80378EF8
/* 80378ED0 00375E30 2C 05 00 00 */ cmpwi r5, 0
/* 80378ED4 00375E34 40 80 00 08 */ bge lbl_80378EDC
/* 80378ED8 00375E38 48 00 00 20 */ b lbl_80378EF8
lbl_80378EDC:
/* 80378EDC 00375E3C 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80378EE0 00375E40 84 03 01 FC */ lwzu r0, 0x1fc(r3)
/* 80378EE4 00375E44 54 00 04 5C */ rlwinm r0, r0, 0, 0x11, 0xe
/* 80378EE8 00375E48 64 00 00 01 */ oris r0, r0, 1
/* 80378EEC 00375E4C 60 00 80 00 */ ori r0, r0, 0x8000
/* 80378EF0 00375E50 90 03 00 00 */ stw r0, 0(r3)
/* 80378EF4 00375E54 48 00 00 18 */ b lbl_80378F0C
lbl_80378EF8:
/* 80378EF8 00375E58 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80378EFC 00375E5C 84 03 01 FC */ lwzu r0, 0x1fc(r3)
/* 80378F00 00375E60 54 00 04 5C */ rlwinm r0, r0, 0, 0x11, 0xe
/* 80378F04 00375E64 64 00 00 01 */ oris r0, r0, 1
/* 80378F08 00375E68 90 03 00 00 */ stw r0, 0(r3)
lbl_80378F0C:
/* 80378F0C 00375E6C 54 A4 06 F6 */ rlwinm r4, r5, 0, 0x1b, 0x1b
/* 80378F10 00375E70 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80378F14 00375E74 38 04 FF F0 */ addi r0, r4, -16
/* 80378F18 00375E78 7C 00 00 34 */ cntlzw r0, r0
/* 80378F1C 00375E7C 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f
/* 80378F20 00375E80 98 03 02 00 */ stb r0, 0x200(r3)
/* 80378F24 00375E84 38 88 00 00 */ addi r4, r8, 0
/* 80378F28 00375E88 38 C1 00 20 */ addi r6, r1, 0x20
/* 80378F2C 00375E8C 84 03 01 FC */ lwzu r0, 0x1fc(r3)
/* 80378F30 00375E90 39 01 00 18 */ addi r8, r1, 0x18
/* 80378F34 00375E94 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
/* 80378F38 00375E98 53 E0 07 38 */ rlwimi r0, r31, 0, 0x1c, 0x1c
/* 80378F3C 00375E9C 90 03 00 00 */ stw r0, 0(r3)
/* 80378F40 00375EA0 38 65 00 00 */ addi r3, r5, 0
/* 80378F44 00375EA4 38 A7 00 00 */ addi r5, r7, 0
/* 80378F48 00375EA8 57 FF 07 7E */ clrlwi r31, r31, 0x1d
/* 80378F4C 00375EAC 38 E1 00 1C */ addi r7, r1, 0x1c
/* 80378F50 00375EB0 48 00 0E 4D */ bl __GetImageTileCount
/* 80378F54 00375EB4 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80378F58 00375EB8 38 00 00 00 */ li r0, 0
/* 80378F5C 00375EBC 90 03 01 F8 */ stw r0, 0x1f8(r3)
/* 80378F60 00375EC0 38 E3 01 F8 */ addi r7, r3, 0x1f8
/* 80378F64 00375EC4 39 03 01 FC */ addi r8, r3, 0x1fc
/* 80378F68 00375EC8 80 A1 00 20 */ lwz r5, 0x20(r1)
/* 80378F6C 00375ECC 57 C3 4B EC */ rlwinm r3, r30, 9, 0xf, 0x16
/* 80378F70 00375ED0 80 81 00 18 */ lwz r4, 0x18(r1)
/* 80378F74 00375ED4 57 E0 20 36 */ slwi r0, r31, 4
/* 80378F78 00375ED8 80 C7 00 00 */ lwz r6, 0(r7)
/* 80378F7C 00375EDC 7C 85 21 D6 */ mullw r4, r5, r4
/* 80378F80 00375EE0 54 C5 00 2A */ rlwinm r5, r6, 0, 0, 0x15
/* 80378F84 00375EE4 7C A4 23 78 */ or r4, r5, r4
/* 80378F88 00375EE8 90 87 00 00 */ stw r4, 0(r7)
/* 80378F8C 00375EEC 80 87 00 00 */ lwz r4, 0(r7)
/* 80378F90 00375EF0 54 84 02 3E */ clrlwi r4, r4, 8
/* 80378F94 00375EF4 64 84 4D 00 */ oris r4, r4, 0x4d00
/* 80378F98 00375EF8 90 87 00 00 */ stw r4, 0(r7)
/* 80378F9C 00375EFC 80 88 00 00 */ lwz r4, 0(r8)
/* 80378FA0 00375F00 54 84 05 EA */ rlwinm r4, r4, 0, 0x17, 0x15
/* 80378FA4 00375F04 7C 83 1B 78 */ or r3, r4, r3
/* 80378FA8 00375F08 90 68 00 00 */ stw r3, 0(r8)
/* 80378FAC 00375F0C 80 68 00 00 */ lwz r3, 0(r8)
/* 80378FB0 00375F10 54 63 07 30 */ rlwinm r3, r3, 0, 0x1c, 0x18
/* 80378FB4 00375F14 7C 60 03 78 */ or r0, r3, r0
/* 80378FB8 00375F18 90 08 00 00 */ stw r0, 0(r8)
/* 80378FBC 00375F1C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80378FC0 00375F20 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80378FC4 00375F24 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80378FC8 00375F28 38 21 00 30 */ addi r1, r1, 0x30
/* 80378FCC 00375F2C 7C 08 03 A6 */ mtlr r0
/* 80378FD0 00375F30 4E 80 00 20 */ blr
.global GXSetDispCopyFrame2Field
GXSetDispCopyFrame2Field:
/* 80378FD4 00375F34 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 80378FD8 00375F38 54 60 60 26 */ slwi r0, r3, 0xc
/* 80378FDC 00375F3C 80 64 01 EC */ lwz r3, 0x1ec(r4)
/* 80378FE0 00375F40 54 63 05 22 */ rlwinm r3, r3, 0, 0x14, 0x11
/* 80378FE4 00375F44 7C 60 03 78 */ or r0, r3, r0
/* 80378FE8 00375F48 90 04 01 EC */ stw r0, 0x1ec(r4)
/* 80378FEC 00375F4C 84 04 01 FC */ lwzu r0, 0x1fc(r4)
/* 80378FF0 00375F50 54 00 05 22 */ rlwinm r0, r0, 0, 0x14, 0x11
/* 80378FF4 00375F54 90 04 00 00 */ stw r0, 0(r4)
/* 80378FF8 00375F58 4E 80 00 20 */ blr
.global GXSetCopyClamp
GXSetCopyClamp:
/* 80378FFC 00375F5C 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 80379000 00375F60 54 64 07 FE */ clrlwi r4, r3, 0x1f
/* 80379004 00375F64 38 04 FF FF */ addi r0, r4, -1
/* 80379008 00375F68 80 86 01 EC */ lwz r4, 0x1ec(r6)
/* 8037900C 00375F6C 7C 00 00 34 */ cntlzw r0, r0
/* 80379010 00375F70 54 63 07 BC */ rlwinm r3, r3, 0, 0x1e, 0x1e
/* 80379014 00375F74 54 85 00 3C */ rlwinm r5, r4, 0, 0, 0x1e
/* 80379018 00375F78 54 04 DE 3E */ rlwinm r4, r0, 0x1b, 0x18, 0x1f
/* 8037901C 00375F7C 7C A0 23 78 */ or r0, r5, r4
/* 80379020 00375F80 90 06 01 EC */ stw r0, 0x1ec(r6)
/* 80379024 00375F84 38 03 FF FE */ addi r0, r3, -2
/* 80379028 00375F88 7C 00 00 34 */ cntlzw r0, r0
/* 8037902C 00375F8C 80 66 01 EC */ lwz r3, 0x1ec(r6)
/* 80379030 00375F90 54 05 E5 FC */ rlwinm r5, r0, 0x1c, 0x17, 0x1e
/* 80379034 00375F94 54 63 07 FA */ rlwinm r3, r3, 0, 0x1f, 0x1d
/* 80379038 00375F98 7C 60 2B 78 */ or r0, r3, r5
/* 8037903C 00375F9C 90 06 01 EC */ stw r0, 0x1ec(r6)
/* 80379040 00375FA0 80 06 01 FC */ lwz r0, 0x1fc(r6)
/* 80379044 00375FA4 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 80379048 00375FA8 7C 00 23 78 */ or r0, r0, r4
/* 8037904C 00375FAC 90 06 01 FC */ stw r0, 0x1fc(r6)
/* 80379050 00375FB0 80 06 01 FC */ lwz r0, 0x1fc(r6)
/* 80379054 00375FB4 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80379058 00375FB8 7C 00 2B 78 */ or r0, r0, r5
/* 8037905C 00375FBC 90 06 01 FC */ stw r0, 0x1fc(r6)
/* 80379060 00375FC0 4E 80 00 20 */ blr
.global GXSetDispCopyYScale
GXSetDispCopyYScale:
/* 80379064 00375FC4 7C 08 02 A6 */ mflr r0
/* 80379068 00375FC8 90 01 00 04 */ stw r0, 4(r1)
/* 8037906C 00375FCC 94 21 FF F8 */ stwu r1, -8(r1)
/* 80379070 00375FD0 C0 02 CE 30 */ lfs f0, lbl_805AEB50@sda21(r2)
/* 80379074 00375FD4 EC 20 08 24 */ fdivs f1, f0, f1
/* 80379078 00375FD8 48 01 08 DD */ bl __cvt_fp2unsigned
/* 8037907C 00375FDC 54 66 05 FE */ clrlwi r6, r3, 0x17
/* 80379080 00375FE0 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 80379084 00375FE4 38 00 00 61 */ li r0, 0x61
/* 80379088 00375FE8 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037908C 00375FEC 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 80379090 00375FF0 64 C0 4E 00 */ oris r0, r6, 0x4e00
/* 80379094 00375FF4 38 A0 00 00 */ li r5, 0
/* 80379098 00375FF8 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 8037909C 00375FFC 20 66 01 00 */ subfic r3, r6, 0x100
/* 803790A0 00376000 30 03 FF FF */ addic r0, r3, -1
/* 803790A4 00376004 B0 A4 00 02 */ sth r5, 2(r4)
/* 803790A8 00376008 7C 00 19 10 */ subfe r0, r0, r3
/* 803790AC 0037600C 54 00 53 AA */ rlwinm r0, r0, 0xa, 0xe, 0x15
/* 803790B0 00376010 80 64 01 EC */ lwz r3, 0x1ec(r4)
/* 803790B4 00376014 28 06 00 80 */ cmplwi r6, 0x80
/* 803790B8 00376018 38 A6 00 00 */ addi r5, r6, 0
/* 803790BC 0037601C 54 63 05 A8 */ rlwinm r3, r3, 0, 0x16, 0x14
/* 803790C0 00376020 7C 60 03 78 */ or r0, r3, r0
/* 803790C4 00376024 90 04 01 EC */ stw r0, 0x1ec(r4)
/* 803790C8 00376028 80 04 01 E4 */ lwz r0, 0x1e4(r4)
/* 803790CC 0037602C 54 04 B5 BE */ rlwinm r4, r0, 0x16, 0x16, 0x1f
/* 803790D0 00376030 54 00 F3 AE */ rlwinm r0, r0, 0x1e, 0xe, 0x17
/* 803790D4 00376034 7C 60 33 96 */ divwu r3, r0, r6
/* 803790D8 00376038 38 84 00 01 */ addi r4, r4, 1
/* 803790DC 0037603C 38 63 00 01 */ addi r3, r3, 1
/* 803790E0 00376040 40 81 00 30 */ ble lbl_80379110
/* 803790E4 00376044 28 06 01 00 */ cmplwi r6, 0x100
/* 803790E8 00376048 40 80 00 28 */ bge lbl_80379110
/* 803790EC 0037604C 48 00 00 08 */ b lbl_803790F4
lbl_803790F0:
/* 803790F0 00376050 54 A5 F8 7E */ srwi r5, r5, 1
lbl_803790F4:
/* 803790F4 00376054 54 A0 07 FF */ clrlwi. r0, r5, 0x1f
/* 803790F8 00376058 41 82 FF F8 */ beq lbl_803790F0
/* 803790FC 0037605C 7C 04 2B 96 */ divwu r0, r4, r5
/* 80379100 00376060 7C 00 29 D6 */ mullw r0, r0, r5
/* 80379104 00376064 7C 00 20 51 */ subf. r0, r0, r4
/* 80379108 00376068 40 82 00 08 */ bne lbl_80379110
/* 8037910C 0037606C 38 63 00 01 */ addi r3, r3, 1
lbl_80379110:
/* 80379110 00376070 28 03 04 00 */ cmplwi r3, 0x400
/* 80379114 00376074 40 81 00 08 */ ble lbl_8037911C
/* 80379118 00376078 38 60 04 00 */ li r3, 0x400
lbl_8037911C:
/* 8037911C 0037607C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80379120 00376080 38 21 00 08 */ addi r1, r1, 8
/* 80379124 00376084 7C 08 03 A6 */ mtlr r0
/* 80379128 00376088 4E 80 00 20 */ blr
.global GXSetCopyClear
GXSetCopyClear:
/* 8037912C 0037608C 54 80 02 3E */ clrlwi r0, r4, 8
/* 80379130 00376090 88 83 00 03 */ lbz r4, 3(r3)
/* 80379134 00376094 88 A3 00 00 */ lbz r5, 0(r3)
/* 80379138 00376098 38 C0 00 61 */ li r6, 0x61
/* 8037913C 0037609C 54 87 40 2E */ slwi r7, r4, 8
/* 80379140 003760A0 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 80379144 003760A4 50 A7 06 3E */ rlwimi r7, r5, 0, 0x18, 0x1f
/* 80379148 003760A8 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037914C 003760AC 54 E7 02 3E */ clrlwi r7, r7, 8
/* 80379150 003760B0 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 80379154 003760B4 64 E7 4F 00 */ oris r7, r7, 0x4f00
/* 80379158 003760B8 90 E5 80 00 */ stw r7, 0xCC008000@l(r5)
/* 8037915C 003760BC 64 07 51 00 */ oris r7, r0, 0x5100
/* 80379160 003760C0 38 00 00 00 */ li r0, 0
/* 80379164 003760C4 89 03 00 02 */ lbz r8, 2(r3)
/* 80379168 003760C8 88 63 00 01 */ lbz r3, 1(r3)
/* 8037916C 003760CC 54 63 40 2E */ slwi r3, r3, 8
/* 80379170 003760D0 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 80379174 003760D4 51 03 06 3E */ rlwimi r3, r8, 0, 0x18, 0x1f
/* 80379178 003760D8 54 63 02 3E */ clrlwi r3, r3, 8
/* 8037917C 003760DC 64 63 50 00 */ oris r3, r3, 0x5000
/* 80379180 003760E0 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 80379184 003760E4 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 80379188 003760E8 90 E5 80 00 */ stw r7, 0xCC008000@l(r5)
/* 8037918C 003760EC B0 04 00 02 */ sth r0, 2(r4)
/* 80379190 003760F0 4E 80 00 20 */ blr
.global GXSetCopyFilter
GXSetCopyFilter:
/* 80379194 003760F4 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80379198 003760F8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8037919C 003760FC BE E1 00 2C */ stmw r23, 0x2c(r1)
/* 803791A0 00376100 41 82 01 28 */ beq lbl_803792C8
/* 803791A4 00376104 88 04 00 01 */ lbz r0, 1(r4)
/* 803791A8 00376108 88 64 00 07 */ lbz r3, 7(r4)
/* 803791AC 0037610C 54 1E 20 36 */ slwi r30, r0, 4
/* 803791B0 00376110 89 04 00 00 */ lbz r8, 0(r4)
/* 803791B4 00376114 88 04 00 13 */ lbz r0, 0x13(r4)
/* 803791B8 00376118 54 79 20 36 */ slwi r25, r3, 4
/* 803791BC 0037611C 89 44 00 06 */ lbz r10, 6(r4)
/* 803791C0 00376120 51 1E 07 3E */ rlwimi r30, r8, 0, 0x1c, 0x1f
/* 803791C4 00376124 89 64 00 02 */ lbz r11, 2(r4)
/* 803791C8 00376128 88 E4 00 0D */ lbz r7, 0xd(r4)
/* 803791CC 0037612C 51 59 07 3E */ rlwimi r25, r10, 0, 0x1c, 0x1f
/* 803791D0 00376130 55 7B 40 2E */ slwi r27, r11, 8
/* 803791D4 00376134 89 24 00 08 */ lbz r9, 8(r4)
/* 803791D8 00376138 88 64 00 0E */ lbz r3, 0xe(r4)
/* 803791DC 0037613C 55 3A 40 2E */ slwi r26, r9, 8
/* 803791E0 00376140 8B 84 00 03 */ lbz r28, 3(r4)
/* 803791E4 00376144 53 DB 06 3E */ rlwimi r27, r30, 0, 0x18, 0x1f
/* 803791E8 00376148 89 24 00 10 */ lbz r9, 0x10(r4)
/* 803791EC 0037614C 54 F7 20 36 */ slwi r23, r7, 4
/* 803791F0 00376150 89 84 00 0C */ lbz r12, 0xc(r4)
/* 803791F4 00376154 88 E4 00 15 */ lbz r7, 0x15(r4)
/* 803791F8 00376158 54 78 40 2E */ slwi r24, r3, 8
/* 803791FC 0037615C 51 97 07 3E */ rlwimi r23, r12, 0, 0x1c, 0x1f
/* 80379200 00376160 8B A4 00 12 */ lbz r29, 0x12(r4)
/* 80379204 00376164 54 00 20 36 */ slwi r0, r0, 4
/* 80379208 00376168 53 A0 07 3E */ rlwimi r0, r29, 0, 0x1c, 0x1f
/* 8037920C 0037616C 89 04 00 14 */ lbz r8, 0x14(r4)
/* 80379210 00376170 57 9C 60 26 */ slwi r28, r28, 0xc
/* 80379214 00376174 8B E4 00 09 */ lbz r31, 9(r4)
/* 80379218 00376178 53 7C 05 3E */ rlwimi r28, r27, 0, 0x14, 0x1f
/* 8037921C 0037617C 8B A4 00 04 */ lbz r29, 4(r4)
/* 80379220 00376180 52 F8 06 3E */ rlwimi r24, r23, 0, 0x18, 0x1f
/* 80379224 00376184 89 44 00 0F */ lbz r10, 0xf(r4)
/* 80379228 00376188 55 17 40 2E */ slwi r23, r8, 8
/* 8037922C 0037618C 89 84 00 0A */ lbz r12, 0xa(r4)
/* 80379230 00376190 53 3A 06 3E */ rlwimi r26, r25, 0, 0x18, 0x1f
/* 80379234 00376194 88 64 00 16 */ lbz r3, 0x16(r4)
/* 80379238 00376198 55 59 60 26 */ slwi r25, r10, 0xc
/* 8037923C 0037619C 8B C4 00 05 */ lbz r30, 5(r4)
/* 80379240 003761A0 50 17 06 3E */ rlwimi r23, r0, 0, 0x18, 0x1f
/* 80379244 003761A4 88 04 00 17 */ lbz r0, 0x17(r4)
/* 80379248 003761A8 57 FB 60 26 */ slwi r27, r31, 0xc
/* 8037924C 003761AC 89 64 00 0B */ lbz r11, 0xb(r4)
/* 80379250 003761B0 89 04 00 11 */ lbz r8, 0x11(r4)
/* 80379254 003761B4 57 A4 80 1E */ slwi r4, r29, 0x10
/* 80379258 003761B8 54 E7 60 26 */ slwi r7, r7, 0xc
/* 8037925C 003761BC 55 8A 80 1E */ slwi r10, r12, 0x10
/* 80379260 003761C0 53 5B 05 3E */ rlwimi r27, r26, 0, 0x14, 0x1f
/* 80379264 003761C4 54 6C 80 1E */ slwi r12, r3, 0x10
/* 80379268 003761C8 52 E7 05 3E */ rlwimi r7, r23, 0, 0x14, 0x1f
/* 8037926C 003761CC 53 84 04 3E */ rlwimi r4, r28, 0, 0x10, 0x1f
/* 80379270 003761D0 57 C3 A0 16 */ slwi r3, r30, 0x14
/* 80379274 003761D4 53 19 05 3E */ rlwimi r25, r24, 0, 0x14, 0x1f
/* 80379278 003761D8 55 29 80 1E */ slwi r9, r9, 0x10
/* 8037927C 003761DC 53 6A 04 3E */ rlwimi r10, r27, 0, 0x10, 0x1f
/* 80379280 003761E0 50 83 03 3E */ rlwimi r3, r4, 0, 0xc, 0x1f
/* 80379284 003761E4 50 EC 04 3E */ rlwimi r12, r7, 0, 0x10, 0x1f
/* 80379288 003761E8 54 67 02 3E */ clrlwi r7, r3, 8
/* 8037928C 003761EC 55 63 A0 16 */ slwi r3, r11, 0x14
/* 80379290 003761F0 51 43 03 3E */ rlwimi r3, r10, 0, 0xc, 0x1f
/* 80379294 003761F4 54 64 02 3E */ clrlwi r4, r3, 8
/* 80379298 003761F8 55 03 A0 16 */ slwi r3, r8, 0x14
/* 8037929C 003761FC 53 29 04 3E */ rlwimi r9, r25, 0, 0x10, 0x1f
/* 803792A0 00376200 51 23 03 3E */ rlwimi r3, r9, 0, 0xc, 0x1f
/* 803792A4 00376204 54 00 A0 16 */ slwi r0, r0, 0x14
/* 803792A8 00376208 51 80 03 3E */ rlwimi r0, r12, 0, 0xc, 0x1f
/* 803792AC 0037620C 54 63 02 3E */ clrlwi r3, r3, 8
/* 803792B0 00376210 54 00 02 3E */ clrlwi r0, r0, 8
/* 803792B4 00376214 64 E8 01 00 */ oris r8, r7, 0x100
/* 803792B8 00376218 64 87 02 00 */ oris r7, r4, 0x200
/* 803792BC 0037621C 64 69 03 00 */ oris r9, r3, 0x300
/* 803792C0 00376220 64 0A 04 00 */ oris r10, r0, 0x400
/* 803792C4 00376224 48 00 00 24 */ b lbl_803792E8
lbl_803792C8:
/* 803792C8 00376228 3D 00 01 66 */ lis r8, 0x01666666@ha
/* 803792CC 0037622C 3C E0 02 66 */ lis r7, 0x02666666@ha
/* 803792D0 00376230 3C 80 03 66 */ lis r4, 0x03666666@ha
/* 803792D4 00376234 3C 60 04 66 */ lis r3, 0x04666666@ha
/* 803792D8 00376238 39 08 66 66 */ addi r8, r8, 0x01666666@l
/* 803792DC 0037623C 38 E7 66 66 */ addi r7, r7, 0x02666666@l
/* 803792E0 00376240 39 24 66 66 */ addi r9, r4, 0x03666666@l
/* 803792E4 00376244 39 43 66 66 */ addi r10, r3, 0x04666666@l
lbl_803792E8:
/* 803792E8 00376248 38 80 00 61 */ li r4, 0x61
/* 803792EC 0037624C 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 803792F0 00376250 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
/* 803792F4 00376254 54 A0 06 3F */ clrlwi. r0, r5, 0x18
/* 803792F8 00376258 91 03 80 00 */ stw r8, 0xCC008000@l(r3)
/* 803792FC 0037625C 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
/* 80379300 00376260 90 E3 80 00 */ stw r7, 0xCC008000@l(r3)
/* 80379304 00376264 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
/* 80379308 00376268 91 23 80 00 */ stw r9, 0xCC008000@l(r3)
/* 8037930C 0037626C 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
/* 80379310 00376270 91 43 80 00 */ stw r10, 0xCC008000@l(r3)
/* 80379314 00376274 41 82 00 68 */ beq lbl_8037937C
/* 80379318 00376278 88 06 00 00 */ lbz r0, 0(r6)
/* 8037931C 0037627C 88 66 00 01 */ lbz r3, 1(r6)
/* 80379320 00376280 64 05 53 00 */ oris r5, r0, 0x5300
/* 80379324 00376284 88 06 00 04 */ lbz r0, 4(r6)
/* 80379328 00376288 88 86 00 02 */ lbz r4, 2(r6)
/* 8037932C 0037628C 54 A7 06 A6 */ rlwinm r7, r5, 0, 0x1a, 0x13
/* 80379330 00376290 54 65 30 32 */ slwi r5, r3, 6
/* 80379334 00376294 88 66 00 05 */ lbz r3, 5(r6)
/* 80379338 00376298 7C E7 2B 78 */ or r7, r7, r5
/* 8037933C 0037629C 64 08 54 00 */ oris r8, r0, 0x5400
/* 80379340 003762A0 88 A6 00 03 */ lbz r5, 3(r6)
/* 80379344 003762A4 88 06 00 06 */ lbz r0, 6(r6)
/* 80379348 003762A8 54 E6 05 1A */ rlwinm r6, r7, 0, 0x14, 0xd
/* 8037934C 003762AC 54 84 60 26 */ slwi r4, r4, 0xc
/* 80379350 003762B0 7C C6 23 78 */ or r6, r6, r4
/* 80379354 003762B4 55 04 06 A6 */ rlwinm r4, r8, 0, 0x1a, 0x13
/* 80379358 003762B8 54 63 30 32 */ slwi r3, r3, 6
/* 8037935C 003762BC 7C 83 1B 78 */ or r3, r4, r3
/* 80379360 003762C0 54 C6 03 8E */ rlwinm r6, r6, 0, 0xe, 7
/* 80379364 003762C4 54 A4 90 1A */ slwi r4, r5, 0x12
/* 80379368 003762C8 54 63 05 1A */ rlwinm r3, r3, 0, 0x14, 0xd
/* 8037936C 003762CC 54 00 60 26 */ slwi r0, r0, 0xc
/* 80379370 003762D0 7C C6 23 78 */ or r6, r6, r4
/* 80379374 003762D4 7C 67 03 78 */ or r7, r3, r0
/* 80379378 003762D8 48 00 00 14 */ b lbl_8037938C
lbl_8037937C:
/* 8037937C 003762DC 3C 80 53 59 */ lis r4, 0x53595000@ha
/* 80379380 003762E0 3C 60 54 00 */ lis r3, 0x54000015@ha
/* 80379384 003762E4 38 C4 50 00 */ addi r6, r4, 0x53595000@l
/* 80379388 003762E8 38 E3 00 15 */ addi r7, r3, 0x54000015@l
lbl_8037938C:
/* 8037938C 003762EC 38 A0 00 61 */ li r5, 0x61
/* 80379390 003762F0 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80379394 003762F4 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 80379398 003762F8 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037939C 003762FC 38 00 00 00 */ li r0, 0
/* 803793A0 00376300 90 C4 80 00 */ stw r6, 0xCC008000@l(r4)
/* 803793A4 00376304 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 803793A8 00376308 90 E4 80 00 */ stw r7, 0xCC008000@l(r4)
/* 803793AC 0037630C B0 03 00 02 */ sth r0, 2(r3)
/* 803793B0 00376310 BA E1 00 2C */ lmw r23, 0x2c(r1)
/* 803793B4 00376314 38 21 00 50 */ addi r1, r1, 0x50
/* 803793B8 00376318 4E 80 00 20 */ blr
.global GXSetDispCopyGamma
GXSetDispCopyGamma:
/* 803793BC 0037631C 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 803793C0 00376320 54 60 38 30 */ slwi r0, r3, 7
/* 803793C4 00376324 84 64 01 EC */ lwzu r3, 0x1ec(r4)
/* 803793C8 00376328 54 63 06 6C */ rlwinm r3, r3, 0, 0x19, 0x16
/* 803793CC 0037632C 7C 60 03 78 */ or r0, r3, r0
/* 803793D0 00376330 90 04 00 00 */ stw r0, 0(r4)
/* 803793D4 00376334 4E 80 00 20 */ blr
.global GXCopyDisp
GXCopyDisp:
/* 803793D8 00376338 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 803793DC 0037633C 41 82 00 3C */ beq lbl_80379418
/* 803793E0 00376340 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 803793E4 00376344 38 00 00 61 */ li r0, 0x61
/* 803793E8 00376348 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 803793EC 0037634C 80 C7 01 D8 */ lwz r6, 0x1d8(r7)
/* 803793F0 00376350 54 C6 00 3C */ rlwinm r6, r6, 0, 0, 0x1e
/* 803793F4 00376354 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 803793F8 00376358 60 C6 00 01 */ ori r6, r6, 1
/* 803793FC 0037635C 54 C6 07 F6 */ rlwinm r6, r6, 0, 0x1f, 0x1b
/* 80379400 00376360 60 C6 00 0E */ ori r6, r6, 0xe
/* 80379404 00376364 90 C5 80 00 */ stw r6, 0xCC008000@l(r5)
/* 80379408 00376368 80 C7 01 D0 */ lwz r6, 0x1d0(r7)
/* 8037940C 0037636C 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 80379410 00376370 54 C0 00 3A */ rlwinm r0, r6, 0, 0, 0x1d
/* 80379414 00376374 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
lbl_80379418:
/* 80379418 00376378 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 8037941C 0037637C 38 00 00 00 */ li r0, 0
/* 80379420 00376380 40 82 00 18 */ bne lbl_80379438
/* 80379424 00376384 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 80379428 00376388 80 A5 01 DC */ lwz r5, 0x1dc(r5)
/* 8037942C 0037638C 54 A5 07 7E */ clrlwi r5, r5, 0x1d
/* 80379430 00376390 28 05 00 03 */ cmplwi r5, 3
/* 80379434 00376394 40 82 00 30 */ bne lbl_80379464
lbl_80379438:
/* 80379438 00376398 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037943C 0037639C 80 E5 01 DC */ lwz r7, 0x1dc(r5)
/* 80379440 003763A0 54 E5 D7 FE */ rlwinm r5, r7, 0x1a, 0x1f, 0x1f
/* 80379444 003763A4 28 05 00 01 */ cmplwi r5, 1
/* 80379448 003763A8 40 82 00 1C */ bne lbl_80379464
/* 8037944C 003763AC 38 00 00 61 */ li r0, 0x61
/* 80379450 003763B0 3C C0 CC 01 */ lis r6, 0xCC008000@ha
/* 80379454 003763B4 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
/* 80379458 003763B8 54 E5 06 B0 */ rlwinm r5, r7, 0, 0x1a, 0x18
/* 8037945C 003763BC 38 00 00 01 */ li r0, 1
/* 80379460 003763C0 90 A6 80 00 */ stw r5, 0xCC008000@l(r6)
lbl_80379464:
/* 80379464 003763C4 39 20 00 61 */ li r9, 0x61
/* 80379468 003763C8 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 8037946C 003763CC 3D 00 CC 01 */ lis r8, 0xCC008000@ha
/* 80379470 003763D0 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 80379474 003763D4 54 63 DA 3E */ rlwinm r3, r3, 0x1b, 8, 0x1f
/* 80379478 003763D8 64 6A 4B 00 */ oris r10, r3, 0x4b00
/* 8037947C 003763DC 80 C7 01 E0 */ lwz r6, 0x1e0(r7)
/* 80379480 003763E0 54 85 06 3F */ clrlwi. r5, r4, 0x18
/* 80379484 003763E4 54 83 5B 68 */ rlwinm r3, r4, 0xb, 0xd, 0x14
/* 80379488 003763E8 90 C8 80 00 */ stw r6, 0xCC008000@l(r8)
/* 8037948C 003763EC 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 80379490 003763F0 80 87 01 E4 */ lwz r4, 0x1e4(r7)
/* 80379494 003763F4 90 88 80 00 */ stw r4, 0xCC008000@l(r8)
/* 80379498 003763F8 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 8037949C 003763FC 80 87 01 E8 */ lwz r4, 0x1e8(r7)
/* 803794A0 00376400 90 88 80 00 */ stw r4, 0xCC008000@l(r8)
/* 803794A4 00376404 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 803794A8 00376408 91 48 80 00 */ stw r10, 0xCC008000@l(r8)
/* 803794AC 0037640C 80 87 01 EC */ lwz r4, 0x1ec(r7)
/* 803794B0 00376410 54 84 05 66 */ rlwinm r4, r4, 0, 0x15, 0x13
/* 803794B4 00376414 7C 83 1B 78 */ or r3, r4, r3
/* 803794B8 00376418 90 67 01 EC */ stw r3, 0x1ec(r7)
/* 803794BC 0037641C 80 67 01 EC */ lwz r3, 0x1ec(r7)
/* 803794C0 00376420 54 63 04 A0 */ rlwinm r3, r3, 0, 0x12, 0x10
/* 803794C4 00376424 60 63 40 00 */ ori r3, r3, 0x4000
/* 803794C8 00376428 90 67 01 EC */ stw r3, 0x1ec(r7)
/* 803794CC 0037642C 80 67 01 EC */ lwz r3, 0x1ec(r7)
/* 803794D0 00376430 54 63 02 3E */ clrlwi r3, r3, 8
/* 803794D4 00376434 64 63 52 00 */ oris r3, r3, 0x5200
/* 803794D8 00376438 90 67 01 EC */ stw r3, 0x1ec(r7)
/* 803794DC 0037643C 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 803794E0 00376440 80 67 01 EC */ lwz r3, 0x1ec(r7)
/* 803794E4 00376444 90 68 80 00 */ stw r3, 0xCC008000@l(r8)
/* 803794E8 00376448 41 82 00 1C */ beq lbl_80379504
/* 803794EC 0037644C 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 803794F0 00376450 80 67 01 D8 */ lwz r3, 0x1d8(r7)
/* 803794F4 00376454 90 68 80 00 */ stw r3, 0xCC008000@l(r8)
/* 803794F8 00376458 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 803794FC 0037645C 80 67 01 D0 */ lwz r3, 0x1d0(r7)
/* 80379500 00376460 90 68 80 00 */ stw r3, 0xCC008000@l(r8)
lbl_80379504:
/* 80379504 00376464 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 80379508 00376468 41 82 00 1C */ beq lbl_80379524
/* 8037950C 0037646C 38 00 00 61 */ li r0, 0x61
/* 80379510 00376470 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80379514 00376474 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 80379518 00376478 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037951C 0037647C 80 03 01 DC */ lwz r0, 0x1dc(r3)
/* 80379520 00376480 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
lbl_80379524:
/* 80379524 00376484 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80379528 00376488 38 00 00 00 */ li r0, 0
/* 8037952C 0037648C B0 03 00 02 */ sth r0, 2(r3)
/* 80379530 00376490 4E 80 00 20 */ blr
.global GXCopyTex
GXCopyTex:
/* 80379534 00376494 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 80379538 00376498 41 82 00 3C */ beq lbl_80379574
/* 8037953C 0037649C 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 80379540 003764A0 38 00 00 61 */ li r0, 0x61
/* 80379544 003764A4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80379548 003764A8 80 C7 01 D8 */ lwz r6, 0x1d8(r7)
/* 8037954C 003764AC 54 C6 00 3C */ rlwinm r6, r6, 0, 0, 0x1e
/* 80379550 003764B0 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 80379554 003764B4 60 C6 00 01 */ ori r6, r6, 1
/* 80379558 003764B8 54 C6 07 F6 */ rlwinm r6, r6, 0, 0x1f, 0x1b
/* 8037955C 003764BC 60 C6 00 0E */ ori r6, r6, 0xe
/* 80379560 003764C0 90 C5 80 00 */ stw r6, 0xCC008000@l(r5)
/* 80379564 003764C4 80 C7 01 D0 */ lwz r6, 0x1d0(r7)
/* 80379568 003764C8 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037956C 003764CC 54 C0 00 3A */ rlwinm r0, r6, 0, 0, 0x1d
/* 80379570 003764D0 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
lbl_80379574:
/* 80379574 003764D4 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 80379578 003764D8 38 00 00 00 */ li r0, 0
/* 8037957C 003764DC 88 A6 02 00 */ lbz r5, 0x200(r6)
/* 80379580 003764E0 80 E6 01 DC */ lwz r7, 0x1dc(r6)
/* 80379584 003764E4 28 05 00 00 */ cmplwi r5, 0
/* 80379588 003764E8 41 82 00 1C */ beq lbl_803795A4
/* 8037958C 003764EC 54 E5 07 7E */ clrlwi r5, r7, 0x1d
/* 80379590 003764F0 28 05 00 03 */ cmplwi r5, 3
/* 80379594 003764F4 41 82 00 10 */ beq lbl_803795A4
/* 80379598 003764F8 54 E0 00 38 */ rlwinm r0, r7, 0, 0, 0x1c
/* 8037959C 003764FC 60 07 00 03 */ ori r7, r0, 3
/* 803795A0 00376500 38 00 00 01 */ li r0, 1
lbl_803795A4:
/* 803795A4 00376504 54 85 06 3F */ clrlwi. r5, r4, 0x18
/* 803795A8 00376508 40 82 00 10 */ bne lbl_803795B8
/* 803795AC 0037650C 54 E5 07 7E */ clrlwi r5, r7, 0x1d
/* 803795B0 00376510 28 05 00 03 */ cmplwi r5, 3
/* 803795B4 00376514 40 82 00 18 */ bne lbl_803795CC
lbl_803795B8:
/* 803795B8 00376518 54 E5 D7 FE */ rlwinm r5, r7, 0x1a, 0x1f, 0x1f
/* 803795BC 0037651C 28 05 00 01 */ cmplwi r5, 1
/* 803795C0 00376520 40 82 00 0C */ bne lbl_803795CC
/* 803795C4 00376524 38 00 00 01 */ li r0, 1
/* 803795C8 00376528 54 E7 06 B0 */ rlwinm r7, r7, 0, 0x1a, 0x18
lbl_803795CC:
/* 803795CC 0037652C 54 05 06 3F */ clrlwi. r5, r0, 0x18
/* 803795D0 00376530 41 82 00 14 */ beq lbl_803795E4
/* 803795D4 00376534 38 C0 00 61 */ li r6, 0x61
/* 803795D8 00376538 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 803795DC 0037653C 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 803795E0 00376540 90 E5 80 00 */ stw r7, 0xCC008000@l(r5)
lbl_803795E4:
/* 803795E4 00376544 39 20 00 61 */ li r9, 0x61
/* 803795E8 00376548 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 803795EC 0037654C 3D 00 CC 01 */ lis r8, 0xCC008000@ha
/* 803795F0 00376550 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 803795F4 00376554 54 63 DA 3E */ rlwinm r3, r3, 0x1b, 8, 0x1f
/* 803795F8 00376558 64 6A 4B 00 */ oris r10, r3, 0x4b00
/* 803795FC 0037655C 80 C7 01 F0 */ lwz r6, 0x1f0(r7)
/* 80379600 00376560 54 85 06 3F */ clrlwi. r5, r4, 0x18
/* 80379604 00376564 54 83 5B 68 */ rlwinm r3, r4, 0xb, 0xd, 0x14
/* 80379608 00376568 90 C8 80 00 */ stw r6, 0xCC008000@l(r8)
/* 8037960C 0037656C 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 80379610 00376570 80 87 01 F4 */ lwz r4, 0x1f4(r7)
/* 80379614 00376574 90 88 80 00 */ stw r4, 0xCC008000@l(r8)
/* 80379618 00376578 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 8037961C 0037657C 80 87 01 F8 */ lwz r4, 0x1f8(r7)
/* 80379620 00376580 90 88 80 00 */ stw r4, 0xCC008000@l(r8)
/* 80379624 00376584 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 80379628 00376588 91 48 80 00 */ stw r10, 0xCC008000@l(r8)
/* 8037962C 0037658C 80 87 01 FC */ lwz r4, 0x1fc(r7)
/* 80379630 00376590 54 84 05 66 */ rlwinm r4, r4, 0, 0x15, 0x13
/* 80379634 00376594 7C 83 1B 78 */ or r3, r4, r3
/* 80379638 00376598 90 67 01 FC */ stw r3, 0x1fc(r7)
/* 8037963C 0037659C 80 67 01 FC */ lwz r3, 0x1fc(r7)
/* 80379640 003765A0 54 63 04 A0 */ rlwinm r3, r3, 0, 0x12, 0x10
/* 80379644 003765A4 90 67 01 FC */ stw r3, 0x1fc(r7)
/* 80379648 003765A8 80 67 01 FC */ lwz r3, 0x1fc(r7)
/* 8037964C 003765AC 54 63 02 3E */ clrlwi r3, r3, 8
/* 80379650 003765B0 64 63 52 00 */ oris r3, r3, 0x5200
/* 80379654 003765B4 90 67 01 FC */ stw r3, 0x1fc(r7)
/* 80379658 003765B8 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 8037965C 003765BC 80 67 01 FC */ lwz r3, 0x1fc(r7)
/* 80379660 003765C0 90 68 80 00 */ stw r3, 0xCC008000@l(r8)
/* 80379664 003765C4 41 82 00 1C */ beq lbl_80379680
/* 80379668 003765C8 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 8037966C 003765CC 80 67 01 D8 */ lwz r3, 0x1d8(r7)
/* 80379670 003765D0 90 68 80 00 */ stw r3, 0xCC008000@l(r8)
/* 80379674 003765D4 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
/* 80379678 003765D8 80 67 01 D0 */ lwz r3, 0x1d0(r7)
/* 8037967C 003765DC 90 68 80 00 */ stw r3, 0xCC008000@l(r8)
lbl_80379680:
/* 80379680 003765E0 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 80379684 003765E4 41 82 00 1C */ beq lbl_803796A0
/* 80379688 003765E8 38 00 00 61 */ li r0, 0x61
/* 8037968C 003765EC 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80379690 003765F0 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 80379694 003765F4 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 80379698 003765F8 80 03 01 DC */ lwz r0, 0x1dc(r3)
/* 8037969C 003765FC 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
lbl_803796A0:
/* 803796A0 00376600 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 803796A4 00376604 38 00 00 00 */ li r0, 0
/* 803796A8 00376608 B0 03 00 02 */ sth r0, 2(r3)
/* 803796AC 0037660C 4E 80 00 20 */ blr
.global GXClearBoundingBox
GXClearBoundingBox:
/* 803796B0 00376610 38 C0 00 61 */ li r6, 0x61
/* 803796B4 00376614 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 803796B8 00376618 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 803796BC 0037661C 3C 80 55 00 */ lis r4, 0x550003FF@ha
/* 803796C0 00376620 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 803796C4 00376624 38 04 03 FF */ addi r0, r4, 0x550003FF@l
/* 803796C8 00376628 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 803796CC 0037662C 3C 80 56 00 */ lis r4, 0x560003FF@ha
/* 803796D0 00376630 38 84 03 FF */ addi r4, r4, 0x560003FF@l
/* 803796D4 00376634 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 803796D8 00376638 38 00 00 00 */ li r0, 0
/* 803796DC 0037663C 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 803796E0 00376640 B0 03 00 02 */ sth r0, 2(r3)
/* 803796E4 00376644 4E 80 00 20 */ blr

287
asm/Dolphin/GX/GXGeometry.s Normal file
View File

@ -0,0 +1,287 @@
.include "macros.inc"
.section .text, "ax"
.global __GXSetDirtyState
__GXSetDirtyState:
/* 80378854 003757B4 7C 08 02 A6 */ mflr r0
/* 80378858 003757B8 90 01 00 04 */ stw r0, 4(r1)
/* 8037885C 003757BC 94 21 FF F8 */ stwu r1, -8(r1)
/* 80378860 003757C0 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80378864 003757C4 80 03 04 F4 */ lwz r0, 0x4f4(r3)
/* 80378868 003757C8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8037886C 003757CC 41 82 00 08 */ beq lbl_80378874
/* 80378870 003757D0 48 00 22 01 */ bl __GXSetSUTexRegs
lbl_80378874:
/* 80378874 003757D4 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80378878 003757D8 80 03 04 F4 */ lwz r0, 0x4f4(r3)
/* 8037887C 003757DC 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80378880 003757E0 41 82 00 08 */ beq lbl_80378888
/* 80378884 003757E4 48 00 2A A5 */ bl __GXUpdateBPMask
lbl_80378888:
/* 80378888 003757E8 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037888C 003757EC 80 03 04 F4 */ lwz r0, 0x4f4(r3)
/* 80378890 003757F0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 80378894 003757F4 41 82 00 08 */ beq lbl_8037889C
/* 80378898 003757F8 48 00 03 49 */ bl __GXSetGenMode
lbl_8037889C:
/* 8037889C 003757FC 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 803788A0 00375800 80 03 04 F4 */ lwz r0, 0x4f4(r3)
/* 803788A4 00375804 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 803788A8 00375808 41 82 00 08 */ beq lbl_803788B0
/* 803788AC 0037580C 4B FF ED 31 */ bl __GXSetVCD
lbl_803788B0:
/* 803788B0 00375810 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 803788B4 00375814 80 03 04 F4 */ lwz r0, 0x4f4(r3)
/* 803788B8 00375818 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 803788BC 0037581C 41 82 00 08 */ beq lbl_803788C4
/* 803788C0 00375820 4B FF F5 9D */ bl __GXSetVAT
lbl_803788C4:
/* 803788C4 00375824 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 803788C8 00375828 80 03 04 F4 */ lwz r0, 0x4f4(r3)
/* 803788CC 0037582C 54 00 06 F9 */ rlwinm. r0, r0, 0, 0x1b, 0x1c
/* 803788D0 00375830 41 82 00 08 */ beq lbl_803788D8
/* 803788D4 00375834 4B FF ED 5D */ bl __GXCalculateVLim
lbl_803788D8:
/* 803788D8 00375838 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 803788DC 0037583C 38 00 00 00 */ li r0, 0
/* 803788E0 00375840 90 03 04 F4 */ stw r0, 0x4f4(r3)
/* 803788E4 00375844 80 01 00 0C */ lwz r0, 0xc(r1)
/* 803788E8 00375848 38 21 00 08 */ addi r1, r1, 8
/* 803788EC 0037584C 7C 08 03 A6 */ mtlr r0
/* 803788F0 00375850 4E 80 00 20 */ blr
.global GXBegin
GXBegin:
/* 803788F4 00375854 7C 08 02 A6 */ mflr r0
/* 803788F8 00375858 90 01 00 04 */ stw r0, 4(r1)
/* 803788FC 0037585C 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80378900 00375860 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80378904 00375864 3B E5 00 00 */ addi r31, r5, 0
/* 80378908 00375868 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8037890C 0037586C 3B C4 00 00 */ addi r30, r4, 0
/* 80378910 00375870 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80378914 00375874 3B A3 00 00 */ addi r29, r3, 0
/* 80378918 00375878 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 8037891C 0037587C 80 06 04 F4 */ lwz r0, 0x4f4(r6)
/* 80378920 00375880 28 00 00 00 */ cmplwi r0, 0
/* 80378924 00375884 41 82 00 80 */ beq lbl_803789A4
/* 80378928 00375888 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8037892C 0037588C 41 82 00 08 */ beq lbl_80378934
/* 80378930 00375890 48 00 21 41 */ bl __GXSetSUTexRegs
lbl_80378934:
/* 80378934 00375894 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80378938 00375898 80 03 04 F4 */ lwz r0, 0x4f4(r3)
/* 8037893C 0037589C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80378940 003758A0 41 82 00 08 */ beq lbl_80378948
/* 80378944 003758A4 48 00 29 E5 */ bl __GXUpdateBPMask
lbl_80378948:
/* 80378948 003758A8 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037894C 003758AC 80 03 04 F4 */ lwz r0, 0x4f4(r3)
/* 80378950 003758B0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 80378954 003758B4 41 82 00 08 */ beq lbl_8037895C
/* 80378958 003758B8 48 00 02 89 */ bl __GXSetGenMode
lbl_8037895C:
/* 8037895C 003758BC 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80378960 003758C0 80 03 04 F4 */ lwz r0, 0x4f4(r3)
/* 80378964 003758C4 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 80378968 003758C8 41 82 00 08 */ beq lbl_80378970
/* 8037896C 003758CC 4B FF EC 71 */ bl __GXSetVCD
lbl_80378970:
/* 80378970 003758D0 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80378974 003758D4 80 03 04 F4 */ lwz r0, 0x4f4(r3)
/* 80378978 003758D8 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 8037897C 003758DC 41 82 00 08 */ beq lbl_80378984
/* 80378980 003758E0 4B FF F4 DD */ bl __GXSetVAT
lbl_80378984:
/* 80378984 003758E4 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80378988 003758E8 80 03 04 F4 */ lwz r0, 0x4f4(r3)
/* 8037898C 003758EC 54 00 06 F9 */ rlwinm. r0, r0, 0, 0x1b, 0x1c
/* 80378990 003758F0 41 82 00 08 */ beq lbl_80378998
/* 80378994 003758F4 4B FF EC 9D */ bl __GXCalculateVLim
lbl_80378998:
/* 80378998 003758F8 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037899C 003758FC 38 00 00 00 */ li r0, 0
/* 803789A0 00375900 90 03 04 F4 */ stw r0, 0x4f4(r3)
lbl_803789A4:
/* 803789A4 00375904 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 803789A8 00375908 80 03 00 00 */ lwz r0, 0(r3)
/* 803789AC 0037590C 28 00 00 00 */ cmplwi r0, 0
/* 803789B0 00375910 40 82 00 08 */ bne lbl_803789B8
/* 803789B4 00375914 48 00 00 31 */ bl __GXSendFlushPrim
lbl_803789B8:
/* 803789B8 00375918 7F C0 EB 78 */ or r0, r30, r29
/* 803789BC 0037591C 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 803789C0 00375920 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 803789C4 00375924 B3 E3 80 00 */ sth r31, 0xCC008000@l(r3)
/* 803789C8 00375928 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803789CC 0037592C 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 803789D0 00375930 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 803789D4 00375934 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 803789D8 00375938 38 21 00 28 */ addi r1, r1, 0x28
/* 803789DC 0037593C 7C 08 03 A6 */ mtlr r0
/* 803789E0 00375940 4E 80 00 20 */ blr
.global __GXSendFlushPrim
__GXSendFlushPrim:
/* 803789E4 00375944 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 803789E8 00375948 38 00 00 98 */ li r0, 0x98
/* 803789EC 0037594C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 803789F0 00375950 A0 C3 00 04 */ lhz r6, 4(r3)
/* 803789F4 00375954 38 80 00 00 */ li r4, 0
/* 803789F8 00375958 A0 63 00 06 */ lhz r3, 6(r3)
/* 803789FC 0037595C 7C E6 19 D6 */ mullw r7, r6, r3
/* 80378A00 00375960 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 80378A04 00375964 B0 C5 80 00 */ sth r6, 0xCC008000@l(r5)
/* 80378A08 00375968 38 67 00 03 */ addi r3, r7, 3
/* 80378A0C 0037596C 28 07 00 00 */ cmplwi r7, 0
/* 80378A10 00375970 54 63 F0 BE */ srwi r3, r3, 2
/* 80378A14 00375974 40 81 00 48 */ ble lbl_80378A5C
/* 80378A18 00375978 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
/* 80378A1C 0037597C 7C 09 03 A6 */ mtctr r0
/* 80378A20 00375980 41 82 00 30 */ beq lbl_80378A50
lbl_80378A24:
/* 80378A24 00375984 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 80378A28 00375988 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 80378A2C 0037598C 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 80378A30 00375990 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 80378A34 00375994 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 80378A38 00375998 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 80378A3C 0037599C 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 80378A40 003759A0 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 80378A44 003759A4 42 00 FF E0 */ bdnz lbl_80378A24
/* 80378A48 003759A8 70 63 00 07 */ andi. r3, r3, 7
/* 80378A4C 003759AC 41 82 00 10 */ beq lbl_80378A5C
lbl_80378A50:
/* 80378A50 003759B0 7C 69 03 A6 */ mtctr r3
lbl_80378A54:
/* 80378A54 003759B4 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 80378A58 003759B8 42 00 FF FC */ bdnz lbl_80378A54
lbl_80378A5C:
/* 80378A5C 003759BC 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80378A60 003759C0 38 00 00 01 */ li r0, 1
/* 80378A64 003759C4 B0 03 00 02 */ sth r0, 2(r3)
/* 80378A68 003759C8 4E 80 00 20 */ blr
.global GXSetLineWidth
GXSetLineWidth:
/* 80378A6C 003759CC 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 80378A70 003759D0 54 86 80 1E */ slwi r6, r4, 0x10
/* 80378A74 003759D4 38 A0 00 61 */ li r5, 0x61
/* 80378A78 003759D8 80 07 00 7C */ lwz r0, 0x7c(r7)
/* 80378A7C 003759DC 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 80378A80 003759E0 54 00 00 2E */ rlwinm r0, r0, 0, 0, 0x17
/* 80378A84 003759E4 50 60 06 3E */ rlwimi r0, r3, 0, 0x18, 0x1f
/* 80378A88 003759E8 90 07 00 7C */ stw r0, 0x7c(r7)
/* 80378A8C 003759EC 38 00 00 00 */ li r0, 0
/* 80378A90 003759F0 80 67 00 7C */ lwz r3, 0x7c(r7)
/* 80378A94 003759F4 54 63 04 18 */ rlwinm r3, r3, 0, 0x10, 0xc
/* 80378A98 003759F8 7C 63 33 78 */ or r3, r3, r6
/* 80378A9C 003759FC 90 67 00 7C */ stw r3, 0x7c(r7)
/* 80378AA0 00375A00 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 80378AA4 00375A04 80 67 00 7C */ lwz r3, 0x7c(r7)
/* 80378AA8 00375A08 90 64 80 00 */ stw r3, 0xCC008000@l(r4)
/* 80378AAC 00375A0C B0 07 00 02 */ sth r0, 2(r7)
/* 80378AB0 00375A10 4E 80 00 20 */ blr
.global GXSetPointSize
GXSetPointSize:
/* 80378AB4 00375A14 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 80378AB8 00375A18 54 86 98 18 */ slwi r6, r4, 0x13
/* 80378ABC 00375A1C 38 A0 00 61 */ li r5, 0x61
/* 80378AC0 00375A20 80 07 00 7C */ lwz r0, 0x7c(r7)
/* 80378AC4 00375A24 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 80378AC8 00375A28 54 00 06 1E */ rlwinm r0, r0, 0, 0x18, 0xf
/* 80378ACC 00375A2C 50 60 44 2E */ rlwimi r0, r3, 8, 0x10, 0x17
/* 80378AD0 00375A30 90 07 00 7C */ stw r0, 0x7c(r7)
/* 80378AD4 00375A34 38 00 00 00 */ li r0, 0
/* 80378AD8 00375A38 80 67 00 7C */ lwz r3, 0x7c(r7)
/* 80378ADC 00375A3C 54 63 03 52 */ rlwinm r3, r3, 0, 0xd, 9
/* 80378AE0 00375A40 7C 63 33 78 */ or r3, r3, r6
/* 80378AE4 00375A44 90 67 00 7C */ stw r3, 0x7c(r7)
/* 80378AE8 00375A48 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 80378AEC 00375A4C 80 67 00 7C */ lwz r3, 0x7c(r7)
/* 80378AF0 00375A50 90 64 80 00 */ stw r3, 0xCC008000@l(r4)
/* 80378AF4 00375A54 B0 07 00 02 */ sth r0, 2(r7)
/* 80378AF8 00375A58 4E 80 00 20 */ blr
.global GXEnableTexOffsets
GXEnableTexOffsets:
/* 80378AFC 00375A5C 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 80378B00 00375A60 54 68 10 3A */ slwi r8, r3, 2
/* 80378B04 00375A64 7C E6 42 14 */ add r7, r6, r8
/* 80378B08 00375A68 80 07 00 B8 */ lwz r0, 0xb8(r7)
/* 80378B0C 00375A6C 7D 26 42 14 */ add r9, r6, r8
/* 80378B10 00375A70 54 03 03 98 */ rlwinm r3, r0, 0, 0xe, 0xc
/* 80378B14 00375A74 54 80 91 9A */ rlwinm r0, r4, 0x12, 6, 0xd
/* 80378B18 00375A78 7C 60 03 78 */ or r0, r3, r0
/* 80378B1C 00375A7C 90 07 00 B8 */ stw r0, 0xb8(r7)
/* 80378B20 00375A80 54 A0 99 58 */ rlwinm r0, r5, 0x13, 5, 0xc
/* 80378B24 00375A84 38 A0 00 61 */ li r5, 0x61
/* 80378B28 00375A88 80 69 00 B8 */ lwz r3, 0xb8(r9)
/* 80378B2C 00375A8C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 80378B30 00375A90 54 63 03 56 */ rlwinm r3, r3, 0, 0xd, 0xb
/* 80378B34 00375A94 7C 60 03 78 */ or r0, r3, r0
/* 80378B38 00375A98 90 09 00 B8 */ stw r0, 0xb8(r9)
/* 80378B3C 00375A9C 7C 66 42 14 */ add r3, r6, r8
/* 80378B40 00375AA0 38 00 00 00 */ li r0, 0
/* 80378B44 00375AA4 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 80378B48 00375AA8 80 63 00 B8 */ lwz r3, 0xb8(r3)
/* 80378B4C 00375AAC 90 64 80 00 */ stw r3, 0xCC008000@l(r4)
/* 80378B50 00375AB0 B0 06 00 02 */ sth r0, 2(r6)
/* 80378B54 00375AB4 4E 80 00 20 */ blr
.global GXSetCullMode
GXSetCullMode:
/* 80378B58 00375AB8 2C 03 00 02 */ cmpwi r3, 2
/* 80378B5C 00375ABC 41 82 00 1C */ beq lbl_80378B78
/* 80378B60 00375AC0 40 80 00 1C */ bge lbl_80378B7C
/* 80378B64 00375AC4 2C 03 00 01 */ cmpwi r3, 1
/* 80378B68 00375AC8 40 80 00 08 */ bge lbl_80378B70
/* 80378B6C 00375ACC 48 00 00 10 */ b lbl_80378B7C
lbl_80378B70:
/* 80378B70 00375AD0 38 60 00 02 */ li r3, 2
/* 80378B74 00375AD4 48 00 00 08 */ b lbl_80378B7C
lbl_80378B78:
/* 80378B78 00375AD8 38 60 00 01 */ li r3, 1
lbl_80378B7C:
/* 80378B7C 00375ADC 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 80378B80 00375AE0 54 60 70 22 */ slwi r0, r3, 0xe
/* 80378B84 00375AE4 80 64 02 04 */ lwz r3, 0x204(r4)
/* 80378B88 00375AE8 54 63 04 9E */ rlwinm r3, r3, 0, 0x12, 0xf
/* 80378B8C 00375AEC 7C 60 03 78 */ or r0, r3, r0
/* 80378B90 00375AF0 90 04 02 04 */ stw r0, 0x204(r4)
/* 80378B94 00375AF4 80 04 04 F4 */ lwz r0, 0x4f4(r4)
/* 80378B98 00375AF8 60 00 00 04 */ ori r0, r0, 4
/* 80378B9C 00375AFC 90 04 04 F4 */ stw r0, 0x4f4(r4)
/* 80378BA0 00375B00 4E 80 00 20 */ blr
.global GXSetCoPlanar
GXSetCoPlanar:
/* 80378BA4 00375B04 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 80378BA8 00375B08 54 60 99 58 */ rlwinm r0, r3, 0x13, 5, 0xc
/* 80378BAC 00375B0C 38 80 00 61 */ li r4, 0x61
/* 80378BB0 00375B10 80 A6 02 04 */ lwz r5, 0x204(r6)
/* 80378BB4 00375B14 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80378BB8 00375B18 54 A5 03 56 */ rlwinm r5, r5, 0, 0xd, 0xb
/* 80378BBC 00375B1C 7C A0 03 78 */ or r0, r5, r0
/* 80378BC0 00375B20 90 06 02 04 */ stw r0, 0x204(r6)
/* 80378BC4 00375B24 3C 00 FE 08 */ lis r0, 0xfe08
/* 80378BC8 00375B28 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
/* 80378BCC 00375B2C 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 80378BD0 00375B30 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
/* 80378BD4 00375B34 80 06 02 04 */ lwz r0, 0x204(r6)
/* 80378BD8 00375B38 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 80378BDC 00375B3C 4E 80 00 20 */ blr
.global __GXSetGenMode
__GXSetGenMode:
/* 80378BE0 00375B40 38 00 00 61 */ li r0, 0x61
/* 80378BE4 00375B44 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 80378BE8 00375B48 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80378BEC 00375B4C 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 80378BF0 00375B50 38 00 00 00 */ li r0, 0
/* 80378BF4 00375B54 80 64 02 04 */ lwz r3, 0x204(r4)
/* 80378BF8 00375B58 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 80378BFC 00375B5C B0 04 00 02 */ sth r0, 2(r4)
/* 80378C00 00375B60 4E 80 00 20 */ blr

1203
asm/Dolphin/GX/GXInit.s Normal file

File diff suppressed because it is too large Load Diff

398
asm/Dolphin/GX/GXLight.s Normal file
View File

@ -0,0 +1,398 @@
.include "macros.inc"
.section .text, "ax"
.global GXInitLightAttn
GXInitLightAttn:
/* 803796E8 00376648 D0 23 00 10 */ stfs f1, 0x10(r3)
/* 803796EC 0037664C D0 43 00 14 */ stfs f2, 0x14(r3)
/* 803796F0 00376650 D0 63 00 18 */ stfs f3, 0x18(r3)
/* 803796F4 00376654 D0 83 00 1C */ stfs f4, 0x1c(r3)
/* 803796F8 00376658 D0 A3 00 20 */ stfs f5, 0x20(r3)
/* 803796FC 0037665C D0 C3 00 24 */ stfs f6, 0x24(r3)
/* 80379700 00376660 4E 80 00 20 */ blr
.global GXInitLightSpot
GXInitLightSpot:
/* 80379704 00376664 7C 08 02 A6 */ mflr r0
/* 80379708 00376668 90 01 00 04 */ stw r0, 4(r1)
/* 8037970C 0037666C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80379710 00376670 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80379714 00376674 3B E4 00 00 */ addi r31, r4, 0
/* 80379718 00376678 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8037971C 0037667C 3B C3 00 00 */ addi r30, r3, 0
/* 80379720 00376680 C0 02 CE 38 */ lfs f0, lbl_805AEB58@sda21(r2)
/* 80379724 00376684 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80379728 00376688 4C 40 13 82 */ cror 2, 0, 2
/* 8037972C 0037668C 41 82 00 10 */ beq lbl_8037973C
/* 80379730 00376690 C0 02 CE 3C */ lfs f0, lbl_805AEB5C@sda21(r2)
/* 80379734 00376694 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80379738 00376698 40 81 00 08 */ ble lbl_80379740
lbl_8037973C:
/* 8037973C 0037669C 3B E0 00 00 */ li r31, 0
lbl_80379740:
/* 80379740 003766A0 C0 42 CE 40 */ lfs f2, lbl_805AEB60@sda21(r2)
/* 80379744 003766A4 C0 02 CE 44 */ lfs f0, lbl_805AEB64@sda21(r2)
/* 80379748 003766A8 EC 22 00 72 */ fmuls f1, f2, f1
/* 8037974C 003766AC EC 21 00 24 */ fdivs f1, f1, f0
/* 80379750 003766B0 48 01 B5 BD */ bl cosf
/* 80379754 003766B4 28 1F 00 06 */ cmplwi r31, 6
/* 80379758 003766B8 41 81 01 0C */ bgt lbl_80379864
/* 8037975C 003766BC 3C 60 80 3F */ lis r3, lbl_803F09D0@ha
/* 80379760 003766C0 38 63 09 D0 */ addi r3, r3, lbl_803F09D0@l
/* 80379764 003766C4 57 E0 10 3A */ slwi r0, r31, 2
/* 80379768 003766C8 7C 03 00 2E */ lwzx r0, r3, r0
/* 8037976C 003766CC 7C 09 03 A6 */ mtctr r0
/* 80379770 003766D0 4E 80 04 20 */ bctr
/* 80379774 003766D4 C0 02 CE 48 */ lfs f0, lbl_805AEB68@sda21(r2)
/* 80379778 003766D8 C0 82 CE 4C */ lfs f4, lbl_805AEB6C@sda21(r2)
/* 8037977C 003766DC EC 60 00 72 */ fmuls f3, f0, f1
/* 80379780 003766E0 C0 C2 CE 38 */ lfs f6, lbl_805AEB58@sda21(r2)
/* 80379784 003766E4 48 00 00 EC */ b lbl_80379870
/* 80379788 003766E8 C0 42 CE 50 */ lfs f2, lbl_805AEB70@sda21(r2)
/* 8037978C 003766EC FC 00 08 50 */ fneg f0, f1
/* 80379790 003766F0 C0 C2 CE 38 */ lfs f6, lbl_805AEB58@sda21(r2)
/* 80379794 003766F4 EC 22 08 28 */ fsubs f1, f2, f1
/* 80379798 003766F8 EC 22 08 24 */ fdivs f1, f2, f1
/* 8037979C 003766FC FC 80 08 90 */ fmr f4, f1
/* 803797A0 00376700 EC 60 00 72 */ fmuls f3, f0, f1
/* 803797A4 00376704 48 00 00 CC */ b lbl_80379870
/* 803797A8 00376708 C0 42 CE 50 */ lfs f2, lbl_805AEB70@sda21(r2)
/* 803797AC 0037670C FC 00 08 50 */ fneg f0, f1
/* 803797B0 00376710 C0 62 CE 38 */ lfs f3, lbl_805AEB58@sda21(r2)
/* 803797B4 00376714 EC 22 08 28 */ fsubs f1, f2, f1
/* 803797B8 00376718 EC 22 08 24 */ fdivs f1, f2, f1
/* 803797BC 0037671C FC C0 08 90 */ fmr f6, f1
/* 803797C0 00376720 EC 80 00 72 */ fmuls f4, f0, f1
/* 803797C4 00376724 48 00 00 AC */ b lbl_80379870
/* 803797C8 00376728 C0 82 CE 50 */ lfs f4, lbl_805AEB70@sda21(r2)
/* 803797CC 0037672C C0 42 CE 54 */ lfs f2, lbl_805AEB74@sda21(r2)
/* 803797D0 00376730 EC 64 08 28 */ fsubs f3, f4, f1
/* 803797D4 00376734 EC 01 10 28 */ fsubs f0, f1, f2
/* 803797D8 00376738 EC 63 00 F2 */ fmuls f3, f3, f3
/* 803797DC 0037673C EC 01 00 32 */ fmuls f0, f1, f0
/* 803797E0 00376740 EC 24 18 24 */ fdivs f1, f4, f3
/* 803797E4 00376744 EC 61 00 32 */ fmuls f3, f1, f0
/* 803797E8 00376748 EC 82 00 72 */ fmuls f4, f2, f1
/* 803797EC 0037674C FC C0 08 50 */ fneg f6, f1
/* 803797F0 00376750 48 00 00 80 */ b lbl_80379870
/* 803797F4 00376754 C0 A2 CE 50 */ lfs f5, lbl_805AEB70@sda21(r2)
/* 803797F8 00376758 C0 62 CE 58 */ lfs f3, lbl_805AEB78@sda21(r2)
/* 803797FC 0037675C EC 85 08 28 */ fsubs f4, f5, f1
/* 80379800 00376760 C0 42 CE 5C */ lfs f2, lbl_805AEB7C@sda21(r2)
/* 80379804 00376764 EC 05 08 2A */ fadds f0, f5, f1
/* 80379808 00376768 EC 84 01 32 */ fmuls f4, f4, f4
/* 8037980C 0037676C EC 02 00 32 */ fmuls f0, f2, f0
/* 80379810 00376770 EC 85 20 24 */ fdivs f4, f5, f4
/* 80379814 00376774 EC 43 01 32 */ fmuls f2, f3, f4
/* 80379818 00376778 EC 80 01 32 */ fmuls f4, f0, f4
/* 8037981C 0037677C FC C0 10 90 */ fmr f6, f2
/* 80379820 00376780 EC 62 00 72 */ fmuls f3, f2, f1
/* 80379824 00376784 48 00 00 4C */ b lbl_80379870
/* 80379828 00376788 C0 A2 CE 50 */ lfs f5, lbl_805AEB70@sda21(r2)
/* 8037982C 0037678C C0 02 CE 54 */ lfs f0, lbl_805AEB74@sda21(r2)
/* 80379830 00376790 EC 85 08 28 */ fsubs f4, f5, f1
/* 80379834 00376794 C0 42 CE 5C */ lfs f2, lbl_805AEB7C@sda21(r2)
/* 80379838 00376798 EC 60 00 72 */ fmuls f3, f0, f1
/* 8037983C 0037679C C0 02 CE 60 */ lfs f0, lbl_805AEB80@sda21(r2)
/* 80379840 003767A0 EC 42 00 72 */ fmuls f2, f2, f1
/* 80379844 003767A4 EC 84 01 32 */ fmuls f4, f4, f4
/* 80379848 003767A8 EC 23 00 72 */ fmuls f1, f3, f1
/* 8037984C 003767AC EC 65 20 24 */ fdivs f3, f5, f4
/* 80379850 003767B0 EC 23 00 72 */ fmuls f1, f3, f1
/* 80379854 003767B4 EC 82 00 F2 */ fmuls f4, f2, f3
/* 80379858 003767B8 EC C0 00 F2 */ fmuls f6, f0, f3
/* 8037985C 003767BC EC 65 08 28 */ fsubs f3, f5, f1
/* 80379860 003767C0 48 00 00 10 */ b lbl_80379870
lbl_80379864:
/* 80379864 003767C4 C0 82 CE 38 */ lfs f4, lbl_805AEB58@sda21(r2)
/* 80379868 003767C8 C0 62 CE 50 */ lfs f3, lbl_805AEB70@sda21(r2)
/* 8037986C 003767CC FC C0 20 90 */ fmr f6, f4
lbl_80379870:
/* 80379870 003767D0 D0 7E 00 10 */ stfs f3, 0x10(r30)
/* 80379874 003767D4 D0 9E 00 14 */ stfs f4, 0x14(r30)
/* 80379878 003767D8 D0 DE 00 18 */ stfs f6, 0x18(r30)
/* 8037987C 003767DC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80379880 003767E0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80379884 003767E4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80379888 003767E8 38 21 00 20 */ addi r1, r1, 0x20
/* 8037988C 003767EC 7C 08 03 A6 */ mtlr r0
/* 80379890 003767F0 4E 80 00 20 */ blr
.global GXInitLightPos
GXInitLightPos:
/* 80379894 003767F4 D0 23 00 28 */ stfs f1, 0x28(r3)
/* 80379898 003767F8 D0 43 00 2C */ stfs f2, 0x2c(r3)
/* 8037989C 003767FC D0 63 00 30 */ stfs f3, 0x30(r3)
/* 803798A0 00376800 4E 80 00 20 */ blr
.global GXInitLightDir
GXInitLightDir:
/* 803798A4 00376804 FC 80 08 50 */ fneg f4, f1
/* 803798A8 00376808 FC 20 10 50 */ fneg f1, f2
/* 803798AC 0037680C FC 00 18 50 */ fneg f0, f3
/* 803798B0 00376810 D0 83 00 34 */ stfs f4, 0x34(r3)
/* 803798B4 00376814 D0 23 00 38 */ stfs f1, 0x38(r3)
/* 803798B8 00376818 D0 03 00 3C */ stfs f0, 0x3c(r3)
/* 803798BC 0037681C 4E 80 00 20 */ blr
.global GXInitLightColor
GXInitLightColor:
/* 803798C0 00376820 80 04 00 00 */ lwz r0, 0(r4)
/* 803798C4 00376824 90 03 00 0C */ stw r0, 0xc(r3)
/* 803798C8 00376828 4E 80 00 20 */ blr
.global GXLoadLightObjImm
GXLoadLightObjImm:
/* 803798CC 0037682C 7C 80 00 34 */ cntlzw r0, r4
/* 803798D0 00376830 20 00 00 1F */ subfic r0, r0, 0x1f
/* 803798D4 00376834 54 05 26 76 */ rlwinm r5, r0, 4, 0x19, 0x1b
/* 803798D8 00376838 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 803798DC 0037683C 38 00 00 10 */ li r0, 0x10
/* 803798E0 00376840 38 A5 06 00 */ addi r5, r5, 0x600
/* 803798E4 00376844 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 803798E8 00376848 64 A0 00 0F */ oris r0, r5, 0xf
/* 803798EC 0037684C 94 04 80 00 */ stwu r0, 0xCC008000@l(r4)
/* 803798F0 00376850 80 03 00 0C */ lwz r0, 0xc(r3)
/* 803798F4 00376854 7C C6 32 78 */ xor r6, r6, r6
/* 803798F8 00376858 E0 A3 00 10 */ psq_l f5, 16(r3), 0, qr0
/* 803798FC 0037685C E0 83 00 18 */ psq_l f4, 24(r3), 0, qr0
/* 80379900 00376860 E0 63 00 20 */ psq_l f3, 32(r3), 0, qr0
/* 80379904 00376864 E0 43 00 28 */ psq_l f2, 40(r3), 0, qr0
/* 80379908 00376868 E0 23 00 30 */ psq_l f1, 48(r3), 0, qr0
/* 8037990C 0037686C E0 03 00 38 */ psq_l f0, 56(r3), 0, qr0
/* 80379910 00376870 90 C4 00 00 */ stw r6, 0(r4)
/* 80379914 00376874 90 C4 00 00 */ stw r6, 0(r4)
/* 80379918 00376878 90 C4 00 00 */ stw r6, 0(r4)
/* 8037991C 0037687C 90 04 00 00 */ stw r0, 0(r4)
/* 80379920 00376880 F0 A4 00 00 */ psq_st f5, 0(r4), 0, qr0
/* 80379924 00376884 F0 84 00 00 */ psq_st f4, 0(r4), 0, qr0
/* 80379928 00376888 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0
/* 8037992C 0037688C F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0
/* 80379930 00376890 F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0
/* 80379934 00376894 F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0
/* 80379938 00376898 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037993C 0037689C 38 00 00 01 */ li r0, 1
/* 80379940 003768A0 B0 03 00 02 */ sth r0, 2(r3)
/* 80379944 003768A4 4E 80 00 20 */ blr
.global GXSetChanAmbColor
GXSetChanAmbColor:
/* 80379948 003768A8 2C 03 00 03 */ cmpwi r3, 3
/* 8037994C 003768AC 41 82 00 88 */ beq lbl_803799D4
/* 80379950 003768B0 40 80 00 1C */ bge lbl_8037996C
/* 80379954 003768B4 2C 03 00 01 */ cmpwi r3, 1
/* 80379958 003768B8 41 82 00 44 */ beq lbl_8037999C
/* 8037995C 003768BC 40 80 00 60 */ bge lbl_803799BC
/* 80379960 003768C0 2C 03 00 00 */ cmpwi r3, 0
/* 80379964 003768C4 40 80 00 18 */ bge lbl_8037997C
/* 80379968 003768C8 4E 80 00 20 */ blr
lbl_8037996C:
/* 8037996C 003768CC 2C 03 00 05 */ cmpwi r3, 5
/* 80379970 003768D0 41 82 00 88 */ beq lbl_803799F8
/* 80379974 003768D4 4C 80 00 20 */ bgelr
/* 80379978 003768D8 48 00 00 74 */ b lbl_803799EC
lbl_8037997C:
/* 8037997C 003768DC 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80379980 003768E0 38 A0 00 00 */ li r5, 0
/* 80379984 003768E4 80 04 00 00 */ lwz r0, 0(r4)
/* 80379988 003768E8 80 63 00 A8 */ lwz r3, 0xa8(r3)
/* 8037998C 003768EC 54 00 00 2E */ rlwinm r0, r0, 0, 0, 0x17
/* 80379990 003768F0 7C 07 03 78 */ mr r7, r0
/* 80379994 003768F4 50 67 06 3E */ rlwimi r7, r3, 0, 0x18, 0x1f
/* 80379998 003768F8 48 00 00 70 */ b lbl_80379A08
lbl_8037999C:
/* 8037999C 003768FC 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 803799A0 00376900 38 A0 00 01 */ li r5, 1
/* 803799A4 00376904 80 04 00 00 */ lwz r0, 0(r4)
/* 803799A8 00376908 80 63 00 AC */ lwz r3, 0xac(r3)
/* 803799AC 0037690C 54 00 00 2E */ rlwinm r0, r0, 0, 0, 0x17
/* 803799B0 00376910 7C 07 03 78 */ mr r7, r0
/* 803799B4 00376914 50 67 06 3E */ rlwimi r7, r3, 0, 0x18, 0x1f
/* 803799B8 00376918 48 00 00 50 */ b lbl_80379A08
lbl_803799BC:
/* 803799BC 0037691C 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 803799C0 00376920 38 A0 00 00 */ li r5, 0
/* 803799C4 00376924 88 E4 00 03 */ lbz r7, 3(r4)
/* 803799C8 00376928 80 63 00 A8 */ lwz r3, 0xa8(r3)
/* 803799CC 0037692C 50 67 00 2E */ rlwimi r7, r3, 0, 0, 0x17
/* 803799D0 00376930 48 00 00 38 */ b lbl_80379A08
lbl_803799D4:
/* 803799D4 00376934 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 803799D8 00376938 38 A0 00 01 */ li r5, 1
/* 803799DC 0037693C 88 E4 00 03 */ lbz r7, 3(r4)
/* 803799E0 00376940 80 63 00 AC */ lwz r3, 0xac(r3)
/* 803799E4 00376944 50 67 00 2E */ rlwimi r7, r3, 0, 0, 0x17
/* 803799E8 00376948 48 00 00 20 */ b lbl_80379A08
lbl_803799EC:
/* 803799EC 0037694C 80 E4 00 00 */ lwz r7, 0(r4)
/* 803799F0 00376950 38 A0 00 00 */ li r5, 0
/* 803799F4 00376954 48 00 00 14 */ b lbl_80379A08
lbl_803799F8:
/* 803799F8 00376958 80 E4 00 00 */ lwz r7, 0(r4)
/* 803799FC 0037695C 38 A0 00 01 */ li r5, 1
/* 80379A00 00376960 48 00 00 08 */ b lbl_80379A08
/* 80379A04 00376964 4E 80 00 20 */ blr
lbl_80379A08:
/* 80379A08 00376968 38 00 00 10 */ li r0, 0x10
/* 80379A0C 0037696C 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 80379A10 00376970 3C C0 CC 01 */ lis r6, 0xCC008000@ha
/* 80379A14 00376974 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
/* 80379A18 00376978 38 65 10 0A */ addi r3, r5, 0x100a
/* 80379A1C 0037697C 54 A0 10 3A */ slwi r0, r5, 2
/* 80379A20 00376980 90 66 80 00 */ stw r3, 0xCC008000@l(r6)
/* 80379A24 00376984 38 A0 00 01 */ li r5, 1
/* 80379A28 00376988 7C 64 02 14 */ add r3, r4, r0
/* 80379A2C 0037698C 90 E6 80 00 */ stw r7, 0xCC008000@l(r6)
/* 80379A30 00376990 B0 A4 00 02 */ sth r5, 2(r4)
/* 80379A34 00376994 90 E3 00 A8 */ stw r7, 0xa8(r3)
/* 80379A38 00376998 4E 80 00 20 */ blr
.global GXSetChanMatColor
GXSetChanMatColor:
/* 80379A3C 0037699C 2C 03 00 03 */ cmpwi r3, 3
/* 80379A40 003769A0 41 82 00 88 */ beq lbl_80379AC8
/* 80379A44 003769A4 40 80 00 1C */ bge lbl_80379A60
/* 80379A48 003769A8 2C 03 00 01 */ cmpwi r3, 1
/* 80379A4C 003769AC 41 82 00 44 */ beq lbl_80379A90
/* 80379A50 003769B0 40 80 00 60 */ bge lbl_80379AB0
/* 80379A54 003769B4 2C 03 00 00 */ cmpwi r3, 0
/* 80379A58 003769B8 40 80 00 18 */ bge lbl_80379A70
/* 80379A5C 003769BC 4E 80 00 20 */ blr
lbl_80379A60:
/* 80379A60 003769C0 2C 03 00 05 */ cmpwi r3, 5
/* 80379A64 003769C4 41 82 00 88 */ beq lbl_80379AEC
/* 80379A68 003769C8 4C 80 00 20 */ bgelr
/* 80379A6C 003769CC 48 00 00 74 */ b lbl_80379AE0
lbl_80379A70:
/* 80379A70 003769D0 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80379A74 003769D4 38 A0 00 00 */ li r5, 0
/* 80379A78 003769D8 80 04 00 00 */ lwz r0, 0(r4)
/* 80379A7C 003769DC 80 63 00 B0 */ lwz r3, 0xb0(r3)
/* 80379A80 003769E0 54 00 00 2E */ rlwinm r0, r0, 0, 0, 0x17
/* 80379A84 003769E4 7C 07 03 78 */ mr r7, r0
/* 80379A88 003769E8 50 67 06 3E */ rlwimi r7, r3, 0, 0x18, 0x1f
/* 80379A8C 003769EC 48 00 00 70 */ b lbl_80379AFC
lbl_80379A90:
/* 80379A90 003769F0 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80379A94 003769F4 38 A0 00 01 */ li r5, 1
/* 80379A98 003769F8 80 04 00 00 */ lwz r0, 0(r4)
/* 80379A9C 003769FC 80 63 00 B4 */ lwz r3, 0xb4(r3)
/* 80379AA0 00376A00 54 00 00 2E */ rlwinm r0, r0, 0, 0, 0x17
/* 80379AA4 00376A04 7C 07 03 78 */ mr r7, r0
/* 80379AA8 00376A08 50 67 06 3E */ rlwimi r7, r3, 0, 0x18, 0x1f
/* 80379AAC 00376A0C 48 00 00 50 */ b lbl_80379AFC
lbl_80379AB0:
/* 80379AB0 00376A10 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80379AB4 00376A14 38 A0 00 00 */ li r5, 0
/* 80379AB8 00376A18 88 E4 00 03 */ lbz r7, 3(r4)
/* 80379ABC 00376A1C 80 63 00 B0 */ lwz r3, 0xb0(r3)
/* 80379AC0 00376A20 50 67 00 2E */ rlwimi r7, r3, 0, 0, 0x17
/* 80379AC4 00376A24 48 00 00 38 */ b lbl_80379AFC
lbl_80379AC8:
/* 80379AC8 00376A28 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80379ACC 00376A2C 38 A0 00 01 */ li r5, 1
/* 80379AD0 00376A30 88 E4 00 03 */ lbz r7, 3(r4)
/* 80379AD4 00376A34 80 63 00 B4 */ lwz r3, 0xb4(r3)
/* 80379AD8 00376A38 50 67 00 2E */ rlwimi r7, r3, 0, 0, 0x17
/* 80379ADC 00376A3C 48 00 00 20 */ b lbl_80379AFC
lbl_80379AE0:
/* 80379AE0 00376A40 80 E4 00 00 */ lwz r7, 0(r4)
/* 80379AE4 00376A44 38 A0 00 00 */ li r5, 0
/* 80379AE8 00376A48 48 00 00 14 */ b lbl_80379AFC
lbl_80379AEC:
/* 80379AEC 00376A4C 80 E4 00 00 */ lwz r7, 0(r4)
/* 80379AF0 00376A50 38 A0 00 01 */ li r5, 1
/* 80379AF4 00376A54 48 00 00 08 */ b lbl_80379AFC
/* 80379AF8 00376A58 4E 80 00 20 */ blr
lbl_80379AFC:
/* 80379AFC 00376A5C 38 00 00 10 */ li r0, 0x10
/* 80379B00 00376A60 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 80379B04 00376A64 3C C0 CC 01 */ lis r6, 0xCC008000@ha
/* 80379B08 00376A68 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
/* 80379B0C 00376A6C 38 65 10 0C */ addi r3, r5, 0x100c
/* 80379B10 00376A70 54 A0 10 3A */ slwi r0, r5, 2
/* 80379B14 00376A74 90 66 80 00 */ stw r3, 0xCC008000@l(r6)
/* 80379B18 00376A78 38 A0 00 01 */ li r5, 1
/* 80379B1C 00376A7C 7C 64 02 14 */ add r3, r4, r0
/* 80379B20 00376A80 90 E6 80 00 */ stw r7, 0xCC008000@l(r6)
/* 80379B24 00376A84 B0 A4 00 02 */ sth r5, 2(r4)
/* 80379B28 00376A88 90 E3 00 B0 */ stw r7, 0xb0(r3)
/* 80379B2C 00376A8C 4E 80 00 20 */ blr
.global GXSetNumChans
GXSetNumChans:
/* 80379B30 00376A90 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 80379B34 00376A94 54 60 25 36 */ rlwinm r0, r3, 4, 0x14, 0x1b
/* 80379B38 00376A98 54 68 06 3E */ clrlwi r8, r3, 0x18
/* 80379B3C 00376A9C 80 A6 02 04 */ lwz r5, 0x204(r6)
/* 80379B40 00376AA0 38 80 00 10 */ li r4, 0x10
/* 80379B44 00376AA4 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80379B48 00376AA8 54 A5 07 30 */ rlwinm r5, r5, 0, 0x1c, 0x18
/* 80379B4C 00376AAC 7C A0 03 78 */ or r0, r5, r0
/* 80379B50 00376AB0 90 06 02 04 */ stw r0, 0x204(r6)
/* 80379B54 00376AB4 38 00 10 09 */ li r0, 0x1009
/* 80379B58 00376AB8 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
/* 80379B5C 00376ABC 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 80379B60 00376AC0 91 03 80 00 */ stw r8, 0xCC008000@l(r3)
/* 80379B64 00376AC4 80 06 04 F4 */ lwz r0, 0x4f4(r6)
/* 80379B68 00376AC8 60 00 00 04 */ ori r0, r0, 4
/* 80379B6C 00376ACC 90 06 04 F4 */ stw r0, 0x4f4(r6)
/* 80379B70 00376AD0 4E 80 00 20 */ blr
.global GXSetChanCtrl
GXSetChanCtrl:
/* 80379B74 00376AD4 54 80 0D FC */ rlwinm r0, r4, 1, 0x17, 0x1e
/* 80379B78 00376AD8 7C 00 33 78 */ or r0, r0, r6
/* 80379B7C 00376ADC 54 04 06 B0 */ rlwinm r4, r0, 0, 0x1a, 0x18
/* 80379B80 00376AE0 54 A0 30 32 */ slwi r0, r5, 6
/* 80379B84 00376AE4 2C 09 00 00 */ cmpwi r9, 0
/* 80379B88 00376AE8 54 6A 07 BE */ clrlwi r10, r3, 0x1e
/* 80379B8C 00376AEC 7C 86 03 78 */ or r6, r4, r0
/* 80379B90 00376AF0 40 82 00 08 */ bne lbl_80379B98
/* 80379B94 00376AF4 39 00 00 00 */ li r8, 0
lbl_80379B98:
/* 80379B98 00376AF8 20 89 00 02 */ subfic r4, r9, 2
/* 80379B9C 00376AFC 30 04 FF FF */ addic r0, r4, -1
/* 80379BA0 00376B00 7C A0 21 10 */ subfe r5, r0, r4
/* 80379BA4 00376B04 7C 89 00 D0 */ neg r4, r9
/* 80379BA8 00376B08 30 04 FF FF */ addic r0, r4, -1
/* 80379BAC 00376B0C 7C 00 21 10 */ subfe r0, r0, r4
/* 80379BB0 00376B10 54 C6 06 6C */ rlwinm r6, r6, 0, 0x19, 0x16
/* 80379BB4 00376B14 55 04 38 30 */ slwi r4, r8, 7
/* 80379BB8 00376B18 7C C4 23 78 */ or r4, r6, r4
/* 80379BBC 00376B1C 54 86 05 EA */ rlwinm r6, r4, 0, 0x17, 0x15
/* 80379BC0 00376B20 54 A4 48 2C */ slwi r4, r5, 9
/* 80379BC4 00376B24 7C C4 23 78 */ or r4, r6, r4
/* 80379BC8 00376B28 54 84 05 A8 */ rlwinm r4, r4, 0, 0x16, 0x14
/* 80379BCC 00376B2C 54 00 50 2A */ slwi r0, r0, 0xa
/* 80379BD0 00376B30 7C 86 03 78 */ or r6, r4, r0
/* 80379BD4 00376B34 54 C6 07 B2 */ rlwinm r6, r6, 0, 0x1e, 0x19
/* 80379BD8 00376B38 50 E6 16 BA */ rlwimi r6, r7, 2, 0x1a, 0x1d
/* 80379BDC 00376B3C 54 C6 05 60 */ rlwinm r6, r6, 0, 0x15, 0x10
/* 80379BE0 00376B40 38 A0 00 10 */ li r5, 0x10
/* 80379BE4 00376B44 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 80379BE8 00376B48 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 80379BEC 00376B4C 38 0A 10 0E */ addi r0, r10, 0x100e
/* 80379BF0 00376B50 50 E6 3C 68 */ rlwimi r6, r7, 7, 0x11, 0x14
/* 80379BF4 00376B54 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 80379BF8 00376B58 2C 03 00 04 */ cmpwi r3, 4
/* 80379BFC 00376B5C 90 C4 80 00 */ stw r6, 0xCC008000@l(r4)
/* 80379C00 00376B60 40 82 00 18 */ bne lbl_80379C18
/* 80379C04 00376B64 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 80379C08 00376B68 38 00 10 10 */ li r0, 0x1010
/* 80379C0C 00376B6C 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 80379C10 00376B70 90 C4 80 00 */ stw r6, 0xCC008000@l(r4)
/* 80379C14 00376B74 48 00 00 1C */ b lbl_80379C30
lbl_80379C18:
/* 80379C18 00376B78 2C 03 00 05 */ cmpwi r3, 5
/* 80379C1C 00376B7C 40 82 00 14 */ bne lbl_80379C30
/* 80379C20 00376B80 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 80379C24 00376B84 38 00 10 11 */ li r0, 0x1011
/* 80379C28 00376B88 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 80379C2C 00376B8C 90 C4 80 00 */ stw r6, 0xCC008000@l(r4)
lbl_80379C30:
/* 80379C30 00376B90 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80379C34 00376B94 38 00 00 01 */ li r0, 1
/* 80379C38 00376B98 B0 03 00 02 */ sth r0, 2(r3)
/* 80379C3C 00376B9C 4E 80 00 20 */ blr

432
asm/Dolphin/GX/GXMisc.s Normal file
View File

@ -0,0 +1,432 @@
.include "macros.inc"
.section .text, "ax"
.global GXSetMisc
GXSetMisc:
/* 803782A4 00375204 2C 03 00 01 */ cmpwi r3, 1
/* 803782A8 00375208 41 82 00 14 */ beq lbl_803782BC
/* 803782AC 0037520C 4D 80 00 20 */ bltlr
/* 803782B0 00375210 2C 03 00 03 */ cmpwi r3, 3
/* 803782B4 00375214 4C 80 00 20 */ bgelr
/* 803782B8 00375218 48 00 00 40 */ b lbl_803782F8
lbl_803782BC:
/* 803782BC 0037521C 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 803782C0 00375220 38 00 00 01 */ li r0, 1
/* 803782C4 00375224 B0 85 00 04 */ sth r4, 4(r5)
/* 803782C8 00375228 A0 65 00 04 */ lhz r3, 4(r5)
/* 803782CC 0037522C 7C 63 00 34 */ cntlzw r3, r3
/* 803782D0 00375230 54 63 DC 3E */ rlwinm r3, r3, 0x1b, 0x10, 0x1f
/* 803782D4 00375234 B0 65 00 00 */ sth r3, 0(r5)
/* 803782D8 00375238 B0 05 00 02 */ sth r0, 2(r5)
/* 803782DC 0037523C A0 05 00 04 */ lhz r0, 4(r5)
/* 803782E0 00375240 28 00 00 00 */ cmplwi r0, 0
/* 803782E4 00375244 4D 82 00 20 */ beqlr
/* 803782E8 00375248 80 05 04 F4 */ lwz r0, 0x4f4(r5)
/* 803782EC 0037524C 60 00 00 08 */ ori r0, r0, 8
/* 803782F0 00375250 90 05 04 F4 */ stw r0, 0x4f4(r5)
/* 803782F4 00375254 4E 80 00 20 */ blr
lbl_803782F8:
/* 803782F8 00375258 7C 84 00 D0 */ neg r4, r4
/* 803782FC 0037525C 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80378300 00375260 30 04 FF FF */ addic r0, r4, -1
/* 80378304 00375264 7C 00 21 10 */ subfe r0, r0, r4
/* 80378308 00375268 98 03 04 F1 */ stb r0, 0x4f1(r3)
/* 8037830C 0037526C 4E 80 00 20 */ blr
.global GXFlush
GXFlush:
/* 80378310 00375270 7C 08 02 A6 */ mflr r0
/* 80378314 00375274 90 01 00 04 */ stw r0, 4(r1)
/* 80378318 00375278 94 21 FF F8 */ stwu r1, -8(r1)
/* 8037831C 0037527C 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 80378320 00375280 80 03 04 F4 */ lwz r0, 0x4f4(r3)
/* 80378324 00375284 28 00 00 00 */ cmplwi r0, 0
/* 80378328 00375288 41 82 00 08 */ beq lbl_80378330
/* 8037832C 0037528C 48 00 05 29 */ bl __GXSetDirtyState
lbl_80378330:
/* 80378330 00375290 38 00 00 00 */ li r0, 0
/* 80378334 00375294 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 80378338 00375298 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 8037833C 0037529C 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 80378340 003752A0 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 80378344 003752A4 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 80378348 003752A8 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 8037834C 003752AC 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 80378350 003752B0 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 80378354 003752B4 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 80378358 003752B8 4B FF 74 B5 */ bl PPCSync
/* 8037835C 003752BC 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80378360 003752C0 38 21 00 08 */ addi r1, r1, 8
/* 80378364 003752C4 7C 08 03 A6 */ mtlr r0
/* 80378368 003752C8 4E 80 00 20 */ blr
.global sub_8037836c
sub_8037836c:
/* 8037836C 003752CC 7C 08 02 A6 */ mflr r0
/* 80378370 003752D0 3C 60 CC 00 */ lis r3, 0xCC003000@ha
/* 80378374 003752D4 90 01 00 04 */ stw r0, 4(r1)
/* 80378378 003752D8 38 00 00 01 */ li r0, 1
/* 8037837C 003752DC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80378380 003752E0 BF 61 00 0C */ stmw r27, 0xc(r1)
/* 80378384 003752E4 3B 63 30 00 */ addi r27, r3, 0xCC003000@l
/* 80378388 003752E8 94 1B 00 18 */ stwu r0, 0x18(r27)
/* 8037838C 003752EC 48 00 D0 1D */ bl OSGetTime
/* 80378390 003752F0 38 00 00 00 */ li r0, 0
/* 80378394 003752F4 3B E4 00 00 */ addi r31, r4, 0
/* 80378398 003752F8 3B C3 00 00 */ addi r30, r3, 0
/* 8037839C 003752FC 6C 1C 80 00 */ xoris r28, r0, 0x8000
/* 803783A0 00375300 3B A0 00 32 */ li r29, 0x32
lbl_803783A4:
/* 803783A4 00375304 48 00 D0 05 */ bl OSGetTime
/* 803783A8 00375308 7C 9F 20 10 */ subfc r4, r31, r4
/* 803783AC 0037530C 7C 1E 19 10 */ subfe r0, r30, r3
/* 803783B0 00375310 6C 03 80 00 */ xoris r3, r0, 0x8000
/* 803783B4 00375314 7C 04 E8 10 */ subfc r0, r4, r29
/* 803783B8 00375318 7C 63 E1 10 */ subfe r3, r3, r28
/* 803783BC 0037531C 7C 7C E1 10 */ subfe r3, r28, r28
/* 803783C0 00375320 7C 63 00 D1 */ neg. r3, r3
/* 803783C4 00375324 41 82 FF E0 */ beq lbl_803783A4
/* 803783C8 00375328 3B C0 00 00 */ li r30, 0
/* 803783CC 0037532C 93 DB 00 00 */ stw r30, 0(r27)
/* 803783D0 00375330 48 00 CF D9 */ bl OSGetTime
/* 803783D4 00375334 3B 84 00 00 */ addi r28, r4, 0
/* 803783D8 00375338 3B A3 00 00 */ addi r29, r3, 0
/* 803783DC 0037533C 6F DF 80 00 */ xoris r31, r30, 0x8000
/* 803783E0 00375340 3B C0 00 05 */ li r30, 5
lbl_803783E4:
/* 803783E4 00375344 48 00 CF C5 */ bl OSGetTime
/* 803783E8 00375348 7C 9C 20 10 */ subfc r4, r28, r4
/* 803783EC 0037534C 7C 1D 19 10 */ subfe r0, r29, r3
/* 803783F0 00375350 6C 03 80 00 */ xoris r3, r0, 0x8000
/* 803783F4 00375354 7C 04 F0 10 */ subfc r0, r4, r30
/* 803783F8 00375358 7C 63 F9 10 */ subfe r3, r3, r31
/* 803783FC 0037535C 7C 7F F9 10 */ subfe r3, r31, r31
/* 80378400 00375360 7C 63 00 D1 */ neg. r3, r3
/* 80378404 00375364 41 82 FF E0 */ beq lbl_803783E4
/* 80378408 00375368 4B FF E6 1D */ bl __GXCleanGPFifo
/* 8037840C 0037536C BB 61 00 0C */ lmw r27, 0xc(r1)
/* 80378410 00375370 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80378414 00375374 38 21 00 20 */ addi r1, r1, 0x20
/* 80378418 00375378 7C 08 03 A6 */ mtlr r0
/* 8037841C 0037537C 4E 80 00 20 */ blr
.global GXSetDrawSync
GXSetDrawSync:
/* 80378420 00375380 7C 08 02 A6 */ mflr r0
/* 80378424 00375384 90 01 00 04 */ stw r0, 4(r1)
/* 80378428 00375388 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8037842C 0037538C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80378430 00375390 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80378434 00375394 7C 7E 1B 78 */ mr r30, r3
/* 80378438 00375398 48 00 92 29 */ bl OSDisableInterrupts
/* 8037843C 0037539C 38 C0 00 61 */ li r6, 0x61
/* 80378440 003753A0 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 80378444 003753A4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80378448 003753A8 57 C0 04 3E */ clrlwi r0, r30, 0x10
/* 8037844C 003753AC 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 80378450 003753B0 64 00 48 00 */ oris r0, r0, 0x4800
/* 80378454 003753B4 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 80378458 003753B8 54 00 00 1E */ rlwinm r0, r0, 0, 0, 0xf
/* 8037845C 003753BC 53 C0 04 3E */ rlwimi r0, r30, 0, 0x10, 0x1f
/* 80378460 003753C0 54 00 02 3E */ clrlwi r0, r0, 8
/* 80378464 003753C4 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 80378468 003753C8 64 00 47 00 */ oris r0, r0, 0x4700
/* 8037846C 003753CC 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 80378470 003753D0 7C 7E 1B 78 */ mr r30, r3
/* 80378474 003753D4 80 04 04 F4 */ lwz r0, 0x4f4(r4)
/* 80378478 003753D8 28 00 00 00 */ cmplwi r0, 0
/* 8037847C 003753DC 41 82 00 08 */ beq lbl_80378484
/* 80378480 003753E0 48 00 03 D5 */ bl __GXSetDirtyState
lbl_80378484:
/* 80378484 003753E4 3B E0 00 00 */ li r31, 0
/* 80378488 003753E8 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037848C 003753EC 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
/* 80378490 003753F0 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
/* 80378494 003753F4 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
/* 80378498 003753F8 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
/* 8037849C 003753FC 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
/* 803784A0 00375400 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
/* 803784A4 00375404 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
/* 803784A8 00375408 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
/* 803784AC 0037540C 4B FF 73 61 */ bl PPCSync
/* 803784B0 00375410 7F C3 F3 78 */ mr r3, r30
/* 803784B4 00375414 48 00 91 D5 */ bl OSRestoreInterrupts
/* 803784B8 00375418 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 803784BC 0037541C B3 E3 00 02 */ sth r31, 2(r3)
/* 803784C0 00375420 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803784C4 00375424 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803784C8 00375428 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803784CC 0037542C 38 21 00 18 */ addi r1, r1, 0x18
/* 803784D0 00375430 7C 08 03 A6 */ mtlr r0
/* 803784D4 00375434 4E 80 00 20 */ blr
.global GXReadDrawSync
GXReadDrawSync:
/* 803784D8 00375438 80 6D AC 80 */ lwz r3, lbl_805A9840@sda21(r13)
/* 803784DC 0037543C A0 63 00 0E */ lhz r3, 0xe(r3)
/* 803784E0 00375440 4E 80 00 20 */ blr
.global GXDrawDone
GXDrawDone:
/* 803784E4 00375444 7C 08 02 A6 */ mflr r0
/* 803784E8 00375448 90 01 00 04 */ stw r0, 4(r1)
/* 803784EC 0037544C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803784F0 00375450 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803784F4 00375454 48 00 91 6D */ bl OSDisableInterrupts
/* 803784F8 00375458 38 00 00 61 */ li r0, 0x61
/* 803784FC 0037545C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80378500 00375460 3C 80 45 00 */ lis r4, 0x45000002@ha
/* 80378504 00375464 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 80378508 00375468 38 04 00 02 */ addi r0, r4, 0x45000002@l
/* 8037850C 0037546C 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 80378510 00375470 7C 7F 1B 78 */ mr r31, r3
/* 80378514 00375474 4B FF FD FD */ bl GXFlush
/* 80378518 00375478 38 00 00 00 */ li r0, 0
/* 8037851C 0037547C 98 0D AC B0 */ stb r0, lbl_805A9870@sda21(r13)
/* 80378520 00375480 7F E3 FB 78 */ mr r3, r31
/* 80378524 00375484 48 00 91 65 */ bl OSRestoreInterrupts
/* 80378528 00375488 48 00 91 39 */ bl OSDisableInterrupts
/* 8037852C 0037548C 7C 7F 1B 78 */ mr r31, r3
/* 80378530 00375490 48 00 00 0C */ b lbl_8037853C
lbl_80378534:
/* 80378534 00375494 38 6D AC B4 */ addi r3, r13, lbl_805A9874@sda21
/* 80378538 00375498 48 00 CB D5 */ bl OSSleepThread
lbl_8037853C:
/* 8037853C 0037549C 88 0D AC B0 */ lbz r0, lbl_805A9870@sda21(r13)
/* 80378540 003754A0 28 00 00 00 */ cmplwi r0, 0
/* 80378544 003754A4 41 82 FF F0 */ beq lbl_80378534
/* 80378548 003754A8 7F E3 FB 78 */ mr r3, r31
/* 8037854C 003754AC 48 00 91 3D */ bl OSRestoreInterrupts
/* 80378550 003754B0 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80378554 003754B4 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80378558 003754B8 38 21 00 18 */ addi r1, r1, 0x18
/* 8037855C 003754BC 7C 08 03 A6 */ mtlr r0
/* 80378560 003754C0 4E 80 00 20 */ blr
.global GXPixModeSync
GXPixModeSync:
/* 80378564 003754C4 38 00 00 61 */ li r0, 0x61
/* 80378568 003754C8 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037856C 003754CC 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 80378570 003754D0 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 80378574 003754D4 38 00 00 00 */ li r0, 0
/* 80378578 003754D8 80 64 01 DC */ lwz r3, 0x1dc(r4)
/* 8037857C 003754DC 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 80378580 003754E0 B0 04 00 02 */ sth r0, 2(r4)
/* 80378584 003754E4 4E 80 00 20 */ blr
.global GXPokeAlphaMode
GXPokeAlphaMode:
/* 80378588 003754E8 80 AD AC 80 */ lwz r5, lbl_805A9840@sda21(r13)
/* 8037858C 003754EC 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80378590 003754F0 50 60 40 2E */ rlwimi r0, r3, 8, 0, 0x17
/* 80378594 003754F4 B0 05 00 06 */ sth r0, 6(r5)
/* 80378598 003754F8 4E 80 00 20 */ blr
.global GXPokeAlphaRead
GXPokeAlphaRead:
/* 8037859C 003754FC 54 60 07 B8 */ rlwinm r0, r3, 0, 0x1e, 0x1c
/* 803785A0 00375500 80 6D AC 80 */ lwz r3, lbl_805A9840@sda21(r13)
/* 803785A4 00375504 60 00 00 04 */ ori r0, r0, 4
/* 803785A8 00375508 B0 03 00 08 */ sth r0, 8(r3)
/* 803785AC 0037550C 4E 80 00 20 */ blr
.global GXPokeAlphaUpdate
GXPokeAlphaUpdate:
/* 803785B0 00375510 80 8D AC 80 */ lwz r4, lbl_805A9840@sda21(r13)
/* 803785B4 00375514 54 60 25 36 */ rlwinm r0, r3, 4, 0x14, 0x1b
/* 803785B8 00375518 A4 64 00 02 */ lhzu r3, 2(r4)
/* 803785BC 0037551C 54 63 07 34 */ rlwinm r3, r3, 0, 0x1c, 0x1a
/* 803785C0 00375520 7C 60 03 78 */ or r0, r3, r0
/* 803785C4 00375524 B0 04 00 00 */ sth r0, 0(r4)
/* 803785C8 00375528 4E 80 00 20 */ blr
.global GXPokeBlendMode
GXPokeBlendMode:
/* 803785CC 0037552C 80 ED AC 80 */ lwz r7, lbl_805A9840@sda21(r13)
/* 803785D0 00375530 2C 03 00 01 */ cmpwi r3, 1
/* 803785D4 00375534 39 20 00 01 */ li r9, 1
/* 803785D8 00375538 39 47 00 02 */ addi r10, r7, 2
/* 803785DC 0037553C A0 E7 00 02 */ lhz r7, 2(r7)
/* 803785E0 00375540 41 82 00 10 */ beq lbl_803785F0
/* 803785E4 00375544 2C 03 00 03 */ cmpwi r3, 3
/* 803785E8 00375548 41 82 00 08 */ beq lbl_803785F0
/* 803785EC 0037554C 39 20 00 00 */ li r9, 0
lbl_803785F0:
/* 803785F0 00375550 54 E8 00 3C */ rlwinm r8, r7, 0, 0, 0x1e
/* 803785F4 00375554 20 03 00 03 */ subfic r0, r3, 3
/* 803785F8 00375558 7C 07 00 34 */ cntlzw r7, r0
/* 803785FC 0037555C 20 03 00 02 */ subfic r0, r3, 2
/* 80378600 00375560 7D 08 4B 78 */ or r8, r8, r9
/* 80378604 00375564 7C 00 00 34 */ cntlzw r0, r0
/* 80378608 00375568 55 08 05 66 */ rlwinm r8, r8, 0, 0x15, 0x13
/* 8037860C 0037556C 54 E3 30 28 */ rlwinm r3, r7, 6, 0, 0x14
/* 80378610 00375570 7D 03 1B 78 */ or r3, r8, r3
/* 80378614 00375574 54 63 07 FA */ rlwinm r3, r3, 0, 0x1f, 0x1d
/* 80378618 00375578 54 00 E1 3C */ rlwinm r0, r0, 0x1c, 4, 0x1e
/* 8037861C 0037557C 7C 60 03 78 */ or r0, r3, r0
/* 80378620 00375580 54 03 05 1E */ rlwinm r3, r0, 0, 0x14, 0xf
/* 80378624 00375584 54 C0 60 26 */ slwi r0, r6, 0xc
/* 80378628 00375588 7C 60 03 78 */ or r0, r3, r0
/* 8037862C 0037558C 54 03 06 28 */ rlwinm r3, r0, 0, 0x18, 0x14
/* 80378630 00375590 54 80 40 2E */ slwi r0, r4, 8
/* 80378634 00375594 7C 60 03 78 */ or r0, r3, r0
/* 80378638 00375598 54 03 06 EE */ rlwinm r3, r0, 0, 0x1b, 0x17
/* 8037863C 0037559C 54 A0 28 34 */ slwi r0, r5, 5
/* 80378640 003755A0 7C 60 03 78 */ or r0, r3, r0
/* 80378644 003755A4 54 00 02 3E */ clrlwi r0, r0, 8
/* 80378648 003755A8 64 00 41 00 */ oris r0, r0, 0x4100
/* 8037864C 003755AC B0 0A 00 00 */ sth r0, 0(r10)
/* 80378650 003755B0 4E 80 00 20 */ blr
.global GXPokeColorUpdate
GXPokeColorUpdate:
/* 80378654 003755B4 80 8D AC 80 */ lwz r4, lbl_805A9840@sda21(r13)
/* 80378658 003755B8 54 60 1D 78 */ rlwinm r0, r3, 3, 0x15, 0x1c
/* 8037865C 003755BC A4 64 00 02 */ lhzu r3, 2(r4)
/* 80378660 003755C0 54 63 07 76 */ rlwinm r3, r3, 0, 0x1d, 0x1b
/* 80378664 003755C4 7C 60 03 78 */ or r0, r3, r0
/* 80378668 003755C8 B0 04 00 00 */ sth r0, 0(r4)
/* 8037866C 003755CC 4E 80 00 20 */ blr
.global GXPokeDstAlpha
GXPokeDstAlpha:
/* 80378670 003755D0 80 AD AC 80 */ lwz r5, lbl_805A9840@sda21(r13)
/* 80378674 003755D4 54 60 44 2E */ rlwinm r0, r3, 8, 0x10, 0x17
/* 80378678 003755D8 50 80 06 3E */ rlwimi r0, r4, 0, 0x18, 0x1f
/* 8037867C 003755DC B0 05 00 04 */ sth r0, 4(r5)
/* 80378680 003755E0 4E 80 00 20 */ blr
.global GXPokeDither
GXPokeDither:
/* 80378684 003755E4 80 8D AC 80 */ lwz r4, lbl_805A9840@sda21(r13)
/* 80378688 003755E8 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d
/* 8037868C 003755EC A4 64 00 02 */ lhzu r3, 2(r4)
/* 80378690 003755F0 54 63 07 B8 */ rlwinm r3, r3, 0, 0x1e, 0x1c
/* 80378694 003755F4 7C 60 03 78 */ or r0, r3, r0
/* 80378698 003755F8 B0 04 00 00 */ sth r0, 0(r4)
/* 8037869C 003755FC 4E 80 00 20 */ blr
.global GXPokeZMode
GXPokeZMode:
/* 803786A0 00375600 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 803786A4 00375604 80 6D AC 80 */ lwz r3, lbl_805A9840@sda21(r13)
/* 803786A8 00375608 54 06 07 F6 */ rlwinm r6, r0, 0, 0x1f, 0x1b
/* 803786AC 0037560C 54 80 08 3C */ slwi r0, r4, 1
/* 803786B0 00375610 7C C0 03 78 */ or r0, r6, r0
/* 803786B4 00375614 54 04 07 34 */ rlwinm r4, r0, 0, 0x1c, 0x1a
/* 803786B8 00375618 54 A0 25 36 */ rlwinm r0, r5, 4, 0x14, 0x1b
/* 803786BC 0037561C 7C 80 03 78 */ or r0, r4, r0
/* 803786C0 00375620 B0 03 00 00 */ sth r0, 0(r3)
/* 803786C4 00375624 4E 80 00 20 */ blr
.global GXTokenInterruptHandler
GXTokenInterruptHandler:
/* 803786C8 00375628 7C 08 02 A6 */ mflr r0
/* 803786CC 0037562C 90 01 00 04 */ stw r0, 4(r1)
/* 803786D0 00375630 94 21 FD 20 */ stwu r1, -0x2e0(r1)
/* 803786D4 00375634 93 E1 02 DC */ stw r31, 0x2dc(r1)
/* 803786D8 00375638 93 C1 02 D8 */ stw r30, 0x2d8(r1)
/* 803786DC 0037563C 7C 9E 23 78 */ mr r30, r4
/* 803786E0 00375640 80 0D AC A8 */ lwz r0, lbl_805A9868@sda21(r13)
/* 803786E4 00375644 80 6D AC 80 */ lwz r3, lbl_805A9840@sda21(r13)
/* 803786E8 00375648 28 00 00 00 */ cmplwi r0, 0
/* 803786EC 0037564C A3 E3 00 0E */ lhz r31, 0xe(r3)
/* 803786F0 00375650 41 82 00 34 */ beq lbl_80378724
/* 803786F4 00375654 38 61 00 10 */ addi r3, r1, 0x10
/* 803786F8 00375658 48 00 6F 1D */ bl OSClearContext
/* 803786FC 0037565C 38 61 00 10 */ addi r3, r1, 0x10
/* 80378700 00375660 48 00 6D 1D */ bl OSSetCurrentContext
/* 80378704 00375664 81 8D AC A8 */ lwz r12, lbl_805A9868@sda21(r13)
/* 80378708 00375668 38 7F 00 00 */ addi r3, r31, 0
/* 8037870C 0037566C 7D 88 03 A6 */ mtlr r12
/* 80378710 00375670 4E 80 00 21 */ blrl
/* 80378714 00375674 38 61 00 10 */ addi r3, r1, 0x10
/* 80378718 00375678 48 00 6E FD */ bl OSClearContext
/* 8037871C 0037567C 7F C3 F3 78 */ mr r3, r30
/* 80378720 00375680 48 00 6C FD */ bl OSSetCurrentContext
lbl_80378724:
/* 80378724 00375684 80 6D AC 80 */ lwz r3, lbl_805A9840@sda21(r13)
/* 80378728 00375688 A4 03 00 0A */ lhzu r0, 0xa(r3)
/* 8037872C 0037568C 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
/* 80378730 00375690 60 00 00 04 */ ori r0, r0, 4
/* 80378734 00375694 B0 03 00 00 */ sth r0, 0(r3)
/* 80378738 00375698 80 01 02 E4 */ lwz r0, 0x2e4(r1)
/* 8037873C 0037569C 83 E1 02 DC */ lwz r31, 0x2dc(r1)
/* 80378740 003756A0 83 C1 02 D8 */ lwz r30, 0x2d8(r1)
/* 80378744 003756A4 38 21 02 E0 */ addi r1, r1, 0x2e0
/* 80378748 003756A8 7C 08 03 A6 */ mtlr r0
/* 8037874C 003756AC 4E 80 00 20 */ blr
.global GXFinishInterruptHandler
GXFinishInterruptHandler:
/* 80378750 003756B0 7C 08 02 A6 */ mflr r0
/* 80378754 003756B4 38 60 00 01 */ li r3, 1
/* 80378758 003756B8 90 01 00 04 */ stw r0, 4(r1)
/* 8037875C 003756BC 94 21 FD 20 */ stwu r1, -0x2e0(r1)
/* 80378760 003756C0 93 E1 02 DC */ stw r31, 0x2dc(r1)
/* 80378764 003756C4 3B E4 00 00 */ addi r31, r4, 0
/* 80378768 003756C8 80 AD AC 80 */ lwz r5, lbl_805A9840@sda21(r13)
/* 8037876C 003756CC A0 05 00 0A */ lhz r0, 0xa(r5)
/* 80378770 003756D0 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
/* 80378774 003756D4 60 00 00 08 */ ori r0, r0, 8
/* 80378778 003756D8 B0 05 00 0A */ sth r0, 0xa(r5)
/* 8037877C 003756DC 80 0D AC AC */ lwz r0, lbl_805A986C@sda21(r13)
/* 80378780 003756E0 98 6D AC B0 */ stb r3, lbl_805A9870@sda21(r13)
/* 80378784 003756E4 28 00 00 00 */ cmplwi r0, 0
/* 80378788 003756E8 41 82 00 30 */ beq lbl_803787B8
/* 8037878C 003756EC 38 61 00 10 */ addi r3, r1, 0x10
/* 80378790 003756F0 48 00 6E 85 */ bl OSClearContext
/* 80378794 003756F4 38 61 00 10 */ addi r3, r1, 0x10
/* 80378798 003756F8 48 00 6C 85 */ bl OSSetCurrentContext
/* 8037879C 003756FC 81 8D AC AC */ lwz r12, lbl_805A986C@sda21(r13)
/* 803787A0 00375700 7D 88 03 A6 */ mtlr r12
/* 803787A4 00375704 4E 80 00 21 */ blrl
/* 803787A8 00375708 38 61 00 10 */ addi r3, r1, 0x10
/* 803787AC 0037570C 48 00 6E 69 */ bl OSClearContext
/* 803787B0 00375710 7F E3 FB 78 */ mr r3, r31
/* 803787B4 00375714 48 00 6C 69 */ bl OSSetCurrentContext
lbl_803787B8:
/* 803787B8 00375718 38 6D AC B4 */ addi r3, r13, lbl_805A9874@sda21
/* 803787BC 0037571C 48 00 CA 3D */ bl OSWakeupThread
/* 803787C0 00375720 80 01 02 E4 */ lwz r0, 0x2e4(r1)
/* 803787C4 00375724 83 E1 02 DC */ lwz r31, 0x2dc(r1)
/* 803787C8 00375728 38 21 02 E0 */ addi r1, r1, 0x2e0
/* 803787CC 0037572C 7C 08 03 A6 */ mtlr r0
/* 803787D0 00375730 4E 80 00 20 */ blr
.global __GXPEInit
__GXPEInit:
/* 803787D4 00375734 7C 08 02 A6 */ mflr r0
/* 803787D8 00375738 3C 60 80 38 */ lis r3, GXTokenInterruptHandler@ha
/* 803787DC 0037573C 90 01 00 04 */ stw r0, 4(r1)
/* 803787E0 00375740 38 83 86 C8 */ addi r4, r3, GXTokenInterruptHandler@l
/* 803787E4 00375744 38 60 00 12 */ li r3, 0x12
/* 803787E8 00375748 94 21 FF F8 */ stwu r1, -8(r1)
/* 803787EC 0037574C 48 00 8E C1 */ bl __OSSetInterruptHandler
/* 803787F0 00375750 3C 60 80 38 */ lis r3, GXFinishInterruptHandler@ha
/* 803787F4 00375754 38 83 87 50 */ addi r4, r3, GXFinishInterruptHandler@l
/* 803787F8 00375758 38 60 00 13 */ li r3, 0x13
/* 803787FC 0037575C 48 00 8E B1 */ bl __OSSetInterruptHandler
/* 80378800 00375760 38 6D AC B4 */ addi r3, r13, lbl_805A9874@sda21
/* 80378804 00375764 48 00 BD C1 */ bl OSInitThreadQueue
/* 80378808 00375768 38 60 20 00 */ li r3, 0x2000
/* 8037880C 0037576C 48 00 92 A5 */ bl __OSUnmaskInterrupts
/* 80378810 00375770 38 60 10 00 */ li r3, 0x1000
/* 80378814 00375774 48 00 92 9D */ bl __OSUnmaskInterrupts
/* 80378818 00375778 80 6D AC 80 */ lwz r3, lbl_805A9840@sda21(r13)
/* 8037881C 0037577C A4 03 00 0A */ lhzu r0, 0xa(r3)
/* 80378820 00375780 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
/* 80378824 00375784 60 00 00 04 */ ori r0, r0, 4
/* 80378828 00375788 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
/* 8037882C 0037578C 60 00 00 08 */ ori r0, r0, 8
/* 80378830 00375790 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 80378834 00375794 60 00 00 01 */ ori r0, r0, 1
/* 80378838 00375798 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
/* 8037883C 0037579C 60 00 00 02 */ ori r0, r0, 2
/* 80378840 003757A0 B0 03 00 00 */ sth r0, 0(r3)
/* 80378844 003757A4 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80378848 003757A8 38 21 00 08 */ addi r1, r1, 8
/* 8037884C 003757AC 7C 08 03 A6 */ mtlr r0
/* 80378850 003757B0 4E 80 00 20 */ blr

555
asm/Dolphin/GX/GXPerf.s Normal file
View File

@ -0,0 +1,555 @@
.include "macros.inc"
.section .text, "ax"
.global GXSetGPMetric
GXSetGPMetric:
/* 8037C7E8 00379748 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037C7EC 0037974C 80 05 04 E4 */ lwz r0, 0x4e4(r5)
/* 8037C7F0 00379750 2C 00 00 22 */ cmpwi r0, 0x22
/* 8037C7F4 00379754 41 82 00 2C */ beq lbl_8037C820
/* 8037C7F8 00379758 40 80 00 74 */ bge lbl_8037C86C
/* 8037C7FC 0037975C 2C 00 00 0B */ cmpwi r0, 0xb
/* 8037C800 00379760 40 80 00 10 */ bge lbl_8037C810
/* 8037C804 00379764 2C 00 00 00 */ cmpwi r0, 0
/* 8037C808 00379768 40 80 00 18 */ bge lbl_8037C820
/* 8037C80C 0037976C 48 00 00 60 */ b lbl_8037C86C
lbl_8037C810:
/* 8037C810 00379770 2C 00 00 1B */ cmpwi r0, 0x1b
/* 8037C814 00379774 40 80 00 44 */ bge lbl_8037C858
/* 8037C818 00379778 48 00 00 28 */ b lbl_8037C840
/* 8037C81C 0037977C 48 00 00 50 */ b lbl_8037C86C
lbl_8037C820:
/* 8037C820 00379780 38 00 00 10 */ li r0, 0x10
/* 8037C824 00379784 3C C0 CC 01 */ lis r6, 0xCC008000@ha
/* 8037C828 00379788 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
/* 8037C82C 0037978C 38 A0 10 06 */ li r5, 0x1006
/* 8037C830 00379790 38 00 00 00 */ li r0, 0
/* 8037C834 00379794 90 A6 80 00 */ stw r5, 0xCC008000@l(r6)
/* 8037C838 00379798 90 06 80 00 */ stw r0, 0xCC008000@l(r6)
/* 8037C83C 0037979C 48 00 00 30 */ b lbl_8037C86C
lbl_8037C840:
/* 8037C840 003797A0 38 00 00 61 */ li r0, 0x61
/* 8037C844 003797A4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C848 003797A8 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C84C 003797AC 3C 00 23 00 */ lis r0, 0x2300
/* 8037C850 003797B0 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C854 003797B4 48 00 00 18 */ b lbl_8037C86C
lbl_8037C858:
/* 8037C858 003797B8 38 00 00 61 */ li r0, 0x61
/* 8037C85C 003797BC 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C860 003797C0 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C864 003797C4 3C 00 24 00 */ lis r0, 0x2400
/* 8037C868 003797C8 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
lbl_8037C86C:
/* 8037C86C 003797CC 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 8037C870 003797D0 80 07 04 E8 */ lwz r0, 0x4e8(r7)
/* 8037C874 003797D4 2C 00 00 15 */ cmpwi r0, 0x15
/* 8037C878 003797D8 41 82 00 2C */ beq lbl_8037C8A4
/* 8037C87C 003797DC 40 80 00 78 */ bge lbl_8037C8F4
/* 8037C880 003797E0 2C 00 00 09 */ cmpwi r0, 9
/* 8037C884 003797E4 40 80 00 10 */ bge lbl_8037C894
/* 8037C888 003797E8 2C 00 00 00 */ cmpwi r0, 0
/* 8037C88C 003797EC 40 80 00 18 */ bge lbl_8037C8A4
/* 8037C890 003797F0 48 00 00 64 */ b lbl_8037C8F4
lbl_8037C894:
/* 8037C894 003797F4 2C 00 00 11 */ cmpwi r0, 0x11
/* 8037C898 003797F8 40 80 00 50 */ bge lbl_8037C8E8
/* 8037C89C 003797FC 48 00 00 20 */ b lbl_8037C8BC
/* 8037C8A0 00379800 48 00 00 54 */ b lbl_8037C8F4
lbl_8037C8A4:
/* 8037C8A4 00379804 38 00 00 61 */ li r0, 0x61
/* 8037C8A8 00379808 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C8AC 0037980C 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C8B0 00379810 3C 00 67 00 */ lis r0, 0x6700
/* 8037C8B4 00379814 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C8B8 00379818 48 00 00 3C */ b lbl_8037C8F4
lbl_8037C8BC:
/* 8037C8BC 0037981C 80 07 04 EC */ lwz r0, 0x4ec(r7)
/* 8037C8C0 00379820 38 C0 00 08 */ li r6, 8
/* 8037C8C4 00379824 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C8C8 00379828 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17
/* 8037C8CC 0037982C 90 07 04 EC */ stw r0, 0x4ec(r7)
/* 8037C8D0 00379830 38 00 00 20 */ li r0, 0x20
/* 8037C8D4 00379834 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 8037C8D8 00379838 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C8DC 0037983C 80 07 04 EC */ lwz r0, 0x4ec(r7)
/* 8037C8E0 00379840 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C8E4 00379844 48 00 00 10 */ b lbl_8037C8F4
lbl_8037C8E8:
/* 8037C8E8 00379848 80 AD AC 7C */ lwz r5, lbl_805A983C@sda21(r13)
/* 8037C8EC 0037984C 38 00 00 00 */ li r0, 0
/* 8037C8F0 00379850 B0 05 00 06 */ sth r0, 6(r5)
lbl_8037C8F4:
/* 8037C8F4 00379854 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037C8F8 00379858 90 65 04 E4 */ stw r3, 0x4e4(r5)
/* 8037C8FC 0037985C 80 05 04 E4 */ lwz r0, 0x4e4(r5)
/* 8037C900 00379860 28 00 00 23 */ cmplwi r0, 0x23
/* 8037C904 00379864 41 81 04 1C */ bgt lbl_8037CD20
/* 8037C908 00379868 3C 60 80 3F */ lis r3, lbl_803F0D0C@ha
/* 8037C90C 0037986C 38 63 0D 0C */ addi r3, r3, lbl_803F0D0C@l
/* 8037C910 00379870 54 00 10 3A */ slwi r0, r0, 2
/* 8037C914 00379874 7C 03 00 2E */ lwzx r0, r3, r0
/* 8037C918 00379878 7C 09 03 A6 */ mtctr r0
/* 8037C91C 0037987C 4E 80 04 20 */ bctr
/* 8037C920 00379880 38 00 00 10 */ li r0, 0x10
/* 8037C924 00379884 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C928 00379888 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C92C 0037988C 38 60 10 06 */ li r3, 0x1006
/* 8037C930 00379890 38 00 02 73 */ li r0, 0x273
/* 8037C934 00379894 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037C938 00379898 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C93C 0037989C 48 00 03 E4 */ b lbl_8037CD20
/* 8037C940 003798A0 38 00 00 10 */ li r0, 0x10
/* 8037C944 003798A4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C948 003798A8 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C94C 003798AC 38 60 10 06 */ li r3, 0x1006
/* 8037C950 003798B0 38 00 01 4A */ li r0, 0x14a
/* 8037C954 003798B4 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037C958 003798B8 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C95C 003798BC 48 00 03 C4 */ b lbl_8037CD20
/* 8037C960 003798C0 38 00 00 10 */ li r0, 0x10
/* 8037C964 003798C4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C968 003798C8 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C96C 003798CC 38 60 10 06 */ li r3, 0x1006
/* 8037C970 003798D0 38 00 01 6B */ li r0, 0x16b
/* 8037C974 003798D4 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037C978 003798D8 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C97C 003798DC 48 00 03 A4 */ b lbl_8037CD20
/* 8037C980 003798E0 38 00 00 10 */ li r0, 0x10
/* 8037C984 003798E4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C988 003798E8 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C98C 003798EC 38 60 10 06 */ li r3, 0x1006
/* 8037C990 003798F0 38 00 00 84 */ li r0, 0x84
/* 8037C994 003798F4 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037C998 003798F8 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C99C 003798FC 48 00 03 84 */ b lbl_8037CD20
/* 8037C9A0 00379900 38 00 00 10 */ li r0, 0x10
/* 8037C9A4 00379904 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C9A8 00379908 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C9AC 0037990C 38 60 10 06 */ li r3, 0x1006
/* 8037C9B0 00379910 38 00 00 C6 */ li r0, 0xc6
/* 8037C9B4 00379914 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037C9B8 00379918 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C9BC 0037991C 48 00 03 64 */ b lbl_8037CD20
/* 8037C9C0 00379920 38 00 00 10 */ li r0, 0x10
/* 8037C9C4 00379924 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C9C8 00379928 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C9CC 0037992C 38 60 10 06 */ li r3, 0x1006
/* 8037C9D0 00379930 38 00 02 10 */ li r0, 0x210
/* 8037C9D4 00379934 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037C9D8 00379938 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C9DC 0037993C 48 00 03 44 */ b lbl_8037CD20
/* 8037C9E0 00379940 38 00 00 10 */ li r0, 0x10
/* 8037C9E4 00379944 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C9E8 00379948 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C9EC 0037994C 38 60 10 06 */ li r3, 0x1006
/* 8037C9F0 00379950 38 00 02 52 */ li r0, 0x252
/* 8037C9F4 00379954 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037C9F8 00379958 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C9FC 0037995C 48 00 03 24 */ b lbl_8037CD20
/* 8037CA00 00379960 38 00 00 10 */ li r0, 0x10
/* 8037CA04 00379964 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CA08 00379968 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CA0C 0037996C 38 60 10 06 */ li r3, 0x1006
/* 8037CA10 00379970 38 00 02 31 */ li r0, 0x231
/* 8037CA14 00379974 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037CA18 00379978 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CA1C 0037997C 48 00 03 04 */ b lbl_8037CD20
/* 8037CA20 00379980 38 00 00 10 */ li r0, 0x10
/* 8037CA24 00379984 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CA28 00379988 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CA2C 0037998C 38 60 10 06 */ li r3, 0x1006
/* 8037CA30 00379990 38 00 01 AD */ li r0, 0x1ad
/* 8037CA34 00379994 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037CA38 00379998 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CA3C 0037999C 48 00 02 E4 */ b lbl_8037CD20
/* 8037CA40 003799A0 38 00 00 10 */ li r0, 0x10
/* 8037CA44 003799A4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CA48 003799A8 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CA4C 003799AC 38 60 10 06 */ li r3, 0x1006
/* 8037CA50 003799B0 38 00 01 CE */ li r0, 0x1ce
/* 8037CA54 003799B4 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037CA58 003799B8 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CA5C 003799BC 48 00 02 C4 */ b lbl_8037CD20
/* 8037CA60 003799C0 38 00 00 10 */ li r0, 0x10
/* 8037CA64 003799C4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CA68 003799C8 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CA6C 003799CC 38 60 10 06 */ li r3, 0x1006
/* 8037CA70 003799D0 38 00 00 21 */ li r0, 0x21
/* 8037CA74 003799D4 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037CA78 003799D8 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CA7C 003799DC 48 00 02 A4 */ b lbl_8037CD20
/* 8037CA80 003799E0 38 00 00 10 */ li r0, 0x10
/* 8037CA84 003799E4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CA88 003799E8 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CA8C 003799EC 38 60 10 06 */ li r3, 0x1006
/* 8037CA90 003799F0 38 00 01 53 */ li r0, 0x153
/* 8037CA94 003799F4 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037CA98 003799F8 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CA9C 003799FC 48 00 02 84 */ b lbl_8037CD20
/* 8037CAA0 00379A00 38 00 00 61 */ li r0, 0x61
/* 8037CAA4 00379A04 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CAA8 00379A08 3C 60 23 01 */ lis r3, 0x2300AE7F@ha
/* 8037CAAC 00379A0C 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CAB0 00379A10 38 03 AE 7F */ addi r0, r3, 0x2300AE7F@l
/* 8037CAB4 00379A14 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CAB8 00379A18 48 00 02 68 */ b lbl_8037CD20
/* 8037CABC 00379A1C 38 00 00 61 */ li r0, 0x61
/* 8037CAC0 00379A20 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CAC4 00379A24 3C 60 23 01 */ lis r3, 0x23008E7F@ha
/* 8037CAC8 00379A28 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CACC 00379A2C 38 03 8E 7F */ addi r0, r3, 0x23008E7F@l
/* 8037CAD0 00379A30 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CAD4 00379A34 48 00 02 4C */ b lbl_8037CD20
/* 8037CAD8 00379A38 38 00 00 61 */ li r0, 0x61
/* 8037CADC 00379A3C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CAE0 00379A40 3C 60 23 01 */ lis r3, 0x23009E7F@ha
/* 8037CAE4 00379A44 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CAE8 00379A48 38 03 9E 7F */ addi r0, r3, 0x23009E7F@l
/* 8037CAEC 00379A4C 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CAF0 00379A50 48 00 02 30 */ b lbl_8037CD20
/* 8037CAF4 00379A54 38 00 00 61 */ li r0, 0x61
/* 8037CAF8 00379A58 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CAFC 00379A5C 3C 60 23 00 */ lis r3, 0x23001E7F@ha
/* 8037CB00 00379A60 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CB04 00379A64 38 03 1E 7F */ addi r0, r3, 0x23001E7F@l
/* 8037CB08 00379A68 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CB0C 00379A6C 48 00 02 14 */ b lbl_8037CD20
/* 8037CB10 00379A70 38 00 00 61 */ li r0, 0x61
/* 8037CB14 00379A74 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CB18 00379A78 3C 60 23 01 */ lis r3, 0x2300AC3F@ha
/* 8037CB1C 00379A7C 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CB20 00379A80 38 03 AC 3F */ addi r0, r3, 0x2300AC3F@l
/* 8037CB24 00379A84 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CB28 00379A88 48 00 01 F8 */ b lbl_8037CD20
/* 8037CB2C 00379A8C 38 00 00 61 */ li r0, 0x61
/* 8037CB30 00379A90 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CB34 00379A94 3C 60 23 01 */ lis r3, 0x2300AC7F@ha
/* 8037CB38 00379A98 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CB3C 00379A9C 38 03 AC 7F */ addi r0, r3, 0x2300AC7F@l
/* 8037CB40 00379AA0 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CB44 00379AA4 48 00 01 DC */ b lbl_8037CD20
/* 8037CB48 00379AA8 38 00 00 61 */ li r0, 0x61
/* 8037CB4C 00379AAC 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CB50 00379AB0 3C 60 23 01 */ lis r3, 0x2300ACBF@ha
/* 8037CB54 00379AB4 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CB58 00379AB8 38 03 AC BF */ addi r0, r3, 0x2300ACBF@l
/* 8037CB5C 00379ABC 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CB60 00379AC0 48 00 01 C0 */ b lbl_8037CD20
/* 8037CB64 00379AC4 38 00 00 61 */ li r0, 0x61
/* 8037CB68 00379AC8 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CB6C 00379ACC 3C 60 23 01 */ lis r3, 0x2300ACFF@ha
/* 8037CB70 00379AD0 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CB74 00379AD4 38 03 AC FF */ addi r0, r3, 0x2300ACFF@l
/* 8037CB78 00379AD8 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CB7C 00379ADC 48 00 01 A4 */ b lbl_8037CD20
/* 8037CB80 00379AE0 38 00 00 61 */ li r0, 0x61
/* 8037CB84 00379AE4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CB88 00379AE8 3C 60 23 01 */ lis r3, 0x2300AD3F@ha
/* 8037CB8C 00379AEC 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CB90 00379AF0 38 03 AD 3F */ addi r0, r3, 0x2300AD3F@l
/* 8037CB94 00379AF4 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CB98 00379AF8 48 00 01 88 */ b lbl_8037CD20
/* 8037CB9C 00379AFC 38 00 00 61 */ li r0, 0x61
/* 8037CBA0 00379B00 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CBA4 00379B04 3C 60 23 01 */ lis r3, 0x2300AD7F@ha
/* 8037CBA8 00379B08 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CBAC 00379B0C 38 03 AD 7F */ addi r0, r3, 0x2300AD7F@l
/* 8037CBB0 00379B10 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CBB4 00379B14 48 00 01 6C */ b lbl_8037CD20
/* 8037CBB8 00379B18 38 00 00 61 */ li r0, 0x61
/* 8037CBBC 00379B1C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CBC0 00379B20 3C 60 23 01 */ lis r3, 0x2300ADBF@ha
/* 8037CBC4 00379B24 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CBC8 00379B28 38 03 AD BF */ addi r0, r3, 0x2300ADBF@l
/* 8037CBCC 00379B2C 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CBD0 00379B30 48 00 01 50 */ b lbl_8037CD20
/* 8037CBD4 00379B34 38 00 00 61 */ li r0, 0x61
/* 8037CBD8 00379B38 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CBDC 00379B3C 3C 60 23 01 */ lis r3, 0x2300ADFF@ha
/* 8037CBE0 00379B40 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CBE4 00379B44 38 03 AD FF */ addi r0, r3, 0x2300ADFF@l
/* 8037CBE8 00379B48 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CBEC 00379B4C 48 00 01 34 */ b lbl_8037CD20
/* 8037CBF0 00379B50 38 00 00 61 */ li r0, 0x61
/* 8037CBF4 00379B54 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CBF8 00379B58 3C 60 23 01 */ lis r3, 0x2300AE3F@ha
/* 8037CBFC 00379B5C 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CC00 00379B60 38 03 AE 3F */ addi r0, r3, 0x2300AE3F@l
/* 8037CC04 00379B64 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CC08 00379B68 48 00 01 18 */ b lbl_8037CD20
/* 8037CC0C 00379B6C 38 00 00 61 */ li r0, 0x61
/* 8037CC10 00379B70 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CC14 00379B74 3C 60 23 01 */ lis r3, 0x2300A27F@ha
/* 8037CC18 00379B78 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CC1C 00379B7C 38 03 A2 7F */ addi r0, r3, 0x2300A27F@l
/* 8037CC20 00379B80 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CC24 00379B84 48 00 00 FC */ b lbl_8037CD20
/* 8037CC28 00379B88 38 00 00 61 */ li r0, 0x61
/* 8037CC2C 00379B8C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CC30 00379B90 3C 60 23 01 */ lis r3, 0x2300A67F@ha
/* 8037CC34 00379B94 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CC38 00379B98 38 03 A6 7F */ addi r0, r3, 0x2300A67F@l
/* 8037CC3C 00379B9C 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CC40 00379BA0 48 00 00 E0 */ b lbl_8037CD20
/* 8037CC44 00379BA4 38 00 00 61 */ li r0, 0x61
/* 8037CC48 00379BA8 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CC4C 00379BAC 3C 60 23 01 */ lis r3, 0x2300AA7F@ha
/* 8037CC50 00379BB0 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CC54 00379BB4 38 03 AA 7F */ addi r0, r3, 0x2300AA7F@l
/* 8037CC58 00379BB8 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CC5C 00379BBC 48 00 00 C4 */ b lbl_8037CD20
/* 8037CC60 00379BC0 38 00 00 61 */ li r0, 0x61
/* 8037CC64 00379BC4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CC68 00379BC8 3C 60 24 03 */ lis r3, 0x2402C0C6@ha
/* 8037CC6C 00379BCC 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CC70 00379BD0 38 03 C0 C6 */ addi r0, r3, 0x2402C0C6@l
/* 8037CC74 00379BD4 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CC78 00379BD8 48 00 00 A8 */ b lbl_8037CD20
/* 8037CC7C 00379BDC 38 00 00 61 */ li r0, 0x61
/* 8037CC80 00379BE0 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CC84 00379BE4 3C 60 24 03 */ lis r3, 0x2402C16B@ha
/* 8037CC88 00379BE8 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CC8C 00379BEC 38 03 C1 6B */ addi r0, r3, 0x2402C16B@l
/* 8037CC90 00379BF0 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CC94 00379BF4 48 00 00 8C */ b lbl_8037CD20
/* 8037CC98 00379BF8 38 00 00 61 */ li r0, 0x61
/* 8037CC9C 00379BFC 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CCA0 00379C00 3C 60 24 03 */ lis r3, 0x2402C0E7@ha
/* 8037CCA4 00379C04 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CCA8 00379C08 38 03 C0 E7 */ addi r0, r3, 0x2402C0E7@l
/* 8037CCAC 00379C0C 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CCB0 00379C10 48 00 00 70 */ b lbl_8037CD20
/* 8037CCB4 00379C14 38 00 00 61 */ li r0, 0x61
/* 8037CCB8 00379C18 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CCBC 00379C1C 3C 60 24 03 */ lis r3, 0x2402C108@ha
/* 8037CCC0 00379C20 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CCC4 00379C24 38 03 C1 08 */ addi r0, r3, 0x2402C108@l
/* 8037CCC8 00379C28 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CCCC 00379C2C 48 00 00 54 */ b lbl_8037CD20
/* 8037CCD0 00379C30 38 00 00 61 */ li r0, 0x61
/* 8037CCD4 00379C34 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CCD8 00379C38 3C 60 24 03 */ lis r3, 0x2402C129@ha
/* 8037CCDC 00379C3C 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CCE0 00379C40 38 03 C1 29 */ addi r0, r3, 0x2402C129@l
/* 8037CCE4 00379C44 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CCE8 00379C48 48 00 00 38 */ b lbl_8037CD20
/* 8037CCEC 00379C4C 38 00 00 61 */ li r0, 0x61
/* 8037CCF0 00379C50 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CCF4 00379C54 3C 60 24 03 */ lis r3, 0x2402C14A@ha
/* 8037CCF8 00379C58 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CCFC 00379C5C 38 03 C1 4A */ addi r0, r3, 0x2402C14A@l
/* 8037CD00 00379C60 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037CD04 00379C64 48 00 00 1C */ b lbl_8037CD20
/* 8037CD08 00379C68 38 00 00 61 */ li r0, 0x61
/* 8037CD0C 00379C6C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037CD10 00379C70 3C 60 24 03 */ lis r3, 0x2402C1AD@ha
/* 8037CD14 00379C74 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037CD18 00379C78 38 03 C1 AD */ addi r0, r3, 0x2402C1AD@l
/* 8037CD1C 00379C7C 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
lbl_8037CD20:
/* 8037CD20 00379C80 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037CD24 00379C84 90 83 04 E8 */ stw r4, 0x4e8(r3)
/* 8037CD28 00379C88 80 03 04 E8 */ lwz r0, 0x4e8(r3)
/* 8037CD2C 00379C8C 28 00 00 16 */ cmplwi r0, 0x16
/* 8037CD30 00379C90 41 81 02 F0 */ bgt lbl_8037D020
/* 8037CD34 00379C94 3C 80 80 3F */ lis r4, lbl_803F0CB0@ha
/* 8037CD38 00379C98 38 84 0C B0 */ addi r4, r4, lbl_803F0CB0@l
/* 8037CD3C 00379C9C 54 00 10 3A */ slwi r0, r0, 2
/* 8037CD40 00379CA0 7C 04 00 2E */ lwzx r0, r4, r0
/* 8037CD44 00379CA4 7C 09 03 A6 */ mtctr r0
/* 8037CD48 00379CA8 4E 80 04 20 */ bctr
/* 8037CD4C 00379CAC 38 00 00 61 */ li r0, 0x61
/* 8037CD50 00379CB0 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CD54 00379CB4 3C 60 67 00 */ lis r3, 0x67000042@ha
/* 8037CD58 00379CB8 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CD5C 00379CBC 38 03 00 42 */ addi r0, r3, 0x67000042@l
/* 8037CD60 00379CC0 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CD64 00379CC4 48 00 02 BC */ b lbl_8037D020
/* 8037CD68 00379CC8 38 00 00 61 */ li r0, 0x61
/* 8037CD6C 00379CCC 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CD70 00379CD0 3C 60 67 00 */ lis r3, 0x67000084@ha
/* 8037CD74 00379CD4 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CD78 00379CD8 38 03 00 84 */ addi r0, r3, 0x67000084@l
/* 8037CD7C 00379CDC 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CD80 00379CE0 48 00 02 A0 */ b lbl_8037D020
/* 8037CD84 00379CE4 38 00 00 61 */ li r0, 0x61
/* 8037CD88 00379CE8 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CD8C 00379CEC 3C 60 67 00 */ lis r3, 0x67000063@ha
/* 8037CD90 00379CF0 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CD94 00379CF4 38 03 00 63 */ addi r0, r3, 0x67000063@l
/* 8037CD98 00379CF8 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CD9C 00379CFC 48 00 02 84 */ b lbl_8037D020
/* 8037CDA0 00379D00 38 00 00 61 */ li r0, 0x61
/* 8037CDA4 00379D04 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CDA8 00379D08 3C 60 67 00 */ lis r3, 0x67000129@ha
/* 8037CDAC 00379D0C 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CDB0 00379D10 38 03 01 29 */ addi r0, r3, 0x67000129@l
/* 8037CDB4 00379D14 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CDB8 00379D18 48 00 02 68 */ b lbl_8037D020
/* 8037CDBC 00379D1C 38 00 00 61 */ li r0, 0x61
/* 8037CDC0 00379D20 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CDC4 00379D24 3C 60 67 00 */ lis r3, 0x67000252@ha
/* 8037CDC8 00379D28 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CDCC 00379D2C 38 03 02 52 */ addi r0, r3, 0x67000252@l
/* 8037CDD0 00379D30 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CDD4 00379D34 48 00 02 4C */ b lbl_8037D020
/* 8037CDD8 00379D38 38 00 00 61 */ li r0, 0x61
/* 8037CDDC 00379D3C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CDE0 00379D40 3C 60 67 00 */ lis r3, 0x67000021@ha
/* 8037CDE4 00379D44 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CDE8 00379D48 38 03 00 21 */ addi r0, r3, 0x67000021@l
/* 8037CDEC 00379D4C 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CDF0 00379D50 48 00 02 30 */ b lbl_8037D020
/* 8037CDF4 00379D54 38 00 00 61 */ li r0, 0x61
/* 8037CDF8 00379D58 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CDFC 00379D5C 3C 60 67 00 */ lis r3, 0x6700014B@ha
/* 8037CE00 00379D60 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CE04 00379D64 38 03 01 4B */ addi r0, r3, 0x6700014B@l
/* 8037CE08 00379D68 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CE0C 00379D6C 48 00 02 14 */ b lbl_8037D020
/* 8037CE10 00379D70 38 00 00 61 */ li r0, 0x61
/* 8037CE14 00379D74 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CE18 00379D78 3C 60 67 00 */ lis r3, 0x6700018D@ha
/* 8037CE1C 00379D7C 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CE20 00379D80 38 03 01 8D */ addi r0, r3, 0x6700018D@l
/* 8037CE24 00379D84 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CE28 00379D88 48 00 01 F8 */ b lbl_8037D020
/* 8037CE2C 00379D8C 38 00 00 61 */ li r0, 0x61
/* 8037CE30 00379D90 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CE34 00379D94 3C 60 67 00 */ lis r3, 0x670001CF@ha
/* 8037CE38 00379D98 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CE3C 00379D9C 38 03 01 CF */ addi r0, r3, 0x670001CF@l
/* 8037CE40 00379DA0 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CE44 00379DA4 48 00 01 DC */ b lbl_8037D020
/* 8037CE48 00379DA8 38 00 00 61 */ li r0, 0x61
/* 8037CE4C 00379DAC 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CE50 00379DB0 3C 60 67 00 */ lis r3, 0x67000211@ha
/* 8037CE54 00379DB4 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CE58 00379DB8 38 03 02 11 */ addi r0, r3, 0x67000211@l
/* 8037CE5C 00379DBC 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CE60 00379DC0 48 00 01 C0 */ b lbl_8037D020
/* 8037CE64 00379DC4 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CE68 00379DC8 38 A0 00 08 */ li r5, 8
/* 8037CE6C 00379DCC 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CE70 00379DD0 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17
/* 8037CE74 00379DD4 60 00 00 20 */ ori r0, r0, 0x20
/* 8037CE78 00379DD8 90 03 04 EC */ stw r0, 0x4ec(r3)
/* 8037CE7C 00379DDC 38 00 00 20 */ li r0, 0x20
/* 8037CE80 00379DE0 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037CE84 00379DE4 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CE88 00379DE8 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CE8C 00379DEC 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CE90 00379DF0 48 00 01 90 */ b lbl_8037D020
/* 8037CE94 00379DF4 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CE98 00379DF8 38 A0 00 08 */ li r5, 8
/* 8037CE9C 00379DFC 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CEA0 00379E00 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17
/* 8037CEA4 00379E04 60 00 00 30 */ ori r0, r0, 0x30
/* 8037CEA8 00379E08 90 03 04 EC */ stw r0, 0x4ec(r3)
/* 8037CEAC 00379E0C 38 00 00 20 */ li r0, 0x20
/* 8037CEB0 00379E10 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037CEB4 00379E14 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CEB8 00379E18 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CEBC 00379E1C 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CEC0 00379E20 48 00 01 60 */ b lbl_8037D020
/* 8037CEC4 00379E24 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CEC8 00379E28 38 A0 00 08 */ li r5, 8
/* 8037CECC 00379E2C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CED0 00379E30 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17
/* 8037CED4 00379E34 60 00 00 40 */ ori r0, r0, 0x40
/* 8037CED8 00379E38 90 03 04 EC */ stw r0, 0x4ec(r3)
/* 8037CEDC 00379E3C 38 00 00 20 */ li r0, 0x20
/* 8037CEE0 00379E40 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037CEE4 00379E44 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CEE8 00379E48 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CEEC 00379E4C 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CEF0 00379E50 48 00 01 30 */ b lbl_8037D020
/* 8037CEF4 00379E54 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CEF8 00379E58 38 A0 00 08 */ li r5, 8
/* 8037CEFC 00379E5C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CF00 00379E60 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17
/* 8037CF04 00379E64 60 00 00 50 */ ori r0, r0, 0x50
/* 8037CF08 00379E68 90 03 04 EC */ stw r0, 0x4ec(r3)
/* 8037CF0C 00379E6C 38 00 00 20 */ li r0, 0x20
/* 8037CF10 00379E70 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037CF14 00379E74 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CF18 00379E78 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CF1C 00379E7C 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CF20 00379E80 48 00 01 00 */ b lbl_8037D020
/* 8037CF24 00379E84 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CF28 00379E88 38 A0 00 08 */ li r5, 8
/* 8037CF2C 00379E8C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CF30 00379E90 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17
/* 8037CF34 00379E94 60 00 00 60 */ ori r0, r0, 0x60
/* 8037CF38 00379E98 90 03 04 EC */ stw r0, 0x4ec(r3)
/* 8037CF3C 00379E9C 38 00 00 20 */ li r0, 0x20
/* 8037CF40 00379EA0 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037CF44 00379EA4 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CF48 00379EA8 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CF4C 00379EAC 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CF50 00379EB0 48 00 00 D0 */ b lbl_8037D020
/* 8037CF54 00379EB4 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CF58 00379EB8 38 A0 00 08 */ li r5, 8
/* 8037CF5C 00379EBC 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CF60 00379EC0 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17
/* 8037CF64 00379EC4 60 00 00 70 */ ori r0, r0, 0x70
/* 8037CF68 00379EC8 90 03 04 EC */ stw r0, 0x4ec(r3)
/* 8037CF6C 00379ECC 38 00 00 20 */ li r0, 0x20
/* 8037CF70 00379ED0 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037CF74 00379ED4 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CF78 00379ED8 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CF7C 00379EDC 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CF80 00379EE0 48 00 00 A0 */ b lbl_8037D020
/* 8037CF84 00379EE4 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CF88 00379EE8 38 A0 00 08 */ li r5, 8
/* 8037CF8C 00379EEC 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CF90 00379EF0 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17
/* 8037CF94 00379EF4 60 00 00 90 */ ori r0, r0, 0x90
/* 8037CF98 00379EF8 90 03 04 EC */ stw r0, 0x4ec(r3)
/* 8037CF9C 00379EFC 38 00 00 20 */ li r0, 0x20
/* 8037CFA0 00379F00 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037CFA4 00379F04 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CFA8 00379F08 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CFAC 00379F0C 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CFB0 00379F10 48 00 00 70 */ b lbl_8037D020
/* 8037CFB4 00379F14 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CFB8 00379F18 38 A0 00 08 */ li r5, 8
/* 8037CFBC 00379F1C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037CFC0 00379F20 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17
/* 8037CFC4 00379F24 60 00 00 80 */ ori r0, r0, 0x80
/* 8037CFC8 00379F28 90 03 04 EC */ stw r0, 0x4ec(r3)
/* 8037CFCC 00379F2C 38 00 00 20 */ li r0, 0x20
/* 8037CFD0 00379F30 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037CFD4 00379F34 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037CFD8 00379F38 80 03 04 EC */ lwz r0, 0x4ec(r3)
/* 8037CFDC 00379F3C 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037CFE0 00379F40 48 00 00 40 */ b lbl_8037D020
/* 8037CFE4 00379F44 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 8037CFE8 00379F48 38 00 00 02 */ li r0, 2
/* 8037CFEC 00379F4C B0 03 00 06 */ sth r0, 6(r3)
/* 8037CFF0 00379F50 48 00 00 30 */ b lbl_8037D020
/* 8037CFF4 00379F54 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 8037CFF8 00379F58 38 00 00 03 */ li r0, 3
/* 8037CFFC 00379F5C B0 03 00 06 */ sth r0, 6(r3)
/* 8037D000 00379F60 48 00 00 20 */ b lbl_8037D020
/* 8037D004 00379F64 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 8037D008 00379F68 38 00 00 04 */ li r0, 4
/* 8037D00C 00379F6C B0 03 00 06 */ sth r0, 6(r3)
/* 8037D010 00379F70 48 00 00 10 */ b lbl_8037D020
/* 8037D014 00379F74 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 8037D018 00379F78 38 00 00 05 */ li r0, 5
/* 8037D01C 00379F7C B0 03 00 06 */ sth r0, 6(r3)
lbl_8037D020:
/* 8037D020 00379F80 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037D024 00379F84 38 00 00 00 */ li r0, 0
/* 8037D028 00379F88 B0 03 00 02 */ sth r0, 2(r3)
/* 8037D02C 00379F8C 4E 80 00 20 */ blr
.global GXClearGPMetric
GXClearGPMetric:
/* 8037D030 00379F90 80 6D AC 7C */ lwz r3, lbl_805A983C@sda21(r13)
/* 8037D034 00379F94 38 00 00 04 */ li r0, 4
/* 8037D038 00379F98 B0 03 00 04 */ sth r0, 4(r3)
/* 8037D03C 00379F9C 4E 80 00 20 */ blr

425
asm/Dolphin/GX/GXPixel.s Normal file
View File

@ -0,0 +1,425 @@
.include "macros.inc"
.section .text, "ax"
.global GXSetFog
GXSetFog:
/* 8037BBFC 00378B5C 7C 08 02 A6 */ mflr r0
/* 8037BC00 00378B60 FC 04 18 00 */ fcmpu cr0, f4, f3
/* 8037BC04 00378B64 90 01 00 04 */ stw r0, 4(r1)
/* 8037BC08 00378B68 94 21 FF B8 */ stwu r1, -0x48(r1)
/* 8037BC0C 00378B6C 93 E1 00 44 */ stw r31, 0x44(r1)
/* 8037BC10 00378B70 3B E3 00 00 */ addi r31, r3, 0
/* 8037BC14 00378B74 93 C1 00 40 */ stw r30, 0x40(r1)
/* 8037BC18 00378B78 93 A1 00 3C */ stw r29, 0x3c(r1)
/* 8037BC1C 00378B7C 3B A4 00 00 */ addi r29, r4, 0
/* 8037BC20 00378B80 41 82 00 0C */ beq lbl_8037BC2C
/* 8037BC24 00378B84 FC 02 08 00 */ fcmpu cr0, f2, f1
/* 8037BC28 00378B88 40 82 00 14 */ bne lbl_8037BC3C
lbl_8037BC2C:
/* 8037BC2C 00378B8C C0 62 CE 98 */ lfs f3, lbl_805AEBB8@sda21(r2)
/* 8037BC30 00378B90 C0 82 CE 9C */ lfs f4, lbl_805AEBBC@sda21(r2)
/* 8037BC34 00378B94 FC A0 18 90 */ fmr f5, f3
/* 8037BC38 00378B98 48 00 00 20 */ b lbl_8037BC58
lbl_8037BC3C:
/* 8037BC3C 00378B9C EC 04 18 28 */ fsubs f0, f4, f3
/* 8037BC40 00378BA0 EC A2 08 28 */ fsubs f5, f2, f1
/* 8037BC44 00378BA4 EC 44 00 F2 */ fmuls f2, f4, f3
/* 8037BC48 00378BA8 EC 84 00 24 */ fdivs f4, f4, f0
/* 8037BC4C 00378BAC EC 00 01 72 */ fmuls f0, f0, f5
/* 8037BC50 00378BB0 EC A1 28 24 */ fdivs f5, f1, f5
/* 8037BC54 00378BB4 EC 62 00 24 */ fdivs f3, f2, f0
lbl_8037BC58:
/* 8037BC58 00378BB8 C0 22 CE 9C */ lfs f1, lbl_805AEBBC@sda21(r2)
/* 8037BC5C 00378BBC 38 60 00 00 */ li r3, 0
/* 8037BC60 00378BC0 C8 02 CE A0 */ lfd f0, lbl_805AEBC0@sda21(r2)
/* 8037BC64 00378BC4 48 00 00 0C */ b lbl_8037BC70
lbl_8037BC68:
/* 8037BC68 00378BC8 EC 84 00 72 */ fmuls f4, f4, f1
/* 8037BC6C 00378BCC 38 63 00 01 */ addi r3, r3, 1
lbl_8037BC70:
/* 8037BC70 00378BD0 FC 04 00 40 */ fcmpo cr0, f4, f0
/* 8037BC74 00378BD4 41 81 FF F4 */ bgt lbl_8037BC68
/* 8037BC78 00378BD8 C8 02 CE B0 */ lfd f0, lbl_805AEBD0@sda21(r2)
/* 8037BC7C 00378BDC C0 42 CE A8 */ lfs f2, lbl_805AEBC8@sda21(r2)
/* 8037BC80 00378BE0 C0 22 CE 98 */ lfs f1, lbl_805AEBB8@sda21(r2)
/* 8037BC84 00378BE4 48 00 00 0C */ b lbl_8037BC90
lbl_8037BC88:
/* 8037BC88 00378BE8 EC 84 00 B2 */ fmuls f4, f4, f2
/* 8037BC8C 00378BEC 38 63 FF FF */ addi r3, r3, -1
lbl_8037BC90:
/* 8037BC90 00378BF0 FC 04 08 40 */ fcmpo cr0, f4, f1
/* 8037BC94 00378BF4 40 81 00 0C */ ble lbl_8037BCA0
/* 8037BC98 00378BF8 FC 04 00 40 */ fcmpo cr0, f4, f0
/* 8037BC9C 00378BFC 41 80 FF EC */ blt lbl_8037BC88
lbl_8037BCA0:
/* 8037BCA0 00378C00 3B C3 00 01 */ addi r30, r3, 1
/* 8037BCA4 00378C04 C0 02 CE B8 */ lfs f0, lbl_805AEBD8@sda21(r2)
/* 8037BCA8 00378C08 38 00 00 01 */ li r0, 1
/* 8037BCAC 00378C0C C8 42 CE C0 */ lfd f2, lbl_805AEBE0@sda21(r2)
/* 8037BCB0 00378C10 7C 00 F0 30 */ slw r0, r0, r30
/* 8037BCB4 00378C14 EC 20 01 32 */ fmuls f1, f0, f4
/* 8037BCB8 00378C18 6C 03 80 00 */ xoris r3, r0, 0x8000
/* 8037BCBC 00378C1C D0 A1 00 28 */ stfs f5, 0x28(r1)
/* 8037BCC0 00378C20 3C 00 43 30 */ lis r0, 0x4330
/* 8037BCC4 00378C24 90 61 00 34 */ stw r3, 0x34(r1)
/* 8037BCC8 00378C28 90 01 00 30 */ stw r0, 0x30(r1)
/* 8037BCCC 00378C2C C8 01 00 30 */ lfd f0, 0x30(r1)
/* 8037BCD0 00378C30 EC 00 10 28 */ fsubs f0, f0, f2
/* 8037BCD4 00378C34 EC 03 00 24 */ fdivs f0, f3, f0
/* 8037BCD8 00378C38 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8037BCDC 00378C3C 48 00 DC 79 */ bl __cvt_fp2unsigned
/* 8037BCE0 00378C40 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8037BCE4 00378C44 54 69 02 3E */ clrlwi r9, r3, 8
/* 8037BCE8 00378C48 88 DD 00 01 */ lbz r6, 1(r29)
/* 8037BCEC 00378C4C 57 C8 02 3E */ clrlwi r8, r30, 8
/* 8037BCF0 00378C50 54 04 A3 68 */ rlwinm r4, r0, 0x14, 0xd, 0x14
/* 8037BCF4 00378C54 50 04 A5 7E */ rlwimi r4, r0, 0x14, 0x15, 0x1f
/* 8037BCF8 00378C58 89 7D 00 02 */ lbz r11, 2(r29)
/* 8037BCFC 00378C5C 54 00 A3 18 */ rlwinm r0, r0, 0x14, 0xc, 0xc
/* 8037BD00 00378C60 88 BD 00 00 */ lbz r5, 0(r29)
/* 8037BD04 00378C64 50 80 03 7E */ rlwimi r0, r4, 0, 0xd, 0x1f
/* 8037BD08 00378C68 81 81 00 28 */ lwz r12, 0x28(r1)
/* 8037BD0C 00378C6C 54 07 02 3E */ clrlwi r7, r0, 8
/* 8037BD10 00378C70 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037BD14 00378C74 64 EA EE 00 */ oris r10, r7, 0xee00
/* 8037BD18 00378C78 38 00 00 61 */ li r0, 0x61
/* 8037BD1C 00378C7C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037BD20 00378C80 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037BD24 00378C84 65 27 EF 00 */ oris r7, r9, 0xef00
/* 8037BD28 00378C88 54 C6 40 2E */ slwi r6, r6, 8
/* 8037BD2C 00378C8C 91 44 80 00 */ stw r10, 0xCC008000@l(r4)
/* 8037BD30 00378C90 55 8A A3 68 */ rlwinm r10, r12, 0x14, 0xd, 0x14
/* 8037BD34 00378C94 51 8A A5 7E */ rlwimi r10, r12, 0x14, 0x15, 0x1f
/* 8037BD38 00378C98 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037BD3C 00378C9C 55 89 A3 18 */ rlwinm r9, r12, 0x14, 0xc, 0xc
/* 8037BD40 00378CA0 51 49 03 7E */ rlwimi r9, r10, 0, 0xd, 0x1f
/* 8037BD44 00378CA4 90 E4 80 00 */ stw r7, 0xCC008000@l(r4)
/* 8037BD48 00378CA8 65 07 F0 00 */ oris r7, r8, 0xf000
/* 8037BD4C 00378CAC 51 66 06 3E */ rlwimi r6, r11, 0, 0x18, 0x1f
/* 8037BD50 00378CB0 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037BD54 00378CB4 90 E4 80 00 */ stw r7, 0xCC008000@l(r4)
/* 8037BD58 00378CB8 57 E7 A8 14 */ slwi r7, r31, 0x15
/* 8037BD5C 00378CBC 51 27 03 3E */ rlwimi r7, r9, 0, 0xc, 0x1f
/* 8037BD60 00378CC0 54 E7 02 3E */ clrlwi r7, r7, 8
/* 8037BD64 00378CC4 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037BD68 00378CC8 64 E7 F1 00 */ oris r7, r7, 0xf100
/* 8037BD6C 00378CCC 90 E4 80 00 */ stw r7, 0xCC008000@l(r4)
/* 8037BD70 00378CD0 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037BD74 00378CD4 54 A0 80 1E */ slwi r0, r5, 0x10
/* 8037BD78 00378CD8 50 C0 04 3E */ rlwimi r0, r6, 0, 0x10, 0x1f
/* 8037BD7C 00378CDC 54 00 02 3E */ clrlwi r0, r0, 8
/* 8037BD80 00378CE0 64 00 F2 00 */ oris r0, r0, 0xf200
/* 8037BD84 00378CE4 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037BD88 00378CE8 38 00 00 00 */ li r0, 0
/* 8037BD8C 00378CEC B0 03 00 02 */ sth r0, 2(r3)
/* 8037BD90 00378CF0 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 8037BD94 00378CF4 83 E1 00 44 */ lwz r31, 0x44(r1)
/* 8037BD98 00378CF8 83 C1 00 40 */ lwz r30, 0x40(r1)
/* 8037BD9C 00378CFC 83 A1 00 3C */ lwz r29, 0x3c(r1)
/* 8037BDA0 00378D00 38 21 00 48 */ addi r1, r1, 0x48
/* 8037BDA4 00378D04 7C 08 03 A6 */ mtlr r0
/* 8037BDA8 00378D08 4E 80 00 20 */ blr
.global GXSetFogRangeAdj
GXSetFogRangeAdj:
/* 8037BDAC 00378D0C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8037BDB0 00378D10 41 82 00 C0 */ beq lbl_8037BE70
/* 8037BDB4 00378D14 A1 05 00 02 */ lhz r8, 2(r5)
/* 8037BDB8 00378D18 38 00 00 61 */ li r0, 0x61
/* 8037BDBC 00378D1C A1 45 00 00 */ lhz r10, 0(r5)
/* 8037BDC0 00378D20 3C C0 CC 01 */ lis r6, 0xCC008000@ha
/* 8037BDC4 00378D24 55 08 60 26 */ slwi r8, r8, 0xc
/* 8037BDC8 00378D28 51 48 05 3E */ rlwimi r8, r10, 0, 0x14, 0x1f
/* 8037BDCC 00378D2C 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
/* 8037BDD0 00378D30 38 E0 00 E9 */ li r7, 0xe9
/* 8037BDD4 00378D34 55 09 02 3E */ clrlwi r9, r8, 8
/* 8037BDD8 00378D38 50 E9 C0 0E */ rlwimi r9, r7, 0x18, 0, 7
/* 8037BDDC 00378D3C 91 26 80 00 */ stw r9, 0xCC008000@l(r6)
/* 8037BDE0 00378D40 38 E0 00 EA */ li r7, 0xea
/* 8037BDE4 00378D44 54 E9 C0 0E */ slwi r9, r7, 0x18
/* 8037BDE8 00378D48 A5 45 00 04 */ lhzu r10, 4(r5)
/* 8037BDEC 00378D4C 38 E0 00 EB */ li r7, 0xeb
/* 8037BDF0 00378D50 A1 05 00 02 */ lhz r8, 2(r5)
/* 8037BDF4 00378D54 55 08 60 26 */ slwi r8, r8, 0xc
/* 8037BDF8 00378D58 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
/* 8037BDFC 00378D5C 51 48 05 3E */ rlwimi r8, r10, 0, 0x14, 0x1f
/* 8037BE00 00378D60 51 09 02 3E */ rlwimi r9, r8, 0, 8, 0x1f
/* 8037BE04 00378D64 91 26 80 00 */ stw r9, 0xCC008000@l(r6)
/* 8037BE08 00378D68 54 E9 C0 0E */ slwi r9, r7, 0x18
/* 8037BE0C 00378D6C 38 E0 00 EC */ li r7, 0xec
/* 8037BE10 00378D70 A1 05 00 06 */ lhz r8, 6(r5)
/* 8037BE14 00378D74 A1 45 00 04 */ lhz r10, 4(r5)
/* 8037BE18 00378D78 55 08 60 26 */ slwi r8, r8, 0xc
/* 8037BE1C 00378D7C 51 48 05 3E */ rlwimi r8, r10, 0, 0x14, 0x1f
/* 8037BE20 00378D80 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
/* 8037BE24 00378D84 51 09 02 3E */ rlwimi r9, r8, 0, 8, 0x1f
/* 8037BE28 00378D88 91 26 80 00 */ stw r9, 0xCC008000@l(r6)
/* 8037BE2C 00378D8C 54 E9 C0 0E */ slwi r9, r7, 0x18
/* 8037BE30 00378D90 38 E0 00 ED */ li r7, 0xed
/* 8037BE34 00378D94 A1 05 00 0A */ lhz r8, 0xa(r5)
/* 8037BE38 00378D98 A1 45 00 08 */ lhz r10, 8(r5)
/* 8037BE3C 00378D9C 55 08 60 26 */ slwi r8, r8, 0xc
/* 8037BE40 00378DA0 51 48 05 3E */ rlwimi r8, r10, 0, 0x14, 0x1f
/* 8037BE44 00378DA4 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
/* 8037BE48 00378DA8 51 09 02 3E */ rlwimi r9, r8, 0, 8, 0x1f
/* 8037BE4C 00378DAC 91 26 80 00 */ stw r9, 0xCC008000@l(r6)
/* 8037BE50 00378DB0 A1 05 00 0E */ lhz r8, 0xe(r5)
/* 8037BE54 00378DB4 A1 45 00 0C */ lhz r10, 0xc(r5)
/* 8037BE58 00378DB8 55 08 60 26 */ slwi r8, r8, 0xc
/* 8037BE5C 00378DBC 51 48 05 3E */ rlwimi r8, r10, 0, 0x14, 0x1f
/* 8037BE60 00378DC0 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
/* 8037BE64 00378DC4 55 09 02 3E */ clrlwi r9, r8, 8
/* 8037BE68 00378DC8 50 E9 C0 0E */ rlwimi r9, r7, 0x18, 0, 7
/* 8037BE6C 00378DCC 91 26 80 00 */ stw r9, 0xCC008000@l(r6)
lbl_8037BE70:
/* 8037BE70 00378DD0 54 85 04 3E */ clrlwi r5, r4, 0x10
/* 8037BE74 00378DD4 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037BE78 00378DD8 38 05 01 56 */ addi r0, r5, 0x156
/* 8037BE7C 00378DDC 54 05 05 A8 */ rlwinm r5, r0, 0, 0x16, 0x14
/* 8037BE80 00378DE0 54 60 53 AA */ rlwinm r0, r3, 0xa, 0xe, 0x15
/* 8037BE84 00378DE4 7C A0 03 78 */ or r0, r5, r0
/* 8037BE88 00378DE8 54 05 02 3E */ clrlwi r5, r0, 8
/* 8037BE8C 00378DEC 38 00 00 61 */ li r0, 0x61
/* 8037BE90 00378DF0 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037BE94 00378DF4 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037BE98 00378DF8 64 A5 E8 00 */ oris r5, r5, 0xe800
/* 8037BE9C 00378DFC 38 00 00 00 */ li r0, 0
/* 8037BEA0 00378E00 90 A3 80 00 */ stw r5, 0xCC008000@l(r3)
/* 8037BEA4 00378E04 B0 04 00 02 */ sth r0, 2(r4)
/* 8037BEA8 00378E08 4E 80 00 20 */ blr
.global GXSetBlendMode
GXSetBlendMode:
/* 8037BEAC 00378E0C 81 02 CE 08 */ lwz r8, lbl_805AEB28@sda21(r2)
/* 8037BEB0 00378E10 20 03 00 03 */ subfic r0, r3, 3
/* 8037BEB4 00378E14 7C 07 00 34 */ cntlzw r7, r0
/* 8037BEB8 00378E18 20 03 00 02 */ subfic r0, r3, 2
/* 8037BEBC 00378E1C 81 28 01 D0 */ lwz r9, 0x1d0(r8)
/* 8037BEC0 00378E20 50 E9 35 28 */ rlwimi r9, r7, 6, 0x14, 0x14
/* 8037BEC4 00378E24 38 E9 00 00 */ addi r7, r9, 0
/* 8037BEC8 00378E28 50 67 07 FE */ rlwimi r7, r3, 0, 0x1f, 0x1f
/* 8037BECC 00378E2C 7C 00 00 34 */ cntlzw r0, r0
/* 8037BED0 00378E30 50 07 E7 BC */ rlwimi r7, r0, 0x1c, 0x1e, 0x1e
/* 8037BED4 00378E34 50 C7 64 26 */ rlwimi r7, r6, 0xc, 0x10, 0x13
/* 8037BED8 00378E38 50 87 45 6E */ rlwimi r7, r4, 8, 0x15, 0x17
/* 8037BEDC 00378E3C 38 00 00 61 */ li r0, 0x61
/* 8037BEE0 00378E40 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037BEE4 00378E44 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037BEE8 00378E48 50 A7 2E 34 */ rlwimi r7, r5, 5, 0x18, 0x1a
/* 8037BEEC 00378E4C 38 00 00 00 */ li r0, 0
/* 8037BEF0 00378E50 90 E3 80 00 */ stw r7, 0xCC008000@l(r3)
/* 8037BEF4 00378E54 90 E8 01 D0 */ stw r7, 0x1d0(r8)
/* 8037BEF8 00378E58 B0 08 00 02 */ sth r0, 2(r8)
/* 8037BEFC 00378E5C 4E 80 00 20 */ blr
.global GXSetColorUpdate
GXSetColorUpdate:
/* 8037BF00 00378E60 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037BF04 00378E64 38 00 00 61 */ li r0, 0x61
/* 8037BF08 00378E68 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037BF0C 00378E6C 80 C5 01 D0 */ lwz r6, 0x1d0(r5)
/* 8037BF10 00378E70 50 66 1F 38 */ rlwimi r6, r3, 3, 0x1c, 0x1c
/* 8037BF14 00378E74 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037BF18 00378E78 38 00 00 00 */ li r0, 0
/* 8037BF1C 00378E7C 90 C4 80 00 */ stw r6, 0xCC008000@l(r4)
/* 8037BF20 00378E80 90 C5 01 D0 */ stw r6, 0x1d0(r5)
/* 8037BF24 00378E84 B0 05 00 02 */ sth r0, 2(r5)
/* 8037BF28 00378E88 4E 80 00 20 */ blr
.global GXSetAlphaUpdate
GXSetAlphaUpdate:
/* 8037BF2C 00378E8C 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037BF30 00378E90 38 00 00 61 */ li r0, 0x61
/* 8037BF34 00378E94 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037BF38 00378E98 80 C5 01 D0 */ lwz r6, 0x1d0(r5)
/* 8037BF3C 00378E9C 50 66 26 F6 */ rlwimi r6, r3, 4, 0x1b, 0x1b
/* 8037BF40 00378EA0 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037BF44 00378EA4 38 00 00 00 */ li r0, 0
/* 8037BF48 00378EA8 90 C4 80 00 */ stw r6, 0xCC008000@l(r4)
/* 8037BF4C 00378EAC 90 C5 01 D0 */ stw r6, 0x1d0(r5)
/* 8037BF50 00378EB0 B0 05 00 02 */ sth r0, 2(r5)
/* 8037BF54 00378EB4 4E 80 00 20 */ blr
.global GXSetZMode
GXSetZMode:
/* 8037BF58 00378EB8 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 8037BF5C 00378EBC 38 00 00 61 */ li r0, 0x61
/* 8037BF60 00378EC0 80 E6 01 D8 */ lwz r7, 0x1d8(r6)
/* 8037BF64 00378EC4 50 67 07 FE */ rlwimi r7, r3, 0, 0x1f, 0x1f
/* 8037BF68 00378EC8 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037BF6C 00378ECC 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037BF70 00378ED0 50 87 0F 3C */ rlwimi r7, r4, 1, 0x1c, 0x1e
/* 8037BF74 00378ED4 50 A7 26 F6 */ rlwimi r7, r5, 4, 0x1b, 0x1b
/* 8037BF78 00378ED8 90 E3 80 00 */ stw r7, 0xCC008000@l(r3)
/* 8037BF7C 00378EDC 38 00 00 00 */ li r0, 0
/* 8037BF80 00378EE0 90 E6 01 D8 */ stw r7, 0x1d8(r6)
/* 8037BF84 00378EE4 B0 06 00 02 */ sth r0, 2(r6)
/* 8037BF88 00378EE8 4E 80 00 20 */ blr
.global GXSetZCompLoc
GXSetZCompLoc:
/* 8037BF8C 00378EEC 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 8037BF90 00378EF0 54 60 34 B2 */ rlwinm r0, r3, 6, 0x12, 0x19
/* 8037BF94 00378EF4 38 60 00 61 */ li r3, 0x61
/* 8037BF98 00378EF8 80 A6 01 DC */ lwz r5, 0x1dc(r6)
/* 8037BF9C 00378EFC 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037BFA0 00378F00 54 A5 06 B0 */ rlwinm r5, r5, 0, 0x1a, 0x18
/* 8037BFA4 00378F04 7C A0 03 78 */ or r0, r5, r0
/* 8037BFA8 00378F08 90 06 01 DC */ stw r0, 0x1dc(r6)
/* 8037BFAC 00378F0C 38 00 00 00 */ li r0, 0
/* 8037BFB0 00378F10 98 64 80 00 */ stb r3, 0xCC008000@l(r4)
/* 8037BFB4 00378F14 80 66 01 DC */ lwz r3, 0x1dc(r6)
/* 8037BFB8 00378F18 90 64 80 00 */ stw r3, 0xCC008000@l(r4)
/* 8037BFBC 00378F1C B0 06 00 02 */ sth r0, 2(r6)
/* 8037BFC0 00378F20 4E 80 00 20 */ blr
.global GXSetPixelFmt
GXSetPixelFmt:
/* 8037BFC4 00378F24 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 8037BFC8 00378F28 3C A0 80 3F */ lis r5, lbl_803F0C90@ha
/* 8037BFCC 00378F2C 54 66 10 3A */ slwi r6, r3, 2
/* 8037BFD0 00378F30 38 05 0C 90 */ addi r0, r5, lbl_803F0C90@l
/* 8037BFD4 00378F34 81 07 01 DC */ lwz r8, 0x1dc(r7)
/* 8037BFD8 00378F38 7D 40 32 14 */ add r10, r0, r6
/* 8037BFDC 00378F3C 80 AA 00 00 */ lwz r5, 0(r10)
/* 8037BFE0 00378F40 55 06 00 38 */ rlwinm r6, r8, 0, 0, 0x1c
/* 8037BFE4 00378F44 54 80 18 38 */ slwi r0, r4, 3
/* 8037BFE8 00378F48 7C C4 2B 78 */ or r4, r6, r5
/* 8037BFEC 00378F4C 90 87 01 DC */ stw r4, 0x1dc(r7)
/* 8037BFF0 00378F50 80 87 01 DC */ lwz r4, 0x1dc(r7)
/* 8037BFF4 00378F54 54 84 07 72 */ rlwinm r4, r4, 0, 0x1d, 0x19
/* 8037BFF8 00378F58 7C 80 03 78 */ or r0, r4, r0
/* 8037BFFC 00378F5C 90 07 01 DC */ stw r0, 0x1dc(r7)
/* 8037C000 00378F60 80 A7 01 DC */ lwz r5, 0x1dc(r7)
/* 8037C004 00378F64 7C 08 28 40 */ cmplw r8, r5
/* 8037C008 00378F68 41 82 00 4C */ beq lbl_8037C054
/* 8037C00C 00378F6C 38 00 00 61 */ li r0, 0x61
/* 8037C010 00378F70 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037C014 00378F74 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037C018 00378F78 2C 03 00 02 */ cmpwi r3, 2
/* 8037C01C 00378F7C 90 A4 80 00 */ stw r5, 0xCC008000@l(r4)
/* 8037C020 00378F80 40 82 00 0C */ bne lbl_8037C02C
/* 8037C024 00378F84 38 00 00 01 */ li r0, 1
/* 8037C028 00378F88 48 00 00 08 */ b lbl_8037C030
lbl_8037C02C:
/* 8037C02C 00378F8C 38 00 00 00 */ li r0, 0
lbl_8037C030:
/* 8037C030 00378F90 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037C034 00378F94 54 00 4B EC */ rlwinm r0, r0, 9, 0xf, 0x16
/* 8037C038 00378F98 80 85 02 04 */ lwz r4, 0x204(r5)
/* 8037C03C 00378F9C 54 84 05 EA */ rlwinm r4, r4, 0, 0x17, 0x15
/* 8037C040 00378FA0 7C 80 03 78 */ or r0, r4, r0
/* 8037C044 00378FA4 90 05 02 04 */ stw r0, 0x204(r5)
/* 8037C048 00378FA8 80 05 04 F4 */ lwz r0, 0x4f4(r5)
/* 8037C04C 00378FAC 60 00 00 04 */ ori r0, r0, 4
/* 8037C050 00378FB0 90 05 04 F4 */ stw r0, 0x4f4(r5)
lbl_8037C054:
/* 8037C054 00378FB4 80 0A 00 00 */ lwz r0, 0(r10)
/* 8037C058 00378FB8 28 00 00 04 */ cmplwi r0, 4
/* 8037C05C 00378FBC 40 82 00 40 */ bne lbl_8037C09C
/* 8037C060 00378FC0 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037C064 00378FC4 38 63 FF FC */ addi r3, r3, -4
/* 8037C068 00378FC8 38 00 00 61 */ li r0, 0x61
/* 8037C06C 00378FCC 80 85 01 D4 */ lwz r4, 0x1d4(r5)
/* 8037C070 00378FD0 54 84 05 E8 */ rlwinm r4, r4, 0, 0x17, 0x14
/* 8037C074 00378FD4 50 64 4D 6C */ rlwimi r4, r3, 9, 0x15, 0x16
/* 8037C078 00378FD8 90 85 01 D4 */ stw r4, 0x1d4(r5)
/* 8037C07C 00378FDC 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037C080 00378FE0 80 85 01 D4 */ lwz r4, 0x1d4(r5)
/* 8037C084 00378FE4 54 84 02 3E */ clrlwi r4, r4, 8
/* 8037C088 00378FE8 64 84 42 00 */ oris r4, r4, 0x4200
/* 8037C08C 00378FEC 90 85 01 D4 */ stw r4, 0x1d4(r5)
/* 8037C090 00378FF0 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037C094 00378FF4 80 05 01 D4 */ lwz r0, 0x1d4(r5)
/* 8037C098 00378FF8 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
lbl_8037C09C:
/* 8037C09C 00378FFC 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037C0A0 00379000 38 00 00 00 */ li r0, 0
/* 8037C0A4 00379004 B0 03 00 02 */ sth r0, 2(r3)
/* 8037C0A8 00379008 4E 80 00 20 */ blr
.global GXSetDither
GXSetDither:
/* 8037C0AC 0037900C 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 8037C0B0 00379010 38 00 00 61 */ li r0, 0x61
/* 8037C0B4 00379014 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037C0B8 00379018 80 A6 01 D0 */ lwz r5, 0x1d0(r6)
/* 8037C0BC 0037901C 54 63 15 BA */ rlwinm r3, r3, 2, 0x16, 0x1d
/* 8037C0C0 00379020 54 A5 07 B8 */ rlwinm r5, r5, 0, 0x1e, 0x1c
/* 8037C0C4 00379024 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037C0C8 00379028 7C A3 1B 78 */ or r3, r5, r3
/* 8037C0CC 0037902C 90 64 80 00 */ stw r3, 0xCC008000@l(r4)
/* 8037C0D0 00379030 38 00 00 00 */ li r0, 0
/* 8037C0D4 00379034 90 66 01 D0 */ stw r3, 0x1d0(r6)
/* 8037C0D8 00379038 B0 06 00 02 */ sth r0, 2(r6)
/* 8037C0DC 0037903C 4E 80 00 20 */ blr
.global GXSetDstAlpha
GXSetDstAlpha:
/* 8037C0E0 00379040 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 8037C0E4 00379044 54 85 06 3E */ clrlwi r5, r4, 0x18
/* 8037C0E8 00379048 38 00 00 61 */ li r0, 0x61
/* 8037C0EC 0037904C 80 E6 01 D4 */ lwz r7, 0x1d4(r6)
/* 8037C0F0 00379050 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037C0F4 00379054 50 A7 06 3E */ rlwimi r7, r5, 0, 0x18, 0x1f
/* 8037C0F8 00379058 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037C0FC 0037905C 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8037C100 00379060 38 67 00 00 */ addi r3, r7, 0
/* 8037C104 00379064 50 03 45 EE */ rlwimi r3, r0, 8, 0x17, 0x17
/* 8037C108 00379068 90 64 80 00 */ stw r3, 0xCC008000@l(r4)
/* 8037C10C 0037906C 38 00 00 00 */ li r0, 0
/* 8037C110 00379070 90 66 01 D4 */ stw r3, 0x1d4(r6)
/* 8037C114 00379074 B0 06 00 02 */ sth r0, 2(r6)
/* 8037C118 00379078 4E 80 00 20 */ blr
.global GXSetFieldMask
GXSetFieldMask:
/* 8037C11C 0037907C 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 8037C120 00379080 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037C124 00379084 54 05 07 FA */ rlwinm r5, r0, 0, 0x1f, 0x1d
/* 8037C128 00379088 54 60 0D FC */ rlwinm r0, r3, 1, 0x17, 0x1e
/* 8037C12C 0037908C 7C A0 03 78 */ or r0, r5, r0
/* 8037C130 00379090 54 05 02 3E */ clrlwi r5, r0, 8
/* 8037C134 00379094 38 00 00 61 */ li r0, 0x61
/* 8037C138 00379098 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037C13C 0037909C 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037C140 003790A0 64 A5 44 00 */ oris r5, r5, 0x4400
/* 8037C144 003790A4 38 00 00 00 */ li r0, 0
/* 8037C148 003790A8 90 A3 80 00 */ stw r5, 0xCC008000@l(r3)
/* 8037C14C 003790AC B0 04 00 02 */ sth r0, 2(r4)
/* 8037C150 003790B0 4E 80 00 20 */ blr
.global GXSetFieldMode
GXSetFieldMode:
/* 8037C154 003790B4 7C 08 02 A6 */ mflr r0
/* 8037C158 003790B8 90 01 00 04 */ stw r0, 4(r1)
/* 8037C15C 003790BC 54 80 B0 92 */ rlwinm r0, r4, 0x16, 2, 9
/* 8037C160 003790C0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8037C164 003790C4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8037C168 003790C8 3F E0 CC 01 */ lis r31, 0xCC008000@ha
/* 8037C16C 003790CC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8037C170 003790D0 3B C0 00 61 */ li r30, 0x61
/* 8037C174 003790D4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8037C178 003790D8 7C 7D 1B 78 */ mr r29, r3
/* 8037C17C 003790DC 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037C180 003790E0 80 85 00 7C */ lwz r4, 0x7c(r5)
/* 8037C184 003790E4 54 84 02 90 */ rlwinm r4, r4, 0, 0xa, 8
/* 8037C188 003790E8 7C 80 03 78 */ or r0, r4, r0
/* 8037C18C 003790EC 90 05 00 7C */ stw r0, 0x7c(r5)
/* 8037C190 003790F0 9B DF 80 00 */ stb r30, 0xCC008000@l(r31)
/* 8037C194 003790F4 80 05 00 7C */ lwz r0, 0x7c(r5)
/* 8037C198 003790F8 90 1F 80 00 */ stw r0, 0xCC008000@l(r31)
/* 8037C19C 003790FC 4B FF F2 59 */ bl __GXFlushTextureState
/* 8037C1A0 00379100 57 A0 06 3E */ clrlwi r0, r29, 0x18
/* 8037C1A4 00379104 9B DF 80 00 */ stb r30, 0xCC008000@l(r31)
/* 8037C1A8 00379108 64 00 68 00 */ oris r0, r0, 0x6800
/* 8037C1AC 0037910C 90 1F 80 00 */ stw r0, 0xCC008000@l(r31)
/* 8037C1B0 00379110 4B FF F2 45 */ bl __GXFlushTextureState
/* 8037C1B4 00379114 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8037C1B8 00379118 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8037C1BC 0037911C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8037C1C0 00379120 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8037C1C4 00379124 38 21 00 20 */ addi r1, r1, 0x20
/* 8037C1C8 00379128 7C 08 03 A6 */ mtlr r0
/* 8037C1CC 0037912C 4E 80 00 20 */ blr

7
asm/Dolphin/GX/GXStubs.s Normal file
View File

@ -0,0 +1,7 @@
.include "macros.inc"
.section .text, "ax"
.global __GXSetRange
__GXSetRange:
/* 8037C1D0 00379130 4E 80 00 20 */ blr

584
asm/Dolphin/GX/GXTev.s Normal file
View File

@ -0,0 +1,584 @@
.include "macros.inc"
.section .text, "ax"
.global GXSetTevOp
GXSetTevOp:
/* 8037B418 00378378 2C 03 00 00 */ cmpwi r3, 0
/* 8037B41C 0037837C 3C A0 80 3F */ lis r5, lbl_803F0C18@ha
/* 8037B420 00378380 38 05 0C 18 */ addi r0, r5, lbl_803F0C18@l
/* 8037B424 00378384 40 82 00 14 */ bne lbl_8037B438
/* 8037B428 00378388 54 84 10 3A */ slwi r4, r4, 2
/* 8037B42C 0037838C 7C A0 22 14 */ add r5, r0, r4
/* 8037B430 00378390 39 25 00 28 */ addi r9, r5, 0x28
/* 8037B434 00378394 48 00 00 18 */ b lbl_8037B44C
lbl_8037B438:
/* 8037B438 00378398 54 84 10 3A */ slwi r4, r4, 2
/* 8037B43C 0037839C 7C A0 22 14 */ add r5, r0, r4
/* 8037B440 003783A0 7D 20 22 14 */ add r9, r0, r4
/* 8037B444 003783A4 38 A5 00 14 */ addi r5, r5, 0x14
/* 8037B448 003783A8 39 29 00 3C */ addi r9, r9, 0x3c
lbl_8037B44C:
/* 8037B44C 003783AC 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 8037B450 003783B0 54 63 10 3A */ slwi r3, r3, 2
/* 8037B454 003783B4 80 05 00 00 */ lwz r0, 0(r5)
/* 8037B458 003783B8 38 A0 00 61 */ li r5, 0x61
/* 8037B45C 003783BC 7C C7 1A 14 */ add r6, r7, r3
/* 8037B460 003783C0 80 66 01 30 */ lwz r3, 0x130(r6)
/* 8037B464 003783C4 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037B468 003783C8 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037B46C 003783CC 54 63 00 0E */ rlwinm r3, r3, 0, 0, 7
/* 8037B470 003783D0 50 03 02 3E */ rlwimi r3, r0, 0, 8, 0x1f
/* 8037B474 003783D4 90 64 80 00 */ stw r3, 0xCC008000@l(r4)
/* 8037B478 003783D8 38 00 00 00 */ li r0, 0
/* 8037B47C 003783DC 90 66 01 30 */ stw r3, 0x130(r6)
/* 8037B480 003783E0 81 06 01 70 */ lwz r8, 0x170(r6)
/* 8037B484 003783E4 80 69 00 00 */ lwz r3, 0(r9)
/* 8037B488 003783E8 55 08 07 0E */ rlwinm r8, r8, 0, 0x1c, 7
/* 8037B48C 003783EC 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037B490 003783F0 50 68 02 36 */ rlwimi r8, r3, 0, 8, 0x1b
/* 8037B494 003783F4 91 04 80 00 */ stw r8, 0xCC008000@l(r4)
/* 8037B498 003783F8 91 06 01 70 */ stw r8, 0x170(r6)
/* 8037B49C 003783FC B0 07 00 02 */ sth r0, 2(r7)
/* 8037B4A0 00378400 4E 80 00 20 */ blr
.global GXSetTevColorIn
GXSetTevColorIn:
/* 8037B4A4 00378404 81 22 CE 08 */ lwz r9, lbl_805AEB28@sda21(r2)
/* 8037B4A8 00378408 54 63 10 3A */ slwi r3, r3, 2
/* 8037B4AC 0037840C 38 00 00 61 */ li r0, 0x61
/* 8037B4B0 00378410 7D 09 1A 14 */ add r8, r9, r3
/* 8037B4B4 00378414 81 48 01 30 */ lwz r10, 0x130(r8)
/* 8037B4B8 00378418 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037B4BC 0037841C 50 8A 64 26 */ rlwimi r10, r4, 0xc, 0x10, 0x13
/* 8037B4C0 00378420 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037B4C4 00378424 38 8A 00 00 */ addi r4, r10, 0
/* 8037B4C8 00378428 50 A4 45 2E */ rlwimi r4, r5, 8, 0x14, 0x17
/* 8037B4CC 0037842C 50 C4 26 36 */ rlwimi r4, r6, 4, 0x18, 0x1b
/* 8037B4D0 00378430 50 E4 07 3E */ rlwimi r4, r7, 0, 0x1c, 0x1f
/* 8037B4D4 00378434 90 83 80 00 */ stw r4, 0xCC008000@l(r3)
/* 8037B4D8 00378438 38 00 00 00 */ li r0, 0
/* 8037B4DC 0037843C 90 88 01 30 */ stw r4, 0x130(r8)
/* 8037B4E0 00378440 B0 09 00 02 */ sth r0, 2(r9)
/* 8037B4E4 00378444 4E 80 00 20 */ blr
.global GXSetTevAlphaIn
GXSetTevAlphaIn:
/* 8037B4E8 00378448 81 22 CE 08 */ lwz r9, lbl_805AEB28@sda21(r2)
/* 8037B4EC 0037844C 54 63 10 3A */ slwi r3, r3, 2
/* 8037B4F0 00378450 38 00 00 61 */ li r0, 0x61
/* 8037B4F4 00378454 7D 09 1A 14 */ add r8, r9, r3
/* 8037B4F8 00378458 81 48 01 70 */ lwz r10, 0x170(r8)
/* 8037B4FC 0037845C 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037B500 00378460 50 8A 6C 24 */ rlwimi r10, r4, 0xd, 0x10, 0x12
/* 8037B504 00378464 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037B508 00378468 38 8A 00 00 */ addi r4, r10, 0
/* 8037B50C 0037846C 50 A4 54 EA */ rlwimi r4, r5, 0xa, 0x13, 0x15
/* 8037B510 00378470 50 C4 3D B0 */ rlwimi r4, r6, 7, 0x16, 0x18
/* 8037B514 00378474 50 E4 26 76 */ rlwimi r4, r7, 4, 0x19, 0x1b
/* 8037B518 00378478 90 83 80 00 */ stw r4, 0xCC008000@l(r3)
/* 8037B51C 0037847C 38 00 00 00 */ li r0, 0
/* 8037B520 00378480 90 88 01 70 */ stw r4, 0x170(r8)
/* 8037B524 00378484 B0 09 00 02 */ sth r0, 2(r9)
/* 8037B528 00378488 4E 80 00 20 */ blr
.global GXSetTevColorOp
GXSetTevColorOp:
/* 8037B52C 0037848C 80 02 CE 08 */ lwz r0, lbl_805AEB28@sda21(r2)
/* 8037B530 00378490 54 69 10 3A */ slwi r9, r3, 2
/* 8037B534 00378494 2C 04 00 01 */ cmpwi r4, 1
/* 8037B538 00378498 7C 60 4A 14 */ add r3, r0, r9
/* 8037B53C 0037849C 80 63 01 30 */ lwz r3, 0x130(r3)
/* 8037B540 003784A0 50 83 93 5A */ rlwimi r3, r4, 0x12, 0xd, 0xd
/* 8037B544 003784A4 39 43 00 00 */ addi r10, r3, 0
/* 8037B548 003784A8 41 81 00 10 */ bgt lbl_8037B558
/* 8037B54C 003784AC 50 CA A2 96 */ rlwimi r10, r6, 0x14, 0xa, 0xb
/* 8037B550 003784B0 50 AA 83 9E */ rlwimi r10, r5, 0x10, 0xe, 0xf
/* 8037B554 003784B4 48 00 00 10 */ b lbl_8037B564
lbl_8037B558:
/* 8037B558 003784B8 38 00 00 03 */ li r0, 3
/* 8037B55C 003784BC 50 8A 9A 96 */ rlwimi r10, r4, 0x13, 0xa, 0xb
/* 8037B560 003784C0 50 0A 83 9E */ rlwimi r10, r0, 0x10, 0xe, 0xf
lbl_8037B564:
/* 8037B564 003784C4 38 00 00 61 */ li r0, 0x61
/* 8037B568 003784C8 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037B56C 003784CC 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037B570 003784D0 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037B574 003784D4 50 EA 9B 18 */ rlwimi r10, r7, 0x13, 0xc, 0xc
/* 8037B578 003784D8 51 0A B2 12 */ rlwimi r10, r8, 0x16, 8, 9
/* 8037B57C 003784DC 91 45 80 00 */ stw r10, 0xCC008000@l(r5)
/* 8037B580 003784E0 7C 64 4A 14 */ add r3, r4, r9
/* 8037B584 003784E4 38 00 00 00 */ li r0, 0
/* 8037B588 003784E8 91 43 01 30 */ stw r10, 0x130(r3)
/* 8037B58C 003784EC B0 04 00 02 */ sth r0, 2(r4)
/* 8037B590 003784F0 4E 80 00 20 */ blr
.global GXSetTevAlphaOp
GXSetTevAlphaOp:
/* 8037B594 003784F4 80 02 CE 08 */ lwz r0, lbl_805AEB28@sda21(r2)
/* 8037B598 003784F8 54 69 10 3A */ slwi r9, r3, 2
/* 8037B59C 003784FC 2C 04 00 01 */ cmpwi r4, 1
/* 8037B5A0 00378500 7C 60 4A 14 */ add r3, r0, r9
/* 8037B5A4 00378504 80 63 01 70 */ lwz r3, 0x170(r3)
/* 8037B5A8 00378508 50 83 93 5A */ rlwimi r3, r4, 0x12, 0xd, 0xd
/* 8037B5AC 0037850C 39 43 00 00 */ addi r10, r3, 0
/* 8037B5B0 00378510 41 81 00 10 */ bgt lbl_8037B5C0
/* 8037B5B4 00378514 50 CA A2 96 */ rlwimi r10, r6, 0x14, 0xa, 0xb
/* 8037B5B8 00378518 50 AA 83 9E */ rlwimi r10, r5, 0x10, 0xe, 0xf
/* 8037B5BC 0037851C 48 00 00 10 */ b lbl_8037B5CC
lbl_8037B5C0:
/* 8037B5C0 00378520 38 00 00 03 */ li r0, 3
/* 8037B5C4 00378524 50 8A 9A 96 */ rlwimi r10, r4, 0x13, 0xa, 0xb
/* 8037B5C8 00378528 50 0A 83 9E */ rlwimi r10, r0, 0x10, 0xe, 0xf
lbl_8037B5CC:
/* 8037B5CC 0037852C 38 00 00 61 */ li r0, 0x61
/* 8037B5D0 00378530 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037B5D4 00378534 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037B5D8 00378538 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037B5DC 0037853C 50 EA 9B 18 */ rlwimi r10, r7, 0x13, 0xc, 0xc
/* 8037B5E0 00378540 51 0A B2 12 */ rlwimi r10, r8, 0x16, 8, 9
/* 8037B5E4 00378544 91 45 80 00 */ stw r10, 0xCC008000@l(r5)
/* 8037B5E8 00378548 7C 64 4A 14 */ add r3, r4, r9
/* 8037B5EC 0037854C 38 00 00 00 */ li r0, 0
/* 8037B5F0 00378550 91 43 01 70 */ stw r10, 0x170(r3)
/* 8037B5F4 00378554 B0 04 00 02 */ sth r0, 2(r4)
/* 8037B5F8 00378558 4E 80 00 20 */ blr
.global GXSetTevColor
GXSetTevColor:
/* 8037B5FC 0037855C 88 04 00 03 */ lbz r0, 3(r4)
/* 8037B600 00378560 54 68 08 3C */ slwi r8, r3, 1
/* 8037B604 00378564 88 A4 00 00 */ lbz r5, 0(r4)
/* 8037B608 00378568 38 E8 00 E0 */ addi r7, r8, 0xe0
/* 8037B60C 0037856C 54 09 60 26 */ slwi r9, r0, 0xc
/* 8037B610 00378570 50 A9 06 3E */ rlwimi r9, r5, 0, 0x18, 0x1f
/* 8037B614 00378574 89 44 00 02 */ lbz r10, 2(r4)
/* 8037B618 00378578 88 C4 00 01 */ lbz r6, 1(r4)
/* 8037B61C 0037857C 54 E7 C0 0E */ slwi r7, r7, 0x18
/* 8037B620 00378580 38 A0 00 61 */ li r5, 0x61
/* 8037B624 00378584 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037B628 00378588 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037B62C 0037858C 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037B630 00378590 51 27 03 3E */ rlwimi r7, r9, 0, 0xc, 0x1f
/* 8037B634 00378594 38 08 00 E1 */ addi r0, r8, 0xe1
/* 8037B638 00378598 90 E4 80 00 */ stw r7, 0xCC008000@l(r4)
/* 8037B63C 0037859C 54 C7 60 26 */ slwi r7, r6, 0xc
/* 8037B640 003785A0 54 06 C0 0E */ slwi r6, r0, 0x18
/* 8037B644 003785A4 51 47 06 3E */ rlwimi r7, r10, 0, 0x18, 0x1f
/* 8037B648 003785A8 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037B64C 003785AC 50 E6 03 3E */ rlwimi r6, r7, 0, 0xc, 0x1f
/* 8037B650 003785B0 90 C4 80 00 */ stw r6, 0xCC008000@l(r4)
/* 8037B654 003785B4 38 00 00 00 */ li r0, 0
/* 8037B658 003785B8 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037B65C 003785BC 90 C4 80 00 */ stw r6, 0xCC008000@l(r4)
/* 8037B660 003785C0 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037B664 003785C4 90 C4 80 00 */ stw r6, 0xCC008000@l(r4)
/* 8037B668 003785C8 B0 03 00 02 */ sth r0, 2(r3)
/* 8037B66C 003785CC 4E 80 00 20 */ blr
.global GXSetTevColorS10
GXSetTevColorS10:
/* 8037B670 003785D0 A8 04 00 06 */ lha r0, 6(r4)
/* 8037B674 003785D4 54 69 08 3C */ slwi r9, r3, 1
/* 8037B678 003785D8 A8 A4 00 00 */ lha r5, 0(r4)
/* 8037B67C 003785DC 39 09 00 E0 */ addi r8, r9, 0xe0
/* 8037B680 003785E0 54 0A 62 66 */ rlwinm r10, r0, 0xc, 9, 0x13
/* 8037B684 003785E4 50 AA 05 7E */ rlwimi r10, r5, 0, 0x15, 0x1f
/* 8037B688 003785E8 A8 E4 00 04 */ lha r7, 4(r4)
/* 8037B68C 003785EC A8 C4 00 02 */ lha r6, 2(r4)
/* 8037B690 003785F0 55 08 C0 0E */ slwi r8, r8, 0x18
/* 8037B694 003785F4 38 A0 00 61 */ li r5, 0x61
/* 8037B698 003785F8 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037B69C 003785FC 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037B6A0 00378600 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037B6A4 00378604 51 48 02 7E */ rlwimi r8, r10, 0, 9, 0x1f
/* 8037B6A8 00378608 38 09 00 E1 */ addi r0, r9, 0xe1
/* 8037B6AC 0037860C 91 04 80 00 */ stw r8, 0xCC008000@l(r4)
/* 8037B6B0 00378610 54 C8 62 66 */ rlwinm r8, r6, 0xc, 9, 0x13
/* 8037B6B4 00378614 54 06 C0 0E */ slwi r6, r0, 0x18
/* 8037B6B8 00378618 50 E8 05 7E */ rlwimi r8, r7, 0, 0x15, 0x1f
/* 8037B6BC 0037861C 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037B6C0 00378620 51 06 02 7E */ rlwimi r6, r8, 0, 9, 0x1f
/* 8037B6C4 00378624 90 C4 80 00 */ stw r6, 0xCC008000@l(r4)
/* 8037B6C8 00378628 38 00 00 00 */ li r0, 0
/* 8037B6CC 0037862C 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037B6D0 00378630 90 C4 80 00 */ stw r6, 0xCC008000@l(r4)
/* 8037B6D4 00378634 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037B6D8 00378638 90 C4 80 00 */ stw r6, 0xCC008000@l(r4)
/* 8037B6DC 0037863C B0 03 00 02 */ sth r0, 2(r3)
/* 8037B6E0 00378640 4E 80 00 20 */ blr
.global GXSetTevKColor
GXSetTevKColor:
/* 8037B6E4 00378644 88 04 00 03 */ lbz r0, 3(r4)
/* 8037B6E8 00378648 54 65 08 3C */ slwi r5, r3, 1
/* 8037B6EC 0037864C 88 C4 00 00 */ lbz r6, 0(r4)
/* 8037B6F0 00378650 38 E5 00 E0 */ addi r7, r5, 0xe0
/* 8037B6F4 00378654 54 00 60 26 */ slwi r0, r0, 0xc
/* 8037B6F8 00378658 50 C0 06 3E */ rlwimi r0, r6, 0, 0x18, 0x1f
/* 8037B6FC 0037865C 88 C4 00 01 */ lbz r6, 1(r4)
/* 8037B700 00378660 89 24 00 02 */ lbz r9, 2(r4)
/* 8037B704 00378664 54 00 03 0E */ rlwinm r0, r0, 0, 0xc, 7
/* 8037B708 00378668 64 08 00 80 */ oris r8, r0, 0x80
/* 8037B70C 0037866C 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037B710 00378670 54 E7 C0 0E */ slwi r7, r7, 0x18
/* 8037B714 00378674 38 00 00 61 */ li r0, 0x61
/* 8037B718 00378678 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037B71C 0037867C 54 C6 60 26 */ slwi r6, r6, 0xc
/* 8037B720 00378680 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037B724 00378684 51 07 02 3E */ rlwimi r7, r8, 0, 8, 0x1f
/* 8037B728 00378688 90 E4 80 00 */ stw r7, 0xCC008000@l(r4)
/* 8037B72C 0037868C 51 26 06 3E */ rlwimi r6, r9, 0, 0x18, 0x1f
/* 8037B730 00378690 38 A5 00 E1 */ addi r5, r5, 0xe1
/* 8037B734 00378694 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037B738 00378698 54 C0 03 0E */ rlwinm r0, r6, 0, 0xc, 7
/* 8037B73C 0037869C 64 06 00 80 */ oris r6, r0, 0x80
/* 8037B740 003786A0 54 A0 C0 0E */ slwi r0, r5, 0x18
/* 8037B744 003786A4 50 C0 02 3E */ rlwimi r0, r6, 0, 8, 0x1f
/* 8037B748 003786A8 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037B74C 003786AC 38 00 00 00 */ li r0, 0
/* 8037B750 003786B0 B0 03 00 02 */ sth r0, 2(r3)
/* 8037B754 003786B4 4E 80 00 20 */ blr
.global GXSetTevKColorSel
GXSetTevKColorSel:
/* 8037B758 003786B8 7C 65 0E 70 */ srawi r5, r3, 1
/* 8037B75C 003786BC 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 8037B760 003786C0 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 8037B764 003786C4 54 A3 10 3A */ slwi r3, r5, 2
/* 8037B768 003786C8 38 E3 01 B0 */ addi r7, r3, 0x1b0
/* 8037B76C 003786CC 7C E6 3A 14 */ add r7, r6, r7
/* 8037B770 003786D0 41 82 00 1C */ beq lbl_8037B78C
/* 8037B774 003786D4 80 67 00 00 */ lwz r3, 0(r7)
/* 8037B778 003786D8 54 80 70 22 */ slwi r0, r4, 0xe
/* 8037B77C 003786DC 54 63 04 98 */ rlwinm r3, r3, 0, 0x12, 0xc
/* 8037B780 003786E0 7C 60 03 78 */ or r0, r3, r0
/* 8037B784 003786E4 90 07 00 00 */ stw r0, 0(r7)
/* 8037B788 003786E8 48 00 00 18 */ b lbl_8037B7A0
lbl_8037B78C:
/* 8037B78C 003786EC 80 67 00 00 */ lwz r3, 0(r7)
/* 8037B790 003786F0 54 80 20 36 */ slwi r0, r4, 4
/* 8037B794 003786F4 54 63 07 2C */ rlwinm r3, r3, 0, 0x1c, 0x16
/* 8037B798 003786F8 7C 60 03 78 */ or r0, r3, r0
/* 8037B79C 003786FC 90 07 00 00 */ stw r0, 0(r7)
lbl_8037B7A0:
/* 8037B7A0 00378700 38 00 00 61 */ li r0, 0x61
/* 8037B7A4 00378704 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037B7A8 00378708 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037B7AC 0037870C 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037B7B0 00378710 38 00 00 00 */ li r0, 0
/* 8037B7B4 00378714 80 87 00 00 */ lwz r4, 0(r7)
/* 8037B7B8 00378718 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 8037B7BC 0037871C B0 03 00 02 */ sth r0, 2(r3)
/* 8037B7C0 00378720 4E 80 00 20 */ blr
.global GXSetTevKAlphaSel
GXSetTevKAlphaSel:
/* 8037B7C4 00378724 7C 65 0E 70 */ srawi r5, r3, 1
/* 8037B7C8 00378728 80 C2 CE 08 */ lwz r6, lbl_805AEB28@sda21(r2)
/* 8037B7CC 0037872C 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 8037B7D0 00378730 54 A3 10 3A */ slwi r3, r5, 2
/* 8037B7D4 00378734 38 E3 01 B0 */ addi r7, r3, 0x1b0
/* 8037B7D8 00378738 7C E6 3A 14 */ add r7, r6, r7
/* 8037B7DC 0037873C 41 82 00 1C */ beq lbl_8037B7F8
/* 8037B7E0 00378740 80 67 00 00 */ lwz r3, 0(r7)
/* 8037B7E4 00378744 54 80 98 18 */ slwi r0, r4, 0x13
/* 8037B7E8 00378748 54 63 03 4E */ rlwinm r3, r3, 0, 0xd, 7
/* 8037B7EC 0037874C 7C 60 03 78 */ or r0, r3, r0
/* 8037B7F0 00378750 90 07 00 00 */ stw r0, 0(r7)
/* 8037B7F4 00378754 48 00 00 18 */ b lbl_8037B80C
lbl_8037B7F8:
/* 8037B7F8 00378758 80 67 00 00 */ lwz r3, 0(r7)
/* 8037B7FC 0037875C 54 80 48 2C */ slwi r0, r4, 9
/* 8037B800 00378760 54 63 05 E2 */ rlwinm r3, r3, 0, 0x17, 0x11
/* 8037B804 00378764 7C 60 03 78 */ or r0, r3, r0
/* 8037B808 00378768 90 07 00 00 */ stw r0, 0(r7)
lbl_8037B80C:
/* 8037B80C 0037876C 38 00 00 61 */ li r0, 0x61
/* 8037B810 00378770 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037B814 00378774 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037B818 00378778 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037B81C 0037877C 38 00 00 00 */ li r0, 0
/* 8037B820 00378780 80 87 00 00 */ lwz r4, 0(r7)
/* 8037B824 00378784 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 8037B828 00378788 B0 03 00 02 */ sth r0, 2(r3)
/* 8037B82C 0037878C 4E 80 00 20 */ blr
.global GXSetTevSwapMode
GXSetTevSwapMode:
/* 8037B830 00378790 54 63 10 3A */ slwi r3, r3, 2
/* 8037B834 00378794 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 8037B838 00378798 39 03 01 70 */ addi r8, r3, 0x170
/* 8037B83C 0037879C 7D 07 42 14 */ add r8, r7, r8
/* 8037B840 003787A0 80 08 00 00 */ lwz r0, 0(r8)
/* 8037B844 003787A4 54 A5 10 3A */ slwi r5, r5, 2
/* 8037B848 003787A8 38 60 00 61 */ li r3, 0x61
/* 8037B84C 003787AC 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d
/* 8037B850 003787B0 7C 00 23 78 */ or r0, r0, r4
/* 8037B854 003787B4 90 08 00 00 */ stw r0, 0(r8)
/* 8037B858 003787B8 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037B85C 003787BC 38 00 00 00 */ li r0, 0
/* 8037B860 003787C0 80 C8 00 00 */ lwz r6, 0(r8)
/* 8037B864 003787C4 54 C6 07 B6 */ rlwinm r6, r6, 0, 0x1e, 0x1b
/* 8037B868 003787C8 7C C5 2B 78 */ or r5, r6, r5
/* 8037B86C 003787CC 90 A8 00 00 */ stw r5, 0(r8)
/* 8037B870 003787D0 98 64 80 00 */ stb r3, 0xCC008000@l(r4)
/* 8037B874 003787D4 80 68 00 00 */ lwz r3, 0(r8)
/* 8037B878 003787D8 90 64 80 00 */ stw r3, 0xCC008000@l(r4)
/* 8037B87C 003787DC B0 07 00 02 */ sth r0, 2(r7)
/* 8037B880 003787E0 4E 80 00 20 */ blr
.global GXSetTevSwapModeTable
GXSetTevSwapModeTable:
/* 8037B884 003787E4 54 6A 08 3C */ slwi r10, r3, 1
/* 8037B888 003787E8 81 22 CE 08 */ lwz r9, lbl_805AEB28@sda21(r2)
/* 8037B88C 003787EC 54 63 18 38 */ slwi r3, r3, 3
/* 8037B890 003787F0 39 63 01 B0 */ addi r11, r3, 0x1b0
/* 8037B894 003787F4 7D 69 5A 14 */ add r11, r9, r11
/* 8037B898 003787F8 81 0B 00 00 */ lwz r8, 0(r11)
/* 8037B89C 003787FC 38 0A 00 01 */ addi r0, r10, 1
/* 8037B8A0 00378800 54 03 10 3A */ slwi r3, r0, 2
/* 8037B8A4 00378804 55 00 00 3A */ rlwinm r0, r8, 0, 0, 0x1d
/* 8037B8A8 00378808 7C 00 23 78 */ or r0, r0, r4
/* 8037B8AC 0037880C 90 0B 00 00 */ stw r0, 0(r11)
/* 8037B8B0 00378810 39 43 01 B0 */ addi r10, r3, 0x1b0
/* 8037B8B4 00378814 54 A0 10 3A */ slwi r0, r5, 2
/* 8037B8B8 00378818 80 6B 00 00 */ lwz r3, 0(r11)
/* 8037B8BC 0037881C 39 00 00 61 */ li r8, 0x61
/* 8037B8C0 00378820 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037B8C4 00378824 54 63 07 B6 */ rlwinm r3, r3, 0, 0x1e, 0x1b
/* 8037B8C8 00378828 7C 60 03 78 */ or r0, r3, r0
/* 8037B8CC 0037882C 90 0B 00 00 */ stw r0, 0(r11)
/* 8037B8D0 00378830 7D 49 52 14 */ add r10, r9, r10
/* 8037B8D4 00378834 54 E3 10 3A */ slwi r3, r7, 2
/* 8037B8D8 00378838 99 05 80 00 */ stb r8, 0xCC008000@l(r5)
/* 8037B8DC 0037883C 38 00 00 00 */ li r0, 0
/* 8037B8E0 00378840 80 8B 00 00 */ lwz r4, 0(r11)
/* 8037B8E4 00378844 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 8037B8E8 00378848 80 8A 00 00 */ lwz r4, 0(r10)
/* 8037B8EC 0037884C 54 84 00 3A */ rlwinm r4, r4, 0, 0, 0x1d
/* 8037B8F0 00378850 7C 84 33 78 */ or r4, r4, r6
/* 8037B8F4 00378854 90 8A 00 00 */ stw r4, 0(r10)
/* 8037B8F8 00378858 80 8A 00 00 */ lwz r4, 0(r10)
/* 8037B8FC 0037885C 54 84 07 B6 */ rlwinm r4, r4, 0, 0x1e, 0x1b
/* 8037B900 00378860 7C 83 1B 78 */ or r3, r4, r3
/* 8037B904 00378864 90 6A 00 00 */ stw r3, 0(r10)
/* 8037B908 00378868 99 05 80 00 */ stb r8, 0xCC008000@l(r5)
/* 8037B90C 0037886C 80 6A 00 00 */ lwz r3, 0(r10)
/* 8037B910 00378870 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037B914 00378874 B0 09 00 02 */ sth r0, 2(r9)
/* 8037B918 00378878 4E 80 00 20 */ blr
.global GXSetAlphaCompare
GXSetAlphaCompare:
/* 8037B91C 0037887C 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 8037B920 00378880 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037B924 00378884 64 00 F3 00 */ oris r0, r0, 0xf300
/* 8037B928 00378888 54 00 06 1E */ rlwinm r0, r0, 0, 0x18, 0xf
/* 8037B92C 0037888C 50 E0 44 2E */ rlwimi r0, r7, 8, 0x10, 0x17
/* 8037B930 00378890 54 07 04 18 */ rlwinm r7, r0, 0, 0x10, 0xc
/* 8037B934 00378894 54 60 80 1E */ slwi r0, r3, 0x10
/* 8037B938 00378898 7C E0 03 78 */ or r0, r7, r0
/* 8037B93C 0037889C 54 03 03 52 */ rlwinm r3, r0, 0, 0xd, 9
/* 8037B940 003788A0 54 C0 98 18 */ slwi r0, r6, 0x13
/* 8037B944 003788A4 7C 66 03 78 */ or r6, r3, r0
/* 8037B948 003788A8 38 00 00 61 */ li r0, 0x61
/* 8037B94C 003788AC 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037B950 003788B0 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037B954 003788B4 54 C6 02 8E */ rlwinm r6, r6, 0, 0xa, 7
/* 8037B958 003788B8 54 A0 B0 12 */ slwi r0, r5, 0x16
/* 8037B95C 003788BC 7C C0 03 78 */ or r0, r6, r0
/* 8037B960 003788C0 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 8037B964 003788C4 38 00 00 00 */ li r0, 0
/* 8037B968 003788C8 B0 04 00 02 */ sth r0, 2(r4)
/* 8037B96C 003788CC 4E 80 00 20 */ blr
.global GXSetZTexture
GXSetZTexture:
/* 8037B970 003788D0 2C 04 00 13 */ cmpwi r4, 0x13
/* 8037B974 003788D4 54 A0 02 3E */ clrlwi r0, r5, 8
/* 8037B978 003788D8 64 07 F4 00 */ oris r7, r0, 0xf400
/* 8037B97C 003788DC 41 82 00 28 */ beq lbl_8037B9A4
/* 8037B980 003788E0 40 80 00 10 */ bge lbl_8037B990
/* 8037B984 003788E4 2C 04 00 11 */ cmpwi r4, 0x11
/* 8037B988 003788E8 41 82 00 14 */ beq lbl_8037B99C
/* 8037B98C 003788EC 48 00 00 28 */ b lbl_8037B9B4
lbl_8037B990:
/* 8037B990 003788F0 2C 04 00 16 */ cmpwi r4, 0x16
/* 8037B994 003788F4 41 82 00 18 */ beq lbl_8037B9AC
/* 8037B998 003788F8 48 00 00 1C */ b lbl_8037B9B4
lbl_8037B99C:
/* 8037B99C 003788FC 38 C0 00 00 */ li r6, 0
/* 8037B9A0 00378900 48 00 00 18 */ b lbl_8037B9B8
lbl_8037B9A4:
/* 8037B9A4 00378904 38 C0 00 01 */ li r6, 1
/* 8037B9A8 00378908 48 00 00 10 */ b lbl_8037B9B8
lbl_8037B9AC:
/* 8037B9AC 0037890C 38 C0 00 02 */ li r6, 2
/* 8037B9B0 00378910 48 00 00 08 */ b lbl_8037B9B8
lbl_8037B9B4:
/* 8037B9B4 00378914 38 C0 00 02 */ li r6, 2
lbl_8037B9B8:
/* 8037B9B8 00378918 38 00 00 61 */ li r0, 0x61
/* 8037B9BC 0037891C 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037B9C0 00378920 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037B9C4 00378924 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037B9C8 00378928 54 C6 07 B6 */ rlwinm r6, r6, 0, 0x1e, 0x1b
/* 8037B9CC 0037892C 54 63 10 3A */ slwi r3, r3, 2
/* 8037B9D0 00378930 90 E5 80 00 */ stw r7, 0xCC008000@l(r5)
/* 8037B9D4 00378934 7C C3 1B 78 */ or r3, r6, r3
/* 8037B9D8 00378938 54 63 02 3E */ clrlwi r3, r3, 8
/* 8037B9DC 0037893C 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037B9E0 00378940 64 63 F5 00 */ oris r3, r3, 0xf500
/* 8037B9E4 00378944 38 00 00 00 */ li r0, 0
/* 8037B9E8 00378948 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037B9EC 0037894C B0 04 00 02 */ sth r0, 2(r4)
/* 8037B9F0 00378950 4E 80 00 20 */ blr
.global GXSetTevOrder
GXSetTevOrder:
/* 8037B9F4 00378954 7C 67 0E 70 */ srawi r7, r3, 1
/* 8037B9F8 00378958 81 22 CE 08 */ lwz r9, lbl_805AEB28@sda21(r2)
/* 8037B9FC 0037895C 54 AA 06 2C */ rlwinm r10, r5, 0, 0x18, 0x16
/* 8037BA00 00378960 7C E7 01 94 */ addze r7, r7
/* 8037BA04 00378964 54 60 10 3A */ slwi r0, r3, 2
/* 8037BA08 00378968 7D 09 02 14 */ add r8, r9, r0
/* 8037BA0C 0037896C 54 E7 10 3A */ slwi r7, r7, 2
/* 8037BA10 00378970 90 A8 04 9C */ stw r5, 0x49c(r8)
/* 8037BA14 00378974 38 E7 01 00 */ addi r7, r7, 0x100
/* 8037BA18 00378978 28 0A 00 08 */ cmplwi r10, 8
/* 8037BA1C 0037897C 38 0A 00 00 */ addi r0, r10, 0
/* 8037BA20 00378980 7C E9 3A 14 */ add r7, r9, r7
/* 8037BA24 00378984 41 80 00 0C */ blt lbl_8037BA30
/* 8037BA28 00378988 39 20 00 00 */ li r9, 0
/* 8037BA2C 0037898C 48 00 00 08 */ b lbl_8037BA34
lbl_8037BA30:
/* 8037BA30 00378990 7C 09 03 78 */ mr r9, r0
lbl_8037BA34:
/* 8037BA34 00378994 2C 04 00 08 */ cmpwi r4, 8
/* 8037BA38 00378998 41 80 00 28 */ blt lbl_8037BA60
/* 8037BA3C 0037899C 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037BA40 003789A0 38 00 00 01 */ li r0, 1
/* 8037BA44 003789A4 7C 00 18 30 */ slw r0, r0, r3
/* 8037BA48 003789A8 81 04 04 E0 */ lwz r8, 0x4e0(r4)
/* 8037BA4C 003789AC 39 44 04 E0 */ addi r10, r4, 0x4e0
/* 8037BA50 003789B0 38 80 00 00 */ li r4, 0
/* 8037BA54 003789B4 7D 00 00 78 */ andc r0, r8, r0
/* 8037BA58 003789B8 90 0A 00 00 */ stw r0, 0(r10)
/* 8037BA5C 003789BC 48 00 00 20 */ b lbl_8037BA7C
lbl_8037BA60:
/* 8037BA60 003789C0 81 02 CE 08 */ lwz r8, lbl_805AEB28@sda21(r2)
/* 8037BA64 003789C4 38 00 00 01 */ li r0, 1
/* 8037BA68 003789C8 7C 00 18 30 */ slw r0, r0, r3
/* 8037BA6C 003789CC 39 48 04 E0 */ addi r10, r8, 0x4e0
/* 8037BA70 003789D0 81 08 04 E0 */ lwz r8, 0x4e0(r8)
/* 8037BA74 003789D4 7D 00 03 78 */ or r0, r8, r0
/* 8037BA78 003789D8 90 0A 00 00 */ stw r0, 0(r10)
lbl_8037BA7C:
/* 8037BA7C 003789DC 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 8037BA80 003789E0 41 82 00 94 */ beq lbl_8037BB14
/* 8037BA84 003789E4 81 07 00 00 */ lwz r8, 0(r7)
/* 8037BA88 003789E8 55 23 60 26 */ slwi r3, r9, 0xc
/* 8037BA8C 003789EC 54 80 78 20 */ slwi r0, r4, 0xf
/* 8037BA90 003789F0 55 04 05 20 */ rlwinm r4, r8, 0, 0x14, 0x10
/* 8037BA94 003789F4 7C 83 1B 78 */ or r3, r4, r3
/* 8037BA98 003789F8 90 67 00 00 */ stw r3, 0(r7)
/* 8037BA9C 003789FC 2C 06 00 FF */ cmpwi r6, 0xff
/* 8037BAA0 00378A00 80 67 00 00 */ lwz r3, 0(r7)
/* 8037BAA4 00378A04 54 63 04 5A */ rlwinm r3, r3, 0, 0x11, 0xd
/* 8037BAA8 00378A08 7C 60 03 78 */ or r0, r3, r0
/* 8037BAAC 00378A0C 90 07 00 00 */ stw r0, 0(r7)
/* 8037BAB0 00378A10 40 82 00 0C */ bne lbl_8037BABC
/* 8037BAB4 00378A14 38 00 00 07 */ li r0, 7
/* 8037BAB8 00378A18 48 00 00 18 */ b lbl_8037BAD0
lbl_8037BABC:
/* 8037BABC 00378A1C 3C 60 80 3F */ lis r3, lbl_803F0C68@ha
/* 8037BAC0 00378A20 54 C4 10 3A */ slwi r4, r6, 2
/* 8037BAC4 00378A24 38 03 0C 68 */ addi r0, r3, lbl_803F0C68@l
/* 8037BAC8 00378A28 7C 60 22 14 */ add r3, r0, r4
/* 8037BACC 00378A2C 80 03 00 00 */ lwz r0, 0(r3)
lbl_8037BAD0:
/* 8037BAD0 00378A30 80 67 00 00 */ lwz r3, 0(r7)
/* 8037BAD4 00378A34 54 00 98 18 */ slwi r0, r0, 0x13
/* 8037BAD8 00378A38 2C 05 00 FF */ cmpwi r5, 0xff
/* 8037BADC 00378A3C 54 63 03 52 */ rlwinm r3, r3, 0, 0xd, 9
/* 8037BAE0 00378A40 7C 60 03 78 */ or r0, r3, r0
/* 8037BAE4 00378A44 90 07 00 00 */ stw r0, 0(r7)
/* 8037BAE8 00378A48 38 80 00 00 */ li r4, 0
/* 8037BAEC 00378A4C 41 82 00 10 */ beq lbl_8037BAFC
/* 8037BAF0 00378A50 54 A0 05 EF */ rlwinm. r0, r5, 0, 0x17, 0x17
/* 8037BAF4 00378A54 40 82 00 08 */ bne lbl_8037BAFC
/* 8037BAF8 00378A58 38 80 00 01 */ li r4, 1
lbl_8037BAFC:
/* 8037BAFC 00378A5C 80 67 00 00 */ lwz r3, 0(r7)
/* 8037BB00 00378A60 54 80 90 1A */ slwi r0, r4, 0x12
/* 8037BB04 00378A64 54 63 03 98 */ rlwinm r3, r3, 0, 0xe, 0xc
/* 8037BB08 00378A68 7C 60 03 78 */ or r0, r3, r0
/* 8037BB0C 00378A6C 90 07 00 00 */ stw r0, 0(r7)
/* 8037BB10 00378A70 48 00 00 8C */ b lbl_8037BB9C
lbl_8037BB14:
/* 8037BB14 00378A74 80 67 00 00 */ lwz r3, 0(r7)
/* 8037BB18 00378A78 54 80 18 38 */ slwi r0, r4, 3
/* 8037BB1C 00378A7C 2C 06 00 FF */ cmpwi r6, 0xff
/* 8037BB20 00378A80 54 63 00 38 */ rlwinm r3, r3, 0, 0, 0x1c
/* 8037BB24 00378A84 7C 63 4B 78 */ or r3, r3, r9
/* 8037BB28 00378A88 90 67 00 00 */ stw r3, 0(r7)
/* 8037BB2C 00378A8C 80 67 00 00 */ lwz r3, 0(r7)
/* 8037BB30 00378A90 54 63 07 72 */ rlwinm r3, r3, 0, 0x1d, 0x19
/* 8037BB34 00378A94 7C 60 03 78 */ or r0, r3, r0
/* 8037BB38 00378A98 90 07 00 00 */ stw r0, 0(r7)
/* 8037BB3C 00378A9C 40 82 00 0C */ bne lbl_8037BB48
/* 8037BB40 00378AA0 38 00 00 07 */ li r0, 7
/* 8037BB44 00378AA4 48 00 00 18 */ b lbl_8037BB5C
lbl_8037BB48:
/* 8037BB48 00378AA8 3C 60 80 3F */ lis r3, lbl_803F0C68@ha
/* 8037BB4C 00378AAC 54 C4 10 3A */ slwi r4, r6, 2
/* 8037BB50 00378AB0 38 03 0C 68 */ addi r0, r3, lbl_803F0C68@l
/* 8037BB54 00378AB4 7C 60 22 14 */ add r3, r0, r4
/* 8037BB58 00378AB8 80 03 00 00 */ lwz r0, 0(r3)
lbl_8037BB5C:
/* 8037BB5C 00378ABC 80 67 00 00 */ lwz r3, 0(r7)
/* 8037BB60 00378AC0 54 00 38 30 */ slwi r0, r0, 7
/* 8037BB64 00378AC4 2C 05 00 FF */ cmpwi r5, 0xff
/* 8037BB68 00378AC8 54 63 06 6A */ rlwinm r3, r3, 0, 0x19, 0x15
/* 8037BB6C 00378ACC 7C 60 03 78 */ or r0, r3, r0
/* 8037BB70 00378AD0 90 07 00 00 */ stw r0, 0(r7)
/* 8037BB74 00378AD4 38 80 00 00 */ li r4, 0
/* 8037BB78 00378AD8 41 82 00 10 */ beq lbl_8037BB88
/* 8037BB7C 00378ADC 54 A0 05 EF */ rlwinm. r0, r5, 0, 0x17, 0x17
/* 8037BB80 00378AE0 40 82 00 08 */ bne lbl_8037BB88
/* 8037BB84 00378AE4 38 80 00 01 */ li r4, 1
lbl_8037BB88:
/* 8037BB88 00378AE8 80 67 00 00 */ lwz r3, 0(r7)
/* 8037BB8C 00378AEC 54 80 30 32 */ slwi r0, r4, 6
/* 8037BB90 00378AF0 54 63 06 B0 */ rlwinm r3, r3, 0, 0x1a, 0x18
/* 8037BB94 00378AF4 7C 60 03 78 */ or r0, r3, r0
/* 8037BB98 00378AF8 90 07 00 00 */ stw r0, 0(r7)
lbl_8037BB9C:
/* 8037BB9C 00378AFC 38 00 00 61 */ li r0, 0x61
/* 8037BBA0 00378B00 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037BBA4 00378B04 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037BBA8 00378B08 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037BBAC 00378B0C 38 00 00 00 */ li r0, 0
/* 8037BBB0 00378B10 80 87 00 00 */ lwz r4, 0(r7)
/* 8037BBB4 00378B14 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 8037BBB8 00378B18 B0 03 00 02 */ sth r0, 2(r3)
/* 8037BBBC 00378B1C 80 03 04 F4 */ lwz r0, 0x4f4(r3)
/* 8037BBC0 00378B20 60 00 00 01 */ ori r0, r0, 1
/* 8037BBC4 00378B24 90 03 04 F4 */ stw r0, 0x4f4(r3)
/* 8037BBC8 00378B28 4E 80 00 20 */ blr
.global GXSetNumTevStages
GXSetNumTevStages:
/* 8037BBCC 00378B2C 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037BBD0 00378B30 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 8037BBD4 00378B34 38 03 FF FF */ addi r0, r3, -1
/* 8037BBD8 00378B38 80 64 02 04 */ lwz r3, 0x204(r4)
/* 8037BBDC 00378B3C 54 00 50 2A */ slwi r0, r0, 0xa
/* 8037BBE0 00378B40 54 63 05 A2 */ rlwinm r3, r3, 0, 0x16, 0x11
/* 8037BBE4 00378B44 7C 60 03 78 */ or r0, r3, r0
/* 8037BBE8 00378B48 90 04 02 04 */ stw r0, 0x204(r4)
/* 8037BBEC 00378B4C 80 04 04 F4 */ lwz r0, 0x4f4(r4)
/* 8037BBF0 00378B50 60 00 00 04 */ ori r0, r0, 4
/* 8037BBF4 00378B54 90 04 04 F4 */ stw r0, 0x4f4(r4)
/* 8037BBF8 00378B58 4E 80 00 20 */ blr

1295
asm/Dolphin/GX/GXTexture.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,412 @@
.include "macros.inc"
.section .text, "ax"
.global GXSetProjection
GXSetProjection:
/* 8037C244 003791A4 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037C248 003791A8 2C 04 00 01 */ cmpwi r4, 1
/* 8037C24C 003791AC 90 85 04 20 */ stw r4, 0x420(r5)
/* 8037C250 003791B0 C0 03 00 00 */ lfs f0, 0(r3)
/* 8037C254 003791B4 D0 05 04 24 */ stfs f0, 0x424(r5)
/* 8037C258 003791B8 C0 03 00 14 */ lfs f0, 0x14(r3)
/* 8037C25C 003791BC D0 05 04 2C */ stfs f0, 0x42c(r5)
/* 8037C260 003791C0 C0 03 00 28 */ lfs f0, 0x28(r3)
/* 8037C264 003791C4 D0 05 04 34 */ stfs f0, 0x434(r5)
/* 8037C268 003791C8 C0 03 00 2C */ lfs f0, 0x2c(r3)
/* 8037C26C 003791CC D0 05 04 38 */ stfs f0, 0x438(r5)
/* 8037C270 003791D0 40 82 00 18 */ bne lbl_8037C288
/* 8037C274 003791D4 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 8037C278 003791D8 D0 05 04 28 */ stfs f0, 0x428(r5)
/* 8037C27C 003791DC C0 03 00 1C */ lfs f0, 0x1c(r3)
/* 8037C280 003791E0 D0 05 04 30 */ stfs f0, 0x430(r5)
/* 8037C284 003791E4 48 00 00 14 */ b lbl_8037C298
lbl_8037C288:
/* 8037C288 003791E8 C0 03 00 08 */ lfs f0, 8(r3)
/* 8037C28C 003791EC D0 05 04 28 */ stfs f0, 0x428(r5)
/* 8037C290 003791F0 C0 03 00 18 */ lfs f0, 0x18(r3)
/* 8037C294 003791F4 D0 05 04 30 */ stfs f0, 0x430(r5)
lbl_8037C298:
/* 8037C298 003791F8 38 00 00 10 */ li r0, 0x10
/* 8037C29C 003791FC 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037C2A0 00379200 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C2A4 00379204 3C 60 00 06 */ lis r3, 0x00061020@ha
/* 8037C2A8 00379208 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C2AC 0037920C 38 03 10 20 */ addi r0, r3, 0x00061020@l
/* 8037C2B0 00379210 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C2B4 00379214 38 00 00 01 */ li r0, 1
/* 8037C2B8 00379218 C0 04 04 24 */ lfs f0, 0x424(r4)
/* 8037C2BC 0037921C D0 05 80 00 */ stfs f0, 0xCC008000@l(r5)
/* 8037C2C0 00379220 C0 04 04 28 */ lfs f0, 0x428(r4)
/* 8037C2C4 00379224 D0 05 80 00 */ stfs f0, 0xCC008000@l(r5)
/* 8037C2C8 00379228 C0 04 04 2C */ lfs f0, 0x42c(r4)
/* 8037C2CC 0037922C D0 05 80 00 */ stfs f0, 0xCC008000@l(r5)
/* 8037C2D0 00379230 C0 04 04 30 */ lfs f0, 0x430(r4)
/* 8037C2D4 00379234 D0 05 80 00 */ stfs f0, 0xCC008000@l(r5)
/* 8037C2D8 00379238 C0 04 04 34 */ lfs f0, 0x434(r4)
/* 8037C2DC 0037923C D0 05 80 00 */ stfs f0, 0xCC008000@l(r5)
/* 8037C2E0 00379240 C0 04 04 38 */ lfs f0, 0x438(r4)
/* 8037C2E4 00379244 D0 05 80 00 */ stfs f0, 0xCC008000@l(r5)
/* 8037C2E8 00379248 80 64 04 20 */ lwz r3, 0x420(r4)
/* 8037C2EC 0037924C 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037C2F0 00379250 B0 04 00 02 */ sth r0, 2(r4)
/* 8037C2F4 00379254 4E 80 00 20 */ blr
.global GXSetProjectionv
GXSetProjectionv:
/* 8037C2F8 00379258 7C 08 02 A6 */ mflr r0
/* 8037C2FC 0037925C 90 01 00 04 */ stw r0, 4(r1)
/* 8037C300 00379260 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8037C304 00379264 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8037C308 00379268 7C 7F 1B 78 */ mr r31, r3
/* 8037C30C 0037926C C0 23 00 00 */ lfs f1, 0(r3)
/* 8037C310 00379270 48 00 D6 45 */ bl __cvt_fp2unsigned
/* 8037C314 00379274 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 8037C318 00379278 3C 80 00 06 */ lis r4, 0x00061020@ha
/* 8037C31C 0037927C 38 C0 00 10 */ li r6, 0x10
/* 8037C320 00379280 90 67 04 20 */ stw r3, 0x420(r7)
/* 8037C324 00379284 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C328 00379288 38 64 10 20 */ addi r3, r4, 0x00061020@l
/* 8037C32C 0037928C C0 1F 00 04 */ lfs f0, 4(r31)
/* 8037C330 00379290 38 00 00 01 */ li r0, 1
/* 8037C334 00379294 D0 07 04 24 */ stfs f0, 0x424(r7)
/* 8037C338 00379298 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8037C33C 0037929C D0 07 04 28 */ stfs f0, 0x428(r7)
/* 8037C340 003792A0 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8037C344 003792A4 D0 07 04 2C */ stfs f0, 0x42c(r7)
/* 8037C348 003792A8 C0 1F 00 10 */ lfs f0, 0x10(r31)
/* 8037C34C 003792AC D0 07 04 30 */ stfs f0, 0x430(r7)
/* 8037C350 003792B0 C0 1F 00 14 */ lfs f0, 0x14(r31)
/* 8037C354 003792B4 D0 07 04 34 */ stfs f0, 0x434(r7)
/* 8037C358 003792B8 C0 1F 00 18 */ lfs f0, 0x18(r31)
/* 8037C35C 003792BC D0 07 04 38 */ stfs f0, 0x438(r7)
/* 8037C360 003792C0 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 8037C364 003792C4 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037C368 003792C8 C0 07 04 24 */ lfs f0, 0x424(r7)
/* 8037C36C 003792CC D0 05 80 00 */ stfs f0, 0xCC008000@l(r5)
/* 8037C370 003792D0 C0 07 04 28 */ lfs f0, 0x428(r7)
/* 8037C374 003792D4 D0 05 80 00 */ stfs f0, 0xCC008000@l(r5)
/* 8037C378 003792D8 C0 07 04 2C */ lfs f0, 0x42c(r7)
/* 8037C37C 003792DC D0 05 80 00 */ stfs f0, 0xCC008000@l(r5)
/* 8037C380 003792E0 C0 07 04 30 */ lfs f0, 0x430(r7)
/* 8037C384 003792E4 D0 05 80 00 */ stfs f0, 0xCC008000@l(r5)
/* 8037C388 003792E8 C0 07 04 34 */ lfs f0, 0x434(r7)
/* 8037C38C 003792EC D0 05 80 00 */ stfs f0, 0xCC008000@l(r5)
/* 8037C390 003792F0 C0 07 04 38 */ lfs f0, 0x438(r7)
/* 8037C394 003792F4 D0 05 80 00 */ stfs f0, 0xCC008000@l(r5)
/* 8037C398 003792F8 80 67 04 20 */ lwz r3, 0x420(r7)
/* 8037C39C 003792FC 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037C3A0 00379300 B0 07 00 02 */ sth r0, 2(r7)
/* 8037C3A4 00379304 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8037C3A8 00379308 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8037C3AC 0037930C 38 21 00 18 */ addi r1, r1, 0x18
/* 8037C3B0 00379310 7C 08 03 A6 */ mtlr r0
/* 8037C3B4 00379314 4E 80 00 20 */ blr
.global GXLoadPosMtxImm
GXLoadPosMtxImm:
/* 8037C3B8 00379318 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C3BC 0037931C 38 00 00 10 */ li r0, 0x10
/* 8037C3C0 00379320 54 84 10 3A */ slwi r4, r4, 2
/* 8037C3C4 00379324 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C3C8 00379328 64 80 00 0B */ oris r0, r4, 0xb
/* 8037C3CC 0037932C 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C3D0 00379330 38 85 80 00 */ addi r4, r5, -32768
/* 8037C3D4 00379334 E0 A3 00 00 */ psq_l f5, 0(r3), 0, qr0
/* 8037C3D8 00379338 E0 83 00 08 */ psq_l f4, 8(r3), 0, qr0
/* 8037C3DC 0037933C E0 63 00 10 */ psq_l f3, 16(r3), 0, qr0
/* 8037C3E0 00379340 E0 43 00 18 */ psq_l f2, 24(r3), 0, qr0
/* 8037C3E4 00379344 E0 23 00 20 */ psq_l f1, 32(r3), 0, qr0
/* 8037C3E8 00379348 E0 03 00 28 */ psq_l f0, 40(r3), 0, qr0
/* 8037C3EC 0037934C F0 A4 00 00 */ psq_st f5, 0(r4), 0, qr0
/* 8037C3F0 00379350 F0 84 00 00 */ psq_st f4, 0(r4), 0, qr0
/* 8037C3F4 00379354 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0
/* 8037C3F8 00379358 F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0
/* 8037C3FC 0037935C F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0
/* 8037C400 00379360 F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0
/* 8037C404 00379364 4E 80 00 20 */ blr
.global GXLoadNrmMtxImm
GXLoadNrmMtxImm:
/* 8037C408 00379368 1C A4 00 03 */ mulli r5, r4, 3
/* 8037C40C 0037936C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037C410 00379370 38 00 00 10 */ li r0, 0x10
/* 8037C414 00379374 38 A5 04 00 */ addi r5, r5, 0x400
/* 8037C418 00379378 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037C41C 0037937C 64 A0 00 08 */ oris r0, r5, 8
/* 8037C420 00379380 94 04 80 00 */ stwu r0, 0xCC008000@l(r4)
/* 8037C424 00379384 E0 A3 00 00 */ psq_l f5, 0(r3), 0, qr0
/* 8037C428 00379388 C0 83 00 08 */ lfs f4, 8(r3)
/* 8037C42C 0037938C E0 63 00 10 */ psq_l f3, 16(r3), 0, qr0
/* 8037C430 00379390 C0 43 00 18 */ lfs f2, 0x18(r3)
/* 8037C434 00379394 E0 23 00 20 */ psq_l f1, 32(r3), 0, qr0
/* 8037C438 00379398 C0 03 00 28 */ lfs f0, 0x28(r3)
/* 8037C43C 0037939C F0 A4 00 00 */ psq_st f5, 0(r4), 0, qr0
/* 8037C440 003793A0 D0 84 00 00 */ stfs f4, 0(r4)
/* 8037C444 003793A4 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0
/* 8037C448 003793A8 D0 44 00 00 */ stfs f2, 0(r4)
/* 8037C44C 003793AC F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0
/* 8037C450 003793B0 D0 04 00 00 */ stfs f0, 0(r4)
/* 8037C454 003793B4 4E 80 00 20 */ blr
.global GXSetCurrentMtx
GXSetCurrentMtx:
/* 8037C458 003793B8 7C 08 02 A6 */ mflr r0
/* 8037C45C 003793BC 90 01 00 04 */ stw r0, 4(r1)
/* 8037C460 003793C0 94 21 FF F8 */ stwu r1, -8(r1)
/* 8037C464 003793C4 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037C468 003793C8 84 04 00 80 */ lwzu r0, 0x80(r4)
/* 8037C46C 003793CC 54 00 00 32 */ rlwinm r0, r0, 0, 0, 0x19
/* 8037C470 003793D0 7C 00 1B 78 */ or r0, r0, r3
/* 8037C474 003793D4 90 04 00 00 */ stw r0, 0(r4)
/* 8037C478 003793D8 38 60 00 00 */ li r3, 0
/* 8037C47C 003793DC 48 00 02 E9 */ bl __GXSetMatrixIndex
/* 8037C480 003793E0 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8037C484 003793E4 38 21 00 08 */ addi r1, r1, 8
/* 8037C488 003793E8 7C 08 03 A6 */ mtlr r0
/* 8037C48C 003793EC 4E 80 00 20 */ blr
.global GXLoadTexMtxImm
GXLoadTexMtxImm:
/* 8037C490 003793F0 28 04 00 40 */ cmplwi r4, 0x40
/* 8037C494 003793F4 41 80 00 14 */ blt lbl_8037C4A8
/* 8037C498 003793F8 38 04 FF C0 */ addi r0, r4, -64
/* 8037C49C 003793FC 54 04 10 3A */ slwi r4, r0, 2
/* 8037C4A0 00379400 38 E4 05 00 */ addi r7, r4, 0x500
/* 8037C4A4 00379404 48 00 00 08 */ b lbl_8037C4AC
lbl_8037C4A8:
/* 8037C4A8 00379408 54 87 10 3A */ slwi r7, r4, 2
lbl_8037C4AC:
/* 8037C4AC 0037940C 2C 05 00 01 */ cmpwi r5, 1
/* 8037C4B0 00379410 40 82 00 0C */ bne lbl_8037C4BC
/* 8037C4B4 00379414 38 80 00 08 */ li r4, 8
/* 8037C4B8 00379418 48 00 00 08 */ b lbl_8037C4C0
lbl_8037C4BC:
/* 8037C4BC 0037941C 38 80 00 0C */ li r4, 0xc
lbl_8037C4C0:
/* 8037C4C0 00379420 38 04 FF FF */ addi r0, r4, -1
/* 8037C4C4 00379424 54 06 80 1E */ slwi r6, r0, 0x10
/* 8037C4C8 00379428 38 00 00 10 */ li r0, 0x10
/* 8037C4CC 0037942C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037C4D0 00379430 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037C4D4 00379434 7C E0 33 78 */ or r0, r7, r6
/* 8037C4D8 00379438 2C 05 00 00 */ cmpwi r5, 0
/* 8037C4DC 0037943C 90 04 80 00 */ stw r0, 0xCC008000@l(r4)
/* 8037C4E0 00379440 40 82 00 3C */ bne lbl_8037C51C
/* 8037C4E4 00379444 38 84 80 00 */ addi r4, r4, -32768
/* 8037C4E8 00379448 E0 A3 00 00 */ psq_l f5, 0(r3), 0, qr0
/* 8037C4EC 0037944C E0 83 00 08 */ psq_l f4, 8(r3), 0, qr0
/* 8037C4F0 00379450 E0 63 00 10 */ psq_l f3, 16(r3), 0, qr0
/* 8037C4F4 00379454 E0 43 00 18 */ psq_l f2, 24(r3), 0, qr0
/* 8037C4F8 00379458 E0 23 00 20 */ psq_l f1, 32(r3), 0, qr0
/* 8037C4FC 0037945C E0 03 00 28 */ psq_l f0, 40(r3), 0, qr0
/* 8037C500 00379460 F0 A4 00 00 */ psq_st f5, 0(r4), 0, qr0
/* 8037C504 00379464 F0 84 00 00 */ psq_st f4, 0(r4), 0, qr0
/* 8037C508 00379468 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0
/* 8037C50C 0037946C F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0
/* 8037C510 00379470 F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0
/* 8037C514 00379474 F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0
/* 8037C518 00379478 4E 80 00 20 */ blr
lbl_8037C51C:
/* 8037C51C 0037947C 38 84 80 00 */ addi r4, r4, -32768
/* 8037C520 00379480 E0 63 00 00 */ psq_l f3, 0(r3), 0, qr0
/* 8037C524 00379484 E0 43 00 08 */ psq_l f2, 8(r3), 0, qr0
/* 8037C528 00379488 E0 23 00 10 */ psq_l f1, 16(r3), 0, qr0
/* 8037C52C 0037948C E0 03 00 18 */ psq_l f0, 24(r3), 0, qr0
/* 8037C530 00379490 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0
/* 8037C534 00379494 F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0
/* 8037C538 00379498 F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0
/* 8037C53C 0037949C F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0
/* 8037C540 003794A0 4E 80 00 20 */ blr
.global GXSetViewportJitter
GXSetViewportJitter:
/* 8037C544 003794A4 7C 08 02 A6 */ mflr r0
/* 8037C548 003794A8 28 03 00 00 */ cmplwi r3, 0
/* 8037C54C 003794AC 90 01 00 04 */ stw r0, 4(r1)
/* 8037C550 003794B0 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 8037C554 003794B4 DB E1 00 58 */ stfd f31, 0x58(r1)
/* 8037C558 003794B8 DB C1 00 50 */ stfd f30, 0x50(r1)
/* 8037C55C 003794BC DB A1 00 48 */ stfd f29, 0x48(r1)
/* 8037C560 003794C0 DB 81 00 40 */ stfd f28, 0x40(r1)
/* 8037C564 003794C4 DB 61 00 38 */ stfd f27, 0x38(r1)
/* 8037C568 003794C8 DB 41 00 30 */ stfd f26, 0x30(r1)
/* 8037C56C 003794CC 40 82 00 0C */ bne lbl_8037C578
/* 8037C570 003794D0 C0 02 CE C8 */ lfs f0, lbl_805AEBE8@sda21(r2)
/* 8037C574 003794D4 EC 42 00 28 */ fsubs f2, f2, f0
lbl_8037C578:
/* 8037C578 003794D8 C1 62 CE C8 */ lfs f11, lbl_805AEBE8@sda21(r2)
/* 8037C57C 003794DC FD 40 20 50 */ fneg f10, f4
/* 8037C580 003794E0 C0 02 CE D0 */ lfs f0, lbl_805AEBF0@sda21(r2)
/* 8037C584 003794E4 C1 22 CE CC */ lfs f9, lbl_805AEBEC@sda21(r2)
/* 8037C588 003794E8 EF E3 02 F2 */ fmuls f31, f3, f11
/* 8037C58C 003794EC 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037C590 003794F0 EC E4 02 F2 */ fmuls f7, f4, f11
/* 8037C594 003794F4 D0 23 04 3C */ stfs f1, 0x43c(r3)
/* 8037C598 003794F8 ED 01 F8 2A */ fadds f8, f1, f31
/* 8037C59C 003794FC EF C0 01 B2 */ fmuls f30, f0, f6
/* 8037C5A0 00379500 D0 43 04 40 */ stfs f2, 0x440(r3)
/* 8037C5A4 00379504 EC 22 38 2A */ fadds f1, f2, f7
/* 8037C5A8 00379508 D0 63 04 44 */ stfs f3, 0x444(r3)
/* 8037C5AC 0037950C EC 00 01 72 */ fmuls f0, f0, f5
/* 8037C5B0 00379510 EF AA 02 F2 */ fmuls f29, f10, f11
/* 8037C5B4 00379514 D0 83 04 48 */ stfs f4, 0x448(r3)
/* 8037C5B8 00379518 EF 69 40 2A */ fadds f27, f9, f8
/* 8037C5BC 0037951C D0 A3 04 4C */ stfs f5, 0x44c(r3)
/* 8037C5C0 00379520 EF 49 08 2A */ fadds f26, f9, f1
/* 8037C5C4 00379524 EF 9E 00 28 */ fsubs f28, f30, f0
/* 8037C5C8 00379528 D0 C3 04 50 */ stfs f6, 0x450(r3)
/* 8037C5CC 0037952C 88 03 04 54 */ lbz r0, 0x454(r3)
/* 8037C5D0 00379530 28 00 00 00 */ cmplwi r0, 0
/* 8037C5D4 00379534 41 82 00 10 */ beq lbl_8037C5E4
/* 8037C5D8 00379538 FC 20 28 90 */ fmr f1, f5
/* 8037C5DC 0037953C C0 43 04 58 */ lfs f2, 0x458(r3)
/* 8037C5E0 00379540 4B FF FB F1 */ bl __GXSetRange
lbl_8037C5E4:
/* 8037C5E4 00379544 38 00 00 10 */ li r0, 0x10
/* 8037C5E8 00379548 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037C5EC 0037954C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C5F0 00379550 3C 80 00 05 */ lis r4, 0x0005101A@ha
/* 8037C5F4 00379554 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C5F8 00379558 38 04 10 1A */ addi r0, r4, 0x0005101A@l
/* 8037C5FC 0037955C 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C600 00379560 38 00 00 01 */ li r0, 1
/* 8037C604 00379564 D3 E5 80 00 */ stfs f31, 0xCC008000@l(r5)
/* 8037C608 00379568 D3 A5 80 00 */ stfs f29, 0xCC008000@l(r5)
/* 8037C60C 0037956C D3 85 80 00 */ stfs f28, 0xCC008000@l(r5)
/* 8037C610 00379570 D3 65 80 00 */ stfs f27, 0xCC008000@l(r5)
/* 8037C614 00379574 D3 45 80 00 */ stfs f26, 0xCC008000@l(r5)
/* 8037C618 00379578 D3 C5 80 00 */ stfs f30, 0xCC008000@l(r5)
/* 8037C61C 0037957C B0 03 00 02 */ sth r0, 2(r3)
/* 8037C620 00379580 80 01 00 64 */ lwz r0, 0x64(r1)
/* 8037C624 00379584 CB E1 00 58 */ lfd f31, 0x58(r1)
/* 8037C628 00379588 CB C1 00 50 */ lfd f30, 0x50(r1)
/* 8037C62C 0037958C CB A1 00 48 */ lfd f29, 0x48(r1)
/* 8037C630 00379590 CB 81 00 40 */ lfd f28, 0x40(r1)
/* 8037C634 00379594 CB 61 00 38 */ lfd f27, 0x38(r1)
/* 8037C638 00379598 CB 41 00 30 */ lfd f26, 0x30(r1)
/* 8037C63C 0037959C 38 21 00 60 */ addi r1, r1, 0x60
/* 8037C640 003795A0 7C 08 03 A6 */ mtlr r0
/* 8037C644 003795A4 4E 80 00 20 */ blr
.global GXSetViewport
GXSetViewport:
/* 8037C648 003795A8 7C 08 02 A6 */ mflr r0
/* 8037C64C 003795AC 38 60 00 01 */ li r3, 1
/* 8037C650 003795B0 90 01 00 04 */ stw r0, 4(r1)
/* 8037C654 003795B4 94 21 FF F8 */ stwu r1, -8(r1)
/* 8037C658 003795B8 4B FF FE ED */ bl GXSetViewportJitter
/* 8037C65C 003795BC 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8037C660 003795C0 38 21 00 08 */ addi r1, r1, 8
/* 8037C664 003795C4 7C 08 03 A6 */ mtlr r0
/* 8037C668 003795C8 4E 80 00 20 */ blr
.global GXSetScissor
GXSetScissor:
/* 8037C66C 003795CC 81 02 CE 08 */ lwz r8, lbl_805AEB28@sda21(r2)
/* 8037C670 003795D0 39 23 01 56 */ addi r9, r3, 0x156
/* 8037C674 003795D4 39 44 01 56 */ addi r10, r4, 0x156
/* 8037C678 003795D8 80 68 00 F8 */ lwz r3, 0xf8(r8)
/* 8037C67C 003795DC 38 05 FF FF */ addi r0, r5, -1
/* 8037C680 003795E0 55 24 60 26 */ slwi r4, r9, 0xc
/* 8037C684 003795E4 54 63 00 28 */ rlwinm r3, r3, 0, 0, 0x14
/* 8037C688 003795E8 7C 63 53 78 */ or r3, r3, r10
/* 8037C68C 003795EC 90 68 00 F8 */ stw r3, 0xf8(r8)
/* 8037C690 003795F0 38 66 FF FF */ addi r3, r6, -1
/* 8037C694 003795F4 7C CA 1A 14 */ add r6, r10, r3
/* 8037C698 003795F8 80 A8 00 F8 */ lwz r5, 0xf8(r8)
/* 8037C69C 003795FC 7C 09 02 14 */ add r0, r9, r0
/* 8037C6A0 00379600 54 A3 05 10 */ rlwinm r3, r5, 0, 0x14, 8
/* 8037C6A4 00379604 7C 63 23 78 */ or r3, r3, r4
/* 8037C6A8 00379608 90 68 00 F8 */ stw r3, 0xf8(r8)
/* 8037C6AC 0037960C 54 03 60 26 */ slwi r3, r0, 0xc
/* 8037C6B0 00379610 38 A0 00 61 */ li r5, 0x61
/* 8037C6B4 00379614 80 E8 00 FC */ lwz r7, 0xfc(r8)
/* 8037C6B8 00379618 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037C6BC 0037961C 38 00 00 00 */ li r0, 0
/* 8037C6C0 00379620 54 E7 00 28 */ rlwinm r7, r7, 0, 0, 0x14
/* 8037C6C4 00379624 7C E6 33 78 */ or r6, r7, r6
/* 8037C6C8 00379628 90 C8 00 FC */ stw r6, 0xfc(r8)
/* 8037C6CC 0037962C 80 C8 00 FC */ lwz r6, 0xfc(r8)
/* 8037C6D0 00379630 54 C6 05 10 */ rlwinm r6, r6, 0, 0x14, 8
/* 8037C6D4 00379634 7C C3 1B 78 */ or r3, r6, r3
/* 8037C6D8 00379638 90 68 00 FC */ stw r3, 0xfc(r8)
/* 8037C6DC 0037963C 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037C6E0 00379640 80 68 00 F8 */ lwz r3, 0xf8(r8)
/* 8037C6E4 00379644 90 64 80 00 */ stw r3, 0xCC008000@l(r4)
/* 8037C6E8 00379648 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
/* 8037C6EC 0037964C 80 68 00 FC */ lwz r3, 0xfc(r8)
/* 8037C6F0 00379650 90 64 80 00 */ stw r3, 0xCC008000@l(r4)
/* 8037C6F4 00379654 B0 08 00 02 */ sth r0, 2(r8)
/* 8037C6F8 00379658 4E 80 00 20 */ blr
.global GXSetScissorBoxOffset
GXSetScissorBoxOffset:
/* 8037C6FC 0037965C 38 A3 01 56 */ addi r5, r3, 0x156
/* 8037C700 00379660 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037C704 00379664 38 04 01 56 */ addi r0, r4, 0x156
/* 8037C708 00379668 54 A4 F8 7E */ srwi r4, r5, 1
/* 8037C70C 0037966C 54 84 05 96 */ rlwinm r4, r4, 0, 0x16, 0xb
/* 8037C710 00379670 54 00 48 2A */ rlwinm r0, r0, 9, 0, 0x15
/* 8037C714 00379674 7C 80 03 78 */ or r0, r4, r0
/* 8037C718 00379678 54 05 02 3E */ clrlwi r5, r0, 8
/* 8037C71C 0037967C 38 00 00 61 */ li r0, 0x61
/* 8037C720 00379680 3C 80 CC 01 */ lis r4, 0xCC008000@ha
/* 8037C724 00379684 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
/* 8037C728 00379688 64 A5 59 00 */ oris r5, r5, 0x5900
/* 8037C72C 0037968C 38 00 00 00 */ li r0, 0
/* 8037C730 00379690 90 A4 80 00 */ stw r5, 0xCC008000@l(r4)
/* 8037C734 00379694 B0 03 00 02 */ sth r0, 2(r3)
/* 8037C738 00379698 4E 80 00 20 */ blr
.global GXSetClipMode
GXSetClipMode:
/* 8037C73C 0037969C 38 00 00 10 */ li r0, 0x10
/* 8037C740 003796A0 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037C744 003796A4 3C C0 CC 01 */ lis r6, 0xCC008000@ha
/* 8037C748 003796A8 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
/* 8037C74C 003796AC 38 A0 10 05 */ li r5, 0x1005
/* 8037C750 003796B0 38 00 00 01 */ li r0, 1
/* 8037C754 003796B4 90 A6 80 00 */ stw r5, 0xCC008000@l(r6)
/* 8037C758 003796B8 90 66 80 00 */ stw r3, 0xCC008000@l(r6)
/* 8037C75C 003796BC B0 04 00 02 */ sth r0, 2(r4)
/* 8037C760 003796C0 4E 80 00 20 */ blr
.global __GXSetMatrixIndex
__GXSetMatrixIndex:
/* 8037C764 003796C4 2C 03 00 05 */ cmpwi r3, 5
/* 8037C768 003796C8 40 80 00 3C */ bge lbl_8037C7A4
/* 8037C76C 003796CC 38 00 00 08 */ li r0, 8
/* 8037C770 003796D0 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037C774 003796D4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C778 003796D8 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C77C 003796DC 38 00 00 30 */ li r0, 0x30
/* 8037C780 003796E0 38 60 00 10 */ li r3, 0x10
/* 8037C784 003796E4 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C788 003796E8 38 00 10 18 */ li r0, 0x1018
/* 8037C78C 003796EC 80 84 00 80 */ lwz r4, 0x80(r4)
/* 8037C790 003796F0 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 8037C794 003796F4 98 65 80 00 */ stb r3, 0xCC008000@l(r5)
/* 8037C798 003796F8 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C79C 003796FC 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 8037C7A0 00379700 48 00 00 38 */ b lbl_8037C7D8
lbl_8037C7A4:
/* 8037C7A4 00379704 38 00 00 08 */ li r0, 8
/* 8037C7A8 00379708 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037C7AC 0037970C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037C7B0 00379710 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C7B4 00379714 38 00 00 40 */ li r0, 0x40
/* 8037C7B8 00379718 38 60 00 10 */ li r3, 0x10
/* 8037C7BC 0037971C 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
/* 8037C7C0 00379720 38 00 10 19 */ li r0, 0x1019
/* 8037C7C4 00379724 80 84 00 84 */ lwz r4, 0x84(r4)
/* 8037C7C8 00379728 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 8037C7CC 0037972C 98 65 80 00 */ stb r3, 0xCC008000@l(r5)
/* 8037C7D0 00379730 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037C7D4 00379734 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
lbl_8037C7D8:
/* 8037C7D8 00379738 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037C7DC 0037973C 38 00 00 01 */ li r0, 1
/* 8037C7E0 00379740 B0 03 00 02 */ sth r0, 2(r3)
/* 8037C7E4 00379744 4E 80 00 20 */ blr

692
asm/Dolphin/OS/OS.s Normal file
View File

@ -0,0 +1,692 @@
.include "macros.inc"
.section .text, "ax"
.global OSGetConsoleType
OSGetConsoleType:
/* 8037D71C 0037A67C 80 6D AC C0 */ lwz r3, lbl_805A9880@sda21(r13)
/* 8037D720 0037A680 28 03 00 00 */ cmplwi r3, 0
/* 8037D724 0037A684 41 82 00 10 */ beq lbl_8037D734
/* 8037D728 0037A688 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8037D72C 0037A68C 28 03 00 00 */ cmplwi r3, 0
/* 8037D730 0037A690 40 82 00 10 */ bne lbl_8037D740
lbl_8037D734:
/* 8037D734 0037A694 3C 60 10 00 */ lis r3, 0x10000002@ha
/* 8037D738 0037A698 38 63 00 02 */ addi r3, r3, 0x10000002@l
/* 8037D73C 0037A69C 48 00 00 04 */ b lbl_8037D740
lbl_8037D740:
/* 8037D740 0037A6A0 4E 80 00 20 */ blr
.global ClearArena
ClearArena:
/* 8037D744 0037A6A4 7C 08 02 A6 */ mflr r0
/* 8037D748 0037A6A8 90 01 00 04 */ stw r0, 4(r1)
/* 8037D74C 0037A6AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8037D750 0037A6B0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8037D754 0037A6B4 48 00 5D 19 */ bl OSGetResetCode
/* 8037D758 0037A6B8 3C 03 80 00 */ addis r0, r3, 0x8000
/* 8037D75C 0037A6BC 28 00 00 00 */ cmplwi r0, 0
/* 8037D760 0037A6C0 41 82 00 34 */ beq lbl_8037D794
/* 8037D764 0037A6C4 38 00 00 00 */ li r0, 0
/* 8037D768 0037A6C8 90 0D AC DC */ stw r0, lbl_805A989C@sda21(r13)
/* 8037D76C 0037A6CC 90 0D AC D8 */ stw r0, lbl_805A9898@sda21(r13)
/* 8037D770 0037A6D0 48 00 10 21 */ bl OSGetArenaHi
/* 8037D774 0037A6D4 7C 7F 1B 78 */ mr r31, r3
/* 8037D778 0037A6D8 48 00 10 21 */ bl OSGetArenaLo
/* 8037D77C 0037A6DC 7F E3 F8 50 */ subf r31, r3, r31
/* 8037D780 0037A6E0 48 00 10 19 */ bl OSGetArenaLo
/* 8037D784 0037A6E4 7F E5 FB 78 */ mr r5, r31
/* 8037D788 0037A6E8 38 80 00 00 */ li r4, 0
/* 8037D78C 0037A6EC 4B C8 5C 1D */ bl memset
/* 8037D790 0037A6F0 48 00 00 C8 */ b lbl_8037D858
lbl_8037D794:
/* 8037D794 0037A6F4 3C 80 81 30 */ lis r4, 0x812FDFF0@ha
/* 8037D798 0037A6F8 80 64 DF F0 */ lwz r3, 0x812FDFF0@l(r4)
/* 8037D79C 0037A6FC 80 04 DF EC */ lwz r0, -0x2014(r4)
/* 8037D7A0 0037A700 28 03 00 00 */ cmplwi r3, 0
/* 8037D7A4 0037A704 90 6D AC DC */ stw r3, lbl_805A989C@sda21(r13)
/* 8037D7A8 0037A708 90 0D AC D8 */ stw r0, lbl_805A9898@sda21(r13)
/* 8037D7AC 0037A70C 40 82 00 28 */ bne lbl_8037D7D4
/* 8037D7B0 0037A710 48 00 0F E1 */ bl OSGetArenaHi
/* 8037D7B4 0037A714 7C 7F 1B 78 */ mr r31, r3
/* 8037D7B8 0037A718 48 00 0F E1 */ bl OSGetArenaLo
/* 8037D7BC 0037A71C 7F E3 F8 50 */ subf r31, r3, r31
/* 8037D7C0 0037A720 48 00 0F D9 */ bl OSGetArenaLo
/* 8037D7C4 0037A724 7F E5 FB 78 */ mr r5, r31
/* 8037D7C8 0037A728 38 80 00 00 */ li r4, 0
/* 8037D7CC 0037A72C 4B C8 5B DD */ bl memset
/* 8037D7D0 0037A730 48 00 00 88 */ b lbl_8037D858
lbl_8037D7D4:
/* 8037D7D4 0037A734 48 00 0F C5 */ bl OSGetArenaLo
/* 8037D7D8 0037A738 80 0D AC DC */ lwz r0, lbl_805A989C@sda21(r13)
/* 8037D7DC 0037A73C 7C 03 00 40 */ cmplw r3, r0
/* 8037D7E0 0037A740 40 80 00 78 */ bge lbl_8037D858
/* 8037D7E4 0037A744 48 00 0F AD */ bl OSGetArenaHi
/* 8037D7E8 0037A748 80 0D AC DC */ lwz r0, lbl_805A989C@sda21(r13)
/* 8037D7EC 0037A74C 7C 03 00 40 */ cmplw r3, r0
/* 8037D7F0 0037A750 41 81 00 28 */ bgt lbl_8037D818
/* 8037D7F4 0037A754 48 00 0F 9D */ bl OSGetArenaHi
/* 8037D7F8 0037A758 7C 7F 1B 78 */ mr r31, r3
/* 8037D7FC 0037A75C 48 00 0F 9D */ bl OSGetArenaLo
/* 8037D800 0037A760 7F E3 F8 50 */ subf r31, r3, r31
/* 8037D804 0037A764 48 00 0F 95 */ bl OSGetArenaLo
/* 8037D808 0037A768 7F E5 FB 78 */ mr r5, r31
/* 8037D80C 0037A76C 38 80 00 00 */ li r4, 0
/* 8037D810 0037A770 4B C8 5B 99 */ bl memset
/* 8037D814 0037A774 48 00 00 44 */ b lbl_8037D858
lbl_8037D818:
/* 8037D818 0037A778 48 00 0F 81 */ bl OSGetArenaLo
/* 8037D81C 0037A77C 80 0D AC DC */ lwz r0, lbl_805A989C@sda21(r13)
/* 8037D820 0037A780 7F E3 00 50 */ subf r31, r3, r0
/* 8037D824 0037A784 48 00 0F 75 */ bl OSGetArenaLo
/* 8037D828 0037A788 7F E5 FB 78 */ mr r5, r31
/* 8037D82C 0037A78C 38 80 00 00 */ li r4, 0
/* 8037D830 0037A790 4B C8 5B 79 */ bl memset
/* 8037D834 0037A794 48 00 0F 5D */ bl OSGetArenaHi
/* 8037D838 0037A798 83 ED AC D8 */ lwz r31, lbl_805A9898@sda21(r13)
/* 8037D83C 0037A79C 7C 03 F8 40 */ cmplw r3, r31
/* 8037D840 0037A7A0 40 81 00 18 */ ble lbl_8037D858
/* 8037D844 0037A7A4 48 00 0F 4D */ bl OSGetArenaHi
/* 8037D848 0037A7A8 7C BF 18 50 */ subf r5, r31, r3
/* 8037D84C 0037A7AC 7F E3 FB 78 */ mr r3, r31
/* 8037D850 0037A7B0 38 80 00 00 */ li r4, 0
/* 8037D854 0037A7B4 4B C8 5B 55 */ bl memset
lbl_8037D858:
/* 8037D858 0037A7B8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8037D85C 0037A7BC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8037D860 0037A7C0 38 21 00 10 */ addi r1, r1, 0x10
/* 8037D864 0037A7C4 7C 08 03 A6 */ mtlr r0
/* 8037D868 0037A7C8 4E 80 00 20 */ blr
.global sub_8037d86c
sub_8037d86c:
/* 8037D86C 0037A7CC 80 04 00 0C */ lwz r0, 0xc(r4)
/* 8037D870 0037A7D0 2C 00 00 00 */ cmpwi r0, 0
/* 8037D874 0037A7D4 41 82 00 08 */ beq lbl_8037D87C
/* 8037D878 0037A7D8 48 00 00 20 */ b lbl_8037D898
lbl_8037D87C:
/* 8037D87C 0037A7DC 3C 60 80 54 */ lis r3, lbl_80541200@ha
/* 8037D880 0037A7E0 38 63 12 00 */ addi r3, r3, lbl_80541200@l
/* 8037D884 0037A7E4 A0 03 00 02 */ lhz r0, 2(r3)
/* 8037D888 0037A7E8 3C 60 80 00 */ lis r3, 0x800030E6@ha
/* 8037D88C 0037A7EC 60 00 80 00 */ ori r0, r0, 0x8000
/* 8037D890 0037A7F0 B0 03 30 E6 */ sth r0, 0x800030E6@l(r3)
/* 8037D894 0037A7F4 48 00 00 10 */ b lbl_8037d8a4
lbl_8037D898:
/* 8037D898 0037A7F8 38 00 00 01 */ li r0, 1
/* 8037D89C 0037A7FC 3C 60 80 00 */ lis r3, 0x800030E6@ha
/* 8037D8A0 0037A800 B0 03 30 E6 */ sth r0, 0x800030E6@l(r3)
lbl_8037d8a4:
/* 8037D8A4 0037A804 4E 80 00 20 */ blr
.global OSInit
OSInit:
/* 8037D8A8 0037A808 7C 08 02 A6 */ mflr r0
/* 8037D8AC 0037A80C 90 01 00 04 */ stw r0, 4(r1)
/* 8037D8B0 0037A810 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8037D8B4 0037A814 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8037D8B8 0037A818 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8037D8BC 0037A81C 93 A1 00 0C */ stw r29, 0xc(r1)
/* 8037D8C0 0037A820 80 0D AC D0 */ lwz r0, lbl_805A9890@sda21(r13)
/* 8037D8C4 0037A824 3C 60 80 54 */ lis r3, lbl_80541200@ha
/* 8037D8C8 0037A828 3B C3 12 00 */ addi r30, r3, lbl_80541200@l
/* 8037D8CC 0037A82C 2C 00 00 00 */ cmpwi r0, 0
/* 8037D8D0 0037A830 3C 60 80 3F */ lis r3, lbl_803F0DA0@ha
/* 8037D8D4 0037A834 3B E3 0D A0 */ addi r31, r3, lbl_803F0DA0@l
/* 8037D8D8 0037A838 40 82 03 2C */ bne lbl_8037DC04
/* 8037D8DC 0037A83C 38 00 00 01 */ li r0, 1
/* 8037D8E0 0037A840 90 0D AC D0 */ stw r0, lbl_805A9890@sda21(r13)
/* 8037D8E4 0037A844 48 00 7A E5 */ bl __OSGetSystemTime
/* 8037D8E8 0037A848 90 8D AC EC */ stw r4, lbl_805A98AC@sda21(r13)
/* 8037D8EC 0037A84C 90 6D AC E8 */ stw r3, lbl_805A98A8@sda21(r13)
/* 8037D8F0 0037A850 48 00 3D 71 */ bl OSDisableInterrupts
/* 8037D8F4 0037A854 4B FF 1F A1 */ bl PPCDisableSpeculation
/* 8037D8F8 0037A858 4B FF 1F CD */ bl PPCSetFpNonIEEEMode
/* 8037D8FC 0037A85C 38 00 00 00 */ li r0, 0
/* 8037D900 0037A860 3C 80 80 00 */ lis r4, 0x800000F4@ha
/* 8037D904 0037A864 90 0D AC C4 */ stw r0, lbl_805A9884@sda21(r13)
/* 8037D908 0037A868 90 8D AC C0 */ stw r4, lbl_805A9880@sda21(r13)
/* 8037D90C 0037A86C 90 0D AC 04 */ stw r0, lbl_805A97C4@sda21(r13)
/* 8037D910 0037A870 80 64 00 F4 */ lwz r3, 0x800000F4@l(r4)
/* 8037D914 0037A874 28 03 00 00 */ cmplwi r3, 0
/* 8037D918 0037A878 41 82 00 34 */ beq lbl_8037D94C
/* 8037D91C 0037A87C 38 03 00 0C */ addi r0, r3, 0xc
/* 8037D920 0037A880 90 0D AC C4 */ stw r0, lbl_805A9884@sda21(r13)
/* 8037D924 0037A884 80 03 00 24 */ lwz r0, 0x24(r3)
/* 8037D928 0037A888 80 6D AC C4 */ lwz r3, lbl_805A9884@sda21(r13)
/* 8037D92C 0037A88C 90 0D AD 94 */ stw r0, lbl_805A9954@sda21(r13)
/* 8037D930 0037A890 80 03 00 00 */ lwz r0, 0(r3)
/* 8037D934 0037A894 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 8037D938 0037A898 98 04 30 E8 */ stb r0, 0x30e8(r4)
/* 8037D93C 0037A89C 80 0D AD 94 */ lwz r0, lbl_805A9954@sda21(r13)
/* 8037D940 0037A8A0 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 8037D944 0037A8A4 98 04 30 E9 */ stb r0, 0x30e9(r4)
/* 8037D948 0037A8A8 48 00 00 28 */ b lbl_8037D970
lbl_8037D94C:
/* 8037D94C 0037A8AC 80 04 00 34 */ lwz r0, 0x34(r4)
/* 8037D950 0037A8B0 28 00 00 00 */ cmplwi r0, 0
/* 8037D954 0037A8B4 41 82 00 1C */ beq lbl_8037D970
/* 8037D958 0037A8B8 88 64 30 E8 */ lbz r3, 0x30e8(r4)
/* 8037D95C 0037A8BC 38 0D AC C8 */ addi r0, r13, lbl_805A9888@sda21
/* 8037D960 0037A8C0 90 6D AC C8 */ stw r3, lbl_805A9888@sda21(r13)
/* 8037D964 0037A8C4 90 0D AC C4 */ stw r0, lbl_805A9884@sda21(r13)
/* 8037D968 0037A8C8 88 04 30 E9 */ lbz r0, 0x30e9(r4)
/* 8037D96C 0037A8CC 90 0D AD 94 */ stw r0, lbl_805A9954@sda21(r13)
lbl_8037D970:
/* 8037D970 0037A8D0 38 00 00 01 */ li r0, 1
/* 8037D974 0037A8D4 80 6D AC C0 */ lwz r3, lbl_805A9880@sda21(r13)
/* 8037D978 0037A8D8 90 0D AC 04 */ stw r0, lbl_805A97C4@sda21(r13)
/* 8037D97C 0037A8DC 80 63 00 30 */ lwz r3, 0x30(r3)
/* 8037D980 0037A8E0 28 03 00 00 */ cmplwi r3, 0
/* 8037D984 0037A8E4 40 82 00 10 */ bne lbl_8037D994
/* 8037D988 0037A8E8 3C 60 80 5C */ lis r3, 0x805C20E0@ha
/* 8037D98C 0037A8EC 38 63 20 E0 */ addi r3, r3, 0x805C20E0@l
/* 8037D990 0037A8F0 48 00 00 04 */ b lbl_8037D994
lbl_8037D994:
/* 8037D994 0037A8F4 48 00 0E 15 */ bl OSSetArenaLo
/* 8037D998 0037A8F8 80 6D AC C0 */ lwz r3, lbl_805A9880@sda21(r13)
/* 8037D99C 0037A8FC 80 03 00 30 */ lwz r0, 0x30(r3)
/* 8037D9A0 0037A900 28 00 00 00 */ cmplwi r0, 0
/* 8037D9A4 0037A904 40 82 00 30 */ bne lbl_8037D9D4
/* 8037D9A8 0037A908 80 6D AC C4 */ lwz r3, lbl_805A9884@sda21(r13)
/* 8037D9AC 0037A90C 28 03 00 00 */ cmplwi r3, 0
/* 8037D9B0 0037A910 41 82 00 24 */ beq lbl_8037D9D4
/* 8037D9B4 0037A914 80 03 00 00 */ lwz r0, 0(r3)
/* 8037D9B8 0037A918 28 00 00 02 */ cmplwi r0, 2
/* 8037D9BC 0037A91C 40 80 00 18 */ bge lbl_8037D9D4
/* 8037D9C0 0037A920 3C 60 80 5C */ lis r3, 0x805C00C8@ha
/* 8037D9C4 0037A924 38 63 00 C8 */ addi r3, r3, 0x805C00C8@l
/* 8037D9C8 0037A928 38 03 00 1F */ addi r0, r3, 0x1f
/* 8037D9CC 0037A92C 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a
/* 8037D9D0 0037A930 48 00 0D D9 */ bl OSSetArenaLo
lbl_8037D9D4:
/* 8037D9D4 0037A934 80 6D AC C0 */ lwz r3, lbl_805A9880@sda21(r13)
/* 8037D9D8 0037A938 80 63 00 34 */ lwz r3, 0x34(r3)
/* 8037D9DC 0037A93C 28 03 00 00 */ cmplwi r3, 0
/* 8037D9E0 0037A940 40 82 00 10 */ bne lbl_8037D9F0
/* 8037D9E4 0037A944 3C 60 81 70 */ lis r3, 0x81700000@ha
/* 8037D9E8 0037A948 38 63 00 00 */ addi r3, r3, 0x81700000@l
/* 8037D9EC 0037A94C 48 00 00 04 */ b lbl_8037D9F0
lbl_8037D9F0:
/* 8037D9F0 0037A950 48 00 0D B1 */ bl OSSetArenaHi
/* 8037D9F4 0037A954 48 00 02 2D */ bl OSExceptionInit
/* 8037D9F8 0037A958 48 00 6A 0D */ bl __OSInitSystemCall
/* 8037D9FC 0037A95C 48 00 06 69 */ bl OSInitAlarm
/* 8037DA00 0037A960 48 00 4D F9 */ bl __OSModuleInit
/* 8037DA04 0037A964 48 00 3C D9 */ bl __OSInterruptInit
/* 8037DA08 0037A968 3C 60 80 38 */ lis r3, __OSResetSWInterruptHandler@ha
/* 8037DA0C 0037A96C 38 83 34 9C */ addi r4, r3, __OSResetSWInterruptHandler@l
/* 8037DA10 0037A970 38 60 00 16 */ li r3, 0x16
/* 8037DA14 0037A974 48 00 3C 99 */ bl __OSSetInterruptHandler
/* 8037DA18 0037A978 48 00 1F 4D */ bl __OSContextInit
/* 8037DA1C 0037A97C 48 00 16 B9 */ bl __OSCacheInit
/* 8037DA20 0037A980 48 04 38 29 */ bl sub_803c1248
/* 8037DA24 0037A984 48 04 15 7D */ bl SIInit
/* 8037DA28 0037A988 48 00 5F 79 */ bl sub_803839a0
/* 8037DA2C 0037A98C 48 00 6A 41 */ bl __OSThreadInit
/* 8037DA30 0037A990 48 00 0D AD */ bl __OSInitAudioSystem
/* 8037DA34 0037A994 4B FF 1E 3D */ bl PPCMfhid2
/* 8037DA38 0037A998 54 63 00 80 */ rlwinm r3, r3, 0, 2, 0
/* 8037DA3C 0037A99C 4B FF 1E 3D */ bl PPCMthid2
/* 8037DA40 0037A9A0 80 0D AC E0 */ lwz r0, lbl_805A98A0@sda21(r13)
/* 8037DA44 0037A9A4 2C 00 00 00 */ cmpwi r0, 0
/* 8037DA48 0037A9A8 40 82 00 08 */ bne lbl_8037DA50
/* 8037DA4C 0037A9AC 48 00 52 4D */ bl __OSInitMemoryProtection
lbl_8037DA50:
/* 8037DA50 0037A9B0 38 7F 00 44 */ addi r3, r31, 0x44
/* 8037DA54 0037A9B4 4C C6 31 82 */ crclr 6
/* 8037DA58 0037A9B8 48 00 1F 55 */ bl OSReport
/* 8037DA5C 0037A9BC 38 7F 00 64 */ addi r3, r31, 0x64
/* 8037DA60 0037A9C0 4C C6 31 82 */ crclr 6
/* 8037DA64 0037A9C4 38 9F 00 7C */ addi r4, r31, 0x7c
/* 8037DA68 0037A9C8 38 BF 00 88 */ addi r5, r31, 0x88
/* 8037DA6C 0037A9CC 48 00 1F 41 */ bl OSReport
/* 8037DA70 0037A9D0 38 7F 00 94 */ addi r3, r31, 0x94
/* 8037DA74 0037A9D4 4C C6 31 82 */ crclr 6
/* 8037DA78 0037A9D8 48 00 1F 35 */ bl OSReport
/* 8037DA7C 0037A9DC 80 6D AC C0 */ lwz r3, lbl_805A9880@sda21(r13)
/* 8037DA80 0037A9E0 28 03 00 00 */ cmplwi r3, 0
/* 8037DA84 0037A9E4 41 82 00 10 */ beq lbl_8037DA94
/* 8037DA88 0037A9E8 80 83 00 2C */ lwz r4, 0x2c(r3)
/* 8037DA8C 0037A9EC 28 04 00 00 */ cmplwi r4, 0
/* 8037DA90 0037A9F0 40 82 00 10 */ bne lbl_8037DAA0
lbl_8037DA94:
/* 8037DA94 0037A9F4 3C 60 10 00 */ lis r3, 0x10000002@ha
/* 8037DA98 0037A9F8 38 83 00 02 */ addi r4, r3, 0x10000002@l
/* 8037DA9C 0037A9FC 48 00 00 04 */ b lbl_8037DAA0
lbl_8037DAA0:
/* 8037DAA0 0037AA00 54 80 00 1E */ rlwinm r0, r4, 0, 0, 0xf
/* 8037DAA4 0037AA04 2C 00 00 00 */ cmpwi r0, 0
/* 8037DAA8 0037AA08 41 82 00 08 */ beq lbl_8037DAB0
/* 8037DAAC 0037AA0C 48 00 00 14 */ b lbl_8037DAC0
lbl_8037DAB0:
/* 8037DAB0 0037AA10 4C C6 31 82 */ crclr 6
/* 8037DAB4 0037AA14 38 7F 00 A4 */ addi r3, r31, 0xa4
/* 8037DAB8 0037AA18 48 00 1E F5 */ bl OSReport
/* 8037DABC 0037AA1C 48 00 00 94 */ b lbl_8037DB50
lbl_8037DAC0:
/* 8037DAC0 0037AA20 3C 60 10 00 */ lis r3, 0x10000002@ha
/* 8037DAC4 0037AA24 54 85 04 3E */ clrlwi r5, r4, 0x10
/* 8037DAC8 0037AA28 38 03 00 02 */ addi r0, r3, 0x10000002@l
/* 8037DACC 0037AA2C 7C 05 00 00 */ cmpw r5, r0
/* 8037DAD0 0037AA30 41 82 00 48 */ beq lbl_8037DB18
/* 8037DAD4 0037AA34 40 80 00 14 */ bge lbl_8037DAE8
/* 8037DAD8 0037AA38 7C 05 18 00 */ cmpw r5, r3
/* 8037DADC 0037AA3C 41 82 00 1C */ beq lbl_8037DAF8
/* 8037DAE0 0037AA40 40 80 00 28 */ bge lbl_8037DB08
/* 8037DAE4 0037AA44 48 00 00 54 */ b lbl_8037DB38
lbl_8037DAE8:
/* 8037DAE8 0037AA48 38 03 00 04 */ addi r0, r3, 4
/* 8037DAEC 0037AA4C 7C 05 00 00 */ cmpw r5, r0
/* 8037DAF0 0037AA50 40 80 00 48 */ bge lbl_8037DB38
/* 8037DAF4 0037AA54 48 00 00 34 */ b lbl_8037DB28
lbl_8037DAF8:
/* 8037DAF8 0037AA58 38 7F 00 B0 */ addi r3, r31, 0xb0
/* 8037DAFC 0037AA5C 4C C6 31 82 */ crclr 6
/* 8037DB00 0037AA60 48 00 1E AD */ bl OSReport
/* 8037DB04 0037AA64 48 00 00 4C */ b lbl_8037DB50
lbl_8037DB08:
/* 8037DB08 0037AA68 38 7F 00 C0 */ addi r3, r31, 0xc0
/* 8037DB0C 0037AA6C 4C C6 31 82 */ crclr 6
/* 8037DB10 0037AA70 48 00 1E 9D */ bl OSReport
/* 8037DB14 0037AA74 48 00 00 3C */ b lbl_8037DB50
lbl_8037DB18:
/* 8037DB18 0037AA78 38 7F 00 D0 */ addi r3, r31, 0xd0
/* 8037DB1C 0037AA7C 4C C6 31 82 */ crclr 6
/* 8037DB20 0037AA80 48 00 1E 8D */ bl OSReport
/* 8037DB24 0037AA84 48 00 00 2C */ b lbl_8037DB50
lbl_8037DB28:
/* 8037DB28 0037AA88 38 7F 00 E0 */ addi r3, r31, 0xe0
/* 8037DB2C 0037AA8C 4C C6 31 82 */ crclr 6
/* 8037DB30 0037AA90 48 00 1E 7D */ bl OSReport
/* 8037DB34 0037AA94 48 00 00 1C */ b lbl_8037DB50
lbl_8037DB38:
/* 8037DB38 0037AA98 54 86 04 3E */ clrlwi r6, r4, 0x10
/* 8037DB3C 0037AA9C 4C C6 31 82 */ crclr 6
/* 8037DB40 0037AAA0 7C 85 23 78 */ mr r5, r4
/* 8037DB44 0037AAA4 38 7F 00 F0 */ addi r3, r31, 0xf0
/* 8037DB48 0037AAA8 38 86 FF FD */ addi r4, r6, -3
/* 8037DB4C 0037AAAC 48 00 1E 61 */ bl OSReport
lbl_8037DB50:
/* 8037DB50 0037AAB0 80 8D AC C0 */ lwz r4, lbl_805A9880@sda21(r13)
/* 8037DB54 0037AAB4 38 7F 01 0C */ addi r3, r31, 0x10c
/* 8037DB58 0037AAB8 4C C6 31 82 */ crclr 6
/* 8037DB5C 0037AABC 80 04 00 28 */ lwz r0, 0x28(r4)
/* 8037DB60 0037AAC0 54 04 65 3E */ srwi r4, r0, 0x14
/* 8037DB64 0037AAC4 48 00 1E 49 */ bl OSReport
/* 8037DB68 0037AAC8 48 00 0C 29 */ bl OSGetArenaHi
/* 8037DB6C 0037AACC 7C 7D 1B 78 */ mr r29, r3
/* 8037DB70 0037AAD0 48 00 0C 29 */ bl OSGetArenaLo
/* 8037DB74 0037AAD4 7C 64 1B 78 */ mr r4, r3
/* 8037DB78 0037AAD8 4C C6 31 82 */ crclr 6
/* 8037DB7C 0037AADC 7F A5 EB 78 */ mr r5, r29
/* 8037DB80 0037AAE0 38 7F 01 1C */ addi r3, r31, 0x11c
/* 8037DB84 0037AAE4 48 00 1E 29 */ bl OSReport
/* 8037DB88 0037AAE8 80 6D 9F 68 */ lwz r3, lbl_805A8B28@sda21(r13)
/* 8037DB8C 0037AAEC 48 00 04 AD */ bl OSRegisterVersion
/* 8037DB90 0037AAF0 80 6D AC C4 */ lwz r3, lbl_805A9884@sda21(r13)
/* 8037DB94 0037AAF4 28 03 00 00 */ cmplwi r3, 0
/* 8037DB98 0037AAF8 41 82 00 14 */ beq lbl_8037DBAC
/* 8037DB9C 0037AAFC 80 03 00 00 */ lwz r0, 0(r3)
/* 8037DBA0 0037AB00 28 00 00 02 */ cmplwi r0, 2
/* 8037DBA4 0037AB04 41 80 00 08 */ blt lbl_8037DBAC
/* 8037DBA8 0037AB08 4B C8 5A 99 */ bl EnableMetroTRKInterrupts
lbl_8037DBAC:
/* 8037DBAC 0037AB0C 4B FF FB 99 */ bl ClearArena
/* 8037DBB0 0037AB10 48 00 3A C5 */ bl OSEnableInterrupts
/* 8037DBB4 0037AB14 80 0D AC E0 */ lwz r0, lbl_805A98A0@sda21(r13)
/* 8037DBB8 0037AB18 2C 00 00 00 */ cmpwi r0, 0
/* 8037DBBC 0037AB1C 40 82 00 48 */ bne lbl_8037DC04
/* 8037DBC0 0037AB20 4B FF 3F E5 */ bl DVDInit
/* 8037DBC4 0037AB24 80 0D AC CC */ lwz r0, lbl_805A988C@sda21(r13)
/* 8037DBC8 0037AB28 2C 00 00 00 */ cmpwi r0, 0
/* 8037DBCC 0037AB2C 41 82 00 18 */ beq lbl_8037DBE4
/* 8037DBD0 0037AB30 3C 60 00 01 */ lis r3, 0x00009000@ha
/* 8037DBD4 0037AB34 38 03 90 00 */ addi r0, r3, 0x00009000@l
/* 8037DBD8 0037AB38 3C 60 80 00 */ lis r3, 0x800030E6@ha
/* 8037DBDC 0037AB3C B0 03 30 E6 */ sth r0, 0x800030E6@l(r3)
/* 8037DBE0 0037AB40 48 00 00 24 */ b lbl_8037DC04
lbl_8037DBE4:
/* 8037DBE4 0037AB44 7F C3 F3 78 */ mr r3, r30
/* 8037DBE8 0037AB48 38 80 00 20 */ li r4, 0x20
/* 8037DBEC 0037AB4C 48 00 0E 99 */ bl DCInvalidateRange
/* 8037DBF0 0037AB50 3C 60 80 38 */ lis r3, sub_8037d86c@ha
/* 8037DBF4 0037AB54 38 A3 D8 6C */ addi r5, r3, sub_8037d86c@l
/* 8037DBF8 0037AB58 7F C4 F3 78 */ mr r4, r30
/* 8037DBFC 0037AB5C 38 7E 00 20 */ addi r3, r30, 0x20
/* 8037DC00 0037AB60 4B FF 63 F1 */ bl DVDInquiryAsync
lbl_8037DC04:
/* 8037DC04 0037AB64 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8037DC08 0037AB68 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8037DC0C 0037AB6C 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8037DC10 0037AB70 83 A1 00 0C */ lwz r29, 0xc(r1)
/* 8037DC14 0037AB74 38 21 00 18 */ addi r1, r1, 0x18
/* 8037DC18 0037AB78 7C 08 03 A6 */ mtlr r0
/* 8037DC1C 0037AB7C 4E 80 00 20 */ blr
.global OSExceptionInit
OSExceptionInit:
/* 8037DC20 0037AB80 7C 08 02 A6 */ mflr r0
/* 8037DC24 0037AB84 90 01 00 04 */ stw r0, 4(r1)
/* 8037DC28 0037AB88 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 8037DC2C 0037AB8C BE 81 00 08 */ stmw r20, 8(r1)
/* 8037DC30 0037AB90 3C 60 80 00 */ lis r3, 0x80000060@ha
/* 8037DC34 0037AB94 80 03 00 60 */ lwz r0, 0x80000060@l(r3)
/* 8037DC38 0037AB98 3C 80 80 38 */ lis r4, lbl_8037DF60@ha
/* 8037DC3C 0037AB9C 3B C4 DF 60 */ addi r30, r4, lbl_8037DF60@l
/* 8037DC40 0037ABA0 3C A0 80 38 */ lis r5, sub_8037def8@ha
/* 8037DC44 0037ABA4 83 3E 00 00 */ lwz r25, 0(r30)
/* 8037DC48 0037ABA8 3C 80 80 38 */ lis r4, lbl_8037DF90@ha
/* 8037DC4C 0037ABAC 38 A5 DE F8 */ addi r5, r5, sub_8037def8@l
/* 8037DC50 0037ABB0 38 84 DF 90 */ addi r4, r4, lbl_8037DF90@l
/* 8037DC54 0037ABB4 3C C0 80 3F */ lis r6, lbl_803F0DA0@ha
/* 8037DC58 0037ABB8 28 00 00 00 */ cmplwi r0, 0
/* 8037DC5C 0037ABBC 7C B8 2B 78 */ mr r24, r5
/* 8037DC60 0037ABC0 3B A6 0D A0 */ addi r29, r6, lbl_803F0DA0@l
/* 8037DC64 0037ABC4 7E E5 20 50 */ subf r23, r5, r4
/* 8037DC68 0037ABC8 3A 83 00 60 */ addi r20, r3, 0x60
/* 8037DC6C 0037ABCC 40 82 00 4C */ bne lbl_8037DCB8
/* 8037DC70 0037ABD0 38 7D 01 70 */ addi r3, r29, 0x170
/* 8037DC74 0037ABD4 4C C6 31 82 */ crclr 6
/* 8037DC78 0037ABD8 4B FF 1C F1 */ bl DBPrintf
/* 8037DC7C 0037ABDC 3C 80 80 38 */ lis r4, __OSDBIntegrator@ha
/* 8037DC80 0037ABE0 3C 60 80 38 */ lis r3, sub_8037dec4@ha
/* 8037DC84 0037ABE4 38 03 DE C4 */ addi r0, r3, sub_8037dec4@l
/* 8037DC88 0037ABE8 38 84 DE A0 */ addi r4, r4, __OSDBIntegrator@l
/* 8037DC8C 0037ABEC 7E A4 00 50 */ subf r21, r4, r0
/* 8037DC90 0037ABF0 7E 83 A3 78 */ mr r3, r20
/* 8037DC94 0037ABF4 7E A5 AB 78 */ mr r5, r21
/* 8037DC98 0037ABF8 4B C8 57 F9 */ bl memcpy
/* 8037DC9C 0037ABFC 7E 83 A3 78 */ mr r3, r20
/* 8037DCA0 0037AC00 7E A4 AB 78 */ mr r4, r21
/* 8037DCA4 0037AC04 48 00 0E 6D */ bl DCFlushRangeNoSync
/* 8037DCA8 0037AC08 7C 00 04 AC */ sync 0
/* 8037DCAC 0037AC0C 7E 83 A3 78 */ mr r3, r20
/* 8037DCB0 0037AC10 7E A4 AB 78 */ mr r4, r21
/* 8037DCB4 0037AC14 48 00 0E E1 */ bl ICInvalidateRange
lbl_8037DCB8:
/* 8037DCB8 0037AC18 3C 80 80 38 */ lis r4, sub_8037dec4@ha
/* 8037DCBC 0037AC1C 3C 60 80 38 */ lis r3, __OSSetExceptionHandler@ha
/* 8037DCC0 0037AC20 3B E4 DE C4 */ addi r31, r4, sub_8037dec4@l
/* 8037DCC4 0037AC24 38 03 DE C8 */ addi r0, r3, __OSSetExceptionHandler@l
/* 8037DCC8 0037AC28 3B 9D 01 34 */ addi r28, r29, 0x134
/* 8037DCCC 0037AC2C 7F 7F 00 50 */ subf r27, r31, r0
/* 8037DCD0 0037AC30 3B 40 00 00 */ li r26, 0
/* 8037DCD4 0037AC34 48 00 00 04 */ b lbl_8037DCD8
lbl_8037DCD8:
/* 8037DCD8 0037AC38 3C 60 80 38 */ lis r3, lbl_8037DF50@ha
/* 8037DCDC 0037AC3C 3A A3 DF 50 */ addi r21, r3, lbl_8037DF50@l
/* 8037DCE0 0037AC40 3E C0 60 00 */ lis r22, 0x6000
/* 8037DCE4 0037AC44 48 00 00 04 */ b lbl_8037DCE8
lbl_8037DCE8:
/* 8037DCE8 0037AC48 48 00 01 48 */ b lbl_8037DE30
lbl_8037DCEC:
/* 8037DCEC 0037AC4C 80 6D AC C4 */ lwz r3, lbl_805A9884@sda21(r13)
/* 8037DCF0 0037AC50 28 03 00 00 */ cmplwi r3, 0
/* 8037DCF4 0037AC54 41 82 00 34 */ beq lbl_8037DD28
/* 8037DCF8 0037AC58 80 03 00 00 */ lwz r0, 0(r3)
/* 8037DCFC 0037AC5C 28 00 00 02 */ cmplwi r0, 2
/* 8037DD00 0037AC60 41 80 00 28 */ blt lbl_8037DD28
/* 8037DD04 0037AC64 7F 43 D3 78 */ mr r3, r26
/* 8037DD08 0037AC68 4B FF 1C 45 */ bl __DBIsExceptionMarked
/* 8037DD0C 0037AC6C 2C 03 00 00 */ cmpwi r3, 0
/* 8037DD10 0037AC70 41 82 00 18 */ beq lbl_8037DD28
/* 8037DD14 0037AC74 38 7D 01 8C */ addi r3, r29, 0x18c
/* 8037DD18 0037AC78 4C C6 31 82 */ crclr 6
/* 8037DD1C 0037AC7C 57 44 06 3E */ clrlwi r4, r26, 0x18
/* 8037DD20 0037AC80 4B FF 1C 49 */ bl DBPrintf
/* 8037DD24 0037AC84 48 00 01 04 */ b lbl_8037DE28
lbl_8037DD28:
/* 8037DD28 0037AC88 57 54 06 3E */ clrlwi r20, r26, 0x18
/* 8037DD2C 0037AC8C 7F 20 A3 78 */ or r0, r25, r20
/* 8037DD30 0037AC90 90 1E 00 00 */ stw r0, 0(r30)
/* 8037DD34 0037AC94 7F 43 D3 78 */ mr r3, r26
/* 8037DD38 0037AC98 4B FF 1C 15 */ bl __DBIsExceptionMarked
/* 8037DD3C 0037AC9C 2C 03 00 00 */ cmpwi r3, 0
/* 8037DD40 0037ACA0 41 82 00 28 */ beq lbl_8037DD68
/* 8037DD44 0037ACA4 7E 84 A3 78 */ mr r4, r20
/* 8037DD48 0037ACA8 4C C6 31 82 */ crclr 6
/* 8037DD4C 0037ACAC 38 7D 01 BC */ addi r3, r29, 0x1bc
/* 8037DD50 0037ACB0 4B FF 1C 19 */ bl DBPrintf
/* 8037DD54 0037ACB4 7E A3 AB 78 */ mr r3, r21
/* 8037DD58 0037ACB8 7F E4 FB 78 */ mr r4, r31
/* 8037DD5C 0037ACBC 7F 65 DB 78 */ mr r5, r27
/* 8037DD60 0037ACC0 4B C8 57 31 */ bl memcpy
/* 8037DD64 0037ACC4 48 00 00 90 */ b lbl_8037DDF4
lbl_8037DD68:
/* 8037DD68 0037ACC8 7E A4 AB 78 */ mr r4, r21
/* 8037DD6C 0037ACCC 48 00 00 04 */ b lbl_8037DD70
lbl_8037DD70:
/* 8037DD70 0037ACD0 28 1B 00 00 */ cmplwi r27, 0
/* 8037DD74 0037ACD4 38 7B 00 03 */ addi r3, r27, 3
/* 8037DD78 0037ACD8 54 63 F0 BE */ srwi r3, r3, 2
/* 8037DD7C 0037ACDC 40 81 00 78 */ ble lbl_8037DDF4
/* 8037DD80 0037ACE0 54 60 E8 FE */ srwi r0, r3, 3
/* 8037DD84 0037ACE4 28 00 00 00 */ cmplwi r0, 0
/* 8037DD88 0037ACE8 7C 09 03 A6 */ mtctr r0
/* 8037DD8C 0037ACEC 41 82 00 54 */ beq lbl_8037DDE0
/* 8037DD90 0037ACF0 48 00 00 04 */ b lbl_8037DD94
lbl_8037DD94:
/* 8037DD94 0037ACF4 92 C4 00 00 */ stw r22, 0(r4)
/* 8037DD98 0037ACF8 38 84 00 04 */ addi r4, r4, 4
/* 8037DD9C 0037ACFC 92 C4 00 00 */ stw r22, 0(r4)
/* 8037DDA0 0037AD00 38 84 00 04 */ addi r4, r4, 4
/* 8037DDA4 0037AD04 92 C4 00 00 */ stw r22, 0(r4)
/* 8037DDA8 0037AD08 38 84 00 04 */ addi r4, r4, 4
/* 8037DDAC 0037AD0C 92 C4 00 00 */ stw r22, 0(r4)
/* 8037DDB0 0037AD10 38 84 00 04 */ addi r4, r4, 4
/* 8037DDB4 0037AD14 92 C4 00 00 */ stw r22, 0(r4)
/* 8037DDB8 0037AD18 38 84 00 04 */ addi r4, r4, 4
/* 8037DDBC 0037AD1C 92 C4 00 00 */ stw r22, 0(r4)
/* 8037DDC0 0037AD20 38 84 00 04 */ addi r4, r4, 4
/* 8037DDC4 0037AD24 92 C4 00 00 */ stw r22, 0(r4)
/* 8037DDC8 0037AD28 38 84 00 04 */ addi r4, r4, 4
/* 8037DDCC 0037AD2C 92 C4 00 00 */ stw r22, 0(r4)
/* 8037DDD0 0037AD30 38 84 00 04 */ addi r4, r4, 4
/* 8037DDD4 0037AD34 42 00 FF C0 */ bdnz lbl_8037DD94
/* 8037DDD8 0037AD38 70 63 00 07 */ andi. r3, r3, 7
/* 8037DDDC 0037AD3C 41 82 00 18 */ beq lbl_8037DDF4
lbl_8037DDE0:
/* 8037DDE0 0037AD40 7C 69 03 A6 */ mtctr r3
/* 8037DDE4 0037AD44 48 00 00 04 */ b lbl_8037DDE8
lbl_8037DDE8:
/* 8037DDE8 0037AD48 92 C4 00 00 */ stw r22, 0(r4)
/* 8037DDEC 0037AD4C 38 84 00 04 */ addi r4, r4, 4
/* 8037DDF0 0037AD50 42 00 FF F8 */ bdnz lbl_8037DDE8
lbl_8037DDF4:
/* 8037DDF4 0037AD54 80 7C 00 00 */ lwz r3, 0(r28)
/* 8037DDF8 0037AD58 7F 04 C3 78 */ mr r4, r24
/* 8037DDFC 0037AD5C 7E E5 BB 78 */ mr r5, r23
/* 8037DE00 0037AD60 3E 83 80 00 */ addis r20, r3, 0x8000
/* 8037DE04 0037AD64 7E 83 A3 78 */ mr r3, r20
/* 8037DE08 0037AD68 4B C8 56 89 */ bl memcpy
/* 8037DE0C 0037AD6C 7E 83 A3 78 */ mr r3, r20
/* 8037DE10 0037AD70 7E E4 BB 78 */ mr r4, r23
/* 8037DE14 0037AD74 48 00 0C FD */ bl DCFlushRangeNoSync
/* 8037DE18 0037AD78 7C 00 04 AC */ sync 0
/* 8037DE1C 0037AD7C 7E 83 A3 78 */ mr r3, r20
/* 8037DE20 0037AD80 7E E4 BB 78 */ mr r4, r23
/* 8037DE24 0037AD84 48 00 0D 71 */ bl ICInvalidateRange
lbl_8037DE28:
/* 8037DE28 0037AD88 3B 9C 00 04 */ addi r28, r28, 4
/* 8037DE2C 0037AD8C 3B 5A 00 01 */ addi r26, r26, 1
lbl_8037DE30:
/* 8037DE30 0037AD90 57 40 06 3E */ clrlwi r0, r26, 0x18
/* 8037DE34 0037AD94 28 00 00 0F */ cmplwi r0, 0xf
/* 8037DE38 0037AD98 41 80 FE B4 */ blt lbl_8037DCEC
/* 8037DE3C 0037AD9C 3C 60 80 00 */ lis r3, 0x80003000@ha
/* 8037DE40 0037ADA0 38 03 30 00 */ addi r0, r3, 0x80003000@l
/* 8037DE44 0037ADA4 90 0D AC D4 */ stw r0, lbl_805A9894@sda21(r13)
/* 8037DE48 0037ADA8 3A 80 00 00 */ li r20, 0
/* 8037DE4C 0037ADAC 48 00 00 04 */ b lbl_8037DE50
lbl_8037DE50:
/* 8037DE50 0037ADB0 3C 60 80 38 */ lis r3, OSDefaultExceptionHandler@ha
/* 8037DE54 0037ADB4 3A E3 DF 94 */ addi r23, r3, OSDefaultExceptionHandler@l
/* 8037DE58 0037ADB8 48 00 00 04 */ b lbl_8037DE5C
lbl_8037DE5C:
/* 8037DE5C 0037ADBC 48 00 00 14 */ b lbl_8037DE70
lbl_8037DE60:
/* 8037DE60 0037ADC0 7E 83 A3 78 */ mr r3, r20
/* 8037DE64 0037ADC4 7E E4 BB 78 */ mr r4, r23
/* 8037DE68 0037ADC8 48 00 00 61 */ bl __OSSetExceptionHandler
/* 8037DE6C 0037ADCC 3A 94 00 01 */ addi r20, r20, 1
lbl_8037DE70:
/* 8037DE70 0037ADD0 56 80 06 3E */ clrlwi r0, r20, 0x18
/* 8037DE74 0037ADD4 28 00 00 0F */ cmplwi r0, 0xf
/* 8037DE78 0037ADD8 41 80 FF E8 */ blt lbl_8037DE60
/* 8037DE7C 0037ADDC 93 3E 00 00 */ stw r25, 0(r30)
/* 8037DE80 0037ADE0 38 7D 01 EC */ addi r3, r29, 0x1ec
/* 8037DE84 0037ADE4 4C C6 31 82 */ crclr 6
/* 8037DE88 0037ADE8 4B FF 1A E1 */ bl DBPrintf
/* 8037DE8C 0037ADEC BA 81 00 08 */ lmw r20, 8(r1)
/* 8037DE90 0037ADF0 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 8037DE94 0037ADF4 38 21 00 38 */ addi r1, r1, 0x38
/* 8037DE98 0037ADF8 7C 08 03 A6 */ mtlr r0
/* 8037DE9C 0037ADFC 4E 80 00 20 */ blr
.global __OSDBIntegrator
__OSDBIntegrator:
/* 8037DEA0 0037AE00 38 A0 00 40 */ li r5, 0x40
/* 8037DEA4 0037AE04 7C 68 02 A6 */ mflr r3
/* 8037DEA8 0037AE08 90 65 00 0C */ stw r3, 0xc(r5)
/* 8037DEAC 0037AE0C 80 65 00 08 */ lwz r3, 8(r5)
/* 8037DEB0 0037AE10 64 63 80 00 */ oris r3, r3, 0x8000
/* 8037DEB4 0037AE14 7C 68 03 A6 */ mtlr r3
/* 8037DEB8 0037AE18 38 60 00 30 */ li r3, 0x30
/* 8037DEBC 0037AE1C 7C 60 01 24 */ mtmsr r3
/* 8037DEC0 0037AE20 4E 80 00 20 */ blr
.global sub_8037dec4
sub_8037dec4:
/* 8037DEC4 0037AE24 48 00 00 63 */ bla 0x60
.global __OSSetExceptionHandler
__OSSetExceptionHandler:
/* 8037DEC8 0037AE28 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8037DECC 0037AE2C 80 6D AC D4 */ lwz r3, lbl_805A9894@sda21(r13)
/* 8037DED0 0037AE30 54 00 10 3A */ slwi r0, r0, 2
/* 8037DED4 0037AE34 7C A3 02 14 */ add r5, r3, r0
/* 8037DED8 0037AE38 80 65 00 00 */ lwz r3, 0(r5)
/* 8037DEDC 0037AE3C 90 85 00 00 */ stw r4, 0(r5)
/* 8037DEE0 0037AE40 4E 80 00 20 */ blr
.global __OSGetExceptionHandler
__OSGetExceptionHandler:
/* 8037DEE4 0037AE44 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8037DEE8 0037AE48 80 6D AC D4 */ lwz r3, lbl_805A9894@sda21(r13)
/* 8037DEEC 0037AE4C 54 00 10 3A */ slwi r0, r0, 2
/* 8037DEF0 0037AE50 7C 63 00 2E */ lwzx r3, r3, r0
/* 8037DEF4 0037AE54 4E 80 00 20 */ blr
.global sub_8037def8
sub_8037def8:
/* 8037DEF8 0037AE58 7C 90 43 A6 */ mtspr 0x110, r4
/* 8037DEFC 0037AE5C 80 80 00 C0 */ lwz r4, 0xc0(0)
/* 8037DF00 0037AE60 90 64 00 0C */ stw r3, 0xc(r4)
/* 8037DF04 0037AE64 7C 70 42 A6 */ mfspr r3, 0x110
/* 8037DF08 0037AE68 90 64 00 10 */ stw r3, 0x10(r4)
/* 8037DF0C 0037AE6C 90 A4 00 14 */ stw r5, 0x14(r4)
/* 8037DF10 0037AE70 A0 64 01 A2 */ lhz r3, 0x1a2(r4)
/* 8037DF14 0037AE74 60 63 00 02 */ ori r3, r3, 2
/* 8037DF18 0037AE78 B0 64 01 A2 */ sth r3, 0x1a2(r4)
/* 8037DF1C 0037AE7C 7C 60 00 26 */ mfcr r3
/* 8037DF20 0037AE80 90 64 00 80 */ stw r3, 0x80(r4)
/* 8037DF24 0037AE84 7C 68 02 A6 */ mflr r3
/* 8037DF28 0037AE88 90 64 00 84 */ stw r3, 0x84(r4)
/* 8037DF2C 0037AE8C 7C 69 02 A6 */ mfctr r3
/* 8037DF30 0037AE90 90 64 00 88 */ stw r3, 0x88(r4)
/* 8037DF34 0037AE94 7C 61 02 A6 */ mfxer r3
/* 8037DF38 0037AE98 90 64 00 8C */ stw r3, 0x8c(r4)
/* 8037DF3C 0037AE9C 7C 7A 02 A6 */ mfspr r3, 0x1a
/* 8037DF40 0037AEA0 90 64 01 98 */ stw r3, 0x198(r4)
/* 8037DF44 0037AEA4 7C 7B 02 A6 */ mfspr r3, 0x1b
/* 8037DF48 0037AEA8 90 64 01 9C */ stw r3, 0x19c(r4)
/* 8037DF4C 0037AEAC 7C 65 1B 78 */ mr r5, r3
lbl_8037DF50:
/* 8037DF50 0037AEB0 60 00 00 00 */ nop
/* 8037DF54 0037AEB4 7C 60 00 A6 */ mfmsr r3
/* 8037DF58 0037AEB8 60 63 00 30 */ ori r3, r3, 0x30
/* 8037DF5C 0037AEBC 7C 7B 03 A6 */ mtspr 0x1b, r3
lbl_8037DF60:
/* 8037DF60 0037AEC0 38 60 00 00 */ li r3, 0
/* 8037DF64 0037AEC4 80 80 00 D4 */ lwz r4, 0xd4(0)
/* 8037DF68 0037AEC8 54 A5 07 BD */ rlwinm. r5, r5, 0, 0x1e, 0x1e
/* 8037DF6C 0037AECC 40 82 00 14 */ bne lbl_8037DF80
/* 8037DF70 0037AED0 3C A0 80 38 */ lis r5, OSDefaultExceptionHandler@ha
/* 8037DF74 0037AED4 38 A5 DF 94 */ addi r5, r5, OSDefaultExceptionHandler@l
/* 8037DF78 0037AED8 7C BA 03 A6 */ mtspr 0x1a, r5
/* 8037DF7C 0037AEDC 4C 00 00 64 */ rfi
lbl_8037DF80:
/* 8037DF80 0037AEE0 54 65 15 BA */ rlwinm r5, r3, 2, 0x16, 0x1d
/* 8037DF84 0037AEE4 80 A5 30 00 */ lwz r5, 0x3000(r5)
/* 8037DF88 0037AEE8 7C BA 03 A6 */ mtspr 0x1a, r5
/* 8037DF8C 0037AEEC 4C 00 00 64 */ rfi
lbl_8037DF90:
/* 8037DF90 0037AEF0 60 00 00 00 */ nop
.global OSDefaultExceptionHandler
OSDefaultExceptionHandler:
/* 8037DF94 0037AEF4 90 04 00 00 */ stw r0, 0(r4)
/* 8037DF98 0037AEF8 90 24 00 04 */ stw r1, 4(r4)
/* 8037DF9C 0037AEFC 90 44 00 08 */ stw r2, 8(r4)
/* 8037DFA0 0037AF00 BC C4 00 18 */ stmw r6, 0x18(r4)
/* 8037DFA4 0037AF04 7C 11 E2 A6 */ mfspr r0, 0x391
/* 8037DFA8 0037AF08 90 04 01 A8 */ stw r0, 0x1a8(r4)
/* 8037DFAC 0037AF0C 7C 12 E2 A6 */ mfspr r0, 0x392
/* 8037DFB0 0037AF10 90 04 01 AC */ stw r0, 0x1ac(r4)
/* 8037DFB4 0037AF14 7C 13 E2 A6 */ mfspr r0, 0x393
/* 8037DFB8 0037AF18 90 04 01 B0 */ stw r0, 0x1b0(r4)
/* 8037DFBC 0037AF1C 7C 14 E2 A6 */ mfspr r0, 0x394
/* 8037DFC0 0037AF20 90 04 01 B4 */ stw r0, 0x1b4(r4)
/* 8037DFC4 0037AF24 7C 15 E2 A6 */ mfspr r0, 0x395
/* 8037DFC8 0037AF28 90 04 01 B8 */ stw r0, 0x1b8(r4)
/* 8037DFCC 0037AF2C 7C 16 E2 A6 */ mfspr r0, 0x396
/* 8037DFD0 0037AF30 90 04 01 BC */ stw r0, 0x1bc(r4)
/* 8037DFD4 0037AF34 7C 17 E2 A6 */ mfspr r0, 0x397
/* 8037DFD8 0037AF38 90 04 01 C0 */ stw r0, 0x1c0(r4)
/* 8037DFDC 0037AF3C 7C B2 02 A6 */ mfdsisr r5
/* 8037DFE0 0037AF40 7C D3 02 A6 */ mfdar r6
.global sub_8037dfe4
sub_8037dfe4:
/* 8037DFE4 0037AF44 94 21 FF F8 */ stwu r1, -8(r1)
/* 8037DFE8 0037AF48 48 00 1D 88 */ b __OSUnhandledException
.global __OSPSInit
__OSPSInit:
/* 8037DFEC 0037AF4C 7C 08 02 A6 */ mflr r0
/* 8037DFF0 0037AF50 90 01 00 04 */ stw r0, 4(r1)
/* 8037DFF4 0037AF54 94 21 FF F8 */ stwu r1, -8(r1)
/* 8037DFF8 0037AF58 4B FF 18 79 */ bl PPCMfhid2
/* 8037DFFC 0037AF5C 64 63 A0 00 */ oris r3, r3, 0xa000
/* 8037E000 0037AF60 4B FF 18 79 */ bl PPCMthid2
/* 8037E004 0037AF64 48 00 0B C5 */ bl ICFlashInvalidate
/* 8037E008 0037AF68 7C 00 04 AC */ sync 0
/* 8037E00C 0037AF6C 38 60 00 00 */ li r3, 0
/* 8037E010 0037AF70 7C 70 E3 A6 */ mtspr 0x390, r3
/* 8037E014 0037AF74 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8037E018 0037AF78 38 21 00 08 */ addi r1, r1, 8
/* 8037E01C 0037AF7C 7C 08 03 A6 */ mtlr r0
/* 8037E020 0037AF80 4E 80 00 20 */ blr
.global __OSGetDIConfig
__OSGetDIConfig:
/* 8037E024 0037AF84 3C 60 CC 00 */ lis r3, 0xCC006000@ha
/* 8037E028 0037AF88 38 63 60 00 */ addi r3, r3, 0xCC006000@l
/* 8037E02C 0037AF8C 80 03 00 24 */ lwz r0, 0x24(r3)
/* 8037E030 0037AF90 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 8037E034 0037AF94 4E 80 00 20 */ blr
.global OSRegisterVersion
OSRegisterVersion:
/* 8037E038 0037AF98 7C 08 02 A6 */ mflr r0
/* 8037E03C 0037AF9C 90 01 00 04 */ stw r0, 4(r1)
/* 8037E040 0037AFA0 94 21 FF F8 */ stwu r1, -8(r1)
/* 8037E044 0037AFA4 7C 64 1B 78 */ mr r4, r3
/* 8037E048 0037AFA8 4C C6 31 82 */ crclr 6
/* 8037E04C 0037AFAC 38 6D 9F 6C */ addi r3, r13, lbl_805A8B2C@sda21
/* 8037E050 0037AFB0 48 00 19 5D */ bl OSReport
/* 8037E054 0037AFB4 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8037E058 0037AFB8 38 21 00 08 */ addi r1, r1, 8
/* 8037E05C 0037AFBC 7C 08 03 A6 */ mtlr r0
/* 8037E060 0037AFC0 4E 80 00 20 */ blr

517
asm/Dolphin/OS/OSAlarm.s Normal file
View File

@ -0,0 +1,517 @@
.include "macros.inc"
.section .text, "ax"
.global OSInitAlarm
OSInitAlarm:
/* 8037E064 0037AFC4 7C 08 02 A6 */ mflr r0
/* 8037E068 0037AFC8 38 60 00 08 */ li r3, 8
/* 8037E06C 0037AFCC 90 01 00 04 */ stw r0, 4(r1)
/* 8037E070 0037AFD0 94 21 FF F8 */ stwu r1, -8(r1)
/* 8037E074 0037AFD4 4B FF FE 71 */ bl __OSGetExceptionHandler
/* 8037E078 0037AFD8 3C 80 80 38 */ lis r4, DecrementerExceptionHandler@ha
/* 8037E07C 0037AFDC 38 84 E7 40 */ addi r4, r4, DecrementerExceptionHandler@l
/* 8037E080 0037AFE0 7C 03 20 40 */ cmplw r3, r4
/* 8037E084 0037AFE4 41 82 00 1C */ beq lbl_8037E0A0
/* 8037E088 0037AFE8 38 00 00 00 */ li r0, 0
/* 8037E08C 0037AFEC 38 6D AC F0 */ addi r3, r13, lbl_805A98B0@sda21
/* 8037E090 0037AFF0 90 03 00 04 */ stw r0, 4(r3)
/* 8037E094 0037AFF4 38 60 00 08 */ li r3, 8
/* 8037E098 0037AFF8 90 0D AC F0 */ stw r0, lbl_805A98B0@sda21(r13)
/* 8037E09C 0037AFFC 4B FF FE 2D */ bl __OSSetExceptionHandler
lbl_8037E0A0:
/* 8037E0A0 0037B000 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8037E0A4 0037B004 38 21 00 08 */ addi r1, r1, 8
/* 8037E0A8 0037B008 7C 08 03 A6 */ mtlr r0
/* 8037E0AC 0037B00C 4E 80 00 20 */ blr
.global OSCreateAlarm
OSCreateAlarm:
/* 8037E0B0 0037B010 38 00 00 00 */ li r0, 0
/* 8037E0B4 0037B014 90 03 00 00 */ stw r0, 0(r3)
/* 8037E0B8 0037B018 90 03 00 04 */ stw r0, 4(r3)
/* 8037E0BC 0037B01C 4E 80 00 20 */ blr
.global InsertAlarm
InsertAlarm:
/* 8037E0C0 0037B020 7C 08 02 A6 */ mflr r0
/* 8037E0C4 0037B024 90 01 00 04 */ stw r0, 4(r1)
/* 8037E0C8 0037B028 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8037E0CC 0037B02C BF 21 00 24 */ stmw r25, 0x24(r1)
/* 8037E0D0 0037B030 3B 80 00 00 */ li r28, 0
/* 8037E0D4 0037B034 7C 7D 1B 78 */ mr r29, r3
/* 8037E0D8 0037B038 6F 84 80 00 */ xoris r4, r28, 0x8000
/* 8037E0DC 0037B03C 3B 25 00 00 */ addi r25, r5, 0
/* 8037E0E0 0037B040 3B C6 00 00 */ addi r30, r6, 0
/* 8037E0E4 0037B044 3B E7 00 00 */ addi r31, r7, 0
/* 8037E0E8 0037B048 80 03 00 18 */ lwz r0, 0x18(r3)
/* 8037E0EC 0037B04C 81 03 00 1C */ lwz r8, 0x1c(r3)
/* 8037E0F0 0037B050 6C 03 80 00 */ xoris r3, r0, 0x8000
/* 8037E0F4 0037B054 7C 08 E0 10 */ subfc r0, r8, r28
/* 8037E0F8 0037B058 7C 63 21 10 */ subfe r3, r3, r4
/* 8037E0FC 0037B05C 7C 64 21 10 */ subfe r3, r4, r4
/* 8037E100 0037B060 7C 63 00 D1 */ neg. r3, r3
/* 8037E104 0037B064 41 82 00 7C */ beq lbl_8037E180
/* 8037E108 0037B068 48 00 72 C1 */ bl __OSGetSystemTime
/* 8037E10C 0037B06C 80 FD 00 20 */ lwz r7, 0x20(r29)
/* 8037E110 0037B070 6C 65 80 00 */ xoris r5, r3, 0x8000
/* 8037E114 0037B074 81 1D 00 24 */ lwz r8, 0x24(r29)
/* 8037E118 0037B078 6C E6 80 00 */ xoris r6, r7, 0x8000
/* 8037E11C 0037B07C 7C 04 40 10 */ subfc r0, r4, r8
/* 8037E120 0037B080 7C A5 31 10 */ subfe r5, r5, r6
/* 8037E124 0037B084 7C A6 31 10 */ subfe r5, r6, r6
/* 8037E128 0037B088 7C A5 00 D1 */ neg. r5, r5
/* 8037E12C 0037B08C 3B C8 00 00 */ addi r30, r8, 0
/* 8037E130 0037B090 3B 27 00 00 */ addi r25, r7, 0
/* 8037E134 0037B094 41 82 00 4C */ beq lbl_8037E180
/* 8037E138 0037B098 83 7D 00 18 */ lwz r27, 0x18(r29)
/* 8037E13C 0037B09C 7C 88 20 10 */ subfc r4, r8, r4
/* 8037E140 0037B0A0 83 5D 00 1C */ lwz r26, 0x1c(r29)
/* 8037E144 0037B0A4 7C 67 19 10 */ subfe r3, r7, r3
/* 8037E148 0037B0A8 38 BB 00 00 */ addi r5, r27, 0
/* 8037E14C 0037B0AC 38 DA 00 00 */ addi r6, r26, 0
/* 8037E150 0037B0B0 48 00 BA 7D */ bl __div2i
/* 8037E154 0037B0B4 38 00 00 01 */ li r0, 1
/* 8037E158 0037B0B8 7C A4 00 14 */ addc r5, r4, r0
/* 8037E15C 0037B0BC 7C 9B 29 D6 */ mullw r4, r27, r5
/* 8037E160 0037B0C0 7C 1A 28 16 */ mulhwu r0, r26, r5
/* 8037E164 0037B0C4 7C 63 E1 14 */ adde r3, r3, r28
/* 8037E168 0037B0C8 7C 84 02 14 */ add r4, r4, r0
/* 8037E16C 0037B0CC 7C 1A 19 D6 */ mullw r0, r26, r3
/* 8037E170 0037B0D0 7C 7A 29 D6 */ mullw r3, r26, r5
/* 8037E174 0037B0D4 7C 04 02 14 */ add r0, r4, r0
/* 8037E178 0037B0D8 7F DE 18 14 */ addc r30, r30, r3
/* 8037E17C 0037B0DC 7F 39 01 14 */ adde r25, r25, r0
lbl_8037E180:
/* 8037E180 0037B0E0 93 FD 00 00 */ stw r31, 0(r29)
/* 8037E184 0037B0E4 6F 24 80 00 */ xoris r4, r25, 0x8000
/* 8037E188 0037B0E8 93 DD 00 0C */ stw r30, 0xc(r29)
/* 8037E18C 0037B0EC 93 3D 00 08 */ stw r25, 8(r29)
/* 8037E190 0037B0F0 80 CD AC F0 */ lwz r6, lbl_805A98B0@sda21(r13)
/* 8037E194 0037B0F4 48 00 00 C4 */ b lbl_8037E258
lbl_8037E198:
/* 8037E198 0037B0F8 80 06 00 08 */ lwz r0, 8(r6)
/* 8037E19C 0037B0FC 80 A6 00 0C */ lwz r5, 0xc(r6)
/* 8037E1A0 0037B100 6C 03 80 00 */ xoris r3, r0, 0x8000
/* 8037E1A4 0037B104 7C 05 F0 10 */ subfc r0, r5, r30
/* 8037E1A8 0037B108 7C 63 21 10 */ subfe r3, r3, r4
/* 8037E1AC 0037B10C 7C 64 21 10 */ subfe r3, r4, r4
/* 8037E1B0 0037B110 7C 63 00 D1 */ neg. r3, r3
/* 8037E1B4 0037B114 41 82 00 A0 */ beq lbl_8037E254
/* 8037E1B8 0037B118 80 06 00 10 */ lwz r0, 0x10(r6)
/* 8037E1BC 0037B11C 90 1D 00 10 */ stw r0, 0x10(r29)
/* 8037E1C0 0037B120 93 A6 00 10 */ stw r29, 0x10(r6)
/* 8037E1C4 0037B124 90 DD 00 14 */ stw r6, 0x14(r29)
/* 8037E1C8 0037B128 80 7D 00 10 */ lwz r3, 0x10(r29)
/* 8037E1CC 0037B12C 28 03 00 00 */ cmplwi r3, 0
/* 8037E1D0 0037B130 41 82 00 0C */ beq lbl_8037E1DC
/* 8037E1D4 0037B134 93 A3 00 14 */ stw r29, 0x14(r3)
/* 8037E1D8 0037B138 48 00 01 24 */ b lbl_8037E2FC
lbl_8037E1DC:
/* 8037E1DC 0037B13C 93 AD AC F0 */ stw r29, lbl_805A98B0@sda21(r13)
/* 8037E1E0 0037B140 48 00 71 E9 */ bl __OSGetSystemTime
/* 8037E1E4 0037B144 80 DD 00 0C */ lwz r6, 0xc(r29)
/* 8037E1E8 0037B148 38 E0 00 00 */ li r7, 0
/* 8037E1EC 0037B14C 80 1D 00 08 */ lwz r0, 8(r29)
/* 8037E1F0 0037B150 6C E5 80 00 */ xoris r5, r7, 0x8000
/* 8037E1F4 0037B154 7D 04 30 10 */ subfc r8, r4, r6
/* 8037E1F8 0037B158 7C 03 01 10 */ subfe r0, r3, r0
/* 8037E1FC 0037B15C 6C 06 80 00 */ xoris r6, r0, 0x8000
/* 8037E200 0037B160 7C 07 40 10 */ subfc r0, r7, r8
/* 8037E204 0037B164 7C A5 31 10 */ subfe r5, r5, r6
/* 8037E208 0037B168 7C A6 31 10 */ subfe r5, r6, r6
/* 8037E20C 0037B16C 7C A5 00 D1 */ neg. r5, r5
/* 8037E210 0037B170 41 82 00 10 */ beq lbl_8037E220
/* 8037E214 0037B174 38 60 00 00 */ li r3, 0
/* 8037E218 0037B178 4B FF 15 ED */ bl PPCMtdec
/* 8037E21C 0037B17C 48 00 00 E0 */ b lbl_8037E2FC
lbl_8037E220:
/* 8037E220 0037B180 3C 80 80 00 */ lis r4, 0x8000
/* 8037E224 0037B184 6C E3 80 00 */ xoris r3, r7, 0x8000
/* 8037E228 0037B188 7C 04 40 10 */ subfc r0, r4, r8
/* 8037E22C 0037B18C 7C 63 31 10 */ subfe r3, r3, r6
/* 8037E230 0037B190 7C 66 31 10 */ subfe r3, r6, r6
/* 8037E234 0037B194 7C 63 00 D1 */ neg. r3, r3
/* 8037E238 0037B198 41 82 00 10 */ beq lbl_8037E248
/* 8037E23C 0037B19C 7D 03 43 78 */ mr r3, r8
/* 8037E240 0037B1A0 4B FF 15 C5 */ bl PPCMtdec
/* 8037E244 0037B1A4 48 00 00 B8 */ b lbl_8037E2FC
lbl_8037E248:
/* 8037E248 0037B1A8 38 64 FF FF */ addi r3, r4, -1
/* 8037E24C 0037B1AC 4B FF 15 B9 */ bl PPCMtdec
/* 8037E250 0037B1B0 48 00 00 AC */ b lbl_8037E2FC
lbl_8037E254:
/* 8037E254 0037B1B4 80 C6 00 14 */ lwz r6, 0x14(r6)
lbl_8037E258:
/* 8037E258 0037B1B8 28 06 00 00 */ cmplwi r6, 0
/* 8037E25C 0037B1BC 40 82 FF 3C */ bne lbl_8037E198
/* 8037E260 0037B1C0 3B C0 00 00 */ li r30, 0
/* 8037E264 0037B1C4 93 DD 00 14 */ stw r30, 0x14(r29)
/* 8037E268 0037B1C8 38 6D AC F0 */ addi r3, r13, lbl_805A98B0@sda21
/* 8037E26C 0037B1CC 80 83 00 04 */ lwz r4, 4(r3)
/* 8037E270 0037B1D0 97 A3 00 04 */ stwu r29, 4(r3)
/* 8037E274 0037B1D4 28 04 00 00 */ cmplwi r4, 0
/* 8037E278 0037B1D8 90 9D 00 10 */ stw r4, 0x10(r29)
/* 8037E27C 0037B1DC 41 82 00 0C */ beq lbl_8037E288
/* 8037E280 0037B1E0 93 A4 00 14 */ stw r29, 0x14(r4)
/* 8037E284 0037B1E4 48 00 00 78 */ b lbl_8037E2FC
lbl_8037E288:
/* 8037E288 0037B1E8 93 A3 00 00 */ stw r29, 0(r3)
/* 8037E28C 0037B1EC 93 AD AC F0 */ stw r29, lbl_805A98B0@sda21(r13)
/* 8037E290 0037B1F0 48 00 71 39 */ bl __OSGetSystemTime
/* 8037E294 0037B1F4 80 DD 00 0C */ lwz r6, 0xc(r29)
/* 8037E298 0037B1F8 6F C5 80 00 */ xoris r5, r30, 0x8000
/* 8037E29C 0037B1FC 80 1D 00 08 */ lwz r0, 8(r29)
/* 8037E2A0 0037B200 7C E4 30 10 */ subfc r7, r4, r6
/* 8037E2A4 0037B204 7C 03 01 10 */ subfe r0, r3, r0
/* 8037E2A8 0037B208 6C 06 80 00 */ xoris r6, r0, 0x8000
/* 8037E2AC 0037B20C 7C 1E 38 10 */ subfc r0, r30, r7
/* 8037E2B0 0037B210 7C A5 31 10 */ subfe r5, r5, r6
/* 8037E2B4 0037B214 7C A6 31 10 */ subfe r5, r6, r6
/* 8037E2B8 0037B218 7C A5 00 D1 */ neg. r5, r5
/* 8037E2BC 0037B21C 41 82 00 10 */ beq lbl_8037E2CC
/* 8037E2C0 0037B220 38 60 00 00 */ li r3, 0
/* 8037E2C4 0037B224 4B FF 15 41 */ bl PPCMtdec
/* 8037E2C8 0037B228 48 00 00 34 */ b lbl_8037E2FC
lbl_8037E2CC:
/* 8037E2CC 0037B22C 3C 80 80 00 */ lis r4, 0x8000
/* 8037E2D0 0037B230 6F C3 80 00 */ xoris r3, r30, 0x8000
/* 8037E2D4 0037B234 7C 04 38 10 */ subfc r0, r4, r7
/* 8037E2D8 0037B238 7C 63 31 10 */ subfe r3, r3, r6
/* 8037E2DC 0037B23C 7C 66 31 10 */ subfe r3, r6, r6
/* 8037E2E0 0037B240 7C 63 00 D1 */ neg. r3, r3
/* 8037E2E4 0037B244 41 82 00 10 */ beq lbl_8037E2F4
/* 8037E2E8 0037B248 7C E3 3B 78 */ mr r3, r7
/* 8037E2EC 0037B24C 4B FF 15 19 */ bl PPCMtdec
/* 8037E2F0 0037B250 48 00 00 0C */ b lbl_8037E2FC
lbl_8037E2F4:
/* 8037E2F4 0037B254 38 64 FF FF */ addi r3, r4, -1
/* 8037E2F8 0037B258 4B FF 15 0D */ bl PPCMtdec
lbl_8037E2FC:
/* 8037E2FC 0037B25C BB 21 00 24 */ lmw r25, 0x24(r1)
/* 8037E300 0037B260 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8037E304 0037B264 38 21 00 40 */ addi r1, r1, 0x40
/* 8037E308 0037B268 7C 08 03 A6 */ mtlr r0
/* 8037E30C 0037B26C 4E 80 00 20 */ blr
.global OSSetAlarm
OSSetAlarm:
/* 8037E310 0037B270 7C 08 02 A6 */ mflr r0
/* 8037E314 0037B274 90 01 00 04 */ stw r0, 4(r1)
/* 8037E318 0037B278 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 8037E31C 0037B27C BF 61 00 24 */ stmw r27, 0x24(r1)
/* 8037E320 0037B280 3B 63 00 00 */ addi r27, r3, 0
/* 8037E324 0037B284 3B A5 00 00 */ addi r29, r5, 0
/* 8037E328 0037B288 3B 86 00 00 */ addi r28, r6, 0
/* 8037E32C 0037B28C 3B C7 00 00 */ addi r30, r7, 0
/* 8037E330 0037B290 48 00 33 31 */ bl OSDisableInterrupts
/* 8037E334 0037B294 38 00 00 00 */ li r0, 0
/* 8037E338 0037B298 90 1B 00 1C */ stw r0, 0x1c(r27)
/* 8037E33C 0037B29C 7C 7F 1B 78 */ mr r31, r3
/* 8037E340 0037B2A0 90 1B 00 18 */ stw r0, 0x18(r27)
/* 8037E344 0037B2A4 48 00 70 85 */ bl __OSGetSystemTime
/* 8037E348 0037B2A8 7C DC 20 14 */ addc r6, r28, r4
/* 8037E34C 0037B2AC 7C BD 19 14 */ adde r5, r29, r3
/* 8037E350 0037B2B0 38 7B 00 00 */ addi r3, r27, 0
/* 8037E354 0037B2B4 38 FE 00 00 */ addi r7, r30, 0
/* 8037E358 0037B2B8 4B FF FD 69 */ bl InsertAlarm
/* 8037E35C 0037B2BC 7F E3 FB 78 */ mr r3, r31
/* 8037E360 0037B2C0 48 00 33 29 */ bl OSRestoreInterrupts
/* 8037E364 0037B2C4 BB 61 00 24 */ lmw r27, 0x24(r1)
/* 8037E368 0037B2C8 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 8037E36C 0037B2CC 38 21 00 38 */ addi r1, r1, 0x38
/* 8037E370 0037B2D0 7C 08 03 A6 */ mtlr r0
/* 8037E374 0037B2D4 4E 80 00 20 */ blr
.global OSSetPeriodicAlarm
OSSetPeriodicAlarm:
/* 8037E378 0037B2D8 7C 08 02 A6 */ mflr r0
/* 8037E37C 0037B2DC 90 01 00 04 */ stw r0, 4(r1)
/* 8037E380 0037B2E0 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8037E384 0037B2E4 BF 41 00 28 */ stmw r26, 0x28(r1)
/* 8037E388 0037B2E8 3B 43 00 00 */ addi r26, r3, 0
/* 8037E38C 0037B2EC 3B 85 00 00 */ addi r28, r5, 0
/* 8037E390 0037B2F0 3B 66 00 00 */ addi r27, r6, 0
/* 8037E394 0037B2F4 3B A7 00 00 */ addi r29, r7, 0
/* 8037E398 0037B2F8 3B E8 00 00 */ addi r31, r8, 0
/* 8037E39C 0037B2FC 3B C9 00 00 */ addi r30, r9, 0
/* 8037E3A0 0037B300 48 00 32 C1 */ bl OSDisableInterrupts
/* 8037E3A4 0037B304 93 FA 00 1C */ stw r31, 0x1c(r26)
/* 8037E3A8 0037B308 7C 7F 1B 78 */ mr r31, r3
/* 8037E3AC 0037B30C 38 9B 00 00 */ addi r4, r27, 0
/* 8037E3B0 0037B310 93 BA 00 18 */ stw r29, 0x18(r26)
/* 8037E3B4 0037B314 38 7C 00 00 */ addi r3, r28, 0
/* 8037E3B8 0037B318 48 00 70 75 */ bl __OSTimeToSystemTime
/* 8037E3BC 0037B31C 90 9A 00 24 */ stw r4, 0x24(r26)
/* 8037E3C0 0037B320 38 FE 00 00 */ addi r7, r30, 0
/* 8037E3C4 0037B324 38 C0 00 00 */ li r6, 0
/* 8037E3C8 0037B328 90 7A 00 20 */ stw r3, 0x20(r26)
/* 8037E3CC 0037B32C 38 7A 00 00 */ addi r3, r26, 0
/* 8037E3D0 0037B330 38 A0 00 00 */ li r5, 0
/* 8037E3D4 0037B334 4B FF FC ED */ bl InsertAlarm
/* 8037E3D8 0037B338 7F E3 FB 78 */ mr r3, r31
/* 8037E3DC 0037B33C 48 00 32 AD */ bl OSRestoreInterrupts
/* 8037E3E0 0037B340 BB 41 00 28 */ lmw r26, 0x28(r1)
/* 8037E3E4 0037B344 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8037E3E8 0037B348 38 21 00 40 */ addi r1, r1, 0x40
/* 8037E3EC 0037B34C 7C 08 03 A6 */ mtlr r0
/* 8037E3F0 0037B350 4E 80 00 20 */ blr
.global OSCancelAlarm
OSCancelAlarm:
/* 8037E3F4 0037B354 7C 08 02 A6 */ mflr r0
/* 8037E3F8 0037B358 90 01 00 04 */ stw r0, 4(r1)
/* 8037E3FC 0037B35C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8037E400 0037B360 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8037E404 0037B364 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8037E408 0037B368 7C 7E 1B 78 */ mr r30, r3
/* 8037E40C 0037B36C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8037E410 0037B370 48 00 32 51 */ bl OSDisableInterrupts
/* 8037E414 0037B374 80 1E 00 00 */ lwz r0, 0(r30)
/* 8037E418 0037B378 3B E3 00 00 */ addi r31, r3, 0
/* 8037E41C 0037B37C 28 00 00 00 */ cmplwi r0, 0
/* 8037E420 0037B380 40 82 00 10 */ bne lbl_8037E430
/* 8037E424 0037B384 7F E3 FB 78 */ mr r3, r31
/* 8037E428 0037B388 48 00 32 61 */ bl OSRestoreInterrupts
/* 8037E42C 0037B38C 48 00 00 C8 */ b lbl_8037E4F4
lbl_8037E430:
/* 8037E430 0037B390 83 BE 00 14 */ lwz r29, 0x14(r30)
/* 8037E434 0037B394 28 1D 00 00 */ cmplwi r29, 0
/* 8037E438 0037B398 40 82 00 14 */ bne lbl_8037E44C
/* 8037E43C 0037B39C 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 8037E440 0037B3A0 38 6D AC F0 */ addi r3, r13, lbl_805A98B0@sda21
/* 8037E444 0037B3A4 90 03 00 04 */ stw r0, 4(r3)
/* 8037E448 0037B3A8 48 00 00 0C */ b lbl_8037E454
lbl_8037E44C:
/* 8037E44C 0037B3AC 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 8037E450 0037B3B0 90 1D 00 10 */ stw r0, 0x10(r29)
lbl_8037E454:
/* 8037E454 0037B3B4 80 7E 00 10 */ lwz r3, 0x10(r30)
/* 8037E458 0037B3B8 28 03 00 00 */ cmplwi r3, 0
/* 8037E45C 0037B3BC 41 82 00 0C */ beq lbl_8037E468
/* 8037E460 0037B3C0 93 A3 00 14 */ stw r29, 0x14(r3)
/* 8037E464 0037B3C4 48 00 00 80 */ b lbl_8037E4E4
lbl_8037E468:
/* 8037E468 0037B3C8 28 1D 00 00 */ cmplwi r29, 0
/* 8037E46C 0037B3CC 93 AD AC F0 */ stw r29, lbl_805A98B0@sda21(r13)
/* 8037E470 0037B3D0 41 82 00 74 */ beq lbl_8037E4E4
/* 8037E474 0037B3D4 48 00 6F 55 */ bl __OSGetSystemTime
/* 8037E478 0037B3D8 80 DD 00 0C */ lwz r6, 0xc(r29)
/* 8037E47C 0037B3DC 38 E0 00 00 */ li r7, 0
/* 8037E480 0037B3E0 80 1D 00 08 */ lwz r0, 8(r29)
/* 8037E484 0037B3E4 6C E5 80 00 */ xoris r5, r7, 0x8000
/* 8037E488 0037B3E8 7D 04 30 10 */ subfc r8, r4, r6
/* 8037E48C 0037B3EC 7C 03 01 10 */ subfe r0, r3, r0
/* 8037E490 0037B3F0 6C 06 80 00 */ xoris r6, r0, 0x8000
/* 8037E494 0037B3F4 7C 07 40 10 */ subfc r0, r7, r8
/* 8037E498 0037B3F8 7C A5 31 10 */ subfe r5, r5, r6
/* 8037E49C 0037B3FC 7C A6 31 10 */ subfe r5, r6, r6
/* 8037E4A0 0037B400 7C A5 00 D1 */ neg. r5, r5
/* 8037E4A4 0037B404 41 82 00 10 */ beq lbl_8037E4B4
/* 8037E4A8 0037B408 38 60 00 00 */ li r3, 0
/* 8037E4AC 0037B40C 4B FF 13 59 */ bl PPCMtdec
/* 8037E4B0 0037B410 48 00 00 34 */ b lbl_8037E4E4
lbl_8037E4B4:
/* 8037E4B4 0037B414 3C 80 80 00 */ lis r4, 0x8000
/* 8037E4B8 0037B418 6C E3 80 00 */ xoris r3, r7, 0x8000
/* 8037E4BC 0037B41C 7C 04 40 10 */ subfc r0, r4, r8
/* 8037E4C0 0037B420 7C 63 31 10 */ subfe r3, r3, r6
/* 8037E4C4 0037B424 7C 66 31 10 */ subfe r3, r6, r6
/* 8037E4C8 0037B428 7C 63 00 D1 */ neg. r3, r3
/* 8037E4CC 0037B42C 41 82 00 10 */ beq lbl_8037E4DC
/* 8037E4D0 0037B430 7D 03 43 78 */ mr r3, r8
/* 8037E4D4 0037B434 4B FF 13 31 */ bl PPCMtdec
/* 8037E4D8 0037B438 48 00 00 0C */ b lbl_8037E4E4
lbl_8037E4DC:
/* 8037E4DC 0037B43C 38 64 FF FF */ addi r3, r4, -1
/* 8037E4E0 0037B440 4B FF 13 25 */ bl PPCMtdec
lbl_8037E4E4:
/* 8037E4E4 0037B444 38 00 00 00 */ li r0, 0
/* 8037E4E8 0037B448 90 1E 00 00 */ stw r0, 0(r30)
/* 8037E4EC 0037B44C 7F E3 FB 78 */ mr r3, r31
/* 8037E4F0 0037B450 48 00 31 99 */ bl OSRestoreInterrupts
lbl_8037E4F4:
/* 8037E4F4 0037B454 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8037E4F8 0037B458 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8037E4FC 0037B45C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8037E500 0037B460 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8037E504 0037B464 38 21 00 20 */ addi r1, r1, 0x20
/* 8037E508 0037B468 7C 08 03 A6 */ mtlr r0
/* 8037E50C 0037B46C 4E 80 00 20 */ blr
.global DecrementerExceptionCallback
DecrementerExceptionCallback:
/* 8037E510 0037B470 7C 08 02 A6 */ mflr r0
/* 8037E514 0037B474 90 01 00 04 */ stw r0, 4(r1)
/* 8037E518 0037B478 94 21 FD 10 */ stwu r1, -0x2f0(r1)
/* 8037E51C 0037B47C 93 E1 02 EC */ stw r31, 0x2ec(r1)
/* 8037E520 0037B480 93 C1 02 E8 */ stw r30, 0x2e8(r1)
/* 8037E524 0037B484 93 A1 02 E4 */ stw r29, 0x2e4(r1)
/* 8037E528 0037B488 7C 9D 23 78 */ mr r29, r4
/* 8037E52C 0037B48C 93 81 02 E0 */ stw r28, 0x2e0(r1)
/* 8037E530 0037B490 48 00 6E 99 */ bl __OSGetSystemTime
/* 8037E534 0037B494 80 0D AC F0 */ lwz r0, lbl_805A98B0@sda21(r13)
/* 8037E538 0037B498 3B 84 00 00 */ addi r28, r4, 0
/* 8037E53C 0037B49C 3B C3 00 00 */ addi r30, r3, 0
/* 8037E540 0037B4A0 28 00 00 00 */ cmplwi r0, 0
/* 8037E544 0037B4A4 7C 1F 03 78 */ mr r31, r0
/* 8037E548 0037B4A8 40 82 00 0C */ bne lbl_8037E554
/* 8037E54C 0037B4AC 7F A3 EB 78 */ mr r3, r29
/* 8037E550 0037B4B0 48 00 0F B5 */ bl OSLoadContext
lbl_8037E554:
/* 8037E554 0037B4B4 80 1F 00 08 */ lwz r0, 8(r31)
/* 8037E558 0037B4B8 6F C4 80 00 */ xoris r4, r30, 0x8000
/* 8037E55C 0037B4BC 80 BF 00 0C */ lwz r5, 0xc(r31)
/* 8037E560 0037B4C0 6C 03 80 00 */ xoris r3, r0, 0x8000
/* 8037E564 0037B4C4 7C 05 E0 10 */ subfc r0, r5, r28
/* 8037E568 0037B4C8 7C 63 21 10 */ subfe r3, r3, r4
/* 8037E56C 0037B4CC 7C 64 21 10 */ subfe r3, r4, r4
/* 8037E570 0037B4D0 7C 63 00 D1 */ neg. r3, r3
/* 8037E574 0037B4D4 41 82 00 7C */ beq lbl_8037E5F0
/* 8037E578 0037B4D8 48 00 6E 51 */ bl __OSGetSystemTime
/* 8037E57C 0037B4DC 80 DF 00 0C */ lwz r6, 0xc(r31)
/* 8037E580 0037B4E0 38 E0 00 00 */ li r7, 0
/* 8037E584 0037B4E4 80 1F 00 08 */ lwz r0, 8(r31)
/* 8037E588 0037B4E8 6C E5 80 00 */ xoris r5, r7, 0x8000
/* 8037E58C 0037B4EC 7D 04 30 10 */ subfc r8, r4, r6
/* 8037E590 0037B4F0 7C 03 01 10 */ subfe r0, r3, r0
/* 8037E594 0037B4F4 6C 06 80 00 */ xoris r6, r0, 0x8000
/* 8037E598 0037B4F8 7C 07 40 10 */ subfc r0, r7, r8
/* 8037E59C 0037B4FC 7C A5 31 10 */ subfe r5, r5, r6
/* 8037E5A0 0037B500 7C A6 31 10 */ subfe r5, r6, r6
/* 8037E5A4 0037B504 7C A5 00 D1 */ neg. r5, r5
/* 8037E5A8 0037B508 41 82 00 10 */ beq lbl_8037E5B8
/* 8037E5AC 0037B50C 38 60 00 00 */ li r3, 0
/* 8037E5B0 0037B510 4B FF 12 55 */ bl PPCMtdec
/* 8037E5B4 0037B514 48 00 00 34 */ b lbl_8037E5E8
lbl_8037E5B8:
/* 8037E5B8 0037B518 3C 80 80 00 */ lis r4, 0x8000
/* 8037E5BC 0037B51C 6C E3 80 00 */ xoris r3, r7, 0x8000
/* 8037E5C0 0037B520 7C 04 40 10 */ subfc r0, r4, r8
/* 8037E5C4 0037B524 7C 63 31 10 */ subfe r3, r3, r6
/* 8037E5C8 0037B528 7C 66 31 10 */ subfe r3, r6, r6
/* 8037E5CC 0037B52C 7C 63 00 D1 */ neg. r3, r3
/* 8037E5D0 0037B530 41 82 00 10 */ beq lbl_8037E5E0
/* 8037E5D4 0037B534 7D 03 43 78 */ mr r3, r8
/* 8037E5D8 0037B538 4B FF 12 2D */ bl PPCMtdec
/* 8037E5DC 0037B53C 48 00 00 0C */ b lbl_8037E5E8
lbl_8037E5E0:
/* 8037E5E0 0037B540 38 64 FF FF */ addi r3, r4, -1
/* 8037E5E4 0037B544 4B FF 12 21 */ bl PPCMtdec
lbl_8037E5E8:
/* 8037E5E8 0037B548 7F A3 EB 78 */ mr r3, r29
/* 8037E5EC 0037B54C 48 00 0F 19 */ bl OSLoadContext
lbl_8037E5F0:
/* 8037E5F0 0037B550 80 7F 00 14 */ lwz r3, 0x14(r31)
/* 8037E5F4 0037B554 28 03 00 00 */ cmplwi r3, 0
/* 8037E5F8 0037B558 90 6D AC F0 */ stw r3, lbl_805A98B0@sda21(r13)
/* 8037E5FC 0037B55C 40 82 00 14 */ bne lbl_8037E610
/* 8037E600 0037B560 38 00 00 00 */ li r0, 0
/* 8037E604 0037B564 38 6D AC F0 */ addi r3, r13, lbl_805A98B0@sda21
/* 8037E608 0037B568 90 03 00 04 */ stw r0, 4(r3)
/* 8037E60C 0037B56C 48 00 00 0C */ b lbl_8037E618
lbl_8037E610:
/* 8037E610 0037B570 38 00 00 00 */ li r0, 0
/* 8037E614 0037B574 90 03 00 10 */ stw r0, 0x10(r3)
lbl_8037E618:
/* 8037E618 0037B578 83 DF 00 00 */ lwz r30, 0(r31)
/* 8037E61C 0037B57C 38 C0 00 00 */ li r6, 0
/* 8037E620 0037B580 6C C4 80 00 */ xoris r4, r6, 0x8000
/* 8037E624 0037B584 90 DF 00 00 */ stw r6, 0(r31)
/* 8037E628 0037B588 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 8037E62C 0037B58C 80 BF 00 1C */ lwz r5, 0x1c(r31)
/* 8037E630 0037B590 6C 03 80 00 */ xoris r3, r0, 0x8000
/* 8037E634 0037B594 7C 05 30 10 */ subfc r0, r5, r6
/* 8037E638 0037B598 7C 63 21 10 */ subfe r3, r3, r4
/* 8037E63C 0037B59C 7C 64 21 10 */ subfe r3, r4, r4
/* 8037E640 0037B5A0 7C 63 00 D1 */ neg. r3, r3
/* 8037E644 0037B5A4 41 82 00 18 */ beq lbl_8037E65C
/* 8037E648 0037B5A8 38 7F 00 00 */ addi r3, r31, 0
/* 8037E64C 0037B5AC 38 FE 00 00 */ addi r7, r30, 0
/* 8037E650 0037B5B0 38 C0 00 00 */ li r6, 0
/* 8037E654 0037B5B4 38 A0 00 00 */ li r5, 0
/* 8037E658 0037B5B8 4B FF FA 69 */ bl InsertAlarm
lbl_8037E65C:
/* 8037E65C 0037B5BC 83 8D AC F0 */ lwz r28, lbl_805A98B0@sda21(r13)
/* 8037E660 0037B5C0 28 1C 00 00 */ cmplwi r28, 0
/* 8037E664 0037B5C4 41 82 00 74 */ beq lbl_8037E6D8
/* 8037E668 0037B5C8 48 00 6D 61 */ bl __OSGetSystemTime
/* 8037E66C 0037B5CC 80 DC 00 0C */ lwz r6, 0xc(r28)
/* 8037E670 0037B5D0 38 E0 00 00 */ li r7, 0
/* 8037E674 0037B5D4 80 1C 00 08 */ lwz r0, 8(r28)
/* 8037E678 0037B5D8 6C E5 80 00 */ xoris r5, r7, 0x8000
/* 8037E67C 0037B5DC 7D 04 30 10 */ subfc r8, r4, r6
/* 8037E680 0037B5E0 7C 03 01 10 */ subfe r0, r3, r0
/* 8037E684 0037B5E4 6C 06 80 00 */ xoris r6, r0, 0x8000
/* 8037E688 0037B5E8 7C 07 40 10 */ subfc r0, r7, r8
/* 8037E68C 0037B5EC 7C A5 31 10 */ subfe r5, r5, r6
/* 8037E690 0037B5F0 7C A6 31 10 */ subfe r5, r6, r6
/* 8037E694 0037B5F4 7C A5 00 D1 */ neg. r5, r5
/* 8037E698 0037B5F8 41 82 00 10 */ beq lbl_8037E6A8
/* 8037E69C 0037B5FC 38 60 00 00 */ li r3, 0
/* 8037E6A0 0037B600 4B FF 11 65 */ bl PPCMtdec
/* 8037E6A4 0037B604 48 00 00 34 */ b lbl_8037E6D8
lbl_8037E6A8:
/* 8037E6A8 0037B608 3C 80 80 00 */ lis r4, 0x8000
/* 8037E6AC 0037B60C 6C E3 80 00 */ xoris r3, r7, 0x8000
/* 8037E6B0 0037B610 7C 04 40 10 */ subfc r0, r4, r8
/* 8037E6B4 0037B614 7C 63 31 10 */ subfe r3, r3, r6
/* 8037E6B8 0037B618 7C 66 31 10 */ subfe r3, r6, r6
/* 8037E6BC 0037B61C 7C 63 00 D1 */ neg. r3, r3
/* 8037E6C0 0037B620 41 82 00 10 */ beq lbl_8037E6D0
/* 8037E6C4 0037B624 7D 03 43 78 */ mr r3, r8
/* 8037E6C8 0037B628 4B FF 11 3D */ bl PPCMtdec
/* 8037E6CC 0037B62C 48 00 00 0C */ b lbl_8037E6D8
lbl_8037E6D0:
/* 8037E6D0 0037B630 38 64 FF FF */ addi r3, r4, -1
/* 8037E6D4 0037B634 4B FF 11 31 */ bl PPCMtdec
lbl_8037E6D8:
/* 8037E6D8 0037B638 48 00 5F 09 */ bl OSDisableScheduler
/* 8037E6DC 0037B63C 38 61 00 18 */ addi r3, r1, 0x18
/* 8037E6E0 0037B640 48 00 0F 35 */ bl OSClearContext
/* 8037E6E4 0037B644 38 61 00 18 */ addi r3, r1, 0x18
/* 8037E6E8 0037B648 48 00 0D 35 */ bl OSSetCurrentContext
/* 8037E6EC 0037B64C 39 9E 00 00 */ addi r12, r30, 0
/* 8037E6F0 0037B650 7D 88 03 A6 */ mtlr r12
/* 8037E6F4 0037B654 38 7F 00 00 */ addi r3, r31, 0
/* 8037E6F8 0037B658 38 9D 00 00 */ addi r4, r29, 0
/* 8037E6FC 0037B65C 4E 80 00 21 */ blrl
/* 8037E700 0037B660 38 61 00 18 */ addi r3, r1, 0x18
/* 8037E704 0037B664 48 00 0F 11 */ bl OSClearContext
/* 8037E708 0037B668 7F A3 EB 78 */ mr r3, r29
/* 8037E70C 0037B66C 48 00 0D 11 */ bl OSSetCurrentContext
/* 8037E710 0037B670 48 00 5F 11 */ bl OSEnableScheduler
/* 8037E714 0037B674 48 00 63 D9 */ bl __OSReschedule
/* 8037E718 0037B678 7F A3 EB 78 */ mr r3, r29
/* 8037E71C 0037B67C 48 00 0D E9 */ bl OSLoadContext
/* 8037E720 0037B680 80 01 02 F4 */ lwz r0, 0x2f4(r1)
/* 8037E724 0037B684 83 E1 02 EC */ lwz r31, 0x2ec(r1)
/* 8037E728 0037B688 83 C1 02 E8 */ lwz r30, 0x2e8(r1)
/* 8037E72C 0037B68C 83 A1 02 E4 */ lwz r29, 0x2e4(r1)
/* 8037E730 0037B690 83 81 02 E0 */ lwz r28, 0x2e0(r1)
/* 8037E734 0037B694 38 21 02 F0 */ addi r1, r1, 0x2f0
/* 8037E738 0037B698 7C 08 03 A6 */ mtlr r0
/* 8037E73C 0037B69C 4E 80 00 20 */ blr
.global DecrementerExceptionHandler
DecrementerExceptionHandler:
/* 8037E740 0037B6A0 90 04 00 00 */ stw r0, 0(r4)
/* 8037E744 0037B6A4 90 24 00 04 */ stw r1, 4(r4)
/* 8037E748 0037B6A8 90 44 00 08 */ stw r2, 8(r4)
/* 8037E74C 0037B6AC BC C4 00 18 */ stmw r6, 0x18(r4)
/* 8037E750 0037B6B0 7C 11 E2 A6 */ mfspr r0, 0x391
/* 8037E754 0037B6B4 90 04 01 A8 */ stw r0, 0x1a8(r4)
/* 8037E758 0037B6B8 7C 12 E2 A6 */ mfspr r0, 0x392
/* 8037E75C 0037B6BC 90 04 01 AC */ stw r0, 0x1ac(r4)
/* 8037E760 0037B6C0 7C 13 E2 A6 */ mfspr r0, 0x393
/* 8037E764 0037B6C4 90 04 01 B0 */ stw r0, 0x1b0(r4)
/* 8037E768 0037B6C8 7C 14 E2 A6 */ mfspr r0, 0x394
/* 8037E76C 0037B6CC 90 04 01 B4 */ stw r0, 0x1b4(r4)
/* 8037E770 0037B6D0 7C 15 E2 A6 */ mfspr r0, 0x395
/* 8037E774 0037B6D4 90 04 01 B8 */ stw r0, 0x1b8(r4)
/* 8037E778 0037B6D8 7C 16 E2 A6 */ mfspr r0, 0x396
/* 8037E77C 0037B6DC 90 04 01 BC */ stw r0, 0x1bc(r4)
/* 8037E780 0037B6E0 7C 17 E2 A6 */ mfspr r0, 0x397
/* 8037E784 0037B6E4 90 04 01 C0 */ stw r0, 0x1c0(r4)
/* 8037E788 0037B6E8 94 21 FF F8 */ stwu r1, -8(r1)
/* 8037E78C 0037B6EC 4B FF FD 84 */ b DecrementerExceptionCallback

39
asm/Dolphin/OS/OSArena.s Normal file
View File

@ -0,0 +1,39 @@
.include "macros.inc"
.section .text, "ax"
.global OSGetArenaHi
OSGetArenaHi:
/* 8037E790 0037B6F0 80 6D AC F8 */ lwz r3, lbl_805A98B8@sda21(r13)
/* 8037E794 0037B6F4 4E 80 00 20 */ blr
.global OSGetArenaLo
OSGetArenaLo:
/* 8037E798 0037B6F8 80 6D 9F 70 */ lwz r3, lbl_805A8B30@sda21(r13)
/* 8037E79C 0037B6FC 4E 80 00 20 */ blr
.global OSSetArenaHi
OSSetArenaHi:
/* 8037E7A0 0037B700 90 6D AC F8 */ stw r3, lbl_805A98B8@sda21(r13)
/* 8037E7A4 0037B704 4E 80 00 20 */ blr
.global OSSetArenaLo
OSSetArenaLo:
/* 8037E7A8 0037B708 90 6D 9F 70 */ stw r3, lbl_805A8B30@sda21(r13)
/* 8037E7AC 0037B70C 4E 80 00 20 */ blr
.global OSAllocFromArenaLo
OSAllocFromArenaLo:
/* 8037E7B0 0037B710 80 0D 9F 70 */ lwz r0, lbl_805A8B30@sda21(r13)
/* 8037E7B4 0037B714 38 84 FF FF */ addi r4, r4, -1
/* 8037E7B8 0037B718 7C 85 20 F8 */ nor r5, r4, r4
/* 8037E7BC 0037B71C 7C 00 22 14 */ add r0, r0, r4
/* 8037E7C0 0037B720 7C A6 00 38 */ and r6, r5, r0
/* 8037E7C4 0037B724 7C 06 1A 14 */ add r0, r6, r3
/* 8037E7C8 0037B728 7C 00 22 14 */ add r0, r0, r4
/* 8037E7CC 0037B72C 7C A0 00 38 */ and r0, r5, r0
/* 8037E7D0 0037B730 90 0D 9F 70 */ stw r0, lbl_805A8B30@sda21(r13)
/* 8037E7D4 0037B734 7C C3 33 78 */ mr r3, r6
/* 8037E7D8 0037B738 4E 80 00 20 */ blr

View File

@ -0,0 +1,193 @@
.include "macros.inc"
.section .text, "ax"
.global __OSInitAudioSystem
__OSInitAudioSystem:
/* 8037E7DC 0037B73C 7C 08 02 A6 */ mflr r0
/* 8037E7E0 0037B740 90 01 00 04 */ stw r0, 4(r1)
/* 8037E7E4 0037B744 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8037E7E8 0037B748 BF 21 00 14 */ stmw r25, 0x14(r1)
/* 8037E7EC 0037B74C 4B FF FF A5 */ bl OSGetArenaHi
/* 8037E7F0 0037B750 3C 80 81 00 */ lis r4, 0x8100
/* 8037E7F4 0037B754 38 A0 00 80 */ li r5, 0x80
/* 8037E7F8 0037B758 38 63 FF 80 */ addi r3, r3, -128
/* 8037E7FC 0037B75C 4B C8 4C 95 */ bl memcpy
/* 8037E800 0037B760 3C 60 80 3F */ lis r3, lbl_803F0FA8@ha
/* 8037E804 0037B764 38 83 0F A8 */ addi r4, r3, lbl_803F0FA8@l
/* 8037E808 0037B768 3C 60 81 00 */ lis r3, 0x8100
/* 8037E80C 0037B76C 38 A0 00 80 */ li r5, 0x80
/* 8037E810 0037B770 4B C8 4C 81 */ bl memcpy
/* 8037E814 0037B774 3C 60 81 00 */ lis r3, 0x8100
/* 8037E818 0037B778 38 80 00 80 */ li r4, 0x80
/* 8037E81C 0037B77C 48 00 02 95 */ bl DCFlushRange
/* 8037E820 0037B780 3C 60 CC 00 */ lis r3, 0xCC005000@ha
/* 8037E824 0037B784 38 63 50 00 */ addi r3, r3, 0xCC005000@l
/* 8037E828 0037B788 38 00 00 43 */ li r0, 0x43
/* 8037E82C 0037B78C B0 03 00 12 */ sth r0, 0x12(r3)
/* 8037E830 0037B790 3B E3 00 0A */ addi r31, r3, 0xa
/* 8037E834 0037B794 38 00 08 AC */ li r0, 0x8ac
/* 8037E838 0037B798 B0 03 00 0A */ sth r0, 0xa(r3)
/* 8037E83C 0037B79C A0 03 00 0A */ lhz r0, 0xa(r3)
/* 8037E840 0037B7A0 60 00 00 01 */ ori r0, r0, 1
/* 8037E844 0037B7A4 B0 03 00 0A */ sth r0, 0xa(r3)
lbl_8037E848:
/* 8037E848 0037B7A8 A0 1F 00 00 */ lhz r0, 0(r31)
/* 8037E84C 0037B7AC 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8037E850 0037B7B0 40 82 FF F8 */ bne lbl_8037E848
/* 8037E854 0037B7B4 38 00 00 00 */ li r0, 0
/* 8037E858 0037B7B8 3C 80 CC 00 */ lis r4, 0xCC005000@ha
/* 8037E85C 0037B7BC B0 04 50 00 */ sth r0, 0xCC005000@l(r4)
lbl_8037E860:
/* 8037E860 0037B7C0 3B C4 50 00 */ addi r30, r4, 0x5000
/* 8037E864 0037B7C4 A4 7E 00 04 */ lhzu r3, 4(r30)
/* 8037E868 0037B7C8 3B A4 50 00 */ addi r29, r4, 0x5000
/* 8037E86C 0037B7CC A4 1D 00 06 */ lhzu r0, 6(r29)
/* 8037E870 0037B7D0 50 60 80 1E */ rlwimi r0, r3, 0x10, 0, 0xf
/* 8037E874 0037B7D4 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0
/* 8037E878 0037B7D8 40 82 FF E8 */ bne lbl_8037E860
/* 8037E87C 0037B7DC 3C 60 CC 00 */ lis r3, 0xCC005000@ha
/* 8037E880 0037B7E0 3C 00 01 00 */ lis r0, 0x100
/* 8037E884 0037B7E4 3B 63 50 00 */ addi r27, r3, 0xCC005000@l
/* 8037E888 0037B7E8 94 1B 00 20 */ stwu r0, 0x20(r27)
/* 8037E88C 0037B7EC 38 00 00 00 */ li r0, 0
/* 8037E890 0037B7F0 3B 43 50 00 */ addi r26, r3, 0x5000
/* 8037E894 0037B7F4 94 1A 00 24 */ stwu r0, 0x24(r26)
/* 8037E898 0037B7F8 38 00 00 20 */ li r0, 0x20
/* 8037E89C 0037B7FC 3B 23 50 00 */ addi r25, r3, 0x5000
/* 8037E8A0 0037B800 94 19 00 28 */ stwu r0, 0x28(r25)
/* 8037E8A4 0037B804 A0 7F 00 00 */ lhz r3, 0(r31)
/* 8037E8A8 0037B808 48 00 00 08 */ b lbl_8037E8B0
lbl_8037E8AC:
/* 8037E8AC 0037B80C A0 7F 00 00 */ lhz r3, 0(r31)
lbl_8037E8B0:
/* 8037E8B0 0037B810 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a
/* 8037E8B4 0037B814 41 82 FF F8 */ beq lbl_8037E8AC
/* 8037E8B8 0037B818 B0 7F 00 00 */ sth r3, 0(r31)
/* 8037E8BC 0037B81C 48 00 6B 05 */ bl OSGetTick
/* 8037E8C0 0037B820 7C 7C 1B 78 */ mr r28, r3
lbl_8037E8C4:
/* 8037E8C4 0037B824 48 00 6A FD */ bl OSGetTick
/* 8037E8C8 0037B828 7C 1C 18 50 */ subf r0, r28, r3
/* 8037E8CC 0037B82C 2C 00 08 92 */ cmpwi r0, 0x892
/* 8037E8D0 0037B830 41 80 FF F4 */ blt lbl_8037E8C4
/* 8037E8D4 0037B834 3C 00 01 00 */ lis r0, 0x100
/* 8037E8D8 0037B838 90 1B 00 00 */ stw r0, 0(r27)
/* 8037E8DC 0037B83C 38 60 00 00 */ li r3, 0
/* 8037E8E0 0037B840 38 00 00 20 */ li r0, 0x20
/* 8037E8E4 0037B844 90 7A 00 00 */ stw r3, 0(r26)
/* 8037E8E8 0037B848 90 19 00 00 */ stw r0, 0(r25)
/* 8037E8EC 0037B84C A0 7F 00 00 */ lhz r3, 0(r31)
/* 8037E8F0 0037B850 48 00 00 08 */ b lbl_8037E8F8
lbl_8037E8F4:
/* 8037E8F4 0037B854 A0 7F 00 00 */ lhz r3, 0(r31)
lbl_8037E8F8:
/* 8037E8F8 0037B858 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a
/* 8037E8FC 0037B85C 41 82 FF F8 */ beq lbl_8037E8F4
/* 8037E900 0037B860 B0 7F 00 00 */ sth r3, 0(r31)
/* 8037E904 0037B864 A0 1F 00 00 */ lhz r0, 0(r31)
/* 8037E908 0037B868 54 00 05 66 */ rlwinm r0, r0, 0, 0x15, 0x13
/* 8037E90C 0037B86C B0 1F 00 00 */ sth r0, 0(r31)
lbl_8037E910:
/* 8037E910 0037B870 A0 1F 00 00 */ lhz r0, 0(r31)
/* 8037E914 0037B874 54 00 05 6B */ rlwinm. r0, r0, 0, 0x15, 0x15
/* 8037E918 0037B878 40 82 FF F8 */ bne lbl_8037E910
/* 8037E91C 0037B87C A0 1F 00 00 */ lhz r0, 0(r31)
/* 8037E920 0037B880 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
/* 8037E924 0037B884 B0 1F 00 00 */ sth r0, 0(r31)
/* 8037E928 0037B888 A0 1E 00 00 */ lhz r0, 0(r30)
/* 8037E92C 0037B88C 48 00 00 08 */ b lbl_8037E934
lbl_8037E930:
/* 8037E930 0037B890 A0 1E 00 00 */ lhz r0, 0(r30)
lbl_8037E934:
/* 8037E934 0037B894 54 05 04 3E */ clrlwi r5, r0, 0x10
/* 8037E938 0037B898 54 00 04 21 */ rlwinm. r0, r0, 0, 0x10, 0x10
/* 8037E93C 0037B89C 41 82 FF F4 */ beq lbl_8037E930
/* 8037E940 0037B8A0 A0 1F 00 00 */ lhz r0, 0(r31)
/* 8037E944 0037B8A4 A0 9D 00 00 */ lhz r4, 0(r29)
/* 8037E948 0037B8A8 60 00 00 04 */ ori r0, r0, 4
/* 8037E94C 0037B8AC B0 1F 00 00 */ sth r0, 0(r31)
/* 8037E950 0037B8B0 38 00 08 AC */ li r0, 0x8ac
/* 8037E954 0037B8B4 B0 1F 00 00 */ sth r0, 0(r31)
/* 8037E958 0037B8B8 A0 1F 00 00 */ lhz r0, 0(r31)
/* 8037E95C 0037B8BC 60 00 00 01 */ ori r0, r0, 1
/* 8037E960 0037B8C0 B0 1F 00 00 */ sth r0, 0(r31)
lbl_8037E964:
/* 8037E964 0037B8C4 A0 1F 00 00 */ lhz r0, 0(r31)
/* 8037E968 0037B8C8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8037E96C 0037B8CC 40 82 FF F8 */ bne lbl_8037E964
/* 8037E970 0037B8D0 4B FF FE 21 */ bl OSGetArenaHi
/* 8037E974 0037B8D4 38 83 FF 80 */ addi r4, r3, -128
/* 8037E978 0037B8D8 3C 60 81 00 */ lis r3, 0x8100
/* 8037E97C 0037B8DC 38 A0 00 80 */ li r5, 0x80
/* 8037E980 0037B8E0 4B C8 4B 11 */ bl memcpy
/* 8037E984 0037B8E4 BB 21 00 14 */ lmw r25, 0x14(r1)
/* 8037E988 0037B8E8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8037E98C 0037B8EC 38 21 00 30 */ addi r1, r1, 0x30
/* 8037E990 0037B8F0 7C 08 03 A6 */ mtlr r0
/* 8037E994 0037B8F4 4E 80 00 20 */ blr
.global __OSStopAudioSystem
__OSStopAudioSystem:
/* 8037E998 0037B8F8 7C 08 02 A6 */ mflr r0
/* 8037E99C 0037B8FC 3C 60 CC 00 */ lis r3, 0xCC005000@ha
/* 8037E9A0 0037B900 90 01 00 04 */ stw r0, 4(r1)
/* 8037E9A4 0037B904 38 00 08 04 */ li r0, 0x804
/* 8037E9A8 0037B908 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8037E9AC 0037B90C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8037E9B0 0037B910 3B E3 50 00 */ addi r31, r3, 0xCC005000@l
/* 8037E9B4 0037B914 38 63 50 00 */ addi r3, r3, 0x5000
/* 8037E9B8 0037B918 93 C1 00 08 */ stw r30, 8(r1)
/* 8037E9BC 0037B91C B0 1F 00 0A */ sth r0, 0xa(r31)
/* 8037E9C0 0037B920 A0 03 00 36 */ lhz r0, 0x36(r3)
/* 8037E9C4 0037B924 54 00 04 5E */ rlwinm r0, r0, 0, 0x11, 0xf
/* 8037E9C8 0037B928 B0 03 00 36 */ sth r0, 0x36(r3)
/* 8037E9CC 0037B92C A4 1F 00 0A */ lhzu r0, 0xa(r31)
/* 8037E9D0 0037B930 48 00 00 08 */ b lbl_8037E9D8
lbl_8037E9D4:
/* 8037E9D4 0037B934 A0 1F 00 00 */ lhz r0, 0(r31)
lbl_8037E9D8:
/* 8037E9D8 0037B938 54 00 05 6B */ rlwinm. r0, r0, 0, 0x15, 0x15
/* 8037E9DC 0037B93C 40 82 FF F8 */ bne lbl_8037E9D4
/* 8037E9E0 0037B940 A0 1F 00 00 */ lhz r0, 0(r31)
/* 8037E9E4 0037B944 48 00 00 08 */ b lbl_8037E9EC
lbl_8037E9E8:
/* 8037E9E8 0037B948 A0 1F 00 00 */ lhz r0, 0(r31)
lbl_8037E9EC:
/* 8037E9EC 0037B94C 54 00 05 AD */ rlwinm. r0, r0, 0, 0x16, 0x16
/* 8037E9F0 0037B950 40 82 FF F8 */ bne lbl_8037E9E8
/* 8037E9F4 0037B954 38 00 08 AC */ li r0, 0x8ac
/* 8037E9F8 0037B958 3C 60 CC 00 */ lis r3, 0xCC005000@ha
/* 8037E9FC 0037B95C B0 1F 00 00 */ sth r0, 0(r31)
/* 8037EA00 0037B960 38 00 00 00 */ li r0, 0
/* 8037EA04 0037B964 B0 03 50 00 */ sth r0, 0xCC005000@l(r3)
/* 8037EA08 0037B968 38 83 50 00 */ addi r4, r3, 0x5000
lbl_8037EA0C:
/* 8037EA0C 0037B96C A0 64 00 04 */ lhz r3, 4(r4)
/* 8037EA10 0037B970 A0 04 00 06 */ lhz r0, 6(r4)
/* 8037EA14 0037B974 50 60 80 1E */ rlwimi r0, r3, 0x10, 0, 0xf
/* 8037EA18 0037B978 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0
/* 8037EA1C 0037B97C 40 82 FF F0 */ bne lbl_8037EA0C
/* 8037EA20 0037B980 48 00 69 A1 */ bl OSGetTick
/* 8037EA24 0037B984 7C 7E 1B 78 */ mr r30, r3
lbl_8037EA28:
/* 8037EA28 0037B988 48 00 69 99 */ bl OSGetTick
/* 8037EA2C 0037B98C 7C 1E 18 50 */ subf r0, r30, r3
/* 8037EA30 0037B990 2C 00 00 2C */ cmpwi r0, 0x2c
/* 8037EA34 0037B994 41 80 FF F4 */ blt lbl_8037EA28
/* 8037EA38 0037B998 A0 1F 00 00 */ lhz r0, 0(r31)
/* 8037EA3C 0037B99C 60 00 00 01 */ ori r0, r0, 1
/* 8037EA40 0037B9A0 B0 1F 00 00 */ sth r0, 0(r31)
/* 8037EA44 0037B9A4 A0 1F 00 00 */ lhz r0, 0(r31)
/* 8037EA48 0037B9A8 48 00 00 08 */ b lbl_8037EA50
lbl_8037EA4C:
/* 8037EA4C 0037B9AC A0 1F 00 00 */ lhz r0, 0(r31)
lbl_8037EA50:
/* 8037EA50 0037B9B0 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8037EA54 0037B9B4 40 82 FF F8 */ bne lbl_8037EA4C
/* 8037EA58 0037B9B8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8037EA5C 0037B9BC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8037EA60 0037B9C0 83 C1 00 08 */ lwz r30, 8(r1)
/* 8037EA64 0037B9C4 38 21 00 10 */ addi r1, r1, 0x10
/* 8037EA68 0037B9C8 7C 08 03 A6 */ mtlr r0
/* 8037EA6C 0037B9CC 4E 80 00 20 */ blr

579
asm/Dolphin/OS/OSCache.s Normal file
View File

@ -0,0 +1,579 @@
.include "macros.inc"
.section .text, "ax"
.global DCEnable
DCEnable:
/* 8037EA70 0037B9D0 7C 00 04 AC */ sync 0
/* 8037EA74 0037B9D4 7C 70 FA A6 */ mfspr r3, 0x3f0
/* 8037EA78 0037B9D8 60 63 40 00 */ ori r3, r3, 0x4000
/* 8037EA7C 0037B9DC 7C 70 FB A6 */ mtspr 0x3f0, r3
/* 8037EA80 0037B9E0 4E 80 00 20 */ blr
.global DCInvalidateRange
DCInvalidateRange:
/* 8037EA84 0037B9E4 28 04 00 00 */ cmplwi r4, 0
/* 8037EA88 0037B9E8 4C 81 00 20 */ blelr
/* 8037EA8C 0037B9EC 54 65 06 FE */ clrlwi r5, r3, 0x1b
/* 8037EA90 0037B9F0 7C 84 2A 14 */ add r4, r4, r5
/* 8037EA94 0037B9F4 38 84 00 1F */ addi r4, r4, 0x1f
/* 8037EA98 0037B9F8 54 84 D9 7E */ srwi r4, r4, 5
/* 8037EA9C 0037B9FC 7C 89 03 A6 */ mtctr r4
lbl_8037EAA0:
/* 8037EAA0 0037BA00 7C 00 1B AC */ dcbi 0, r3
/* 8037EAA4 0037BA04 38 63 00 20 */ addi r3, r3, 0x20
/* 8037EAA8 0037BA08 42 00 FF F8 */ bdnz lbl_8037EAA0
/* 8037EAAC 0037BA0C 4E 80 00 20 */ blr
.global DCFlushRange
DCFlushRange:
/* 8037EAB0 0037BA10 28 04 00 00 */ cmplwi r4, 0
/* 8037EAB4 0037BA14 4C 81 00 20 */ blelr
/* 8037EAB8 0037BA18 54 65 06 FE */ clrlwi r5, r3, 0x1b
/* 8037EABC 0037BA1C 7C 84 2A 14 */ add r4, r4, r5
/* 8037EAC0 0037BA20 38 84 00 1F */ addi r4, r4, 0x1f
/* 8037EAC4 0037BA24 54 84 D9 7E */ srwi r4, r4, 5
/* 8037EAC8 0037BA28 7C 89 03 A6 */ mtctr r4
lbl_8037EACC:
/* 8037EACC 0037BA2C 7C 00 18 AC */ dcbf 0, r3
/* 8037EAD0 0037BA30 38 63 00 20 */ addi r3, r3, 0x20
/* 8037EAD4 0037BA34 42 00 FF F8 */ bdnz lbl_8037EACC
/* 8037EAD8 0037BA38 44 00 00 02 */ sc
/* 8037EADC 0037BA3C 4E 80 00 20 */ blr
.global DCStoreRange
DCStoreRange:
/* 8037EAE0 0037BA40 28 04 00 00 */ cmplwi r4, 0
/* 8037EAE4 0037BA44 4C 81 00 20 */ blelr
/* 8037EAE8 0037BA48 54 65 06 FE */ clrlwi r5, r3, 0x1b
/* 8037EAEC 0037BA4C 7C 84 2A 14 */ add r4, r4, r5
/* 8037EAF0 0037BA50 38 84 00 1F */ addi r4, r4, 0x1f
/* 8037EAF4 0037BA54 54 84 D9 7E */ srwi r4, r4, 5
/* 8037EAF8 0037BA58 7C 89 03 A6 */ mtctr r4
lbl_8037EAFC:
/* 8037EAFC 0037BA5C 7C 00 18 6C */ dcbst 0, r3
/* 8037EB00 0037BA60 38 63 00 20 */ addi r3, r3, 0x20
/* 8037EB04 0037BA64 42 00 FF F8 */ bdnz lbl_8037EAFC
/* 8037EB08 0037BA68 44 00 00 02 */ sc
/* 8037EB0C 0037BA6C 4E 80 00 20 */ blr
.global DCFlushRangeNoSync
DCFlushRangeNoSync:
/* 8037EB10 0037BA70 28 04 00 00 */ cmplwi r4, 0
/* 8037EB14 0037BA74 4C 81 00 20 */ blelr
/* 8037EB18 0037BA78 54 65 06 FE */ clrlwi r5, r3, 0x1b
/* 8037EB1C 0037BA7C 7C 84 2A 14 */ add r4, r4, r5
/* 8037EB20 0037BA80 38 84 00 1F */ addi r4, r4, 0x1f
/* 8037EB24 0037BA84 54 84 D9 7E */ srwi r4, r4, 5
/* 8037EB28 0037BA88 7C 89 03 A6 */ mtctr r4
lbl_8037EB2C:
/* 8037EB2C 0037BA8C 7C 00 18 AC */ dcbf 0, r3
/* 8037EB30 0037BA90 38 63 00 20 */ addi r3, r3, 0x20
/* 8037EB34 0037BA94 42 00 FF F8 */ bdnz lbl_8037EB2C
/* 8037EB38 0037BA98 4E 80 00 20 */ blr
.global DCStoreRangeNoSync
DCStoreRangeNoSync:
/* 8037EB3C 0037BA9C 28 04 00 00 */ cmplwi r4, 0
/* 8037EB40 0037BAA0 4C 81 00 20 */ blelr
/* 8037EB44 0037BAA4 54 65 06 FE */ clrlwi r5, r3, 0x1b
/* 8037EB48 0037BAA8 7C 84 2A 14 */ add r4, r4, r5
/* 8037EB4C 0037BAAC 38 84 00 1F */ addi r4, r4, 0x1f
/* 8037EB50 0037BAB0 54 84 D9 7E */ srwi r4, r4, 5
/* 8037EB54 0037BAB4 7C 89 03 A6 */ mtctr r4
lbl_8037EB58:
/* 8037EB58 0037BAB8 7C 00 18 6C */ dcbst 0, r3
/* 8037EB5C 0037BABC 38 63 00 20 */ addi r3, r3, 0x20
/* 8037EB60 0037BAC0 42 00 FF F8 */ bdnz lbl_8037EB58
/* 8037EB64 0037BAC4 4E 80 00 20 */ blr
.global DCZeroRange
DCZeroRange:
/* 8037EB68 0037BAC8 28 04 00 00 */ cmplwi r4, 0
/* 8037EB6C 0037BACC 4C 81 00 20 */ blelr
/* 8037EB70 0037BAD0 54 65 06 FE */ clrlwi r5, r3, 0x1b
/* 8037EB74 0037BAD4 7C 84 2A 14 */ add r4, r4, r5
/* 8037EB78 0037BAD8 38 84 00 1F */ addi r4, r4, 0x1f
/* 8037EB7C 0037BADC 54 84 D9 7E */ srwi r4, r4, 5
/* 8037EB80 0037BAE0 7C 89 03 A6 */ mtctr r4
lbl_8037EB84:
/* 8037EB84 0037BAE4 7C 00 1F EC */ dcbz 0, r3
/* 8037EB88 0037BAE8 38 63 00 20 */ addi r3, r3, 0x20
/* 8037EB8C 0037BAEC 42 00 FF F8 */ bdnz lbl_8037EB84
.global sub_8037eb90
sub_8037eb90:
/* 8037EB90 0037BAF0 4E 80 00 20 */ blr
.global ICInvalidateRange
ICInvalidateRange:
/* 8037EB94 0037BAF4 28 04 00 00 */ cmplwi r4, 0
/* 8037EB98 0037BAF8 4C 81 00 20 */ blelr
/* 8037EB9C 0037BAFC 54 65 06 FE */ clrlwi r5, r3, 0x1b
/* 8037EBA0 0037BB00 7C 84 2A 14 */ add r4, r4, r5
/* 8037EBA4 0037BB04 38 84 00 1F */ addi r4, r4, 0x1f
/* 8037EBA8 0037BB08 54 84 D9 7E */ srwi r4, r4, 5
/* 8037EBAC 0037BB0C 7C 89 03 A6 */ mtctr r4
lbl_8037EBB0:
/* 8037EBB0 0037BB10 7C 00 1F AC */ icbi 0, r3
/* 8037EBB4 0037BB14 38 63 00 20 */ addi r3, r3, 0x20
/* 8037EBB8 0037BB18 42 00 FF F8 */ bdnz lbl_8037EBB0
/* 8037EBBC 0037BB1C 7C 00 04 AC */ sync 0
/* 8037EBC0 0037BB20 4C 00 01 2C */ isync
/* 8037EBC4 0037BB24 4E 80 00 20 */ blr
.global ICFlashInvalidate
ICFlashInvalidate:
/* 8037EBC8 0037BB28 7C 70 FA A6 */ mfspr r3, 0x3f0
/* 8037EBCC 0037BB2C 60 63 08 00 */ ori r3, r3, 0x800
/* 8037EBD0 0037BB30 7C 70 FB A6 */ mtspr 0x3f0, r3
/* 8037EBD4 0037BB34 4E 80 00 20 */ blr
.global ICEnable
ICEnable:
/* 8037EBD8 0037BB38 4C 00 01 2C */ isync
/* 8037EBDC 0037BB3C 7C 70 FA A6 */ mfspr r3, 0x3f0
/* 8037EBE0 0037BB40 60 63 80 00 */ ori r3, r3, 0x8000
/* 8037EBE4 0037BB44 7C 70 FB A6 */ mtspr 0x3f0, r3
/* 8037EBE8 0037BB48 4E 80 00 20 */ blr
.global __LCEnable
__LCEnable:
/* 8037EBEC 0037BB4C 7C A0 00 A6 */ mfmsr r5
/* 8037EBF0 0037BB50 60 A5 10 00 */ ori r5, r5, 0x1000
/* 8037EBF4 0037BB54 7C A0 01 24 */ mtmsr r5
/* 8037EBF8 0037BB58 3C 60 80 00 */ lis r3, 0x80000020@ha
/* 8037EBFC 0037BB5C 38 80 04 00 */ li r4, 0x400
/* 8037EC00 0037BB60 7C 89 03 A6 */ mtctr r4
lbl_8037EC04:
/* 8037EC04 0037BB64 7C 00 1A 2C */ dcbt 0, r3
/* 8037EC08 0037BB68 7C 00 18 6C */ dcbst 0, r3
/* 8037EC0C 0037BB6C 38 63 00 20 */ addi r3, r3, 0x80000020@l
/* 8037EC10 0037BB70 42 00 FF F4 */ bdnz lbl_8037EC04
/* 8037EC14 0037BB74 7C 98 E2 A6 */ mfspr r4, 0x398
/* 8037EC18 0037BB78 64 84 10 0F */ oris r4, r4, 0x100f
/* 8037EC1C 0037BB7C 7C 98 E3 A6 */ mtspr 0x398, r4
/* 8037EC20 0037BB80 60 00 00 00 */ nop
/* 8037EC24 0037BB84 60 00 00 00 */ nop
/* 8037EC28 0037BB88 60 00 00 00 */ nop
/* 8037EC2C 0037BB8C 60 00 00 00 */ nop
/* 8037EC30 0037BB90 60 00 00 00 */ nop
/* 8037EC34 0037BB94 60 00 00 00 */ nop
/* 8037EC38 0037BB98 60 00 00 00 */ nop
/* 8037EC3C 0037BB9C 60 00 00 00 */ nop
/* 8037EC40 0037BBA0 60 00 00 00 */ nop
/* 8037EC44 0037BBA4 60 00 00 00 */ nop
/* 8037EC48 0037BBA8 60 00 00 00 */ nop
/* 8037EC4C 0037BBAC 60 00 00 00 */ nop
/* 8037EC50 0037BBB0 3C 60 E0 00 */ lis r3, 0xE0000002@h
/* 8037EC54 0037BBB4 60 63 00 02 */ ori r3, r3, 0xE0000002@l
/* 8037EC58 0037BBB8 7C 7F 83 A6 */ mtdbatl 3, r3
/* 8037EC5C 0037BBBC 60 63 01 FE */ ori r3, r3, 0x1fe
/* 8037EC60 0037BBC0 7C 7E 83 A6 */ mtdbatu 3, r3
/* 8037EC64 0037BBC4 4C 00 01 2C */ isync
/* 8037EC68 0037BBC8 3C 60 E0 00 */ lis r3, 0xE0000020@ha
/* 8037EC6C 0037BBCC 38 C0 02 00 */ li r6, 0x200
/* 8037EC70 0037BBD0 7C C9 03 A6 */ mtctr r6
/* 8037EC74 0037BBD4 38 C0 00 00 */ li r6, 0
lbl_8037EC78:
/* 8037EC78 0037BBD8 10 06 1F EC */ dcbz_l r6, r3
/* 8037EC7C 0037BBDC 38 63 00 20 */ addi r3, r3, 0xE0000020@l
/* 8037EC80 0037BBE0 42 00 FF F8 */ bdnz lbl_8037EC78
/* 8037EC84 0037BBE4 60 00 00 00 */ nop
/* 8037EC88 0037BBE8 60 00 00 00 */ nop
/* 8037EC8C 0037BBEC 60 00 00 00 */ nop
/* 8037EC90 0037BBF0 60 00 00 00 */ nop
/* 8037EC94 0037BBF4 60 00 00 00 */ nop
/* 8037EC98 0037BBF8 60 00 00 00 */ nop
/* 8037EC9C 0037BBFC 60 00 00 00 */ nop
/* 8037ECA0 0037BC00 60 00 00 00 */ nop
/* 8037ECA4 0037BC04 60 00 00 00 */ nop
/* 8037ECA8 0037BC08 60 00 00 00 */ nop
/* 8037ECAC 0037BC0C 60 00 00 00 */ nop
/* 8037ECB0 0037BC10 60 00 00 00 */ nop
/* 8037ECB4 0037BC14 4E 80 00 20 */ blr
.global LCEnable
LCEnable:
/* 8037ECB8 0037BC18 7C 08 02 A6 */ mflr r0
/* 8037ECBC 0037BC1C 90 01 00 04 */ stw r0, 4(r1)
/* 8037ECC0 0037BC20 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8037ECC4 0037BC24 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8037ECC8 0037BC28 48 00 29 99 */ bl OSDisableInterrupts
/* 8037ECCC 0037BC2C 7C 7F 1B 78 */ mr r31, r3
/* 8037ECD0 0037BC30 4B FF FF 1D */ bl __LCEnable
/* 8037ECD4 0037BC34 7F E3 FB 78 */ mr r3, r31
/* 8037ECD8 0037BC38 48 00 29 B1 */ bl OSRestoreInterrupts
/* 8037ECDC 0037BC3C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8037ECE0 0037BC40 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8037ECE4 0037BC44 38 21 00 10 */ addi r1, r1, 0x10
/* 8037ECE8 0037BC48 7C 08 03 A6 */ mtlr r0
/* 8037ECEC 0037BC4C 4E 80 00 20 */ blr
.global LCDisable
LCDisable:
/* 8037ECF0 0037BC50 3C 60 E0 00 */ lis r3, 0xE0000020@ha
/* 8037ECF4 0037BC54 38 80 02 00 */ li r4, 0x200
/* 8037ECF8 0037BC58 7C 89 03 A6 */ mtctr r4
lbl_8037ECFC:
/* 8037ECFC 0037BC5C 7C 00 1B AC */ dcbi 0, r3
/* 8037ED00 0037BC60 38 63 00 20 */ addi r3, r3, 0xE0000020@l
/* 8037ED04 0037BC64 42 00 FF F8 */ bdnz lbl_8037ECFC
/* 8037ED08 0037BC68 7C 98 E2 A6 */ mfspr r4, 0x398
/* 8037ED0C 0037BC6C 54 84 01 04 */ rlwinm r4, r4, 0, 4, 2
/* 8037ED10 0037BC70 7C 98 E3 A6 */ mtspr 0x398, r4
/* 8037ED14 0037BC74 4E 80 00 20 */ blr
.global sub_8037ed18
sub_8037ed18:
/* 8037ED18 0037BC78 54 A6 F6 FE */ rlwinm r6, r5, 0x1e, 0x1b, 0x1f
/* 8037ED1C 0037BC7C 54 84 01 3E */ clrlwi r4, r4, 4
/* 8037ED20 0037BC80 7C C6 23 78 */ or r6, r6, r4
/* 8037ED24 0037BC84 7C DA E3 A6 */ mtspr 0x39a, r6
/* 8037ED28 0037BC88 54 A6 17 3A */ rlwinm r6, r5, 2, 0x1c, 0x1d
/* 8037ED2C 0037BC8C 7C C6 1B 78 */ or r6, r6, r3
/* 8037ED30 0037BC90 60 C6 00 12 */ ori r6, r6, 0x12
/* 8037ED34 0037BC94 7C DB E3 A6 */ mtspr 0x39b, r6
/* 8037ED38 0037BC98 4E 80 00 20 */ blr
.global LCStoreBlocks
LCStoreBlocks:
/* 8037ED3C 0037BC9C 54 A6 F6 FE */ rlwinm r6, r5, 0x1e, 0x1b, 0x1f
/* 8037ED40 0037BCA0 54 63 01 3E */ clrlwi r3, r3, 4
/* 8037ED44 0037BCA4 7C C6 1B 78 */ or r6, r6, r3
/* 8037ED48 0037BCA8 7C DA E3 A6 */ mtspr 0x39a, r6
/* 8037ED4C 0037BCAC 54 A6 17 3A */ rlwinm r6, r5, 2, 0x1c, 0x1d
/* 8037ED50 0037BCB0 7C C6 23 78 */ or r6, r6, r4
/* 8037ED54 0037BCB4 60 C6 00 02 */ ori r6, r6, 2
/* 8037ED58 0037BCB8 7C DB E3 A6 */ mtspr 0x39b, r6
/* 8037ED5C 0037BCBC 4E 80 00 20 */ blr
.global sub_8037ed60
sub_8037ed60:
/* 8037ED60 0037BCC0 7C 08 02 A6 */ mflr r0
/* 8037ED64 0037BCC4 90 01 00 04 */ stw r0, 4(r1)
/* 8037ED68 0037BCC8 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8037ED6C 0037BCCC 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8037ED70 0037BCD0 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8037ED74 0037BCD4 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 8037ED78 0037BCD8 93 81 00 18 */ stw r28, 0x18(r1)
/* 8037ED7C 0037BCDC 7C 7C 1B 78 */ mr r28, r3
/* 8037ED80 0037BCE0 7C 9D 23 78 */ mr r29, r4
/* 8037ED84 0037BCE4 38 05 00 1F */ addi r0, r5, 0x1f
/* 8037ED88 0037BCE8 54 03 D9 7E */ srwi r3, r0, 5
/* 8037ED8C 0037BCEC 38 03 00 7F */ addi r0, r3, 0x7f
/* 8037ED90 0037BCF0 7C 7F 1B 78 */ mr r31, r3
/* 8037ED94 0037BCF4 54 1E C9 FE */ srwi r30, r0, 7
/* 8037ED98 0037BCF8 48 00 00 04 */ b lbl_8037ED9C
lbl_8037ED9C:
/* 8037ED9C 0037BCFC 48 00 00 04 */ b lbl_8037EDA0
lbl_8037EDA0:
/* 8037EDA0 0037BD00 48 00 00 40 */ b lbl_8037EDE0
lbl_8037EDA4:
/* 8037EDA4 0037BD04 28 1F 00 80 */ cmplwi r31, 0x80
/* 8037EDA8 0037BD08 40 80 00 1C */ bge lbl_8037EDC4
/* 8037EDAC 0037BD0C 7F 83 E3 78 */ mr r3, r28
/* 8037EDB0 0037BD10 7F A4 EB 78 */ mr r4, r29
/* 8037EDB4 0037BD14 7F E5 FB 78 */ mr r5, r31
/* 8037EDB8 0037BD18 4B FF FF 61 */ bl sub_8037ed18
/* 8037EDBC 0037BD1C 3B E0 00 00 */ li r31, 0
/* 8037EDC0 0037BD20 48 00 00 20 */ b lbl_8037EDE0
lbl_8037EDC4:
/* 8037EDC4 0037BD24 7F 83 E3 78 */ mr r3, r28
/* 8037EDC8 0037BD28 7F A4 EB 78 */ mr r4, r29
/* 8037EDCC 0037BD2C 38 A0 00 00 */ li r5, 0
/* 8037EDD0 0037BD30 4B FF FF 49 */ bl sub_8037ed18
/* 8037EDD4 0037BD34 3B FF FF 80 */ addi r31, r31, -128
/* 8037EDD8 0037BD38 3B 9C 10 00 */ addi r28, r28, 0x1000
/* 8037EDDC 0037BD3C 3B BD 10 00 */ addi r29, r29, 0x1000
lbl_8037EDE0:
/* 8037EDE0 0037BD40 28 1F 00 00 */ cmplwi r31, 0
/* 8037EDE4 0037BD44 40 82 FF C0 */ bne lbl_8037EDA4
/* 8037EDE8 0037BD48 7F C3 F3 78 */ mr r3, r30
/* 8037EDEC 0037BD4C 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8037EDF0 0037BD50 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8037EDF4 0037BD54 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 8037EDF8 0037BD58 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 8037EDFC 0037BD5C 83 81 00 18 */ lwz r28, 0x18(r1)
/* 8037EE00 0037BD60 38 21 00 28 */ addi r1, r1, 0x28
/* 8037EE04 0037BD64 7C 08 03 A6 */ mtlr r0
/* 8037EE08 0037BD68 4E 80 00 20 */ blr
.global LCStoreData
LCStoreData:
/* 8037EE0C 0037BD6C 7C 08 02 A6 */ mflr r0
/* 8037EE10 0037BD70 90 01 00 04 */ stw r0, 4(r1)
/* 8037EE14 0037BD74 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8037EE18 0037BD78 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8037EE1C 0037BD7C 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8037EE20 0037BD80 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 8037EE24 0037BD84 93 81 00 18 */ stw r28, 0x18(r1)
/* 8037EE28 0037BD88 7C 7C 1B 78 */ mr r28, r3
/* 8037EE2C 0037BD8C 7C 9D 23 78 */ mr r29, r4
/* 8037EE30 0037BD90 38 05 00 1F */ addi r0, r5, 0x1f
/* 8037EE34 0037BD94 54 03 D9 7E */ srwi r3, r0, 5
/* 8037EE38 0037BD98 38 03 00 7F */ addi r0, r3, 0x7f
/* 8037EE3C 0037BD9C 7C 7F 1B 78 */ mr r31, r3
/* 8037EE40 0037BDA0 54 1E C9 FE */ srwi r30, r0, 7
/* 8037EE44 0037BDA4 48 00 00 04 */ b lbl_8037EE48
lbl_8037EE48:
/* 8037EE48 0037BDA8 48 00 00 04 */ b lbl_8037EE4C
lbl_8037EE4C:
/* 8037EE4C 0037BDAC 48 00 00 40 */ b lbl_8037EE8C
lbl_8037EE50:
/* 8037EE50 0037BDB0 28 1F 00 80 */ cmplwi r31, 0x80
/* 8037EE54 0037BDB4 40 80 00 1C */ bge lbl_8037EE70
/* 8037EE58 0037BDB8 7F 83 E3 78 */ mr r3, r28
/* 8037EE5C 0037BDBC 7F A4 EB 78 */ mr r4, r29
/* 8037EE60 0037BDC0 7F E5 FB 78 */ mr r5, r31
/* 8037EE64 0037BDC4 4B FF FE D9 */ bl LCStoreBlocks
/* 8037EE68 0037BDC8 3B E0 00 00 */ li r31, 0
/* 8037EE6C 0037BDCC 48 00 00 20 */ b lbl_8037EE8C
lbl_8037EE70:
/* 8037EE70 0037BDD0 7F 83 E3 78 */ mr r3, r28
/* 8037EE74 0037BDD4 7F A4 EB 78 */ mr r4, r29
/* 8037EE78 0037BDD8 38 A0 00 00 */ li r5, 0
/* 8037EE7C 0037BDDC 4B FF FE C1 */ bl LCStoreBlocks
/* 8037EE80 0037BDE0 3B FF FF 80 */ addi r31, r31, -128
/* 8037EE84 0037BDE4 3B 9C 10 00 */ addi r28, r28, 0x1000
/* 8037EE88 0037BDE8 3B BD 10 00 */ addi r29, r29, 0x1000
lbl_8037EE8C:
/* 8037EE8C 0037BDEC 28 1F 00 00 */ cmplwi r31, 0
/* 8037EE90 0037BDF0 40 82 FF C0 */ bne lbl_8037EE50
/* 8037EE94 0037BDF4 7F C3 F3 78 */ mr r3, r30
/* 8037EE98 0037BDF8 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8037EE9C 0037BDFC 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8037EEA0 0037BE00 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 8037EEA4 0037BE04 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 8037EEA8 0037BE08 83 81 00 18 */ lwz r28, 0x18(r1)
/* 8037EEAC 0037BE0C 38 21 00 28 */ addi r1, r1, 0x28
/* 8037EEB0 0037BE10 7C 08 03 A6 */ mtlr r0
/* 8037EEB4 0037BE14 4E 80 00 20 */ blr
.global LCQueueLength
LCQueueLength:
/* 8037EEB8 0037BE18 7C 98 E2 A6 */ mfspr r4, 0x398
/* 8037EEBC 0037BE1C 54 83 47 3E */ rlwinm r3, r4, 8, 0x1c, 0x1f
/* 8037EEC0 0037BE20 4E 80 00 20 */ blr
.global LCQueueWait
LCQueueWait:
/* 8037EEC4 0037BE24 38 63 00 01 */ addi r3, r3, 1
lbl_8037EEC8:
/* 8037EEC8 0037BE28 7C 98 E2 A6 */ mfspr r4, 0x398
/* 8037EECC 0037BE2C 54 84 47 3E */ rlwinm r4, r4, 8, 0x1c, 0x1f
/* 8037EED0 0037BE30 7D 04 18 00 */ cmpw cr2, r4, r3
/* 8037EED4 0037BE34 40 88 FF F4 */ bge cr2, lbl_8037EEC8
/* 8037EED8 0037BE38 4E 80 00 20 */ blr
.global L2GlobalInvalidate
L2GlobalInvalidate:
/* 8037EEDC 0037BE3C 7C 08 02 A6 */ mflr r0
/* 8037EEE0 0037BE40 90 01 00 04 */ stw r0, 4(r1)
/* 8037EEE4 0037BE44 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8037EEE8 0037BE48 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8037EEEC 0037BE4C 7C 00 04 AC */ sync 0
/* 8037EEF0 0037BE50 4B FF 09 05 */ bl PPCMfl2cr
/* 8037EEF4 0037BE54 54 63 00 7E */ clrlwi r3, r3, 1
/* 8037EEF8 0037BE58 4B FF 09 05 */ bl PPCMtl2cr
/* 8037EEFC 0037BE5C 7C 00 04 AC */ sync 0
/* 8037EF00 0037BE60 4B FF 08 F5 */ bl PPCMfl2cr
/* 8037EF04 0037BE64 64 63 00 20 */ oris r3, r3, 0x20
/* 8037EF08 0037BE68 4B FF 08 F5 */ bl PPCMtl2cr
/* 8037EF0C 0037BE6C 48 00 00 04 */ b lbl_8037EF10
lbl_8037EF10:
/* 8037EF10 0037BE70 48 00 00 04 */ b lbl_8037EF14
lbl_8037EF14:
/* 8037EF14 0037BE74 4B FF 08 E1 */ bl PPCMfl2cr
/* 8037EF18 0037BE78 54 60 07 FE */ clrlwi r0, r3, 0x1f
/* 8037EF1C 0037BE7C 28 00 00 00 */ cmplwi r0, 0
/* 8037EF20 0037BE80 40 82 FF F4 */ bne lbl_8037EF14
/* 8037EF24 0037BE84 4B FF 08 D1 */ bl PPCMfl2cr
/* 8037EF28 0037BE88 54 63 02 D2 */ rlwinm r3, r3, 0, 0xb, 9
/* 8037EF2C 0037BE8C 4B FF 08 D1 */ bl PPCMtl2cr
/* 8037EF30 0037BE90 48 00 00 04 */ b lbl_8037EF34
lbl_8037EF34:
/* 8037EF34 0037BE94 3C 60 80 3F */ lis r3, lbl_803F1028@ha
/* 8037EF38 0037BE98 3B E3 10 28 */ addi r31, r3, lbl_803F1028@l
/* 8037EF3C 0037BE9C 48 00 00 04 */ b lbl_8037EF40
lbl_8037EF40:
/* 8037EF40 0037BEA0 48 00 00 10 */ b lbl_8037EF50
lbl_8037EF44:
/* 8037EF44 0037BEA4 7F E3 FB 78 */ mr r3, r31
/* 8037EF48 0037BEA8 4C C6 31 82 */ crclr 6
/* 8037EF4C 0037BEAC 4B FF 0A 1D */ bl DBPrintf
lbl_8037EF50:
/* 8037EF50 0037BEB0 4B FF 08 A5 */ bl PPCMfl2cr
/* 8037EF54 0037BEB4 54 60 07 FE */ clrlwi r0, r3, 0x1f
/* 8037EF58 0037BEB8 28 00 00 00 */ cmplwi r0, 0
/* 8037EF5C 0037BEBC 40 82 FF E8 */ bne lbl_8037EF44
/* 8037EF60 0037BEC0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8037EF64 0037BEC4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8037EF68 0037BEC8 38 21 00 10 */ addi r1, r1, 0x10
/* 8037EF6C 0037BECC 7C 08 03 A6 */ mtlr r0
/* 8037EF70 0037BED0 4E 80 00 20 */ blr
.global DMAErrorHandler
DMAErrorHandler:
/* 8037EF74 0037BED4 7C 08 02 A6 */ mflr r0
/* 8037EF78 0037BED8 90 01 00 04 */ stw r0, 4(r1)
/* 8037EF7C 0037BEDC 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8037EF80 0037BEE0 93 E1 00 7C */ stw r31, 0x7c(r1)
/* 8037EF84 0037BEE4 93 C1 00 78 */ stw r30, 0x78(r1)
/* 8037EF88 0037BEE8 93 A1 00 74 */ stw r29, 0x74(r1)
/* 8037EF8C 0037BEEC 40 86 00 24 */ bne cr1, lbl_8037EFB0
/* 8037EF90 0037BEF0 D8 21 00 28 */ stfd f1, 0x28(r1)
/* 8037EF94 0037BEF4 D8 41 00 30 */ stfd f2, 0x30(r1)
/* 8037EF98 0037BEF8 D8 61 00 38 */ stfd f3, 0x38(r1)
/* 8037EF9C 0037BEFC D8 81 00 40 */ stfd f4, 0x40(r1)
/* 8037EFA0 0037BF00 D8 A1 00 48 */ stfd f5, 0x48(r1)
/* 8037EFA4 0037BF04 D8 C1 00 50 */ stfd f6, 0x50(r1)
/* 8037EFA8 0037BF08 D8 E1 00 58 */ stfd f7, 0x58(r1)
/* 8037EFAC 0037BF0C D9 01 00 60 */ stfd f8, 0x60(r1)
lbl_8037EFB0:
/* 8037EFB0 0037BF10 90 61 00 08 */ stw r3, 8(r1)
/* 8037EFB4 0037BF14 90 81 00 0C */ stw r4, 0xc(r1)
/* 8037EFB8 0037BF18 90 A1 00 10 */ stw r5, 0x10(r1)
/* 8037EFBC 0037BF1C 90 C1 00 14 */ stw r6, 0x14(r1)
/* 8037EFC0 0037BF20 90 E1 00 18 */ stw r7, 0x18(r1)
/* 8037EFC4 0037BF24 91 01 00 1C */ stw r8, 0x1c(r1)
/* 8037EFC8 0037BF28 91 21 00 20 */ stw r9, 0x20(r1)
/* 8037EFCC 0037BF2C 91 41 00 24 */ stw r10, 0x24(r1)
/* 8037EFD0 0037BF30 7C 9D 23 78 */ mr r29, r4
/* 8037EFD4 0037BF34 3C 60 80 3F */ lis r3, lbl_803F1028@ha
/* 8037EFD8 0037BF38 3B E3 10 28 */ addi r31, r3, lbl_803F1028@l
/* 8037EFDC 0037BF3C 4B FF 08 95 */ bl PPCMfhid2
/* 8037EFE0 0037BF40 7C 7E 1B 78 */ mr r30, r3
/* 8037EFE4 0037BF44 4C C6 31 82 */ crclr 6
/* 8037EFE8 0037BF48 38 7F 00 2C */ addi r3, r31, 0x2c
/* 8037EFEC 0037BF4C 48 00 09 C1 */ bl OSReport
/* 8037EFF0 0037BF50 80 BD 01 9C */ lwz r5, 0x19c(r29)
/* 8037EFF4 0037BF54 7F C4 F3 78 */ mr r4, r30
/* 8037EFF8 0037BF58 38 7F 00 44 */ addi r3, r31, 0x44
/* 8037EFFC 0037BF5C 4C C6 31 82 */ crclr 6
/* 8037F000 0037BF60 48 00 09 AD */ bl OSReport
/* 8037F004 0037BF64 57 C0 02 16 */ rlwinm r0, r30, 0, 8, 0xb
/* 8037F008 0037BF68 28 00 00 00 */ cmplwi r0, 0
/* 8037F00C 0037BF6C 41 82 00 14 */ beq lbl_8037F020
/* 8037F010 0037BF70 80 1D 01 9C */ lwz r0, 0x19c(r29)
/* 8037F014 0037BF74 54 00 02 94 */ rlwinm r0, r0, 0, 0xa, 0xa
/* 8037F018 0037BF78 28 00 00 00 */ cmplwi r0, 0
/* 8037F01C 0037BF7C 40 82 00 1C */ bne lbl_8037F038
lbl_8037F020:
/* 8037F020 0037BF80 38 7F 00 60 */ addi r3, r31, 0x60
/* 8037F024 0037BF84 4C C6 31 82 */ crclr 6
/* 8037F028 0037BF88 48 00 09 85 */ bl OSReport
/* 8037F02C 0037BF8C 7F A3 EB 78 */ mr r3, r29
/* 8037F030 0037BF90 48 00 06 09 */ bl OSDumpContext
/* 8037F034 0037BF94 4B FF 07 E1 */ bl PPCHalt
lbl_8037F038:
/* 8037F038 0037BF98 38 7F 00 90 */ addi r3, r31, 0x90
/* 8037F03C 0037BF9C 4C C6 31 82 */ crclr 6
/* 8037F040 0037BFA0 48 00 09 6D */ bl OSReport
/* 8037F044 0037BFA4 38 7F 00 CC */ addi r3, r31, 0xcc
/* 8037F048 0037BFA8 4C C6 31 82 */ crclr 6
/* 8037F04C 0037BFAC 48 00 09 61 */ bl OSReport
/* 8037F050 0037BFB0 57 C0 02 10 */ rlwinm r0, r30, 0, 8, 8
/* 8037F054 0037BFB4 28 00 00 00 */ cmplwi r0, 0
/* 8037F058 0037BFB8 41 82 00 10 */ beq lbl_8037F068
/* 8037F05C 0037BFBC 38 7F 01 04 */ addi r3, r31, 0x104
/* 8037F060 0037BFC0 4C C6 31 82 */ crclr 6
/* 8037F064 0037BFC4 48 00 09 49 */ bl OSReport
lbl_8037F068:
/* 8037F068 0037BFC8 57 C0 02 52 */ rlwinm r0, r30, 0, 9, 9
/* 8037F06C 0037BFCC 28 00 00 00 */ cmplwi r0, 0
/* 8037F070 0037BFD0 41 82 00 10 */ beq lbl_8037F080
/* 8037F074 0037BFD4 38 7F 01 44 */ addi r3, r31, 0x144
/* 8037F078 0037BFD8 4C C6 31 82 */ crclr 6
/* 8037F07C 0037BFDC 48 00 09 31 */ bl OSReport
lbl_8037F080:
/* 8037F080 0037BFE0 57 C0 02 94 */ rlwinm r0, r30, 0, 0xa, 0xa
/* 8037F084 0037BFE4 28 00 00 00 */ cmplwi r0, 0
/* 8037F088 0037BFE8 41 82 00 10 */ beq lbl_8037F098
/* 8037F08C 0037BFEC 38 7F 01 70 */ addi r3, r31, 0x170
/* 8037F090 0037BFF0 4C C6 31 82 */ crclr 6
/* 8037F094 0037BFF4 48 00 09 19 */ bl OSReport
lbl_8037F098:
/* 8037F098 0037BFF8 57 C0 02 D6 */ rlwinm r0, r30, 0, 0xb, 0xb
/* 8037F09C 0037BFFC 28 00 00 00 */ cmplwi r0, 0
/* 8037F0A0 0037C000 41 82 00 10 */ beq lbl_8037F0B0
/* 8037F0A4 0037C004 38 7F 01 90 */ addi r3, r31, 0x190
/* 8037F0A8 0037C008 4C C6 31 82 */ crclr 6
/* 8037F0AC 0037C00C 48 00 09 01 */ bl OSReport
lbl_8037F0B0:
/* 8037F0B0 0037C010 7F C3 F3 78 */ mr r3, r30
/* 8037F0B4 0037C014 4B FF 07 C5 */ bl PPCMthid2
/* 8037F0B8 0037C018 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8037F0BC 0037C01C 83 E1 00 7C */ lwz r31, 0x7c(r1)
/* 8037F0C0 0037C020 83 C1 00 78 */ lwz r30, 0x78(r1)
/* 8037F0C4 0037C024 83 A1 00 74 */ lwz r29, 0x74(r1)
/* 8037F0C8 0037C028 38 21 00 80 */ addi r1, r1, 0x80
/* 8037F0CC 0037C02C 7C 08 03 A6 */ mtlr r0
/* 8037F0D0 0037C030 4E 80 00 20 */ blr
.global __OSCacheInit
__OSCacheInit:
/* 8037F0D4 0037C034 7C 08 02 A6 */ mflr r0
/* 8037F0D8 0037C038 90 01 00 04 */ stw r0, 4(r1)
/* 8037F0DC 0037C03C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8037F0E0 0037C040 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8037F0E4 0037C044 93 C1 00 08 */ stw r30, 8(r1)
/* 8037F0E8 0037C048 3C 60 80 3F */ lis r3, lbl_803F1028@ha
/* 8037F0EC 0037C04C 3B E3 10 28 */ addi r31, r3, lbl_803F1028@l
/* 8037F0F0 0037C050 4B FF 06 F5 */ bl PPCMfhid0
/* 8037F0F4 0037C054 54 60 04 20 */ rlwinm r0, r3, 0, 0x10, 0x10
/* 8037F0F8 0037C058 28 00 00 00 */ cmplwi r0, 0
/* 8037F0FC 0037C05C 40 82 00 14 */ bne lbl_8037F110
/* 8037F100 0037C060 4B FF FA D9 */ bl ICEnable
/* 8037F104 0037C064 38 7F 01 AC */ addi r3, r31, 0x1ac
/* 8037F108 0037C068 4C C6 31 82 */ crclr 6
/* 8037F10C 0037C06C 4B FF 08 5D */ bl DBPrintf
lbl_8037F110:
/* 8037F110 0037C070 4B FF 06 D5 */ bl PPCMfhid0
/* 8037F114 0037C074 54 60 04 62 */ rlwinm r0, r3, 0, 0x11, 0x11
/* 8037F118 0037C078 28 00 00 00 */ cmplwi r0, 0
/* 8037F11C 0037C07C 40 82 00 14 */ bne lbl_8037F130
/* 8037F120 0037C080 4B FF F9 51 */ bl DCEnable
/* 8037F124 0037C084 38 7F 01 C8 */ addi r3, r31, 0x1c8
/* 8037F128 0037C088 4C C6 31 82 */ crclr 6
/* 8037F12C 0037C08C 4B FF 08 3D */ bl DBPrintf
lbl_8037F130:
/* 8037F130 0037C090 4B FF 06 C5 */ bl PPCMfl2cr
/* 8037F134 0037C094 54 60 00 00 */ rlwinm r0, r3, 0, 0, 0
/* 8037F138 0037C098 28 00 00 00 */ cmplwi r0, 0
/* 8037F13C 0037C09C 40 82 00 58 */ bne lbl_8037F194
/* 8037F140 0037C0A0 4B FF 06 95 */ bl PPCMfmsr
/* 8037F144 0037C0A4 7C 7E 1B 78 */ mr r30, r3
/* 8037F148 0037C0A8 7C 00 04 AC */ sync 0
/* 8037F14C 0037C0AC 38 60 00 30 */ li r3, 0x30
/* 8037F150 0037C0B0 4B FF 06 8D */ bl PPCMtmsr
/* 8037F154 0037C0B4 7C 00 04 AC */ sync 0
/* 8037F158 0037C0B8 7C 00 04 AC */ sync 0
/* 8037F15C 0037C0BC 4B FF 06 99 */ bl PPCMfl2cr
/* 8037F160 0037C0C0 54 63 00 7E */ clrlwi r3, r3, 1
/* 8037F164 0037C0C4 4B FF 06 99 */ bl PPCMtl2cr
/* 8037F168 0037C0C8 7C 00 04 AC */ sync 0
/* 8037F16C 0037C0CC 4B FF FD 71 */ bl L2GlobalInvalidate
/* 8037F170 0037C0D0 7F C3 F3 78 */ mr r3, r30
/* 8037F174 0037C0D4 4B FF 06 69 */ bl PPCMtmsr
/* 8037F178 0037C0D8 4B FF 06 7D */ bl PPCMfl2cr
/* 8037F17C 0037C0DC 64 60 80 00 */ oris r0, r3, 0x8000
/* 8037F180 0037C0E0 54 03 02 D2 */ rlwinm r3, r0, 0, 0xb, 9
/* 8037F184 0037C0E4 4B FF 06 79 */ bl PPCMtl2cr
/* 8037F188 0037C0E8 38 7F 01 E4 */ addi r3, r31, 0x1e4
/* 8037F18C 0037C0EC 4C C6 31 82 */ crclr 6
/* 8037F190 0037C0F0 4B FF 07 D9 */ bl DBPrintf
lbl_8037F194:
/* 8037F194 0037C0F4 3C 60 80 38 */ lis r3, DMAErrorHandler@ha
/* 8037F198 0037C0F8 38 83 EF 74 */ addi r4, r3, DMAErrorHandler@l
/* 8037F19C 0037C0FC 38 60 00 01 */ li r3, 1
/* 8037F1A0 0037C100 48 00 09 B9 */ bl OSSetErrorHandler
/* 8037F1A4 0037C104 38 7F 01 FC */ addi r3, r31, 0x1fc
/* 8037F1A8 0037C108 4C C6 31 82 */ crclr 6
/* 8037F1AC 0037C10C 4B FF 07 BD */ bl DBPrintf
/* 8037F1B0 0037C110 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8037F1B4 0037C114 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8037F1B8 0037C118 83 C1 00 08 */ lwz r30, 8(r1)
/* 8037F1BC 0037C11C 38 21 00 10 */ addi r1, r1, 0x10
/* 8037F1C0 0037C120 7C 08 03 A6 */ mtlr r0
/* 8037F1C4 0037C124 4E 80 00 20 */ blr

579
asm/Dolphin/OS/OSContext.s Normal file
View File

@ -0,0 +1,579 @@
.include "macros.inc"
.section .text, "ax"
.global __OSLoadFPUContext
__OSLoadFPUContext:
/* 8037F1C8 0037C128 A0 A4 01 A2 */ lhz r5, 0x1a2(r4)
/* 8037F1CC 0037C12C 54 A5 07 FF */ clrlwi. r5, r5, 0x1f
/* 8037F1D0 0037C130 41 82 01 18 */ beq lbl_8037f2e8
/* 8037F1D4 0037C134 C8 04 01 90 */ lfd f0, 0x190(r4)
/* 8037F1D8 0037C138 FD FE 05 8E */ mtfsf 0xff, f0
/* 8037F1DC 0037C13C 7C B8 E2 A6 */ mfspr r5, 0x398
/* 8037F1E0 0037C140 54 A5 1F FF */ rlwinm. r5, r5, 3, 0x1f, 0x1f
/* 8037F1E4 0037C144 41 82 00 84 */ beq lbl_8037F268
/* 8037F1E8 0037C148 E0 04 01 C8 */ psq_l f0, 456(r4), 0, qr0
/* 8037F1EC 0037C14C E0 24 01 D0 */ psq_l f1, 464(r4), 0, qr0
/* 8037F1F0 0037C150 E0 44 01 D8 */ psq_l f2, 472(r4), 0, qr0
/* 8037F1F4 0037C154 E0 64 01 E0 */ psq_l f3, 480(r4), 0, qr0
/* 8037F1F8 0037C158 E0 84 01 E8 */ psq_l f4, 488(r4), 0, qr0
/* 8037F1FC 0037C15C E0 A4 01 F0 */ psq_l f5, 496(r4), 0, qr0
/* 8037F200 0037C160 E0 C4 01 F8 */ psq_l f6, 504(r4), 0, qr0
/* 8037F204 0037C164 E0 E4 02 00 */ psq_l f7, 512(r4), 0, qr0
/* 8037F208 0037C168 E1 04 02 08 */ psq_l f8, 520(r4), 0, qr0
/* 8037F20C 0037C16C E1 24 02 10 */ psq_l f9, 528(r4), 0, qr0
/* 8037F210 0037C170 E1 44 02 18 */ psq_l f10, 536(r4), 0, qr0
/* 8037F214 0037C174 E1 64 02 20 */ psq_l f11, 544(r4), 0, qr0
/* 8037F218 0037C178 E1 84 02 28 */ psq_l f12, 552(r4), 0, qr0
/* 8037F21C 0037C17C E1 A4 02 30 */ psq_l f13, 560(r4), 0, qr0
/* 8037F220 0037C180 E1 C4 02 38 */ psq_l f14, 568(r4), 0, qr0
/* 8037F224 0037C184 E1 E4 02 40 */ psq_l f15, 576(r4), 0, qr0
/* 8037F228 0037C188 E2 04 02 48 */ psq_l f16, 584(r4), 0, qr0
/* 8037F22C 0037C18C E2 24 02 50 */ psq_l f17, 592(r4), 0, qr0
/* 8037F230 0037C190 E2 44 02 58 */ psq_l f18, 600(r4), 0, qr0
/* 8037F234 0037C194 E2 64 02 60 */ psq_l f19, 608(r4), 0, qr0
/* 8037F238 0037C198 E2 84 02 68 */ psq_l f20, 616(r4), 0, qr0
/* 8037F23C 0037C19C E2 A4 02 70 */ psq_l f21, 624(r4), 0, qr0
/* 8037F240 0037C1A0 E2 C4 02 78 */ psq_l f22, 632(r4), 0, qr0
/* 8037F244 0037C1A4 E2 E4 02 80 */ psq_l f23, 640(r4), 0, qr0
/* 8037F248 0037C1A8 E3 04 02 88 */ psq_l f24, 648(r4), 0, qr0
/* 8037F24C 0037C1AC E3 24 02 90 */ psq_l f25, 656(r4), 0, qr0
/* 8037F250 0037C1B0 E3 44 02 98 */ psq_l f26, 664(r4), 0, qr0
/* 8037F254 0037C1B4 E3 64 02 A0 */ psq_l f27, 672(r4), 0, qr0
/* 8037F258 0037C1B8 E3 84 02 A8 */ psq_l f28, 680(r4), 0, qr0
/* 8037F25C 0037C1BC E3 A4 02 B0 */ psq_l f29, 688(r4), 0, qr0
/* 8037F260 0037C1C0 E3 C4 02 B8 */ psq_l f30, 696(r4), 0, qr0
/* 8037F264 0037C1C4 E3 E4 02 C0 */ psq_l f31, 704(r4), 0, qr0
lbl_8037F268:
/* 8037F268 0037C1C8 C8 04 00 90 */ lfd f0, 0x90(r4)
/* 8037F26C 0037C1CC C8 24 00 98 */ lfd f1, 0x98(r4)
/* 8037F270 0037C1D0 C8 44 00 A0 */ lfd f2, 0xa0(r4)
/* 8037F274 0037C1D4 C8 64 00 A8 */ lfd f3, 0xa8(r4)
/* 8037F278 0037C1D8 C8 84 00 B0 */ lfd f4, 0xb0(r4)
/* 8037F27C 0037C1DC C8 A4 00 B8 */ lfd f5, 0xb8(r4)
/* 8037F280 0037C1E0 C8 C4 00 C0 */ lfd f6, 0xc0(r4)
/* 8037F284 0037C1E4 C8 E4 00 C8 */ lfd f7, 0xc8(r4)
/* 8037F288 0037C1E8 C9 04 00 D0 */ lfd f8, 0xd0(r4)
/* 8037F28C 0037C1EC C9 24 00 D8 */ lfd f9, 0xd8(r4)
/* 8037F290 0037C1F0 C9 44 00 E0 */ lfd f10, 0xe0(r4)
/* 8037F294 0037C1F4 C9 64 00 E8 */ lfd f11, 0xe8(r4)
/* 8037F298 0037C1F8 C9 84 00 F0 */ lfd f12, 0xf0(r4)
/* 8037F29C 0037C1FC C9 A4 00 F8 */ lfd f13, 0xf8(r4)
/* 8037F2A0 0037C200 C9 C4 01 00 */ lfd f14, 0x100(r4)
/* 8037F2A4 0037C204 C9 E4 01 08 */ lfd f15, 0x108(r4)
/* 8037F2A8 0037C208 CA 04 01 10 */ lfd f16, 0x110(r4)
/* 8037F2AC 0037C20C CA 24 01 18 */ lfd f17, 0x118(r4)
/* 8037F2B0 0037C210 CA 44 01 20 */ lfd f18, 0x120(r4)
/* 8037F2B4 0037C214 CA 64 01 28 */ lfd f19, 0x128(r4)
/* 8037F2B8 0037C218 CA 84 01 30 */ lfd f20, 0x130(r4)
/* 8037F2BC 0037C21C CA A4 01 38 */ lfd f21, 0x138(r4)
/* 8037F2C0 0037C220 CA C4 01 40 */ lfd f22, 0x140(r4)
/* 8037F2C4 0037C224 CA E4 01 48 */ lfd f23, 0x148(r4)
/* 8037F2C8 0037C228 CB 04 01 50 */ lfd f24, 0x150(r4)
/* 8037F2CC 0037C22C CB 24 01 58 */ lfd f25, 0x158(r4)
/* 8037F2D0 0037C230 CB 44 01 60 */ lfd f26, 0x160(r4)
/* 8037F2D4 0037C234 CB 64 01 68 */ lfd f27, 0x168(r4)
/* 8037F2D8 0037C238 CB 84 01 70 */ lfd f28, 0x170(r4)
/* 8037F2DC 0037C23C CB A4 01 78 */ lfd f29, 0x178(r4)
/* 8037F2E0 0037C240 CB C4 01 80 */ lfd f30, 0x180(r4)
/* 8037F2E4 0037C244 CB E4 01 88 */ lfd f31, 0x188(r4)
lbl_8037f2e8:
/* 8037F2E8 0037C248 4E 80 00 20 */ blr
.global __OSSaveFPUContext
__OSSaveFPUContext:
/* 8037F2EC 0037C24C A0 65 01 A2 */ lhz r3, 0x1a2(r5)
/* 8037F2F0 0037C250 60 63 00 01 */ ori r3, r3, 1
/* 8037F2F4 0037C254 B0 65 01 A2 */ sth r3, 0x1a2(r5)
/* 8037F2F8 0037C258 D8 05 00 90 */ stfd f0, 0x90(r5)
/* 8037F2FC 0037C25C D8 25 00 98 */ stfd f1, 0x98(r5)
/* 8037F300 0037C260 D8 45 00 A0 */ stfd f2, 0xa0(r5)
/* 8037F304 0037C264 D8 65 00 A8 */ stfd f3, 0xa8(r5)
/* 8037F308 0037C268 D8 85 00 B0 */ stfd f4, 0xb0(r5)
/* 8037F30C 0037C26C D8 A5 00 B8 */ stfd f5, 0xb8(r5)
/* 8037F310 0037C270 D8 C5 00 C0 */ stfd f6, 0xc0(r5)
/* 8037F314 0037C274 D8 E5 00 C8 */ stfd f7, 0xc8(r5)
/* 8037F318 0037C278 D9 05 00 D0 */ stfd f8, 0xd0(r5)
/* 8037F31C 0037C27C D9 25 00 D8 */ stfd f9, 0xd8(r5)
/* 8037F320 0037C280 D9 45 00 E0 */ stfd f10, 0xe0(r5)
/* 8037F324 0037C284 D9 65 00 E8 */ stfd f11, 0xe8(r5)
/* 8037F328 0037C288 D9 85 00 F0 */ stfd f12, 0xf0(r5)
/* 8037F32C 0037C28C D9 A5 00 F8 */ stfd f13, 0xf8(r5)
/* 8037F330 0037C290 D9 C5 01 00 */ stfd f14, 0x100(r5)
/* 8037F334 0037C294 D9 E5 01 08 */ stfd f15, 0x108(r5)
/* 8037F338 0037C298 DA 05 01 10 */ stfd f16, 0x110(r5)
/* 8037F33C 0037C29C DA 25 01 18 */ stfd f17, 0x118(r5)
/* 8037F340 0037C2A0 DA 45 01 20 */ stfd f18, 0x120(r5)
/* 8037F344 0037C2A4 DA 65 01 28 */ stfd f19, 0x128(r5)
/* 8037F348 0037C2A8 DA 85 01 30 */ stfd f20, 0x130(r5)
/* 8037F34C 0037C2AC DA A5 01 38 */ stfd f21, 0x138(r5)
/* 8037F350 0037C2B0 DA C5 01 40 */ stfd f22, 0x140(r5)
/* 8037F354 0037C2B4 DA E5 01 48 */ stfd f23, 0x148(r5)
/* 8037F358 0037C2B8 DB 05 01 50 */ stfd f24, 0x150(r5)
/* 8037F35C 0037C2BC DB 25 01 58 */ stfd f25, 0x158(r5)
/* 8037F360 0037C2C0 DB 45 01 60 */ stfd f26, 0x160(r5)
/* 8037F364 0037C2C4 DB 65 01 68 */ stfd f27, 0x168(r5)
/* 8037F368 0037C2C8 DB 85 01 70 */ stfd f28, 0x170(r5)
/* 8037F36C 0037C2CC DB A5 01 78 */ stfd f29, 0x178(r5)
/* 8037F370 0037C2D0 DB C5 01 80 */ stfd f30, 0x180(r5)
/* 8037F374 0037C2D4 DB E5 01 88 */ stfd f31, 0x188(r5)
/* 8037F378 0037C2D8 FC 00 04 8E */ mffs f0
/* 8037F37C 0037C2DC D8 05 01 90 */ stfd f0, 0x190(r5)
/* 8037F380 0037C2E0 C8 05 00 90 */ lfd f0, 0x90(r5)
/* 8037F384 0037C2E4 7C 78 E2 A6 */ mfspr r3, 0x398
/* 8037F388 0037C2E8 54 63 1F FF */ rlwinm. r3, r3, 3, 0x1f, 0x1f
/* 8037F38C 0037C2EC 41 82 00 84 */ beq sub_8037f410
/* 8037F390 0037C2F0 F0 05 01 C8 */ psq_st f0, 456(r5), 0, qr0
/* 8037F394 0037C2F4 F0 25 01 D0 */ psq_st f1, 464(r5), 0, qr0
/* 8037F398 0037C2F8 F0 45 01 D8 */ psq_st f2, 472(r5), 0, qr0
/* 8037F39C 0037C2FC F0 65 01 E0 */ psq_st f3, 480(r5), 0, qr0
/* 8037F3A0 0037C300 F0 85 01 E8 */ psq_st f4, 488(r5), 0, qr0
/* 8037F3A4 0037C304 F0 A5 01 F0 */ psq_st f5, 496(r5), 0, qr0
/* 8037F3A8 0037C308 F0 C5 01 F8 */ psq_st f6, 504(r5), 0, qr0
/* 8037F3AC 0037C30C F0 E5 02 00 */ psq_st f7, 512(r5), 0, qr0
/* 8037F3B0 0037C310 F1 05 02 08 */ psq_st f8, 520(r5), 0, qr0
/* 8037F3B4 0037C314 F1 25 02 10 */ psq_st f9, 528(r5), 0, qr0
/* 8037F3B8 0037C318 F1 45 02 18 */ psq_st f10, 536(r5), 0, qr0
/* 8037F3BC 0037C31C F1 65 02 20 */ psq_st f11, 544(r5), 0, qr0
/* 8037F3C0 0037C320 F1 85 02 28 */ psq_st f12, 552(r5), 0, qr0
/* 8037F3C4 0037C324 F1 A5 02 30 */ psq_st f13, 560(r5), 0, qr0
/* 8037F3C8 0037C328 F1 C5 02 38 */ psq_st f14, 568(r5), 0, qr0
/* 8037F3CC 0037C32C F1 E5 02 40 */ psq_st f15, 576(r5), 0, qr0
/* 8037F3D0 0037C330 F2 05 02 48 */ psq_st f16, 584(r5), 0, qr0
/* 8037F3D4 0037C334 F2 25 02 50 */ psq_st f17, 592(r5), 0, qr0
/* 8037F3D8 0037C338 F2 45 02 58 */ psq_st f18, 600(r5), 0, qr0
/* 8037F3DC 0037C33C F2 65 02 60 */ psq_st f19, 608(r5), 0, qr0
/* 8037F3E0 0037C340 F2 85 02 68 */ psq_st f20, 616(r5), 0, qr0
/* 8037F3E4 0037C344 F2 A5 02 70 */ psq_st f21, 624(r5), 0, qr0
/* 8037F3E8 0037C348 F2 C5 02 78 */ psq_st f22, 632(r5), 0, qr0
/* 8037F3EC 0037C34C F2 E5 02 80 */ psq_st f23, 640(r5), 0, qr0
/* 8037F3F0 0037C350 F3 05 02 88 */ psq_st f24, 648(r5), 0, qr0
/* 8037F3F4 0037C354 F3 25 02 90 */ psq_st f25, 656(r5), 0, qr0
/* 8037F3F8 0037C358 F3 45 02 98 */ psq_st f26, 664(r5), 0, qr0
/* 8037F3FC 0037C35C F3 65 02 A0 */ psq_st f27, 672(r5), 0, qr0
/* 8037F400 0037C360 F3 85 02 A8 */ psq_st f28, 680(r5), 0, qr0
/* 8037F404 0037C364 F3 A5 02 B0 */ psq_st f29, 688(r5), 0, qr0
/* 8037F408 0037C368 F3 C5 02 B8 */ psq_st f30, 696(r5), 0, qr0
/* 8037F40C 0037C36C F3 E5 02 C0 */ psq_st f31, 704(r5), 0, qr0
.global sub_8037f410
sub_8037f410:
/* 8037F410 0037C370 4E 80 00 20 */ blr
.global OSSaveFPUContext
OSSaveFPUContext:
/* 8037F414 0037C374 38 A3 00 00 */ addi r5, r3, 0
/* 8037F418 0037C378 4B FF FE D4 */ b __OSSaveFPUContext
.global OSSetCurrentContext
OSSetCurrentContext:
/* 8037F41C 0037C37C 3C 80 80 00 */ lis r4, 0x800000D4@ha
/* 8037F420 0037C380 90 64 00 D4 */ stw r3, 0x800000D4@l(r4)
/* 8037F424 0037C384 54 65 00 BE */ clrlwi r5, r3, 2
/* 8037F428 0037C388 90 A4 00 C0 */ stw r5, 0xc0(r4)
/* 8037F42C 0037C38C 80 A4 00 D8 */ lwz r5, 0xd8(r4)
/* 8037F430 0037C390 7C 05 18 00 */ cmpw r5, r3
/* 8037F434 0037C394 40 82 00 20 */ bne lbl_8037F454
/* 8037F438 0037C398 80 C3 01 9C */ lwz r6, 0x19c(r3)
/* 8037F43C 0037C39C 60 C6 20 00 */ ori r6, r6, 0x2000
/* 8037F440 0037C3A0 90 C3 01 9C */ stw r6, 0x19c(r3)
/* 8037F444 0037C3A4 7C C0 00 A6 */ mfmsr r6
/* 8037F448 0037C3A8 60 C6 00 02 */ ori r6, r6, 2
/* 8037F44C 0037C3AC 7C C0 01 24 */ mtmsr r6
/* 8037F450 0037C3B0 4E 80 00 20 */ blr
lbl_8037F454:
/* 8037F454 0037C3B4 80 C3 01 9C */ lwz r6, 0x19c(r3)
/* 8037F458 0037C3B8 54 C6 04 E2 */ rlwinm r6, r6, 0, 0x13, 0x11
/* 8037F45C 0037C3BC 90 C3 01 9C */ stw r6, 0x19c(r3)
/* 8037F460 0037C3C0 7C C0 00 A6 */ mfmsr r6
/* 8037F464 0037C3C4 54 C6 04 E2 */ rlwinm r6, r6, 0, 0x13, 0x11
/* 8037F468 0037C3C8 60 C6 00 02 */ ori r6, r6, 2
/* 8037F46C 0037C3CC 7C C0 01 24 */ mtmsr r6
/* 8037F470 0037C3D0 4C 00 01 2C */ isync
/* 8037F474 0037C3D4 4E 80 00 20 */ blr
.global OSGetCurrentContext
OSGetCurrentContext:
/* 8037F478 0037C3D8 3C 60 80 00 */ lis r3, 0x800000D4@ha
/* 8037F47C 0037C3DC 80 63 00 D4 */ lwz r3, 0x800000D4@l(r3)
/* 8037F480 0037C3E0 4E 80 00 20 */ blr
.global OSSaveContext
OSSaveContext:
/* 8037F484 0037C3E4 BD A3 00 34 */ stmw r13, 0x34(r3)
/* 8037F488 0037C3E8 7C 11 E2 A6 */ mfspr r0, 0x391
/* 8037F48C 0037C3EC 90 03 01 A8 */ stw r0, 0x1a8(r3)
/* 8037F490 0037C3F0 7C 12 E2 A6 */ mfspr r0, 0x392
/* 8037F494 0037C3F4 90 03 01 AC */ stw r0, 0x1ac(r3)
/* 8037F498 0037C3F8 7C 13 E2 A6 */ mfspr r0, 0x393
/* 8037F49C 0037C3FC 90 03 01 B0 */ stw r0, 0x1b0(r3)
/* 8037F4A0 0037C400 7C 14 E2 A6 */ mfspr r0, 0x394
/* 8037F4A4 0037C404 90 03 01 B4 */ stw r0, 0x1b4(r3)
/* 8037F4A8 0037C408 7C 15 E2 A6 */ mfspr r0, 0x395
/* 8037F4AC 0037C40C 90 03 01 B8 */ stw r0, 0x1b8(r3)
/* 8037F4B0 0037C410 7C 16 E2 A6 */ mfspr r0, 0x396
/* 8037F4B4 0037C414 90 03 01 BC */ stw r0, 0x1bc(r3)
/* 8037F4B8 0037C418 7C 17 E2 A6 */ mfspr r0, 0x397
/* 8037F4BC 0037C41C 90 03 01 C0 */ stw r0, 0x1c0(r3)
/* 8037F4C0 0037C420 7C 00 00 26 */ mfcr r0
/* 8037F4C4 0037C424 90 03 00 80 */ stw r0, 0x80(r3)
/* 8037F4C8 0037C428 7C 08 02 A6 */ mflr r0
/* 8037F4CC 0037C42C 90 03 00 84 */ stw r0, 0x84(r3)
/* 8037F4D0 0037C430 90 03 01 98 */ stw r0, 0x198(r3)
/* 8037F4D4 0037C434 7C 00 00 A6 */ mfmsr r0
/* 8037F4D8 0037C438 90 03 01 9C */ stw r0, 0x19c(r3)
/* 8037F4DC 0037C43C 7C 09 02 A6 */ mfctr r0
/* 8037F4E0 0037C440 90 03 00 88 */ stw r0, 0x88(r3)
/* 8037F4E4 0037C444 7C 01 02 A6 */ mfxer r0
/* 8037F4E8 0037C448 90 03 00 8C */ stw r0, 0x8c(r3)
/* 8037F4EC 0037C44C 90 23 00 04 */ stw r1, 4(r3)
/* 8037F4F0 0037C450 90 43 00 08 */ stw r2, 8(r3)
/* 8037F4F4 0037C454 38 00 00 01 */ li r0, 1
/* 8037F4F8 0037C458 90 03 00 0C */ stw r0, 0xc(r3)
/* 8037F4FC 0037C45C 38 60 00 00 */ li r3, 0
/* 8037F500 0037C460 4E 80 00 20 */ blr
.global OSLoadContext
OSLoadContext:
/* 8037F504 0037C464 3C 80 80 38 */ lis r4, OSDisableInterrupts@ha
/* 8037F508 0037C468 80 C3 01 98 */ lwz r6, 0x198(r3)
/* 8037F50C 0037C46C 38 A4 16 60 */ addi r5, r4, OSDisableInterrupts@l
/* 8037F510 0037C470 7C 06 28 40 */ cmplw r6, r5
/* 8037F514 0037C474 40 81 00 18 */ ble lbl_8037F52C
/* 8037F518 0037C478 3C 80 80 38 */ lis r4, __RAS_OSDisableInterrupts_end@ha
/* 8037F51C 0037C47C 38 04 16 6C */ addi r0, r4, __RAS_OSDisableInterrupts_end@l
/* 8037F520 0037C480 7C 06 00 40 */ cmplw r6, r0
/* 8037F524 0037C484 40 80 00 08 */ bge lbl_8037F52C
/* 8037F528 0037C488 90 A3 01 98 */ stw r5, 0x198(r3)
lbl_8037F52C:
/* 8037F52C 0037C48C 80 03 00 00 */ lwz r0, 0(r3)
/* 8037F530 0037C490 80 23 00 04 */ lwz r1, 4(r3)
/* 8037F534 0037C494 80 43 00 08 */ lwz r2, 8(r3)
/* 8037F538 0037C498 A0 83 01 A2 */ lhz r4, 0x1a2(r3)
/* 8037F53C 0037C49C 54 85 07 BD */ rlwinm. r5, r4, 0, 0x1e, 0x1e
/* 8037F540 0037C4A0 41 82 00 14 */ beq lbl_8037F554
/* 8037F544 0037C4A4 54 84 07 FA */ rlwinm r4, r4, 0, 0x1f, 0x1d
/* 8037F548 0037C4A8 B0 83 01 A2 */ sth r4, 0x1a2(r3)
/* 8037F54C 0037C4AC B8 A3 00 14 */ lmw r5, 0x14(r3)
/* 8037F550 0037C4B0 48 00 00 08 */ b lbl_8037F558
lbl_8037F554:
/* 8037F554 0037C4B4 B9 A3 00 34 */ lmw r13, 0x34(r3)
lbl_8037F558:
/* 8037F558 0037C4B8 80 83 01 A8 */ lwz r4, 0x1a8(r3)
/* 8037F55C 0037C4BC 7C 91 E3 A6 */ mtspr 0x391, r4
/* 8037F560 0037C4C0 80 83 01 AC */ lwz r4, 0x1ac(r3)
/* 8037F564 0037C4C4 7C 92 E3 A6 */ mtspr 0x392, r4
/* 8037F568 0037C4C8 80 83 01 B0 */ lwz r4, 0x1b0(r3)
/* 8037F56C 0037C4CC 7C 93 E3 A6 */ mtspr 0x393, r4
/* 8037F570 0037C4D0 80 83 01 B4 */ lwz r4, 0x1b4(r3)
/* 8037F574 0037C4D4 7C 94 E3 A6 */ mtspr 0x394, r4
/* 8037F578 0037C4D8 80 83 01 B8 */ lwz r4, 0x1b8(r3)
/* 8037F57C 0037C4DC 7C 95 E3 A6 */ mtspr 0x395, r4
/* 8037F580 0037C4E0 80 83 01 BC */ lwz r4, 0x1bc(r3)
/* 8037F584 0037C4E4 7C 96 E3 A6 */ mtspr 0x396, r4
/* 8037F588 0037C4E8 80 83 01 C0 */ lwz r4, 0x1c0(r3)
/* 8037F58C 0037C4EC 7C 97 E3 A6 */ mtspr 0x397, r4
/* 8037F590 0037C4F0 80 83 00 80 */ lwz r4, 0x80(r3)
/* 8037F594 0037C4F4 7C 8F F1 20 */ mtcrf 0xff, r4
/* 8037F598 0037C4F8 80 83 00 84 */ lwz r4, 0x84(r3)
/* 8037F59C 0037C4FC 7C 88 03 A6 */ mtlr r4
/* 8037F5A0 0037C500 80 83 00 88 */ lwz r4, 0x88(r3)
/* 8037F5A4 0037C504 7C 89 03 A6 */ mtctr r4
/* 8037F5A8 0037C508 80 83 00 8C */ lwz r4, 0x8c(r3)
/* 8037F5AC 0037C50C 7C 81 03 A6 */ mtxer r4
/* 8037F5B0 0037C510 7C 80 00 A6 */ mfmsr r4
/* 8037F5B4 0037C514 54 84 04 5E */ rlwinm r4, r4, 0, 0x11, 0xf
/* 8037F5B8 0037C518 54 84 07 FA */ rlwinm r4, r4, 0, 0x1f, 0x1d
/* 8037F5BC 0037C51C 7C 80 01 24 */ mtmsr r4
/* 8037F5C0 0037C520 80 83 01 98 */ lwz r4, 0x198(r3)
/* 8037F5C4 0037C524 7C 9A 03 A6 */ mtspr 0x1a, r4
/* 8037F5C8 0037C528 80 83 01 9C */ lwz r4, 0x19c(r3)
/* 8037F5CC 0037C52C 7C 9B 03 A6 */ mtspr 0x1b, r4
/* 8037F5D0 0037C530 80 83 00 10 */ lwz r4, 0x10(r3)
/* 8037F5D4 0037C534 80 63 00 0C */ lwz r3, 0xc(r3)
/* 8037F5D8 0037C538 4C 00 00 64 */ rfi
.global OSGetStackPointer
OSGetStackPointer:
/* 8037F5DC 0037C53C 7C 23 0B 78 */ mr r3, r1
/* 8037F5E0 0037C540 4E 80 00 20 */ blr
.global OSSwitchFiber
OSSwitchFiber:
/* 8037F5E4 0037C544 7C 08 02 A6 */ mflr r0
/* 8037F5E8 0037C548 7C 25 0B 78 */ mr r5, r1
/* 8037F5EC 0037C54C 94 A4 FF F8 */ stwu r5, -8(r4)
/* 8037F5F0 0037C550 7C 81 23 78 */ mr r1, r4
/* 8037F5F4 0037C554 90 05 00 04 */ stw r0, 4(r5)
/* 8037F5F8 0037C558 7C 68 03 A6 */ mtlr r3
/* 8037F5FC 0037C55C 4E 80 00 21 */ blrl
/* 8037F600 0037C560 80 A1 00 00 */ lwz r5, 0(r1)
/* 8037F604 0037C564 80 05 00 04 */ lwz r0, 4(r5)
/* 8037F608 0037C568 7C 08 03 A6 */ mtlr r0
/* 8037F60C 0037C56C 7C A1 2B 78 */ mr r1, r5
/* 8037F610 0037C570 4E 80 00 20 */ blr
.global OSClearContext
OSClearContext:
/* 8037F614 0037C574 38 A0 00 00 */ li r5, 0
/* 8037F618 0037C578 B0 A3 01 A0 */ sth r5, 0x1a0(r3)
/* 8037F61C 0037C57C 3C 80 80 00 */ lis r4, 0x800000D8@ha
/* 8037F620 0037C580 B0 A3 01 A2 */ sth r5, 0x1a2(r3)
/* 8037F624 0037C584 80 04 00 D8 */ lwz r0, 0x800000D8@l(r4)
/* 8037F628 0037C588 7C 03 00 40 */ cmplw r3, r0
/* 8037F62C 0037C58C 40 82 00 08 */ bne lbl_8037F634
/* 8037F630 0037C590 90 A4 00 D8 */ stw r5, 0xd8(r4)
lbl_8037F634:
/* 8037F634 0037C594 4E 80 00 20 */ blr
.global OSDumpContext
OSDumpContext:
/* 8037F638 0037C598 7C 08 02 A6 */ mflr r0
/* 8037F63C 0037C59C 90 01 00 04 */ stw r0, 4(r1)
/* 8037F640 0037C5A0 94 21 FD 08 */ stwu r1, -0x2f8(r1)
/* 8037F644 0037C5A4 BF 21 02 DC */ stmw r25, 0x2dc(r1)
/* 8037F648 0037C5A8 7C 7C 1B 78 */ mr r28, r3
/* 8037F64C 0037C5AC 3C 60 80 3F */ lis r3, lbl_803F1258@ha
/* 8037F650 0037C5B0 4C C6 31 82 */ crclr 6
/* 8037F654 0037C5B4 3B E3 12 58 */ addi r31, r3, lbl_803F1258@l
/* 8037F658 0037C5B8 7F E3 FB 78 */ mr r3, r31
/* 8037F65C 0037C5BC 7F 84 E3 78 */ mr r4, r28
/* 8037F660 0037C5C0 48 00 03 4D */ bl OSReport
/* 8037F664 0037C5C4 3B 20 00 00 */ li r25, 0
/* 8037F668 0037C5C8 57 20 10 3A */ slwi r0, r25, 2
/* 8037F66C 0037C5CC 7F 7C 02 14 */ add r27, r28, r0
/* 8037F670 0037C5D0 48 00 00 04 */ b lbl_8037F674
lbl_8037F674:
/* 8037F674 0037C5D4 48 00 00 04 */ b lbl_8037F678
lbl_8037F678:
/* 8037F678 0037C5D8 48 00 00 04 */ b lbl_8037F67C
lbl_8037F67C:
/* 8037F67C 0037C5DC 81 1B 00 40 */ lwz r8, 0x40(r27)
/* 8037F680 0037C5E0 7F 24 CB 78 */ mr r4, r25
/* 8037F684 0037C5E4 80 BB 00 00 */ lwz r5, 0(r27)
/* 8037F688 0037C5E8 38 7F 00 44 */ addi r3, r31, 0x44
/* 8037F68C 0037C5EC 4C C6 31 82 */ crclr 6
/* 8037F690 0037C5F0 7C A6 2B 78 */ mr r6, r5
/* 8037F694 0037C5F4 7D 09 43 78 */ mr r9, r8
/* 8037F698 0037C5F8 38 F9 00 10 */ addi r7, r25, 0x10
/* 8037F69C 0037C5FC 48 00 03 11 */ bl OSReport
/* 8037F6A0 0037C600 3B 7B 00 04 */ addi r27, r27, 4
/* 8037F6A4 0037C604 3B 39 00 01 */ addi r25, r25, 1
/* 8037F6A8 0037C608 28 19 00 10 */ cmplwi r25, 0x10
/* 8037F6AC 0037C60C 41 80 FF D0 */ blt lbl_8037F67C
/* 8037F6B0 0037C610 80 9C 00 84 */ lwz r4, 0x84(r28)
/* 8037F6B4 0037C614 38 7F 00 74 */ addi r3, r31, 0x74
/* 8037F6B8 0037C618 80 BC 00 80 */ lwz r5, 0x80(r28)
/* 8037F6BC 0037C61C 4C C6 31 82 */ crclr 6
/* 8037F6C0 0037C620 48 00 02 ED */ bl OSReport
/* 8037F6C4 0037C624 80 9C 01 98 */ lwz r4, 0x198(r28)
/* 8037F6C8 0037C628 38 7F 00 A4 */ addi r3, r31, 0xa4
/* 8037F6CC 0037C62C 80 BC 01 9C */ lwz r5, 0x19c(r28)
/* 8037F6D0 0037C630 4C C6 31 82 */ crclr 6
/* 8037F6D4 0037C634 48 00 02 D9 */ bl OSReport
/* 8037F6D8 0037C638 38 7F 00 D4 */ addi r3, r31, 0xd4
/* 8037F6DC 0037C63C 4C C6 31 82 */ crclr 6
/* 8037F6E0 0037C640 48 00 02 CD */ bl OSReport
/* 8037F6E4 0037C644 3B 20 00 00 */ li r25, 0
/* 8037F6E8 0037C648 57 20 10 3A */ slwi r0, r25, 2
/* 8037F6EC 0037C64C 7F 7C 02 14 */ add r27, r28, r0
/* 8037F6F0 0037C650 48 00 00 04 */ b lbl_8037F6F4
lbl_8037F6F4:
/* 8037F6F4 0037C654 48 00 00 04 */ b lbl_8037F6F8
lbl_8037F6F8:
/* 8037F6F8 0037C658 48 00 00 04 */ b lbl_8037F6FC
lbl_8037F6FC:
/* 8037F6FC 0037C65C 80 BB 01 A4 */ lwz r5, 0x1a4(r27)
/* 8037F700 0037C660 7F 24 CB 78 */ mr r4, r25
/* 8037F704 0037C664 80 FB 01 B4 */ lwz r7, 0x1b4(r27)
/* 8037F708 0037C668 38 7F 00 E8 */ addi r3, r31, 0xe8
/* 8037F70C 0037C66C 38 D9 00 04 */ addi r6, r25, 4
/* 8037F710 0037C670 4C C6 31 82 */ crclr 6
/* 8037F714 0037C674 48 00 02 99 */ bl OSReport
/* 8037F718 0037C678 3B 7B 00 04 */ addi r27, r27, 4
/* 8037F71C 0037C67C 3B 39 00 01 */ addi r25, r25, 1
/* 8037F720 0037C680 28 19 00 04 */ cmplwi r25, 4
/* 8037F724 0037C684 41 80 FF D8 */ blt lbl_8037F6FC
/* 8037F728 0037C688 A0 1C 01 A2 */ lhz r0, 0x1a2(r28)
/* 8037F72C 0037C68C 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 8037F730 0037C690 28 00 00 00 */ cmplwi r0, 0
/* 8037F734 0037C694 41 82 01 3C */ beq lbl_8037F870
/* 8037F738 0037C698 48 00 1F 29 */ bl OSDisableInterrupts
/* 8037F73C 0037C69C 3C C0 80 00 */ lis r6, 0x800000D4@ha
/* 8037F740 0037C6A0 80 06 00 D4 */ lwz r0, 0x800000D4@l(r6)
/* 8037F744 0037C6A4 38 A0 00 00 */ li r5, 0
/* 8037F748 0037C6A8 38 81 00 10 */ addi r4, r1, 0x10
/* 8037F74C 0037C6AC B0 A1 01 B0 */ sth r5, 0x1b0(r1)
/* 8037F750 0037C6B0 7C 1E 03 78 */ mr r30, r0
/* 8037F754 0037C6B4 7C 7D 1B 78 */ mr r29, r3
/* 8037F758 0037C6B8 B0 A1 01 B2 */ sth r5, 0x1b2(r1)
/* 8037F75C 0037C6BC 80 06 00 D8 */ lwz r0, 0xd8(r6)
/* 8037F760 0037C6C0 7C 04 00 40 */ cmplw r4, r0
/* 8037F764 0037C6C4 40 82 00 08 */ bne lbl_8037F76C
/* 8037F768 0037C6C8 90 A6 00 D8 */ stw r5, 0xd8(r6)
lbl_8037F76C:
/* 8037F76C 0037C6CC 38 61 00 10 */ addi r3, r1, 0x10
/* 8037F770 0037C6D0 4B FF FC AD */ bl OSSetCurrentContext
/* 8037F774 0037C6D4 38 7F 01 0C */ addi r3, r31, 0x10c
/* 8037F778 0037C6D8 4C C6 31 82 */ crclr 6
/* 8037F77C 0037C6DC 48 00 02 31 */ bl OSReport
/* 8037F780 0037C6E0 3B 20 00 00 */ li r25, 0
/* 8037F784 0037C6E4 57 20 18 38 */ slwi r0, r25, 3
/* 8037F788 0037C6E8 7F 5C 02 14 */ add r26, r28, r0
/* 8037F78C 0037C6EC 48 00 00 04 */ b lbl_8037F790
lbl_8037F790:
/* 8037F790 0037C6F0 48 00 00 04 */ b lbl_8037F794
lbl_8037F794:
/* 8037F794 0037C6F4 48 00 00 04 */ b lbl_8037F798
lbl_8037F798:
/* 8037F798 0037C6F8 C8 3A 00 98 */ lfd f1, 0x98(r26)
/* 8037F79C 0037C6FC 48 00 A1 B9 */ bl __cvt_fp2unsigned
/* 8037F7A0 0037C700 7C 7B 1B 78 */ mr r27, r3
/* 8037F7A4 0037C704 C8 3A 00 90 */ lfd f1, 0x90(r26)
/* 8037F7A8 0037C708 48 00 A1 AD */ bl __cvt_fp2unsigned
/* 8037F7AC 0037C70C 7C 65 1B 78 */ mr r5, r3
/* 8037F7B0 0037C710 4C C6 31 82 */ crclr 6
/* 8037F7B4 0037C714 7F 24 CB 78 */ mr r4, r25
/* 8037F7B8 0037C718 7F 67 DB 78 */ mr r7, r27
/* 8037F7BC 0037C71C 38 7F 01 20 */ addi r3, r31, 0x120
/* 8037F7C0 0037C720 38 D9 00 01 */ addi r6, r25, 1
/* 8037F7C4 0037C724 48 00 01 E9 */ bl OSReport
/* 8037F7C8 0037C728 3B 5A 00 10 */ addi r26, r26, 0x10
/* 8037F7CC 0037C72C 3B 39 00 02 */ addi r25, r25, 2
/* 8037F7D0 0037C730 28 19 00 20 */ cmplwi r25, 0x20
/* 8037F7D4 0037C734 41 80 FF C4 */ blt lbl_8037F798
/* 8037F7D8 0037C738 38 7F 01 3C */ addi r3, r31, 0x13c
/* 8037F7DC 0037C73C 4C C6 31 82 */ crclr 6
/* 8037F7E0 0037C740 48 00 01 CD */ bl OSReport
/* 8037F7E4 0037C744 3B 20 00 00 */ li r25, 0
/* 8037F7E8 0037C748 57 20 18 38 */ slwi r0, r25, 3
/* 8037F7EC 0037C74C 7F 5C 02 14 */ add r26, r28, r0
/* 8037F7F0 0037C750 48 00 00 04 */ b lbl_8037F7F4
lbl_8037F7F4:
/* 8037F7F4 0037C754 48 00 00 04 */ b lbl_8037F7F8
lbl_8037F7F8:
/* 8037F7F8 0037C758 48 00 00 04 */ b lbl_8037F7FC
lbl_8037F7FC:
/* 8037F7FC 0037C75C C8 3A 01 D0 */ lfd f1, 0x1d0(r26)
/* 8037F800 0037C760 48 00 A1 55 */ bl __cvt_fp2unsigned
/* 8037F804 0037C764 7C 7B 1B 78 */ mr r27, r3
/* 8037F808 0037C768 C8 3A 01 C8 */ lfd f1, 0x1c8(r26)
/* 8037F80C 0037C76C 48 00 A1 49 */ bl __cvt_fp2unsigned
/* 8037F810 0037C770 7C 65 1B 78 */ mr r5, r3
/* 8037F814 0037C774 4C C6 31 82 */ crclr 6
/* 8037F818 0037C778 7F 24 CB 78 */ mr r4, r25
/* 8037F81C 0037C77C 7F 67 DB 78 */ mr r7, r27
/* 8037F820 0037C780 38 7F 01 50 */ addi r3, r31, 0x150
/* 8037F824 0037C784 38 D9 00 01 */ addi r6, r25, 1
/* 8037F828 0037C788 48 00 01 85 */ bl OSReport
/* 8037F82C 0037C78C 3B 5A 00 10 */ addi r26, r26, 0x10
/* 8037F830 0037C790 3B 39 00 02 */ addi r25, r25, 2
/* 8037F834 0037C794 28 19 00 20 */ cmplwi r25, 0x20
/* 8037F838 0037C798 41 80 FF C4 */ blt lbl_8037F7FC
/* 8037F83C 0037C79C 38 A0 00 00 */ li r5, 0
/* 8037F840 0037C7A0 B0 A1 01 B0 */ sth r5, 0x1b0(r1)
/* 8037F844 0037C7A4 3C 60 80 00 */ lis r3, 0x800000D8@ha
/* 8037F848 0037C7A8 38 81 00 10 */ addi r4, r1, 0x10
/* 8037F84C 0037C7AC B0 A1 01 B2 */ sth r5, 0x1b2(r1)
/* 8037F850 0037C7B0 80 03 00 D8 */ lwz r0, 0x800000D8@l(r3)
/* 8037F854 0037C7B4 7C 04 00 40 */ cmplw r4, r0
/* 8037F858 0037C7B8 40 82 00 08 */ bne lbl_8037F860
/* 8037F85C 0037C7BC 90 A3 00 D8 */ stw r5, 0xd8(r3)
lbl_8037F860:
/* 8037F860 0037C7C0 7F C3 F3 78 */ mr r3, r30
/* 8037F864 0037C7C4 4B FF FB B9 */ bl OSSetCurrentContext
/* 8037F868 0037C7C8 7F A3 EB 78 */ mr r3, r29
/* 8037F86C 0037C7CC 48 00 1E 1D */ bl OSRestoreInterrupts
lbl_8037F870:
/* 8037F870 0037C7D0 38 7F 01 70 */ addi r3, r31, 0x170
/* 8037F874 0037C7D4 4C C6 31 82 */ crclr 6
/* 8037F878 0037C7D8 48 00 01 35 */ bl OSReport
/* 8037F87C 0037C7DC 83 3C 00 04 */ lwz r25, 4(r28)
/* 8037F880 0037C7E0 3B 40 00 00 */ li r26, 0
/* 8037F884 0037C7E4 48 00 00 04 */ b lbl_8037F888
lbl_8037F888:
/* 8037F888 0037C7E8 48 00 00 04 */ b lbl_8037F88C
lbl_8037F88C:
/* 8037F88C 0037C7EC 48 00 00 20 */ b lbl_8037F8AC
lbl_8037F890:
/* 8037F890 0037C7F0 80 B9 00 00 */ lwz r5, 0(r25)
/* 8037F894 0037C7F4 7F 24 CB 78 */ mr r4, r25
/* 8037F898 0037C7F8 80 D9 00 04 */ lwz r6, 4(r25)
/* 8037F89C 0037C7FC 38 7F 01 98 */ addi r3, r31, 0x198
/* 8037F8A0 0037C800 4C C6 31 82 */ crclr 6
/* 8037F8A4 0037C804 48 00 01 09 */ bl OSReport
/* 8037F8A8 0037C808 83 39 00 00 */ lwz r25, 0(r25)
lbl_8037F8AC:
/* 8037F8AC 0037C80C 28 19 00 00 */ cmplwi r25, 0
/* 8037F8B0 0037C810 41 82 00 1C */ beq lbl_8037F8CC
/* 8037F8B4 0037C814 3C 19 00 01 */ addis r0, r25, 1
/* 8037F8B8 0037C818 28 00 FF FF */ cmplwi r0, 0xffff
/* 8037F8BC 0037C81C 41 82 00 10 */ beq lbl_8037F8CC
/* 8037F8C0 0037C820 28 1A 00 10 */ cmplwi r26, 0x10
/* 8037F8C4 0037C824 3B 5A 00 01 */ addi r26, r26, 1
/* 8037F8C8 0037C828 41 80 FF C8 */ blt lbl_8037F890
lbl_8037F8CC:
/* 8037F8CC 0037C82C BB 21 02 DC */ lmw r25, 0x2dc(r1)
/* 8037F8D0 0037C830 80 01 02 FC */ lwz r0, 0x2fc(r1)
/* 8037F8D4 0037C834 38 21 02 F8 */ addi r1, r1, 0x2f8
/* 8037F8D8 0037C838 7C 08 03 A6 */ mtlr r0
/* 8037F8DC 0037C83C 4E 80 00 20 */ blr
.global OSSwitchFPUContext
OSSwitchFPUContext:
/* 8037F8E0 0037C840 7C A0 00 A6 */ mfmsr r5
/* 8037F8E4 0037C844 60 A5 20 00 */ ori r5, r5, 0x2000
/* 8037F8E8 0037C848 7C A0 01 24 */ mtmsr r5
/* 8037F8EC 0037C84C 4C 00 01 2C */ isync
/* 8037F8F0 0037C850 80 A4 01 9C */ lwz r5, 0x19c(r4)
/* 8037F8F4 0037C854 60 A5 20 00 */ ori r5, r5, 0x2000
/* 8037F8F8 0037C858 7C BB 03 A6 */ mtspr 0x1b, r5
/* 8037F8FC 0037C85C 3C 60 80 00 */ lis r3, 0x800000D8@ha
/* 8037F900 0037C860 80 A3 00 D8 */ lwz r5, 0x800000D8@l(r3)
/* 8037F904 0037C864 90 83 00 D8 */ stw r4, 0xd8(r3)
/* 8037F908 0037C868 7C 05 20 00 */ cmpw r5, r4
/* 8037F90C 0037C86C 41 82 00 14 */ beq lbl_8037F920
/* 8037F910 0037C870 2C 05 00 00 */ cmpwi r5, 0
/* 8037F914 0037C874 41 82 00 08 */ beq lbl_8037F91C
/* 8037F918 0037C878 4B FF F9 D5 */ bl __OSSaveFPUContext
lbl_8037F91C:
/* 8037F91C 0037C87C 4B FF F8 AD */ bl __OSLoadFPUContext
lbl_8037F920:
/* 8037F920 0037C880 80 64 00 80 */ lwz r3, 0x80(r4)
/* 8037F924 0037C884 7C 6F F1 20 */ mtcrf 0xff, r3
/* 8037F928 0037C888 80 64 00 84 */ lwz r3, 0x84(r4)
/* 8037F92C 0037C88C 7C 68 03 A6 */ mtlr r3
/* 8037F930 0037C890 80 64 01 98 */ lwz r3, 0x198(r4)
/* 8037F934 0037C894 7C 7A 03 A6 */ mtspr 0x1a, r3
/* 8037F938 0037C898 80 64 00 88 */ lwz r3, 0x88(r4)
/* 8037F93C 0037C89C 7C 69 03 A6 */ mtctr r3
/* 8037F940 0037C8A0 80 64 00 8C */ lwz r3, 0x8c(r4)
/* 8037F944 0037C8A4 7C 61 03 A6 */ mtxer r3
/* 8037F948 0037C8A8 A0 64 01 A2 */ lhz r3, 0x1a2(r4)
/* 8037F94C 0037C8AC 54 63 07 FA */ rlwinm r3, r3, 0, 0x1f, 0x1d
/* 8037F950 0037C8B0 B0 64 01 A2 */ sth r3, 0x1a2(r4)
/* 8037F954 0037C8B4 80 A4 00 14 */ lwz r5, 0x14(r4)
/* 8037F958 0037C8B8 80 64 00 0C */ lwz r3, 0xc(r4)
/* 8037F95C 0037C8BC 80 84 00 10 */ lwz r4, 0x10(r4)
/* 8037F960 0037C8C0 4C 00 00 64 */ rfi
.global __OSContextInit
__OSContextInit:
/* 8037F964 0037C8C4 7C 08 02 A6 */ mflr r0
/* 8037F968 0037C8C8 90 01 00 04 */ stw r0, 4(r1)
/* 8037F96C 0037C8CC 94 21 FF F8 */ stwu r1, -8(r1)
/* 8037F970 0037C8D0 3C 60 80 38 */ lis r3, OSSwitchFPUContext@ha
/* 8037F974 0037C8D4 38 83 F8 E0 */ addi r4, r3, OSSwitchFPUContext@l
/* 8037F978 0037C8D8 38 60 00 07 */ li r3, 7
/* 8037F97C 0037C8DC 4B FF E5 4D */ bl __OSSetExceptionHandler
/* 8037F980 0037C8E0 38 00 00 00 */ li r0, 0
/* 8037F984 0037C8E4 4C C6 31 82 */ crclr 6
/* 8037F988 0037C8E8 3C 80 80 00 */ lis r4, 0x800000D8@ha
/* 8037F98C 0037C8EC 3C 60 80 3F */ lis r3, lbl_803F140C@ha
/* 8037F990 0037C8F0 90 04 00 D8 */ stw r0, 0x800000D8@l(r4)
/* 8037F994 0037C8F4 38 63 14 0C */ addi r3, r3, lbl_803F140C@l
/* 8037F998 0037C8F8 4B FE FF D1 */ bl DBPrintf
/* 8037F99C 0037C8FC 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8037F9A0 0037C900 38 21 00 08 */ addi r1, r1, 8
/* 8037F9A4 0037C904 7C 08 03 A6 */ mtlr r0
/* 8037F9A8 0037C908 4E 80 00 20 */ blr

465
asm/Dolphin/OS/OSError.s Normal file
View File

@ -0,0 +1,465 @@
.include "macros.inc"
.section .text, "ax"
.global OSReport
OSReport:
/* 8037F9AC 0037C90C 7C 08 02 A6 */ mflr r0
/* 8037F9B0 0037C910 90 01 00 04 */ stw r0, 4(r1)
/* 8037F9B4 0037C914 94 21 FF 88 */ stwu r1, -0x78(r1)
/* 8037F9B8 0037C918 40 86 00 24 */ bne cr1, lbl_8037F9DC
/* 8037F9BC 0037C91C D8 21 00 28 */ stfd f1, 0x28(r1)
/* 8037F9C0 0037C920 D8 41 00 30 */ stfd f2, 0x30(r1)
/* 8037F9C4 0037C924 D8 61 00 38 */ stfd f3, 0x38(r1)
/* 8037F9C8 0037C928 D8 81 00 40 */ stfd f4, 0x40(r1)
/* 8037F9CC 0037C92C D8 A1 00 48 */ stfd f5, 0x48(r1)
/* 8037F9D0 0037C930 D8 C1 00 50 */ stfd f6, 0x50(r1)
/* 8037F9D4 0037C934 D8 E1 00 58 */ stfd f7, 0x58(r1)
/* 8037F9D8 0037C938 D9 01 00 60 */ stfd f8, 0x60(r1)
lbl_8037F9DC:
/* 8037F9DC 0037C93C 90 61 00 08 */ stw r3, 8(r1)
/* 8037F9E0 0037C940 3C 00 01 00 */ lis r0, 0x100
/* 8037F9E4 0037C944 90 81 00 0C */ stw r4, 0xc(r1)
/* 8037F9E8 0037C948 38 81 00 6C */ addi r4, r1, 0x6c
/* 8037F9EC 0037C94C 90 A1 00 10 */ stw r5, 0x10(r1)
/* 8037F9F0 0037C950 90 C1 00 14 */ stw r6, 0x14(r1)
/* 8037F9F4 0037C954 90 E1 00 18 */ stw r7, 0x18(r1)
/* 8037F9F8 0037C958 91 01 00 1C */ stw r8, 0x1c(r1)
/* 8037F9FC 0037C95C 91 21 00 20 */ stw r9, 0x20(r1)
/* 8037FA00 0037C960 91 41 00 24 */ stw r10, 0x24(r1)
/* 8037FA04 0037C964 90 01 00 6C */ stw r0, 0x6c(r1)
/* 8037FA08 0037C968 38 01 00 80 */ addi r0, r1, 0x80
/* 8037FA0C 0037C96C 90 01 00 70 */ stw r0, 0x70(r1)
/* 8037FA10 0037C970 38 01 00 08 */ addi r0, r1, 8
/* 8037FA14 0037C974 90 01 00 74 */ stw r0, 0x74(r1)
/* 8037FA18 0037C978 48 00 E4 1D */ bl vprintf
/* 8037FA1C 0037C97C 80 01 00 7C */ lwz r0, 0x7c(r1)
/* 8037FA20 0037C980 38 21 00 78 */ addi r1, r1, 0x78
/* 8037FA24 0037C984 7C 08 03 A6 */ mtlr r0
/* 8037FA28 0037C988 4E 80 00 20 */ blr
.global OSPanic
OSPanic:
/* 8037FA2C 0037C98C 7C 08 02 A6 */ mflr r0
/* 8037FA30 0037C990 90 01 00 04 */ stw r0, 4(r1)
/* 8037FA34 0037C994 94 21 FF 70 */ stwu r1, -0x90(r1)
/* 8037FA38 0037C998 93 E1 00 8C */ stw r31, 0x8c(r1)
/* 8037FA3C 0037C99C 93 C1 00 88 */ stw r30, 0x88(r1)
/* 8037FA40 0037C9A0 93 A1 00 84 */ stw r29, 0x84(r1)
/* 8037FA44 0037C9A4 93 81 00 80 */ stw r28, 0x80(r1)
/* 8037FA48 0037C9A8 40 86 00 24 */ bne cr1, lbl_8037FA6C
/* 8037FA4C 0037C9AC D8 21 00 28 */ stfd f1, 0x28(r1)
/* 8037FA50 0037C9B0 D8 41 00 30 */ stfd f2, 0x30(r1)
/* 8037FA54 0037C9B4 D8 61 00 38 */ stfd f3, 0x38(r1)
/* 8037FA58 0037C9B8 D8 81 00 40 */ stfd f4, 0x40(r1)
/* 8037FA5C 0037C9BC D8 A1 00 48 */ stfd f5, 0x48(r1)
/* 8037FA60 0037C9C0 D8 C1 00 50 */ stfd f6, 0x50(r1)
/* 8037FA64 0037C9C4 D8 E1 00 58 */ stfd f7, 0x58(r1)
/* 8037FA68 0037C9C8 D9 01 00 60 */ stfd f8, 0x60(r1)
lbl_8037FA6C:
/* 8037FA6C 0037C9CC 90 61 00 08 */ stw r3, 8(r1)
/* 8037FA70 0037C9D0 3B 83 00 00 */ addi r28, r3, 0
/* 8037FA74 0037C9D4 3B C4 00 00 */ addi r30, r4, 0
/* 8037FA78 0037C9D8 90 81 00 0C */ stw r4, 0xc(r1)
/* 8037FA7C 0037C9DC 3B A5 00 00 */ addi r29, r5, 0
/* 8037FA80 0037C9E0 90 A1 00 10 */ stw r5, 0x10(r1)
/* 8037FA84 0037C9E4 90 C1 00 14 */ stw r6, 0x14(r1)
/* 8037FA88 0037C9E8 3C C0 80 3F */ lis r6, lbl_803F1430@ha
/* 8037FA8C 0037C9EC 3B E6 14 30 */ addi r31, r6, lbl_803F1430@l
/* 8037FA90 0037C9F0 90 E1 00 18 */ stw r7, 0x18(r1)
/* 8037FA94 0037C9F4 91 01 00 1C */ stw r8, 0x1c(r1)
/* 8037FA98 0037C9F8 91 21 00 20 */ stw r9, 0x20(r1)
/* 8037FA9C 0037C9FC 91 41 00 24 */ stw r10, 0x24(r1)
/* 8037FAA0 0037CA00 48 00 1B C1 */ bl OSDisableInterrupts
/* 8037FAA4 0037CA04 3C 00 03 00 */ lis r0, 0x300
/* 8037FAA8 0037CA08 90 01 00 74 */ stw r0, 0x74(r1)
/* 8037FAAC 0037CA0C 38 01 00 98 */ addi r0, r1, 0x98
/* 8037FAB0 0037CA10 38 81 00 74 */ addi r4, r1, 0x74
/* 8037FAB4 0037CA14 90 01 00 78 */ stw r0, 0x78(r1)
/* 8037FAB8 0037CA18 38 01 00 08 */ addi r0, r1, 8
/* 8037FABC 0037CA1C 38 7D 00 00 */ addi r3, r29, 0
/* 8037FAC0 0037CA20 90 01 00 7C */ stw r0, 0x7c(r1)
/* 8037FAC4 0037CA24 48 00 E3 71 */ bl vprintf
/* 8037FAC8 0037CA28 38 7F 00 00 */ addi r3, r31, 0
/* 8037FACC 0037CA2C 4C C6 31 82 */ crclr 6
/* 8037FAD0 0037CA30 38 9C 00 00 */ addi r4, r28, 0
/* 8037FAD4 0037CA34 38 BE 00 00 */ addi r5, r30, 0
/* 8037FAD8 0037CA38 4B FF FE D5 */ bl OSReport
/* 8037FADC 0037CA3C 38 7F 00 18 */ addi r3, r31, 0x18
/* 8037FAE0 0037CA40 4C C6 31 82 */ crclr 6
/* 8037FAE4 0037CA44 4B FF FE C9 */ bl OSReport
/* 8037FAE8 0037CA48 3B C0 00 00 */ li r30, 0
/* 8037FAEC 0037CA4C 4B FF FA F1 */ bl OSGetStackPointer
/* 8037FAF0 0037CA50 7C 7D 1B 78 */ mr r29, r3
/* 8037FAF4 0037CA54 48 00 00 20 */ b lbl_8037FB14
lbl_8037FAF8:
/* 8037FAF8 0037CA58 80 BD 00 00 */ lwz r5, 0(r29)
/* 8037FAFC 0037CA5C 7F A4 EB 78 */ mr r4, r29
/* 8037FB00 0037CA60 80 DD 00 04 */ lwz r6, 4(r29)
/* 8037FB04 0037CA64 38 7F 00 40 */ addi r3, r31, 0x40
/* 8037FB08 0037CA68 4C C6 31 82 */ crclr 6
/* 8037FB0C 0037CA6C 4B FF FE A1 */ bl OSReport
/* 8037FB10 0037CA70 83 BD 00 00 */ lwz r29, 0(r29)
lbl_8037FB14:
/* 8037FB14 0037CA74 28 1D 00 00 */ cmplwi r29, 0
/* 8037FB18 0037CA78 41 82 00 1C */ beq lbl_8037FB34
/* 8037FB1C 0037CA7C 3C 1D 00 01 */ addis r0, r29, 1
/* 8037FB20 0037CA80 28 00 FF FF */ cmplwi r0, 0xffff
/* 8037FB24 0037CA84 41 82 00 10 */ beq lbl_8037FB34
/* 8037FB28 0037CA88 28 1E 00 10 */ cmplwi r30, 0x10
/* 8037FB2C 0037CA8C 3B DE 00 01 */ addi r30, r30, 1
/* 8037FB30 0037CA90 41 80 FF C8 */ blt lbl_8037FAF8
lbl_8037FB34:
/* 8037FB34 0037CA94 4B FE FC E1 */ bl PPCHalt
/* 8037FB38 0037CA98 80 01 00 94 */ lwz r0, 0x94(r1)
/* 8037FB3C 0037CA9C 83 E1 00 8C */ lwz r31, 0x8c(r1)
/* 8037FB40 0037CAA0 83 C1 00 88 */ lwz r30, 0x88(r1)
/* 8037FB44 0037CAA4 83 A1 00 84 */ lwz r29, 0x84(r1)
/* 8037FB48 0037CAA8 83 81 00 80 */ lwz r28, 0x80(r1)
/* 8037FB4C 0037CAAC 38 21 00 90 */ addi r1, r1, 0x90
/* 8037FB50 0037CAB0 7C 08 03 A6 */ mtlr r0
/* 8037FB54 0037CAB4 4E 80 00 20 */ blr
.global OSSetErrorHandler
OSSetErrorHandler:
/* 8037FB58 0037CAB8 7C 08 02 A6 */ mflr r0
/* 8037FB5C 0037CABC 90 01 00 04 */ stw r0, 4(r1)
/* 8037FB60 0037CAC0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8037FB64 0037CAC4 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8037FB68 0037CAC8 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8037FB6C 0037CACC 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8037FB70 0037CAD0 3B A3 00 00 */ addi r29, r3, 0
/* 8037FB74 0037CAD4 93 81 00 20 */ stw r28, 0x20(r1)
/* 8037FB78 0037CAD8 3B 84 00 00 */ addi r28, r4, 0
/* 8037FB7C 0037CADC 48 00 1A E5 */ bl OSDisableInterrupts
/* 8037FB80 0037CAE0 3C 80 80 54 */ lis r4, lbl_80541250@ha
/* 8037FB84 0037CAE4 57 A5 13 BA */ rlwinm r5, r29, 2, 0xe, 0x1d
/* 8037FB88 0037CAE8 38 04 12 50 */ addi r0, r4, lbl_80541250@l
/* 8037FB8C 0037CAEC 57 A6 04 3E */ clrlwi r6, r29, 0x10
/* 8037FB90 0037CAF0 7C 80 2A 14 */ add r4, r0, r5
/* 8037FB94 0037CAF4 83 C4 00 00 */ lwz r30, 0(r4)
/* 8037FB98 0037CAF8 28 06 00 10 */ cmplwi r6, 0x10
/* 8037FB9C 0037CAFC 7C 7D 1B 78 */ mr r29, r3
/* 8037FBA0 0037CB00 93 84 00 00 */ stw r28, 0(r4)
/* 8037FBA4 0037CB04 40 82 01 A0 */ bne lbl_8037FD44
/* 8037FBA8 0037CB08 4B FE FC 2D */ bl PPCMfmsr
/* 8037FBAC 0037CB0C 3B E3 00 00 */ addi r31, r3, 0
/* 8037FBB0 0037CB10 63 E3 20 00 */ ori r3, r31, 0x2000
/* 8037FBB4 0037CB14 4B FE FC 29 */ bl PPCMtmsr
/* 8037FBB8 0037CB18 4B FE FC 71 */ bl PPCMffpscr
/* 8037FBBC 0037CB1C 28 1C 00 00 */ cmplwi r28, 0
/* 8037FBC0 0037CB20 41 82 01 18 */ beq lbl_8037FCD8
/* 8037FBC4 0037CB24 3C A0 80 00 */ lis r5, 0x800000DC@ha
/* 8037FBC8 0037CB28 3C 80 60 06 */ lis r4, 0x6005F8FF@ha
/* 8037FBCC 0037CB2C 80 C5 00 DC */ lwz r6, 0x800000DC@l(r5)
/* 8037FBD0 0037CB30 38 84 F8 FF */ addi r4, r4, 0x6005F8FF@l
/* 8037FBD4 0037CB34 48 00 00 E8 */ b lbl_8037FCBC
lbl_8037FBD8:
/* 8037FBD8 0037CB38 80 06 01 9C */ lwz r0, 0x19c(r6)
/* 8037FBDC 0037CB3C 60 00 09 00 */ ori r0, r0, 0x900
/* 8037FBE0 0037CB40 90 06 01 9C */ stw r0, 0x19c(r6)
/* 8037FBE4 0037CB44 A0 A6 01 A2 */ lhz r5, 0x1a2(r6)
/* 8037FBE8 0037CB48 54 A0 07 FF */ clrlwi. r0, r5, 0x1f
/* 8037FBEC 0037CB4C 40 82 00 AC */ bne lbl_8037FC98
/* 8037FBF0 0037CB50 60 A5 00 01 */ ori r5, r5, 1
/* 8037FBF4 0037CB54 38 00 00 04 */ li r0, 4
/* 8037FBF8 0037CB58 B0 A6 01 A2 */ sth r5, 0x1a2(r6)
/* 8037FBFC 0037CB5C 7C 09 03 A6 */ mtctr r0
/* 8037FC00 0037CB60 38 A6 00 00 */ addi r5, r6, 0
lbl_8037FC04:
/* 8037FC04 0037CB64 38 00 FF FF */ li r0, -1
/* 8037FC08 0037CB68 90 05 00 94 */ stw r0, 0x94(r5)
/* 8037FC0C 0037CB6C 90 05 00 90 */ stw r0, 0x90(r5)
/* 8037FC10 0037CB70 90 05 01 CC */ stw r0, 0x1cc(r5)
/* 8037FC14 0037CB74 90 05 01 C8 */ stw r0, 0x1c8(r5)
/* 8037FC18 0037CB78 90 05 00 9C */ stw r0, 0x9c(r5)
/* 8037FC1C 0037CB7C 90 05 00 98 */ stw r0, 0x98(r5)
/* 8037FC20 0037CB80 90 05 01 D4 */ stw r0, 0x1d4(r5)
/* 8037FC24 0037CB84 90 05 01 D0 */ stw r0, 0x1d0(r5)
/* 8037FC28 0037CB88 90 05 00 A4 */ stw r0, 0xa4(r5)
/* 8037FC2C 0037CB8C 90 05 00 A0 */ stw r0, 0xa0(r5)
/* 8037FC30 0037CB90 90 05 01 DC */ stw r0, 0x1dc(r5)
/* 8037FC34 0037CB94 90 05 01 D8 */ stw r0, 0x1d8(r5)
/* 8037FC38 0037CB98 90 05 00 AC */ stw r0, 0xac(r5)
/* 8037FC3C 0037CB9C 90 05 00 A8 */ stw r0, 0xa8(r5)
/* 8037FC40 0037CBA0 90 05 01 E4 */ stw r0, 0x1e4(r5)
/* 8037FC44 0037CBA4 90 05 01 E0 */ stw r0, 0x1e0(r5)
/* 8037FC48 0037CBA8 90 05 00 B4 */ stw r0, 0xb4(r5)
/* 8037FC4C 0037CBAC 90 05 00 B0 */ stw r0, 0xb0(r5)
/* 8037FC50 0037CBB0 90 05 01 EC */ stw r0, 0x1ec(r5)
/* 8037FC54 0037CBB4 90 05 01 E8 */ stw r0, 0x1e8(r5)
/* 8037FC58 0037CBB8 90 05 00 BC */ stw r0, 0xbc(r5)
/* 8037FC5C 0037CBBC 90 05 00 B8 */ stw r0, 0xb8(r5)
/* 8037FC60 0037CBC0 90 05 01 F4 */ stw r0, 0x1f4(r5)
/* 8037FC64 0037CBC4 90 05 01 F0 */ stw r0, 0x1f0(r5)
/* 8037FC68 0037CBC8 90 05 00 C4 */ stw r0, 0xc4(r5)
/* 8037FC6C 0037CBCC 90 05 00 C0 */ stw r0, 0xc0(r5)
/* 8037FC70 0037CBD0 90 05 01 FC */ stw r0, 0x1fc(r5)
/* 8037FC74 0037CBD4 90 05 01 F8 */ stw r0, 0x1f8(r5)
/* 8037FC78 0037CBD8 90 05 00 CC */ stw r0, 0xcc(r5)
/* 8037FC7C 0037CBDC 90 05 00 C8 */ stw r0, 0xc8(r5)
/* 8037FC80 0037CBE0 90 05 02 04 */ stw r0, 0x204(r5)
/* 8037FC84 0037CBE4 90 05 02 00 */ stw r0, 0x200(r5)
/* 8037FC88 0037CBE8 38 A5 00 40 */ addi r5, r5, 0x40
/* 8037FC8C 0037CBEC 42 00 FF 78 */ bdnz lbl_8037FC04
/* 8037FC90 0037CBF0 38 00 00 04 */ li r0, 4
/* 8037FC94 0037CBF4 90 06 01 94 */ stw r0, 0x194(r6)
lbl_8037FC98:
/* 8037FC98 0037CBF8 80 0D 9F 78 */ lwz r0, lbl_805A8B38@sda21(r13)
/* 8037FC9C 0037CBFC 80 A6 01 94 */ lwz r5, 0x194(r6)
/* 8037FCA0 0037CC00 54 00 06 38 */ rlwinm r0, r0, 0, 0x18, 0x1c
/* 8037FCA4 0037CC04 7C A0 03 78 */ or r0, r5, r0
/* 8037FCA8 0037CC08 90 06 01 94 */ stw r0, 0x194(r6)
/* 8037FCAC 0037CC0C 80 06 01 94 */ lwz r0, 0x194(r6)
/* 8037FCB0 0037CC10 7C 00 20 38 */ and r0, r0, r4
/* 8037FCB4 0037CC14 90 06 01 94 */ stw r0, 0x194(r6)
/* 8037FCB8 0037CC18 80 C6 02 FC */ lwz r6, 0x2fc(r6)
lbl_8037FCBC:
/* 8037FCBC 0037CC1C 28 06 00 00 */ cmplwi r6, 0
/* 8037FCC0 0037CC20 40 82 FF 18 */ bne lbl_8037FBD8
/* 8037FCC4 0037CC24 80 0D 9F 78 */ lwz r0, lbl_805A8B38@sda21(r13)
/* 8037FCC8 0037CC28 63 FF 09 00 */ ori r31, r31, 0x900
/* 8037FCCC 0037CC2C 54 00 06 38 */ rlwinm r0, r0, 0, 0x18, 0x1c
/* 8037FCD0 0037CC30 7C 63 03 78 */ or r3, r3, r0
/* 8037FCD4 0037CC34 48 00 00 58 */ b lbl_8037FD2C
lbl_8037FCD8:
/* 8037FCD8 0037CC38 3C A0 80 00 */ lis r5, 0x800000DC@ha
/* 8037FCDC 0037CC3C 3C 80 60 06 */ lis r4, 0x6005F8FF@ha
/* 8037FCE0 0037CC40 80 C5 00 DC */ lwz r6, 0x800000DC@l(r5)
/* 8037FCE4 0037CC44 38 84 F8 FF */ addi r4, r4, 0x6005F8FF@l
/* 8037FCE8 0037CC48 38 A0 F6 FF */ li r5, -2305
/* 8037FCEC 0037CC4C 48 00 00 2C */ b lbl_8037FD18
lbl_8037FCF0:
/* 8037FCF0 0037CC50 80 06 01 9C */ lwz r0, 0x19c(r6)
/* 8037FCF4 0037CC54 7C 00 28 38 */ and r0, r0, r5
/* 8037FCF8 0037CC58 90 06 01 9C */ stw r0, 0x19c(r6)
/* 8037FCFC 0037CC5C 80 06 01 94 */ lwz r0, 0x194(r6)
/* 8037FD00 0037CC60 54 00 07 6E */ rlwinm r0, r0, 0, 0x1d, 0x17
/* 8037FD04 0037CC64 90 06 01 94 */ stw r0, 0x194(r6)
/* 8037FD08 0037CC68 80 06 01 94 */ lwz r0, 0x194(r6)
/* 8037FD0C 0037CC6C 7C 00 20 38 */ and r0, r0, r4
/* 8037FD10 0037CC70 90 06 01 94 */ stw r0, 0x194(r6)
/* 8037FD14 0037CC74 80 C6 02 FC */ lwz r6, 0x2fc(r6)
lbl_8037FD18:
/* 8037FD18 0037CC78 28 06 00 00 */ cmplwi r6, 0
/* 8037FD1C 0037CC7C 40 82 FF D4 */ bne lbl_8037FCF0
/* 8037FD20 0037CC80 38 00 F6 FF */ li r0, -2305
/* 8037FD24 0037CC84 54 63 07 6E */ rlwinm r3, r3, 0, 0x1d, 0x17
/* 8037FD28 0037CC88 7F FF 00 38 */ and r31, r31, r0
lbl_8037FD2C:
/* 8037FD2C 0037CC8C 3C 80 60 06 */ lis r4, 0x6005F8FF@ha
/* 8037FD30 0037CC90 38 04 F8 FF */ addi r0, r4, 0x6005F8FF@l
/* 8037FD34 0037CC94 7C 63 00 38 */ and r3, r3, r0
/* 8037FD38 0037CC98 4B FE FB 11 */ bl PPCMtfpscr
/* 8037FD3C 0037CC9C 7F E3 FB 78 */ mr r3, r31
/* 8037FD40 0037CCA0 4B FE FA 9D */ bl PPCMtmsr
lbl_8037FD44:
/* 8037FD44 0037CCA4 7F A3 EB 78 */ mr r3, r29
/* 8037FD48 0037CCA8 48 00 19 41 */ bl OSRestoreInterrupts
/* 8037FD4C 0037CCAC 7F C3 F3 78 */ mr r3, r30
/* 8037FD50 0037CCB0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8037FD54 0037CCB4 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8037FD58 0037CCB8 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8037FD5C 0037CCBC 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8037FD60 0037CCC0 83 81 00 20 */ lwz r28, 0x20(r1)
/* 8037FD64 0037CCC4 38 21 00 30 */ addi r1, r1, 0x30
/* 8037FD68 0037CCC8 7C 08 03 A6 */ mtlr r0
/* 8037FD6C 0037CCCC 4E 80 00 20 */ blr
.global __OSUnhandledException
__OSUnhandledException:
/* 8037FD70 0037CCD0 7C 08 02 A6 */ mflr r0
/* 8037FD74 0037CCD4 3D 00 80 54 */ lis r8, lbl_80541250@ha
/* 8037FD78 0037CCD8 90 01 00 04 */ stw r0, 4(r1)
/* 8037FD7C 0037CCDC 3C E0 80 3F */ lis r7, lbl_803F1430@ha
/* 8037FD80 0037CCE0 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8037FD84 0037CCE4 BE C1 00 18 */ stmw r22, 0x18(r1)
/* 8037FD88 0037CCE8 3B 03 00 00 */ addi r24, r3, 0
/* 8037FD8C 0037CCEC 3B 24 00 00 */ addi r25, r4, 0
/* 8037FD90 0037CCF0 3B 45 00 00 */ addi r26, r5, 0
/* 8037FD94 0037CCF4 3B 66 00 00 */ addi r27, r6, 0
/* 8037FD98 0037CCF8 3B C8 12 50 */ addi r30, r8, lbl_80541250@l
/* 8037FD9C 0037CCFC 3B E7 14 30 */ addi r31, r7, lbl_803F1430@l
/* 8037FDA0 0037CD00 48 00 56 09 */ bl OSGetTime
/* 8037FDA4 0037CD04 80 B9 01 9C */ lwz r5, 0x19c(r25)
/* 8037FDA8 0037CD08 3B 84 00 00 */ addi r28, r4, 0
/* 8037FDAC 0037CD0C 3B A3 00 00 */ addi r29, r3, 0
/* 8037FDB0 0037CD10 54 A0 07 BD */ rlwinm. r0, r5, 0, 0x1e, 0x1e
/* 8037FDB4 0037CD14 40 82 00 18 */ bne lbl_8037FDCC
/* 8037FDB8 0037CD18 38 7F 00 5C */ addi r3, r31, 0x5c
/* 8037FDBC 0037CD1C 4C C6 31 82 */ crclr 6
/* 8037FDC0 0037CD20 57 04 06 3E */ clrlwi r4, r24, 0x18
/* 8037FDC4 0037CD24 4B FF FB E9 */ bl OSReport
/* 8037FDC8 0037CD28 48 00 01 54 */ b lbl_8037FF1C
lbl_8037FDCC:
/* 8037FDCC 0037CD2C 57 00 06 3E */ clrlwi r0, r24, 0x18
/* 8037FDD0 0037CD30 28 00 00 06 */ cmplwi r0, 6
/* 8037FDD4 0037CD34 40 82 00 D8 */ bne lbl_8037FEAC
/* 8037FDD8 0037CD38 54 A0 02 D7 */ rlwinm. r0, r5, 0, 0xb, 0xb
/* 8037FDDC 0037CD3C 41 82 00 D0 */ beq lbl_8037FEAC
/* 8037FDE0 0037CD40 80 1E 00 40 */ lwz r0, 0x40(r30)
/* 8037FDE4 0037CD44 28 00 00 00 */ cmplwi r0, 0
/* 8037FDE8 0037CD48 41 82 00 C4 */ beq lbl_8037FEAC
/* 8037FDEC 0037CD4C 3B 00 00 10 */ li r24, 0x10
/* 8037FDF0 0037CD50 4B FE F9 E5 */ bl PPCMfmsr
/* 8037FDF4 0037CD54 3A E3 00 00 */ addi r23, r3, 0
/* 8037FDF8 0037CD58 62 E3 20 00 */ ori r3, r23, 0x2000
/* 8037FDFC 0037CD5C 4B FE F9 E1 */ bl PPCMtmsr
/* 8037FE00 0037CD60 3C 60 80 00 */ lis r3, 0x800000D8@ha
/* 8037FE04 0037CD64 80 63 00 D8 */ lwz r3, 0x800000D8@l(r3)
/* 8037FE08 0037CD68 28 03 00 00 */ cmplwi r3, 0
/* 8037FE0C 0037CD6C 41 82 00 08 */ beq lbl_8037FE14
/* 8037FE10 0037CD70 4B FF F6 05 */ bl OSSaveFPUContext
lbl_8037FE14:
/* 8037FE14 0037CD74 4B FE FA 15 */ bl PPCMffpscr
/* 8037FE18 0037CD78 3C 80 60 06 */ lis r4, 0x6005F8FF@ha
/* 8037FE1C 0037CD7C 3A C4 F8 FF */ addi r22, r4, 0x6005F8FF@l
/* 8037FE20 0037CD80 7C 63 B0 38 */ and r3, r3, r22
/* 8037FE24 0037CD84 4B FE FA 25 */ bl PPCMtfpscr
/* 8037FE28 0037CD88 7E E3 BB 78 */ mr r3, r23
/* 8037FE2C 0037CD8C 4B FE F9 B1 */ bl PPCMtmsr
/* 8037FE30 0037CD90 3E E0 80 00 */ lis r23, 0x800000D8@ha
/* 8037FE34 0037CD94 80 17 00 D8 */ lwz r0, 0x800000D8@l(r23)
/* 8037FE38 0037CD98 7C 00 C8 40 */ cmplw r0, r25
/* 8037FE3C 0037CD9C 40 82 00 54 */ bne lbl_8037FE90
/* 8037FE40 0037CDA0 48 00 47 A1 */ bl OSDisableScheduler
/* 8037FE44 0037CDA4 81 9E 00 40 */ lwz r12, 0x40(r30)
/* 8037FE48 0037CDA8 38 99 00 00 */ addi r4, r25, 0
/* 8037FE4C 0037CDAC 38 BA 00 00 */ addi r5, r26, 0
/* 8037FE50 0037CDB0 4C C6 31 82 */ crclr 6
/* 8037FE54 0037CDB4 7D 88 03 A6 */ mtlr r12
/* 8037FE58 0037CDB8 38 DB 00 00 */ addi r6, r27, 0
/* 8037FE5C 0037CDBC 38 60 00 10 */ li r3, 0x10
/* 8037FE60 0037CDC0 4E 80 00 21 */ blrl
/* 8037FE64 0037CDC4 80 79 01 9C */ lwz r3, 0x19c(r25)
/* 8037FE68 0037CDC8 38 00 00 00 */ li r0, 0
/* 8037FE6C 0037CDCC 54 63 04 E2 */ rlwinm r3, r3, 0, 0x13, 0x11
/* 8037FE70 0037CDD0 90 79 01 9C */ stw r3, 0x19c(r25)
/* 8037FE74 0037CDD4 90 17 00 D8 */ stw r0, 0xd8(r23)
/* 8037FE78 0037CDD8 80 19 01 94 */ lwz r0, 0x194(r25)
/* 8037FE7C 0037CDDC 7C 00 B0 38 */ and r0, r0, r22
/* 8037FE80 0037CDE0 90 19 01 94 */ stw r0, 0x194(r25)
/* 8037FE84 0037CDE4 48 00 47 9D */ bl OSEnableScheduler
/* 8037FE88 0037CDE8 48 00 4C 65 */ bl __OSReschedule
/* 8037FE8C 0037CDEC 48 00 00 18 */ b lbl_8037FEA4
lbl_8037FE90:
/* 8037FE90 0037CDF0 80 79 01 9C */ lwz r3, 0x19c(r25)
/* 8037FE94 0037CDF4 38 00 00 00 */ li r0, 0
/* 8037FE98 0037CDF8 54 63 04 E2 */ rlwinm r3, r3, 0, 0x13, 0x11
/* 8037FE9C 0037CDFC 90 79 01 9C */ stw r3, 0x19c(r25)
/* 8037FEA0 0037CE00 90 17 00 D8 */ stw r0, 0xd8(r23)
lbl_8037FEA4:
/* 8037FEA4 0037CE04 7F 23 CB 78 */ mr r3, r25
/* 8037FEA8 0037CE08 4B FF F6 5D */ bl OSLoadContext
lbl_8037FEAC:
/* 8037FEAC 0037CE0C 57 17 06 3E */ clrlwi r23, r24, 0x18
/* 8037FEB0 0037CE10 57 00 15 BA */ rlwinm r0, r24, 2, 0x16, 0x1d
/* 8037FEB4 0037CE14 7E DE 02 14 */ add r22, r30, r0
/* 8037FEB8 0037CE18 80 16 00 00 */ lwz r0, 0(r22)
/* 8037FEBC 0037CE1C 28 00 00 00 */ cmplwi r0, 0
/* 8037FEC0 0037CE20 41 82 00 38 */ beq lbl_8037FEF8
/* 8037FEC4 0037CE24 48 00 47 1D */ bl OSDisableScheduler
/* 8037FEC8 0037CE28 81 96 00 00 */ lwz r12, 0(r22)
/* 8037FECC 0037CE2C 38 77 00 00 */ addi r3, r23, 0
/* 8037FED0 0037CE30 38 99 00 00 */ addi r4, r25, 0
/* 8037FED4 0037CE34 4C C6 31 82 */ crclr 6
/* 8037FED8 0037CE38 7D 88 03 A6 */ mtlr r12
/* 8037FEDC 0037CE3C 38 BA 00 00 */ addi r5, r26, 0
/* 8037FEE0 0037CE40 38 DB 00 00 */ addi r6, r27, 0
/* 8037FEE4 0037CE44 4E 80 00 21 */ blrl
/* 8037FEE8 0037CE48 48 00 47 39 */ bl OSEnableScheduler
/* 8037FEEC 0037CE4C 48 00 4C 01 */ bl __OSReschedule
/* 8037FEF0 0037CE50 7F 23 CB 78 */ mr r3, r25
/* 8037FEF4 0037CE54 4B FF F6 11 */ bl OSLoadContext
lbl_8037FEF8:
/* 8037FEF8 0037CE58 57 00 06 3E */ clrlwi r0, r24, 0x18
/* 8037FEFC 0037CE5C 28 00 00 08 */ cmplwi r0, 8
/* 8037FF00 0037CE60 40 82 00 0C */ bne lbl_8037FF0C
/* 8037FF04 0037CE64 7F 23 CB 78 */ mr r3, r25
/* 8037FF08 0037CE68 4B FF F5 FD */ bl OSLoadContext
lbl_8037FF0C:
/* 8037FF0C 0037CE6C 38 7F 00 7C */ addi r3, r31, 0x7c
/* 8037FF10 0037CE70 4C C6 31 82 */ crclr 6
/* 8037FF14 0037CE74 57 04 06 3E */ clrlwi r4, r24, 0x18
/* 8037FF18 0037CE78 4B FF FA 95 */ bl OSReport
lbl_8037FF1C:
/* 8037FF1C 0037CE7C 38 6D 9F 7C */ addi r3, r13, lbl_805A8B3C@sda21
/* 8037FF20 0037CE80 4C C6 31 82 */ crclr 6
/* 8037FF24 0037CE84 4B FF FA 89 */ bl OSReport
/* 8037FF28 0037CE88 7F 23 CB 78 */ mr r3, r25
/* 8037FF2C 0037CE8C 4B FF F7 0D */ bl OSDumpContext
/* 8037FF30 0037CE90 38 9A 00 00 */ addi r4, r26, 0
/* 8037FF34 0037CE94 4C C6 31 82 */ crclr 6
/* 8037FF38 0037CE98 38 BB 00 00 */ addi r5, r27, 0
/* 8037FF3C 0037CE9C 38 7F 00 94 */ addi r3, r31, 0x94
/* 8037FF40 0037CEA0 4B FF FA 6D */ bl OSReport
/* 8037FF44 0037CEA4 38 DC 00 00 */ addi r6, r28, 0
/* 8037FF48 0037CEA8 4C C6 31 82 */ crclr 6
/* 8037FF4C 0037CEAC 38 BD 00 00 */ addi r5, r29, 0
/* 8037FF50 0037CEB0 38 7F 00 C8 */ addi r3, r31, 0xc8
/* 8037FF54 0037CEB4 4B FF FA 59 */ bl OSReport
/* 8037FF58 0037CEB8 57 00 06 3E */ clrlwi r0, r24, 0x18
/* 8037FF5C 0037CEBC 28 00 00 0F */ cmplwi r0, 0xf
/* 8037FF60 0037CEC0 41 81 00 C4 */ bgt lbl_80380024
/* 8037FF64 0037CEC4 3C 60 80 3F */ lis r3, lbl_803F170C@ha
/* 8037FF68 0037CEC8 38 63 17 0C */ addi r3, r3, lbl_803F170C@l
/* 8037FF6C 0037CECC 54 00 10 3A */ slwi r0, r0, 2
/* 8037FF70 0037CED0 7C 03 00 2E */ lwzx r0, r3, r0
/* 8037FF74 0037CED4 7C 09 03 A6 */ mtctr r0
/* 8037FF78 0037CED8 4E 80 04 20 */ bctr
/* 8037FF7C 0037CEDC 80 99 01 98 */ lwz r4, 0x198(r25)
/* 8037FF80 0037CEE0 38 BB 00 00 */ addi r5, r27, 0
/* 8037FF84 0037CEE4 38 7F 00 D8 */ addi r3, r31, 0xd8
/* 8037FF88 0037CEE8 4C C6 31 82 */ crclr 6
/* 8037FF8C 0037CEEC 4B FF FA 21 */ bl OSReport
/* 8037FF90 0037CEF0 48 00 00 94 */ b lbl_80380024
/* 8037FF94 0037CEF4 80 99 01 98 */ lwz r4, 0x198(r25)
/* 8037FF98 0037CEF8 38 7F 01 38 */ addi r3, r31, 0x138
/* 8037FF9C 0037CEFC 4C C6 31 82 */ crclr 6
/* 8037FFA0 0037CF00 4B FF FA 0D */ bl OSReport
/* 8037FFA4 0037CF04 48 00 00 80 */ b lbl_80380024
/* 8037FFA8 0037CF08 80 99 01 98 */ lwz r4, 0x198(r25)
/* 8037FFAC 0037CF0C 38 BB 00 00 */ addi r5, r27, 0
/* 8037FFB0 0037CF10 38 7F 01 84 */ addi r3, r31, 0x184
/* 8037FFB4 0037CF14 4C C6 31 82 */ crclr 6
/* 8037FFB8 0037CF18 4B FF F9 F5 */ bl OSReport
/* 8037FFBC 0037CF1C 48 00 00 68 */ b lbl_80380024
/* 8037FFC0 0037CF20 80 99 01 98 */ lwz r4, 0x198(r25)
/* 8037FFC4 0037CF24 38 BB 00 00 */ addi r5, r27, 0
/* 8037FFC8 0037CF28 38 7F 01 E8 */ addi r3, r31, 0x1e8
/* 8037FFCC 0037CF2C 4C C6 31 82 */ crclr 6
/* 8037FFD0 0037CF30 4B FF F9 DD */ bl OSReport
/* 8037FFD4 0037CF34 48 00 00 50 */ b lbl_80380024
/* 8037FFD8 0037CF38 38 6D 9F 7C */ addi r3, r13, lbl_805A8B3C@sda21
/* 8037FFDC 0037CF3C 4C C6 31 82 */ crclr 6
/* 8037FFE0 0037CF40 4B FF F9 CD */ bl OSReport
/* 8037FFE4 0037CF44 3F 20 CC 00 */ lis r25, 0xCC005000@ha
/* 8037FFE8 0037CF48 4C C6 31 82 */ crclr 6
/* 8037FFEC 0037CF4C 3B 19 50 00 */ addi r24, r25, 0xCC005000@l
/* 8037FFF0 0037CF50 A0 99 50 30 */ lhz r4, 0x5030(r25)
/* 8037FFF4 0037CF54 38 7F 02 48 */ addi r3, r31, 0x248
/* 8037FFF8 0037CF58 A0 B9 50 32 */ lhz r5, 0x5032(r25)
/* 8037FFFC 0037CF5C 4B FF F9 B1 */ bl OSReport
/* 80380000 0037CF60 A0 98 00 20 */ lhz r4, 0x20(r24)
/* 80380004 0037CF64 38 7F 02 68 */ addi r3, r31, 0x268
/* 80380008 0037CF68 A0 B8 00 22 */ lhz r5, 0x22(r24)
/* 8038000C 0037CF6C 4C C6 31 82 */ crclr 6
/* 80380010 0037CF70 4B FF F9 9D */ bl OSReport
/* 80380014 0037CF74 80 99 60 14 */ lwz r4, 0x6014(r25)
/* 80380018 0037CF78 4C C6 31 82 */ crclr 6
/* 8038001C 0037CF7C 38 7F 02 88 */ addi r3, r31, 0x288
/* 80380020 0037CF80 4B FF F9 8D */ bl OSReport
lbl_80380024:
/* 80380024 0037CF84 A8 8D AD 18 */ lha r4, lbl_805A98D8@sda21(r13)
/* 80380028 0037CF88 38 7F 02 A4 */ addi r3, r31, 0x2a4
/* 8038002C 0037CF8C 4C C6 31 82 */ crclr 6
/* 80380030 0037CF90 80 AD AD 14 */ lwz r5, lbl_805A98D4@sda21(r13)
/* 80380034 0037CF94 80 ED AD 20 */ lwz r7, lbl_805A98E0@sda21(r13)
/* 80380038 0037CF98 81 0D AD 24 */ lwz r8, lbl_805A98E4@sda21(r13)
/* 8038003C 0037CF9C 4B FF F9 71 */ bl OSReport
/* 80380040 0037CFA0 4B FE F7 D5 */ bl PPCHalt
/* 80380044 0037CFA4 BA C1 00 18 */ lmw r22, 0x18(r1)
/* 80380048 0037CFA8 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8038004C 0037CFAC 38 21 00 40 */ addi r1, r1, 0x40
/* 80380050 0037CFB0 7C 08 03 A6 */ mtlr r0
/* 80380054 0037CFB4 4E 80 00 20 */ blr

821
asm/Dolphin/OS/OSFatal.s Normal file
View File

@ -0,0 +1,821 @@
.include "macros.inc"
.section .text, "ax"
.global ScreenReport
ScreenReport:
/* 80380058 0037CFB8 7C 08 02 A6 */ mflr r0
/* 8038005C 0037CFBC 54 AB 04 3E */ clrlwi r11, r5, 0x10
/* 80380060 0037CFC0 90 01 00 04 */ stw r0, 4(r1)
/* 80380064 0037CFC4 3C A0 80 81 */ lis r5, 0x80808081@ha
/* 80380068 0037CFC8 94 21 FE 60 */ stwu r1, -0x1a0(r1)
/* 8038006C 0037CFCC BE 01 01 60 */ stmw r16, 0x160(r1)
/* 80380070 0037CFD0 54 95 04 3E */ clrlwi r21, r4, 0x10
/* 80380074 0037CFD4 3C 80 88 89 */ lis r4, 0x88888889@ha
/* 80380078 0037CFD8 3B 43 00 00 */ addi r26, r3, 0
/* 8038007C 0037CFDC 3B 66 00 00 */ addi r27, r6, 0
/* 80380080 0037CFE0 3B 87 00 00 */ addi r28, r7, 0
/* 80380084 0037CFE4 3B A8 00 00 */ addi r29, r8, 0
/* 80380088 0037CFE8 3B C9 00 00 */ addi r30, r9, 0
/* 8038008C 0037CFEC 3A 0B FF E8 */ addi r16, r11, -24
/* 80380090 0037CFF0 3A D5 FF D0 */ addi r22, r21, -48
/* 80380094 0037CFF4 3B 25 80 81 */ addi r25, r5, 0x80808081@l
/* 80380098 0037CFF8 3B 04 88 89 */ addi r24, r4, 0x88888889@l
/* 8038009C 0037CFFC 3A E1 00 3C */ addi r23, r1, 0x3c
lbl_803800A0:
/* 803800A0 0037D000 7C 10 E8 00 */ cmpw r16, r29
/* 803800A4 0037D004 41 80 03 7C */ blt lbl_80380420
/* 803800A8 0037D008 7C 1D A9 D6 */ mullw r0, r29, r21
/* 803800AC 0037D00C 7C 1C 02 14 */ add r0, r28, r0
/* 803800B0 0037D010 54 00 08 3C */ slwi r0, r0, 1
/* 803800B4 0037D014 3B FC 00 00 */ addi r31, r28, 0
/* 803800B8 0037D018 7E 7A 02 14 */ add r19, r26, r0
/* 803800BC 0037D01C 48 00 03 58 */ b lbl_80380414
lbl_803800C0:
/* 803800C0 0037D020 7C 60 07 74 */ extsb r0, r3
/* 803800C4 0037D024 2C 00 00 0A */ cmpwi r0, 0xa
/* 803800C8 0037D028 40 82 00 10 */ bne lbl_803800D8
/* 803800CC 0037D02C 7F BD F2 14 */ add r29, r29, r30
/* 803800D0 0037D030 39 4A 00 01 */ addi r10, r10, 1
/* 803800D4 0037D034 4B FF FF CC */ b lbl_803800A0
lbl_803800D8:
/* 803800D8 0037D038 7C 16 F8 00 */ cmpw r22, r31
/* 803800DC 0037D03C 40 80 00 0C */ bge lbl_803800E8
/* 803800E0 0037D040 7F BD F2 14 */ add r29, r29, r30
/* 803800E4 0037D044 4B FF FF BC */ b lbl_803800A0
lbl_803800E8:
/* 803800E8 0037D048 38 00 00 03 */ li r0, 3
/* 803800EC 0037D04C 7C 09 03 A6 */ mtctr r0
/* 803800F0 0037D050 38 80 00 00 */ li r4, 0
/* 803800F4 0037D054 38 A0 00 00 */ li r5, 0
lbl_803800F8:
/* 803800F8 0037D058 54 80 07 7E */ clrlwi r0, r4, 0x1d
/* 803800FC 0037D05C 7C C0 2A 14 */ add r6, r0, r5
/* 80380100 0037D060 38 64 00 01 */ addi r3, r4, 1
/* 80380104 0037D064 54 60 E8 FE */ srwi r0, r3, 3
/* 80380108 0037D068 54 C6 10 3A */ slwi r6, r6, 2
/* 8038010C 0037D06C 39 21 00 3C */ addi r9, r1, 0x3c
/* 80380110 0037D070 7D 29 32 14 */ add r9, r9, r6
/* 80380114 0037D074 3A 80 00 00 */ li r20, 0
/* 80380118 0037D078 92 89 00 00 */ stw r20, 0(r9)
/* 8038011C 0037D07C 1C 00 00 18 */ mulli r0, r0, 0x18
/* 80380120 0037D080 92 89 00 20 */ stw r20, 0x20(r9)
/* 80380124 0037D084 54 63 07 7E */ clrlwi r3, r3, 0x1d
/* 80380128 0037D088 39 04 00 02 */ addi r8, r4, 2
/* 8038012C 0037D08C 92 89 00 40 */ stw r20, 0x40(r9)
/* 80380130 0037D090 7C 63 02 14 */ add r3, r3, r0
/* 80380134 0037D094 54 69 10 3A */ slwi r9, r3, 2
/* 80380138 0037D098 38 61 00 3C */ addi r3, r1, 0x3c
/* 8038013C 0037D09C 7C 63 4A 14 */ add r3, r3, r9
/* 80380140 0037D0A0 92 83 00 00 */ stw r20, 0(r3)
/* 80380144 0037D0A4 55 07 E8 FE */ srwi r7, r8, 3
/* 80380148 0037D0A8 38 C4 00 03 */ addi r6, r4, 3
/* 8038014C 0037D0AC 92 83 00 20 */ stw r20, 0x20(r3)
/* 80380150 0037D0B0 54 C0 E8 FE */ srwi r0, r6, 3
/* 80380154 0037D0B4 1C E7 00 18 */ mulli r7, r7, 0x18
/* 80380158 0037D0B8 92 83 00 40 */ stw r20, 0x40(r3)
/* 8038015C 0037D0BC 55 03 07 7E */ clrlwi r3, r8, 0x1d
/* 80380160 0037D0C0 7C 63 3A 14 */ add r3, r3, r7
/* 80380164 0037D0C4 54 67 10 3A */ slwi r7, r3, 2
/* 80380168 0037D0C8 38 61 00 3C */ addi r3, r1, 0x3c
/* 8038016C 0037D0CC 7C 63 3A 14 */ add r3, r3, r7
/* 80380170 0037D0D0 92 83 00 00 */ stw r20, 0(r3)
/* 80380174 0037D0D4 3A 44 00 04 */ addi r18, r4, 4
/* 80380178 0037D0D8 56 4C E8 FE */ srwi r12, r18, 3
/* 8038017C 0037D0DC 92 83 00 20 */ stw r20, 0x20(r3)
/* 80380180 0037D0E0 39 64 00 05 */ addi r11, r4, 5
/* 80380184 0037D0E4 55 69 E8 FE */ srwi r9, r11, 3
/* 80380188 0037D0E8 92 83 00 40 */ stw r20, 0x40(r3)
/* 8038018C 0037D0EC 54 C3 07 7E */ clrlwi r3, r6, 0x1d
/* 80380190 0037D0F0 1C 00 00 18 */ mulli r0, r0, 0x18
/* 80380194 0037D0F4 7C 63 02 14 */ add r3, r3, r0
/* 80380198 0037D0F8 54 71 10 3A */ slwi r17, r3, 2
/* 8038019C 0037D0FC 38 61 00 3C */ addi r3, r1, 0x3c
/* 803801A0 0037D100 7C 63 8A 14 */ add r3, r3, r17
/* 803801A4 0037D104 92 83 00 00 */ stw r20, 0(r3)
/* 803801A8 0037D108 39 04 00 06 */ addi r8, r4, 6
/* 803801AC 0037D10C 1D 8C 00 18 */ mulli r12, r12, 0x18
/* 803801B0 0037D110 92 83 00 20 */ stw r20, 0x20(r3)
/* 803801B4 0037D114 38 C4 00 07 */ addi r6, r4, 7
/* 803801B8 0037D118 92 83 00 40 */ stw r20, 0x40(r3)
/* 803801BC 0037D11C 56 51 07 7E */ clrlwi r17, r18, 0x1d
/* 803801C0 0037D120 7D 91 62 14 */ add r12, r17, r12
/* 803801C4 0037D124 54 C0 E8 FE */ srwi r0, r6, 3
/* 803801C8 0037D128 55 8C 10 3A */ slwi r12, r12, 2
/* 803801CC 0037D12C 38 61 00 3C */ addi r3, r1, 0x3c
/* 803801D0 0037D130 7C 63 62 14 */ add r3, r3, r12
/* 803801D4 0037D134 92 83 00 00 */ stw r20, 0(r3)
/* 803801D8 0037D138 1D 29 00 18 */ mulli r9, r9, 0x18
/* 803801DC 0037D13C 92 83 00 20 */ stw r20, 0x20(r3)
/* 803801E0 0037D140 55 6B 07 7E */ clrlwi r11, r11, 0x1d
/* 803801E4 0037D144 7D 2B 4A 14 */ add r9, r11, r9
/* 803801E8 0037D148 92 83 00 40 */ stw r20, 0x40(r3)
/* 803801EC 0037D14C 55 23 10 3A */ slwi r3, r9, 2
/* 803801F0 0037D150 39 21 00 3C */ addi r9, r1, 0x3c
/* 803801F4 0037D154 7D 29 1A 14 */ add r9, r9, r3
/* 803801F8 0037D158 55 07 E8 FE */ srwi r7, r8, 3
/* 803801FC 0037D15C 92 89 00 00 */ stw r20, 0(r9)
/* 80380200 0037D160 1C 67 00 18 */ mulli r3, r7, 0x18
/* 80380204 0037D164 92 89 00 20 */ stw r20, 0x20(r9)
/* 80380208 0037D168 55 07 07 7E */ clrlwi r7, r8, 0x1d
/* 8038020C 0037D16C 92 89 00 40 */ stw r20, 0x40(r9)
/* 80380210 0037D170 7C 67 1A 14 */ add r3, r7, r3
/* 80380214 0037D174 54 63 10 3A */ slwi r3, r3, 2
/* 80380218 0037D178 38 E1 00 3C */ addi r7, r1, 0x3c
/* 8038021C 0037D17C 7C E7 1A 14 */ add r7, r7, r3
/* 80380220 0037D180 92 87 00 00 */ stw r20, 0(r7)
/* 80380224 0037D184 1C 00 00 18 */ mulli r0, r0, 0x18
/* 80380228 0037D188 92 87 00 20 */ stw r20, 0x20(r7)
/* 8038022C 0037D18C 54 C3 07 7E */ clrlwi r3, r6, 0x1d
/* 80380230 0037D190 7C 03 02 14 */ add r0, r3, r0
/* 80380234 0037D194 92 87 00 40 */ stw r20, 0x40(r7)
/* 80380238 0037D198 54 00 10 3A */ slwi r0, r0, 2
/* 8038023C 0037D19C 38 61 00 3C */ addi r3, r1, 0x3c
/* 80380240 0037D1A0 7C 63 02 14 */ add r3, r3, r0
/* 80380244 0037D1A4 92 83 00 00 */ stw r20, 0(r3)
/* 80380248 0037D1A8 38 A5 00 18 */ addi r5, r5, 0x18
/* 8038024C 0037D1AC 38 84 00 08 */ addi r4, r4, 8
/* 80380250 0037D1B0 92 83 00 20 */ stw r20, 0x20(r3)
/* 80380254 0037D1B4 92 83 00 40 */ stw r20, 0x40(r3)
/* 80380258 0037D1B8 42 00 FE A0 */ bdnz lbl_803800F8
/* 8038025C 0037D1BC 38 6A 00 00 */ addi r3, r10, 0
/* 80380260 0037D1C0 38 81 00 3C */ addi r4, r1, 0x3c
/* 80380264 0037D1C4 38 E1 01 5C */ addi r7, r1, 0x15c
/* 80380268 0037D1C8 38 A0 00 00 */ li r5, 0
/* 8038026C 0037D1CC 38 C0 00 06 */ li r6, 6
/* 80380270 0037D1D0 48 00 10 ED */ bl sub_8038135c
/* 80380274 0037D1D4 39 43 00 00 */ addi r10, r3, 0
/* 80380278 0037D1D8 38 14 00 00 */ addi r0, r20, 0
lbl_8038027C:
/* 8038027C 0037D1DC 56 83 E8 FE */ srwi r3, r20, 3
/* 80380280 0037D1E0 1C A3 00 18 */ mulli r5, r3, 0x18
/* 80380284 0037D1E4 38 80 00 0C */ li r4, 0xc
/* 80380288 0037D1E8 7C 03 03 78 */ mr r3, r0
/* 8038028C 0037D1EC 7C 89 03 A6 */ mtctr r4
/* 80380290 0037D1F0 56 86 07 7E */ clrlwi r6, r20, 0x1d
/* 80380294 0037D1F4 38 9F 00 00 */ addi r4, r31, 0
/* 80380298 0037D1F8 7C A6 2A 14 */ add r5, r6, r5
/* 8038029C 0037D1FC 54 07 08 3C */ slwi r7, r0, 1
/* 803802A0 0037D200 38 C0 00 00 */ li r6, 0
lbl_803802A4:
/* 803802A4 0037D204 54 C8 00 38 */ rlwinm r8, r6, 0, 0, 0x1c
/* 803802A8 0037D208 7D 05 42 14 */ add r8, r5, r8
/* 803802AC 0037D20C 55 09 10 3A */ slwi r9, r8, 2
/* 803802B0 0037D210 54 C8 07 7E */ clrlwi r8, r6, 0x1d
/* 803802B4 0037D214 7D 37 48 2E */ lwzx r9, r23, r9
/* 803802B8 0037D218 21 08 00 07 */ subfic r8, r8, 7
/* 803802BC 0037D21C 55 08 10 3A */ slwi r8, r8, 2
/* 803802C0 0037D220 7D 28 44 30 */ srw r8, r9, r8
/* 803802C4 0037D224 55 08 07 3F */ clrlwi. r8, r8, 0x1c
/* 803802C8 0037D228 41 82 00 74 */ beq lbl_8038033C
/* 803802CC 0037D22C 1D 08 00 EF */ mulli r8, r8, 0xef
/* 803802D0 0037D230 89 3B 00 00 */ lbz r9, 0(r27)
/* 803802D4 0037D234 7D 09 41 D6 */ mullw r8, r9, r8
/* 803802D8 0037D238 7D 39 40 96 */ mulhw r9, r25, r8
/* 803802DC 0037D23C 7D 09 42 14 */ add r8, r9, r8
/* 803802E0 0037D240 7D 08 3E 70 */ srawi r8, r8, 7
/* 803802E4 0037D244 55 09 0F FE */ srwi r9, r8, 0x1f
/* 803802E8 0037D248 7D 08 4A 14 */ add r8, r8, r9
/* 803802EC 0037D24C 7D 38 40 96 */ mulhw r9, r24, r8
/* 803802F0 0037D250 7D 09 42 14 */ add r8, r9, r8
/* 803802F4 0037D254 7D 08 1E 70 */ srawi r8, r8, 3
/* 803802F8 0037D258 55 09 0F FE */ srwi r9, r8, 0x1f
/* 803802FC 0037D25C 7D 28 4A 14 */ add r9, r8, r9
/* 80380300 0037D260 39 29 00 10 */ addi r9, r9, 0x10
/* 80380304 0037D264 54 88 07 FF */ clrlwi. r8, r4, 0x1f
/* 80380308 0037D268 7D 33 39 AE */ stbx r9, r19, r7
/* 8038030C 0037D26C 41 82 00 1C */ beq lbl_80380328
/* 80380310 0037D270 89 1B 00 01 */ lbz r8, 1(r27)
/* 80380314 0037D274 7D 33 3A 14 */ add r9, r19, r7
/* 80380318 0037D278 99 09 FF FF */ stb r8, -1(r9)
/* 8038031C 0037D27C 89 1B 00 02 */ lbz r8, 2(r27)
/* 80380320 0037D280 99 09 00 01 */ stb r8, 1(r9)
/* 80380324 0037D284 48 00 00 18 */ b lbl_8038033C
lbl_80380328:
/* 80380328 0037D288 89 1B 00 02 */ lbz r8, 2(r27)
/* 8038032C 0037D28C 7D 33 3A 14 */ add r9, r19, r7
/* 80380330 0037D290 99 09 FF FF */ stb r8, -1(r9)
/* 80380334 0037D294 89 1B 00 01 */ lbz r8, 1(r27)
/* 80380338 0037D298 99 09 00 01 */ stb r8, 1(r9)
lbl_8038033C:
/* 8038033C 0037D29C 38 C6 00 01 */ addi r6, r6, 1
/* 80380340 0037D2A0 54 C8 00 38 */ rlwinm r8, r6, 0, 0, 0x1c
/* 80380344 0037D2A4 7D 05 42 14 */ add r8, r5, r8
/* 80380348 0037D2A8 55 09 10 3A */ slwi r9, r8, 2
/* 8038034C 0037D2AC 54 C8 07 7E */ clrlwi r8, r6, 0x1d
/* 80380350 0037D2B0 7D 37 48 2E */ lwzx r9, r23, r9
/* 80380354 0037D2B4 21 08 00 07 */ subfic r8, r8, 7
/* 80380358 0037D2B8 55 08 10 3A */ slwi r8, r8, 2
/* 8038035C 0037D2BC 7D 28 44 30 */ srw r8, r9, r8
/* 80380360 0037D2C0 55 08 07 3F */ clrlwi. r8, r8, 0x1c
/* 80380364 0037D2C4 38 E7 00 02 */ addi r7, r7, 2
/* 80380368 0037D2C8 38 84 00 01 */ addi r4, r4, 1
/* 8038036C 0037D2CC 41 82 00 74 */ beq lbl_803803E0
/* 80380370 0037D2D0 1D 08 00 EF */ mulli r8, r8, 0xef
/* 80380374 0037D2D4 89 3B 00 00 */ lbz r9, 0(r27)
/* 80380378 0037D2D8 7D 09 41 D6 */ mullw r8, r9, r8
/* 8038037C 0037D2DC 7D 39 40 96 */ mulhw r9, r25, r8
/* 80380380 0037D2E0 7D 09 42 14 */ add r8, r9, r8
/* 80380384 0037D2E4 7D 08 3E 70 */ srawi r8, r8, 7
/* 80380388 0037D2E8 55 09 0F FE */ srwi r9, r8, 0x1f
/* 8038038C 0037D2EC 7D 08 4A 14 */ add r8, r8, r9
/* 80380390 0037D2F0 7D 38 40 96 */ mulhw r9, r24, r8
/* 80380394 0037D2F4 7D 09 42 14 */ add r8, r9, r8
/* 80380398 0037D2F8 7D 08 1E 70 */ srawi r8, r8, 3
/* 8038039C 0037D2FC 55 09 0F FE */ srwi r9, r8, 0x1f
/* 803803A0 0037D300 7D 28 4A 14 */ add r9, r8, r9
/* 803803A4 0037D304 39 29 00 10 */ addi r9, r9, 0x10
/* 803803A8 0037D308 54 88 07 FF */ clrlwi. r8, r4, 0x1f
/* 803803AC 0037D30C 7D 33 39 AE */ stbx r9, r19, r7
/* 803803B0 0037D310 41 82 00 1C */ beq lbl_803803CC
/* 803803B4 0037D314 89 1B 00 01 */ lbz r8, 1(r27)
/* 803803B8 0037D318 7D 33 3A 14 */ add r9, r19, r7
/* 803803BC 0037D31C 99 09 FF FF */ stb r8, -1(r9)
/* 803803C0 0037D320 89 1B 00 02 */ lbz r8, 2(r27)
/* 803803C4 0037D324 99 09 00 01 */ stb r8, 1(r9)
/* 803803C8 0037D328 48 00 00 18 */ b lbl_803803E0
lbl_803803CC:
/* 803803CC 0037D32C 89 1B 00 02 */ lbz r8, 2(r27)
/* 803803D0 0037D330 7D 33 3A 14 */ add r9, r19, r7
/* 803803D4 0037D334 99 09 FF FF */ stb r8, -1(r9)
/* 803803D8 0037D338 89 1B 00 01 */ lbz r8, 1(r27)
/* 803803DC 0037D33C 99 09 00 01 */ stb r8, 1(r9)
lbl_803803E0:
/* 803803E0 0037D340 38 63 00 01 */ addi r3, r3, 1
/* 803803E4 0037D344 38 E7 00 02 */ addi r7, r7, 2
/* 803803E8 0037D348 38 84 00 01 */ addi r4, r4, 1
/* 803803EC 0037D34C 38 C6 00 01 */ addi r6, r6, 1
/* 803803F0 0037D350 42 00 FE B4 */ bdnz lbl_803802A4
/* 803803F4 0037D354 3A 94 00 01 */ addi r20, r20, 1
/* 803803F8 0037D358 28 14 00 18 */ cmplwi r20, 0x18
/* 803803FC 0037D35C 7C 00 AA 14 */ add r0, r0, r21
/* 80380400 0037D360 41 80 FE 7C */ blt lbl_8038027C
/* 80380404 0037D364 80 61 01 5C */ lwz r3, 0x15c(r1)
/* 80380408 0037D368 54 60 08 3C */ slwi r0, r3, 1
/* 8038040C 0037D36C 7E 73 02 14 */ add r19, r19, r0
/* 80380410 0037D370 7F FF 1A 14 */ add r31, r31, r3
lbl_80380414:
/* 80380414 0037D374 88 6A 00 00 */ lbz r3, 0(r10)
/* 80380418 0037D378 7C 60 07 75 */ extsb. r0, r3
/* 8038041C 0037D37C 40 82 FC A4 */ bne lbl_803800C0
lbl_80380420:
/* 80380420 0037D380 BA 01 01 60 */ lmw r16, 0x160(r1)
/* 80380424 0037D384 80 01 01 A4 */ lwz r0, 0x1a4(r1)
/* 80380428 0037D388 38 21 01 A0 */ addi r1, r1, 0x1a0
/* 8038042C 0037D38C 7C 08 03 A6 */ mtlr r0
/* 80380430 0037D390 4E 80 00 20 */ blr
.global ConfigureVideo
ConfigureVideo:
/* 80380434 0037D394 7C 08 02 A6 */ mflr r0
/* 80380438 0037D398 90 01 00 04 */ stw r0, 4(r1)
/* 8038043C 0037D39C 38 00 01 E0 */ li r0, 0x1e0
/* 80380440 0037D3A0 94 21 FF B8 */ stwu r1, -0x48(r1)
/* 80380444 0037D3A4 B0 61 00 10 */ sth r3, 0x10(r1)
/* 80380448 0037D3A8 38 60 00 28 */ li r3, 0x28
/* 8038044C 0037D3AC B0 01 00 12 */ sth r0, 0x12(r1)
/* 80380450 0037D3B0 38 00 02 80 */ li r0, 0x280
/* 80380454 0037D3B4 B0 81 00 14 */ sth r4, 0x14(r1)
/* 80380458 0037D3B8 B0 61 00 16 */ sth r3, 0x16(r1)
/* 8038045C 0037D3BC B0 01 00 1A */ sth r0, 0x1a(r1)
/* 80380460 0037D3C0 B0 81 00 1C */ sth r4, 0x1c(r1)
/* 80380464 0037D3C4 48 00 90 75 */ bl VIGetTvFormat
/* 80380468 0037D3C8 2C 03 00 02 */ cmpwi r3, 2
/* 8038046C 0037D3CC 41 82 00 24 */ beq lbl_80380490
/* 80380470 0037D3D0 40 80 00 14 */ bge lbl_80380484
/* 80380474 0037D3D4 2C 03 00 00 */ cmpwi r3, 0
/* 80380478 0037D3D8 41 82 00 18 */ beq lbl_80380490
/* 8038047C 0037D3DC 40 80 00 70 */ bge lbl_803804EC
/* 80380480 0037D3E0 48 00 00 84 */ b lbl_80380504
lbl_80380484:
/* 80380484 0037D3E4 2C 03 00 05 */ cmpwi r3, 5
/* 80380488 0037D3E8 41 82 00 48 */ beq lbl_803804D0
/* 8038048C 0037D3EC 48 00 00 78 */ b lbl_80380504
lbl_80380490:
/* 80380490 0037D3F0 3C 60 CC 00 */ lis r3, 0xCC00206C@ha
/* 80380494 0037D3F4 A0 03 20 6C */ lhz r0, 0xCC00206C@l(r3)
/* 80380498 0037D3F8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8038049C 0037D3FC 41 82 00 1C */ beq lbl_803804B8
/* 803804A0 0037D400 38 00 00 02 */ li r0, 2
/* 803804A4 0037D404 90 01 00 0C */ stw r0, 0xc(r1)
/* 803804A8 0037D408 38 00 00 00 */ li r0, 0
/* 803804AC 0037D40C B0 01 00 18 */ sth r0, 0x18(r1)
/* 803804B0 0037D410 90 01 00 20 */ stw r0, 0x20(r1)
/* 803804B4 0037D414 48 00 00 50 */ b lbl_80380504
lbl_803804B8:
/* 803804B8 0037D418 38 60 00 00 */ li r3, 0
/* 803804BC 0037D41C 90 61 00 0C */ stw r3, 0xc(r1)
/* 803804C0 0037D420 38 00 00 01 */ li r0, 1
/* 803804C4 0037D424 B0 61 00 18 */ sth r3, 0x18(r1)
/* 803804C8 0037D428 90 01 00 20 */ stw r0, 0x20(r1)
/* 803804CC 0037D42C 48 00 00 38 */ b lbl_80380504
lbl_803804D0:
/* 803804D0 0037D430 38 00 00 14 */ li r0, 0x14
/* 803804D4 0037D434 90 01 00 0C */ stw r0, 0xc(r1)
/* 803804D8 0037D438 38 60 00 00 */ li r3, 0
/* 803804DC 0037D43C 38 00 00 01 */ li r0, 1
/* 803804E0 0037D440 B0 61 00 18 */ sth r3, 0x18(r1)
/* 803804E4 0037D444 90 01 00 20 */ stw r0, 0x20(r1)
/* 803804E8 0037D448 48 00 00 1C */ b lbl_80380504
lbl_803804EC:
/* 803804EC 0037D44C 38 00 00 04 */ li r0, 4
/* 803804F0 0037D450 90 01 00 0C */ stw r0, 0xc(r1)
/* 803804F4 0037D454 38 60 00 2F */ li r3, 0x2f
/* 803804F8 0037D458 38 00 00 01 */ li r0, 1
/* 803804FC 0037D45C B0 61 00 18 */ sth r3, 0x18(r1)
/* 80380500 0037D460 90 01 00 20 */ stw r0, 0x20(r1)
lbl_80380504:
/* 80380504 0037D464 38 61 00 0C */ addi r3, r1, 0xc
/* 80380508 0037D468 48 00 80 4D */ bl VIConfigure
/* 8038050C 0037D46C 38 60 00 00 */ li r3, 0
/* 80380510 0037D470 38 80 00 00 */ li r4, 0
/* 80380514 0037D474 38 A0 02 80 */ li r5, 0x280
/* 80380518 0037D478 38 C0 01 E0 */ li r6, 0x1e0
/* 8038051C 0037D47C 48 00 88 61 */ bl VIConfigurePan
/* 80380520 0037D480 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 80380524 0037D484 38 21 00 48 */ addi r1, r1, 0x48
/* 80380528 0037D488 7C 08 03 A6 */ mtlr r0
/* 8038052C 0037D48C 4E 80 00 20 */ blr
.global OSFatal
OSFatal:
/* 80380530 0037D490 7C 08 02 A6 */ mflr r0
/* 80380534 0037D494 3C C0 80 54 */ lis r6, lbl_80541298@ha
/* 80380538 0037D498 90 01 00 04 */ stw r0, 4(r1)
/* 8038053C 0037D49C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80380540 0037D4A0 BF 41 00 18 */ stmw r26, 0x18(r1)
/* 80380544 0037D4A4 3B 43 00 00 */ addi r26, r3, 0
/* 80380548 0037D4A8 3B 64 00 00 */ addi r27, r4, 0
/* 8038054C 0037D4AC 3B 85 00 00 */ addi r28, r5, 0
/* 80380550 0037D4B0 3B C6 12 98 */ addi r30, r6, lbl_80541298@l
/* 80380554 0037D4B4 3F A0 80 00 */ lis r29, 0x8000
/* 80380558 0037D4B8 48 00 11 09 */ bl OSDisableInterrupts
/* 8038055C 0037D4BC 48 00 40 85 */ bl OSDisableScheduler
/* 80380560 0037D4C0 38 7E 00 10 */ addi r3, r30, 0x10
/* 80380564 0037D4C4 4B FF F0 B1 */ bl OSClearContext
/* 80380568 0037D4C8 38 7E 00 10 */ addi r3, r30, 0x10
/* 8038056C 0037D4CC 4B FF EE B1 */ bl OSSetCurrentContext
/* 80380570 0037D4D0 4B FF E4 29 */ bl __OSStopAudioSystem
/* 80380574 0037D4D4 38 60 00 00 */ li r3, 0
/* 80380578 0037D4D8 4B FE CE 05 */ bl AISetStreamVolLeft
/* 8038057C 0037D4DC 38 60 00 00 */ li r3, 0
/* 80380580 0037D4E0 4B FE CE 29 */ bl AISetStreamVolRight
/* 80380584 0037D4E4 48 00 76 59 */ bl VIInit
/* 80380588 0037D4E8 38 60 00 01 */ li r3, 1
/* 8038058C 0037D4EC 48 00 8D 21 */ bl VISetBlack
/* 80380590 0037D4F0 48 00 8B 81 */ bl VIFlush
/* 80380594 0037D4F4 48 00 10 E1 */ bl OSEnableInterrupts
/* 80380598 0037D4F8 48 00 8D 91 */ bl VIGetRetraceCount
/* 8038059C 0037D4FC 7C 7F 1B 78 */ mr r31, r3
lbl_803805A0:
/* 803805A0 0037D500 48 00 8D 89 */ bl VIGetRetraceCount
/* 803805A4 0037D504 7C 1F 18 50 */ subf r0, r31, r3
/* 803805A8 0037D508 2C 00 00 01 */ cmpwi r0, 1
/* 803805AC 0037D50C 41 80 FF F4 */ blt lbl_803805A0
lbl_803805B0:
/* 803805B0 0037D510 38 60 00 00 */ li r3, 0
/* 803805B4 0037D514 48 00 2A FD */ bl __OSCallResetFunctions
/* 803805B8 0037D518 2C 03 00 00 */ cmpwi r3, 0
/* 803805BC 0037D51C 41 82 FF F4 */ beq lbl_803805B0
/* 803805C0 0037D520 48 00 10 A1 */ bl OSDisableInterrupts
/* 803805C4 0037D524 38 60 00 01 */ li r3, 1
/* 803805C8 0037D528 48 00 2A E9 */ bl __OSCallResetFunctions
/* 803805CC 0037D52C 3C 60 80 38 */ lis r3, OSDefaultExceptionHandler@ha
/* 803805D0 0037D530 38 83 DF 94 */ addi r4, r3, OSDefaultExceptionHandler@l
/* 803805D4 0037D534 38 60 00 08 */ li r3, 8
/* 803805D8 0037D538 4B FF D8 F1 */ bl __OSSetExceptionHandler
/* 803805DC 0037D53C 4B FF 7D 91 */ bl sub_8037836c
/* 803805E0 0037D540 3C 60 81 20 */ lis r3, 0x8120
/* 803805E4 0037D544 4B FF E1 C5 */ bl OSSetArenaLo
/* 803805E8 0037D548 80 7D 00 38 */ lwz r3, 0x38(r29)
/* 803805EC 0037D54C 4B FF E1 B5 */ bl OSSetArenaHi
/* 803805F0 0037D550 80 1A 00 00 */ lwz r0, 0(r26)
/* 803805F4 0037D554 90 1E 00 00 */ stw r0, 0(r30)
/* 803805F8 0037D558 80 1B 00 00 */ lwz r0, 0(r27)
/* 803805FC 0037D55C 90 1E 00 04 */ stw r0, 4(r30)
/* 80380600 0037D560 93 9E 00 08 */ stw r28, 8(r30)
/* 80380604 0037D564 4B FF E1 8D */ bl OSGetArenaHi
/* 80380608 0037D568 3C A0 80 38 */ lis r5, Halt@ha
/* 8038060C 0037D56C 38 83 00 00 */ addi r4, r3, 0
/* 80380610 0037D570 38 65 06 2C */ addi r3, r5, Halt@l
/* 80380614 0037D574 4B FF EF D1 */ bl OSSwitchFiber
/* 80380618 0037D578 BB 41 00 18 */ lmw r26, 0x18(r1)
/* 8038061C 0037D57C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80380620 0037D580 38 21 00 30 */ addi r1, r1, 0x30
/* 80380624 0037D584 7C 08 03 A6 */ mtlr r0
/* 80380628 0037D588 4E 80 00 20 */ blr
.global Halt
Halt:
/* 8038062C 0037D58C 7C 08 02 A6 */ mflr r0
/* 80380630 0037D590 90 01 00 04 */ stw r0, 4(r1)
/* 80380634 0037D594 94 21 FF 78 */ stwu r1, -0x88(r1)
/* 80380638 0037D598 93 E1 00 84 */ stw r31, 0x84(r1)
/* 8038063C 0037D59C 93 C1 00 80 */ stw r30, 0x80(r1)
/* 80380640 0037D5A0 93 A1 00 7C */ stw r29, 0x7c(r1)
/* 80380644 0037D5A4 93 81 00 78 */ stw r28, 0x78(r1)
/* 80380648 0037D5A8 48 00 10 2D */ bl OSEnableInterrupts
/* 8038064C 0037D5AC 3C 60 80 54 */ lis r3, lbl_80541298@ha
/* 80380650 0037D5B0 3B E3 12 98 */ addi r31, r3, lbl_80541298@l
/* 80380654 0037D5B4 80 7F 00 08 */ lwz r3, 8(r31)
/* 80380658 0037D5B8 48 00 FB 69 */ bl strlen
/* 8038065C 0037D5BC 3B 83 00 01 */ addi r28, r3, 1
/* 80380660 0037D5C0 38 7C 00 00 */ addi r3, r28, 0
/* 80380664 0037D5C4 38 80 00 20 */ li r4, 0x20
/* 80380668 0037D5C8 4B FF E1 49 */ bl OSAllocFromArenaLo
/* 8038066C 0037D5CC 80 9F 00 08 */ lwz r4, 8(r31)
/* 80380670 0037D5D0 7F 85 E3 78 */ mr r5, r28
/* 80380674 0037D5D4 48 00 D2 AD */ bl memmove
/* 80380678 0037D5D8 90 7F 00 08 */ stw r3, 8(r31)
/* 8038067C 0037D5DC 48 00 08 C9 */ bl OSGetFontEncode
/* 80380680 0037D5E0 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 80380684 0037D5E4 28 00 00 01 */ cmplwi r0, 1
/* 80380688 0037D5E8 40 82 00 1C */ bne lbl_803806A4
/* 8038068C 0037D5EC 3C 60 00 09 */ lis r3, 0x00090EE4@ha
/* 80380690 0037D5F0 38 63 0E E4 */ addi r3, r3, 0x00090EE4@l
/* 80380694 0037D5F4 38 80 00 20 */ li r4, 0x20
/* 80380698 0037D5F8 4B FF E1 19 */ bl OSAllocFromArenaLo
/* 8038069C 0037D5FC 7C 7E 1B 78 */ mr r30, r3
/* 803806A0 0037D600 48 00 00 18 */ b lbl_803806B8
lbl_803806A4:
/* 803806A4 0037D604 3C 60 00 01 */ lis r3, 0x00010120@ha
/* 803806A8 0037D608 38 63 01 20 */ addi r3, r3, 0x00010120@l
/* 803806AC 0037D60C 38 80 00 20 */ li r4, 0x20
/* 803806B0 0037D610 4B FF E1 01 */ bl OSAllocFromArenaLo
/* 803806B4 0037D614 7C 7E 1B 78 */ mr r30, r3
lbl_803806B8:
/* 803806B8 0037D618 4B FF E0 E1 */ bl OSGetArenaLo
/* 803806BC 0037D61C 38 83 00 00 */ addi r4, r3, 0
/* 803806C0 0037D620 38 7E 00 00 */ addi r3, r30, 0
/* 803806C4 0037D624 48 00 09 65 */ bl sub_80381028
/* 803806C8 0037D628 3C 60 00 09 */ lis r3, 0x00096000@ha
/* 803806CC 0037D62C 38 63 60 00 */ addi r3, r3, 0x00096000@l
/* 803806D0 0037D630 38 80 00 20 */ li r4, 0x20
/* 803806D4 0037D634 4B FF E0 DD */ bl OSAllocFromArenaLo
/* 803806D8 0037D638 80 1F 00 04 */ lwz r0, 4(r31)
/* 803806DC 0037D63C 7C 7D 1B 78 */ mr r29, r3
/* 803806E0 0037D640 3C 80 43 30 */ lis r4, 0x4330
/* 803806E4 0037D644 C8 02 CF 30 */ lfd f0, lbl_805AEC50@sda21(r2)
/* 803806E8 0037D648 90 01 00 28 */ stw r0, 0x28(r1)
/* 803806EC 0037D64C C0 82 CF 04 */ lfs f4, lbl_805AEC24@sda21(r2)
/* 803806F0 0037D650 88 01 00 28 */ lbz r0, 0x28(r1)
/* 803806F4 0037D654 88 61 00 29 */ lbz r3, 0x29(r1)
/* 803806F8 0037D658 90 01 00 6C */ stw r0, 0x6c(r1)
/* 803806FC 0037D65C 88 A1 00 2A */ lbz r5, 0x2a(r1)
/* 80380700 0037D660 90 61 00 64 */ stw r3, 0x64(r1)
/* 80380704 0037D664 C0 42 CF 08 */ lfs f2, lbl_805AEC28@sda21(r2)
/* 80380708 0037D668 90 81 00 68 */ stw r4, 0x68(r1)
/* 8038070C 0037D66C C0 C2 CF 00 */ lfs f6, lbl_805AEC20@sda21(r2)
/* 80380710 0037D670 90 81 00 60 */ stw r4, 0x60(r1)
/* 80380714 0037D674 C8 61 00 68 */ lfd f3, 0x68(r1)
/* 80380718 0037D678 90 A1 00 74 */ stw r5, 0x74(r1)
/* 8038071C 0037D67C C8 21 00 60 */ lfd f1, 0x60(r1)
/* 80380720 0037D680 EC 63 00 28 */ fsubs f3, f3, f0
/* 80380724 0037D684 90 81 00 70 */ stw r4, 0x70(r1)
/* 80380728 0037D688 EC 21 00 28 */ fsubs f1, f1, f0
/* 8038072C 0037D68C C1 02 CF 18 */ lfs f8, lbl_805AEC38@sda21(r2)
/* 80380730 0037D690 90 61 00 4C */ stw r3, 0x4c(r1)
/* 80380734 0037D694 C8 A1 00 70 */ lfd f5, 0x70(r1)
/* 80380738 0037D698 EC 64 00 F2 */ fmuls f3, f4, f3
/* 8038073C 0037D69C EC 85 00 28 */ fsubs f4, f5, f0
/* 80380740 0037D6A0 90 01 00 54 */ stw r0, 0x54(r1)
/* 80380744 0037D6A4 EC 22 00 72 */ fmuls f1, f2, f1
/* 80380748 0037D6A8 C1 22 CF 14 */ lfs f9, lbl_805AEC34@sda21(r2)
/* 8038074C 0037D6AC 90 81 00 50 */ stw r4, 0x50(r1)
/* 80380750 0037D6B0 90 01 00 44 */ stw r0, 0x44(r1)
/* 80380754 0037D6B4 EC 86 01 32 */ fmuls f4, f6, f4
/* 80380758 0037D6B8 EC 23 08 2A */ fadds f1, f3, f1
/* 8038075C 0037D6BC C8 41 00 50 */ lfd f2, 0x50(r1)
/* 80380760 0037D6C0 90 61 00 3C */ stw r3, 0x3c(r1)
/* 80380764 0037D6C4 EC 62 00 28 */ fsubs f3, f2, f0
/* 80380768 0037D6C8 90 A1 00 5C */ stw r5, 0x5c(r1)
/* 8038076C 0037D6CC ED 64 08 2A */ fadds f11, f4, f1
/* 80380770 0037D6D0 C1 42 CF 10 */ lfs f10, lbl_805AEC30@sda21(r2)
/* 80380774 0037D6D4 90 81 00 48 */ stw r4, 0x48(r1)
/* 80380778 0037D6D8 ED 29 00 F2 */ fmuls f9, f9, f3
/* 8038077C 0037D6DC C0 A2 CF 1C */ lfs f5, lbl_805AEC3C@sda21(r2)
/* 80380780 0037D6E0 C8 21 00 48 */ lfd f1, 0x48(r1)
/* 80380784 0037D6E4 90 81 00 40 */ stw r4, 0x40(r1)
/* 80380788 0037D6E8 EC E1 00 28 */ fsubs f7, f1, f0
/* 8038078C 0037D6EC C0 62 CF 20 */ lfs f3, lbl_805AEC40@sda21(r2)
/* 80380790 0037D6F0 90 81 00 38 */ stw r4, 0x38(r1)
/* 80380794 0037D6F4 C8 41 00 40 */ lfd f2, 0x40(r1)
/* 80380798 0037D6F8 90 A1 00 34 */ stw r5, 0x34(r1)
/* 8038079C 0037D6FC C8 21 00 38 */ lfd f1, 0x38(r1)
/* 803807A0 0037D700 EC C2 00 28 */ fsubs f6, f2, f0
/* 803807A4 0037D704 90 81 00 30 */ stw r4, 0x30(r1)
/* 803807A8 0037D708 EC E8 01 F2 */ fmuls f7, f8, f7
/* 803807AC 0037D70C EC 81 00 28 */ fsubs f4, f1, f0
/* 803807B0 0037D710 90 81 00 58 */ stw r4, 0x58(r1)
/* 803807B4 0037D714 C0 22 CE FC */ lfs f1, lbl_805AEC1C@sda21(r2)
/* 803807B8 0037D718 EC CA 01 B2 */ fmuls f6, f10, f6
/* 803807BC 0037D71C C9 01 00 58 */ lfd f8, 0x58(r1)
/* 803807C0 0037D720 C8 41 00 30 */ lfd f2, 0x30(r1)
/* 803807C4 0037D724 EC 85 01 32 */ fmuls f4, f5, f4
/* 803807C8 0037D728 ED 08 00 28 */ fsubs f8, f8, f0
/* 803807CC 0037D72C EC 02 00 28 */ fsubs f0, f2, f0
/* 803807D0 0037D730 C1 82 CE F8 */ lfs f12, lbl_805AEC18@sda21(r2)
/* 803807D4 0037D734 EC 49 38 28 */ fsubs f2, f9, f7
/* 803807D8 0037D738 EC AA 02 32 */ fmuls f5, f10, f8
/* 803807DC 0037D73C ED 61 58 2A */ fadds f11, f1, f11
/* 803807E0 0037D740 EC 03 00 32 */ fmuls f0, f3, f0
/* 803807E4 0037D744 C0 E2 CF 0C */ lfs f7, lbl_805AEC2C@sda21(r2)
/* 803807E8 0037D748 EC A5 10 2A */ fadds f5, f5, f2
/* 803807EC 0037D74C EC 46 20 28 */ fsubs f2, f6, f4
/* 803807F0 0037D750 ED 2C 58 2A */ fadds f9, f12, f11
/* 803807F4 0037D754 C1 02 CF 24 */ lfs f8, lbl_805AEC44@sda21(r2)
/* 803807F8 0037D758 EC 67 28 2A */ fadds f3, f7, f5
/* 803807FC 0037D75C EC 02 00 28 */ fsubs f0, f2, f0
/* 80380800 0037D760 FC 09 40 40 */ fcmpo cr0, f9, f8
/* 80380804 0037D764 EC 6C 18 2A */ fadds f3, f12, f3
/* 80380808 0037D768 EC 07 00 2A */ fadds f0, f7, f0
/* 8038080C 0037D76C EC 4C 00 2A */ fadds f2, f12, f0
/* 80380810 0037D770 40 81 00 08 */ ble lbl_80380818
/* 80380814 0037D774 48 00 00 18 */ b lbl_8038082C
lbl_80380818:
/* 80380818 0037D778 FC 09 08 40 */ fcmpo cr0, f9, f1
/* 8038081C 0037D77C 40 80 00 08 */ bge lbl_80380824
/* 80380820 0037D780 48 00 00 08 */ b lbl_80380828
lbl_80380824:
/* 80380824 0037D784 FC 20 48 90 */ fmr f1, f9
lbl_80380828:
/* 80380828 0037D788 FD 00 08 90 */ fmr f8, f1
lbl_8038082C:
/* 8038082C 0037D78C FC 00 40 1E */ fctiwz f0, f8
/* 80380830 0037D790 C0 22 CF 28 */ lfs f1, lbl_805AEC48@sda21(r2)
/* 80380834 0037D794 FC 03 08 40 */ fcmpo cr0, f3, f1
/* 80380838 0037D798 D8 01 00 30 */ stfd f0, 0x30(r1)
/* 8038083C 0037D79C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80380840 0037D7A0 98 01 00 18 */ stb r0, 0x18(r1)
/* 80380844 0037D7A4 40 81 00 08 */ ble lbl_8038084C
/* 80380848 0037D7A8 48 00 00 18 */ b lbl_80380860
lbl_8038084C:
/* 8038084C 0037D7AC C0 22 CE FC */ lfs f1, lbl_805AEC1C@sda21(r2)
/* 80380850 0037D7B0 FC 03 08 40 */ fcmpo cr0, f3, f1
/* 80380854 0037D7B4 40 80 00 08 */ bge lbl_8038085C
/* 80380858 0037D7B8 48 00 00 08 */ b lbl_80380860
lbl_8038085C:
/* 8038085C 0037D7BC FC 20 18 90 */ fmr f1, f3
lbl_80380860:
/* 80380860 0037D7C0 FC 00 08 1E */ fctiwz f0, f1
/* 80380864 0037D7C4 C0 22 CF 28 */ lfs f1, lbl_805AEC48@sda21(r2)
/* 80380868 0037D7C8 FC 02 08 40 */ fcmpo cr0, f2, f1
/* 8038086C 0037D7CC D8 01 00 30 */ stfd f0, 0x30(r1)
/* 80380870 0037D7D0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80380874 0037D7D4 98 01 00 19 */ stb r0, 0x19(r1)
/* 80380878 0037D7D8 40 81 00 08 */ ble lbl_80380880
/* 8038087C 0037D7DC 48 00 00 18 */ b lbl_80380894
lbl_80380880:
/* 80380880 0037D7E0 C0 22 CE FC */ lfs f1, lbl_805AEC1C@sda21(r2)
/* 80380884 0037D7E4 FC 02 08 40 */ fcmpo cr0, f2, f1
/* 80380888 0037D7E8 40 80 00 08 */ bge lbl_80380890
/* 8038088C 0037D7EC 48 00 00 08 */ b lbl_80380894
lbl_80380890:
/* 80380890 0037D7F0 FC 20 10 90 */ fmr f1, f2
lbl_80380894:
/* 80380894 0037D7F4 FC 00 08 1E */ fctiwz f0, f1
/* 80380898 0037D7F8 38 80 00 00 */ li r4, 0
/* 8038089C 0037D7FC 38 7D 00 00 */ addi r3, r29, 0
/* 803808A0 0037D800 D8 01 00 30 */ stfd f0, 0x30(r1)
/* 803808A4 0037D804 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803808A8 0037D808 98 01 00 1A */ stb r0, 0x1a(r1)
/* 803808AC 0037D80C 98 81 00 1B */ stb r4, 0x1b(r1)
/* 803808B0 0037D810 80 01 00 18 */ lwz r0, 0x18(r1)
/* 803808B4 0037D814 90 01 00 2C */ stw r0, 0x2c(r1)
/* 803808B8 0037D818 88 A1 00 2D */ lbz r5, 0x2d(r1)
/* 803808BC 0037D81C 88 C1 00 2E */ lbz r6, 0x2e(r1)
lbl_803808C0:
/* 803808C0 0037D820 38 00 00 28 */ li r0, 0x28
/* 803808C4 0037D824 7C 09 03 A6 */ mtctr r0
lbl_803808C8:
/* 803808C8 0037D828 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 803808CC 0037D82C 98 03 00 00 */ stb r0, 0(r3)
/* 803808D0 0037D830 98 A3 00 01 */ stb r5, 1(r3)
/* 803808D4 0037D834 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 803808D8 0037D838 98 03 00 02 */ stb r0, 2(r3)
/* 803808DC 0037D83C 98 C3 00 03 */ stb r6, 3(r3)
/* 803808E0 0037D840 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 803808E4 0037D844 98 03 00 04 */ stb r0, 4(r3)
/* 803808E8 0037D848 98 A3 00 05 */ stb r5, 5(r3)
/* 803808EC 0037D84C 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 803808F0 0037D850 98 03 00 06 */ stb r0, 6(r3)
/* 803808F4 0037D854 98 C3 00 07 */ stb r6, 7(r3)
/* 803808F8 0037D858 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 803808FC 0037D85C 98 03 00 08 */ stb r0, 8(r3)
/* 80380900 0037D860 98 A3 00 09 */ stb r5, 9(r3)
/* 80380904 0037D864 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 80380908 0037D868 98 03 00 0A */ stb r0, 0xa(r3)
/* 8038090C 0037D86C 98 C3 00 0B */ stb r6, 0xb(r3)
/* 80380910 0037D870 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 80380914 0037D874 98 03 00 0C */ stb r0, 0xc(r3)
/* 80380918 0037D878 98 A3 00 0D */ stb r5, 0xd(r3)
/* 8038091C 0037D87C 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 80380920 0037D880 98 03 00 0E */ stb r0, 0xe(r3)
/* 80380924 0037D884 98 C3 00 0F */ stb r6, 0xf(r3)
/* 80380928 0037D888 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 8038092C 0037D88C 98 03 00 10 */ stb r0, 0x10(r3)
/* 80380930 0037D890 98 A3 00 11 */ stb r5, 0x11(r3)
/* 80380934 0037D894 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 80380938 0037D898 98 03 00 12 */ stb r0, 0x12(r3)
/* 8038093C 0037D89C 98 C3 00 13 */ stb r6, 0x13(r3)
/* 80380940 0037D8A0 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 80380944 0037D8A4 98 03 00 14 */ stb r0, 0x14(r3)
/* 80380948 0037D8A8 98 A3 00 15 */ stb r5, 0x15(r3)
/* 8038094C 0037D8AC 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 80380950 0037D8B0 98 03 00 16 */ stb r0, 0x16(r3)
/* 80380954 0037D8B4 98 C3 00 17 */ stb r6, 0x17(r3)
/* 80380958 0037D8B8 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 8038095C 0037D8BC 98 03 00 18 */ stb r0, 0x18(r3)
/* 80380960 0037D8C0 98 A3 00 19 */ stb r5, 0x19(r3)
/* 80380964 0037D8C4 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 80380968 0037D8C8 98 03 00 1A */ stb r0, 0x1a(r3)
/* 8038096C 0037D8CC 98 C3 00 1B */ stb r6, 0x1b(r3)
/* 80380970 0037D8D0 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 80380974 0037D8D4 98 03 00 1C */ stb r0, 0x1c(r3)
/* 80380978 0037D8D8 98 A3 00 1D */ stb r5, 0x1d(r3)
/* 8038097C 0037D8DC 88 01 00 2C */ lbz r0, 0x2c(r1)
/* 80380980 0037D8E0 98 03 00 1E */ stb r0, 0x1e(r3)
/* 80380984 0037D8E4 98 C3 00 1F */ stb r6, 0x1f(r3)
/* 80380988 0037D8E8 38 63 00 20 */ addi r3, r3, 0x20
/* 8038098C 0037D8EC 42 00 FF 3C */ bdnz lbl_803808C8
/* 80380990 0037D8F0 38 84 00 01 */ addi r4, r4, 1
/* 80380994 0037D8F4 2C 04 01 E0 */ cmpwi r4, 0x1e0
/* 80380998 0037D8F8 41 80 FF 28 */ blt lbl_803808C0
/* 8038099C 0037D8FC 7F A3 EB 78 */ mr r3, r29
/* 803809A0 0037D900 48 00 88 A1 */ bl VISetNextFrameBuffer
/* 803809A4 0037D904 38 60 02 80 */ li r3, 0x280
/* 803809A8 0037D908 38 80 01 E0 */ li r4, 0x1e0
/* 803809AC 0037D90C 4B FF FA 89 */ bl ConfigureVideo
/* 803809B0 0037D910 48 00 87 61 */ bl VIFlush
/* 803809B4 0037D914 48 00 89 75 */ bl VIGetRetraceCount
/* 803809B8 0037D918 7C 7C 1B 78 */ mr r28, r3
lbl_803809BC:
/* 803809BC 0037D91C 48 00 89 6D */ bl VIGetRetraceCount
/* 803809C0 0037D920 7C 1C 18 50 */ subf r0, r28, r3
/* 803809C4 0037D924 2C 00 00 02 */ cmpwi r0, 2
/* 803809C8 0037D928 41 80 FF F4 */ blt lbl_803809BC
/* 803809CC 0037D92C 80 1F 00 00 */ lwz r0, 0(r31)
/* 803809D0 0037D930 3C 60 43 30 */ lis r3, 0x4330
/* 803809D4 0037D934 C8 02 CF 30 */ lfd f0, lbl_805AEC50@sda21(r2)
/* 803809D8 0037D938 90 01 00 20 */ stw r0, 0x20(r1)
/* 803809DC 0037D93C C0 82 CF 04 */ lfs f4, lbl_805AEC24@sda21(r2)
/* 803809E0 0037D940 88 01 00 20 */ lbz r0, 0x20(r1)
/* 803809E4 0037D944 88 81 00 21 */ lbz r4, 0x21(r1)
/* 803809E8 0037D948 90 01 00 3C */ stw r0, 0x3c(r1)
/* 803809EC 0037D94C 88 A1 00 22 */ lbz r5, 0x22(r1)
/* 803809F0 0037D950 90 81 00 44 */ stw r4, 0x44(r1)
/* 803809F4 0037D954 C0 42 CF 08 */ lfs f2, lbl_805AEC28@sda21(r2)
/* 803809F8 0037D958 90 61 00 38 */ stw r3, 0x38(r1)
/* 803809FC 0037D95C C0 C2 CF 00 */ lfs f6, lbl_805AEC20@sda21(r2)
/* 80380A00 0037D960 90 61 00 40 */ stw r3, 0x40(r1)
/* 80380A04 0037D964 C8 61 00 38 */ lfd f3, 0x38(r1)
/* 80380A08 0037D968 90 A1 00 34 */ stw r5, 0x34(r1)
/* 80380A0C 0037D96C C8 21 00 40 */ lfd f1, 0x40(r1)
/* 80380A10 0037D970 EC 63 00 28 */ fsubs f3, f3, f0
/* 80380A14 0037D974 90 61 00 30 */ stw r3, 0x30(r1)
/* 80380A18 0037D978 EC 21 00 28 */ fsubs f1, f1, f0
/* 80380A1C 0037D97C C1 02 CF 18 */ lfs f8, lbl_805AEC38@sda21(r2)
/* 80380A20 0037D980 90 81 00 5C */ stw r4, 0x5c(r1)
/* 80380A24 0037D984 C8 A1 00 30 */ lfd f5, 0x30(r1)
/* 80380A28 0037D988 EC 64 00 F2 */ fmuls f3, f4, f3
/* 80380A2C 0037D98C EC 85 00 28 */ fsubs f4, f5, f0
/* 80380A30 0037D990 90 01 00 54 */ stw r0, 0x54(r1)
/* 80380A34 0037D994 EC 22 00 72 */ fmuls f1, f2, f1
/* 80380A38 0037D998 C1 22 CF 14 */ lfs f9, lbl_805AEC34@sda21(r2)
/* 80380A3C 0037D99C 90 61 00 50 */ stw r3, 0x50(r1)
/* 80380A40 0037D9A0 90 01 00 64 */ stw r0, 0x64(r1)
/* 80380A44 0037D9A4 EC 86 01 32 */ fmuls f4, f6, f4
/* 80380A48 0037D9A8 EC 23 08 2A */ fadds f1, f3, f1
/* 80380A4C 0037D9AC C8 41 00 50 */ lfd f2, 0x50(r1)
/* 80380A50 0037D9B0 90 81 00 6C */ stw r4, 0x6c(r1)
/* 80380A54 0037D9B4 EC 62 00 28 */ fsubs f3, f2, f0
/* 80380A58 0037D9B8 90 A1 00 4C */ stw r5, 0x4c(r1)
/* 80380A5C 0037D9BC ED 64 08 2A */ fadds f11, f4, f1
/* 80380A60 0037D9C0 C1 42 CF 10 */ lfs f10, lbl_805AEC30@sda21(r2)
/* 80380A64 0037D9C4 90 61 00 58 */ stw r3, 0x58(r1)
/* 80380A68 0037D9C8 ED 29 00 F2 */ fmuls f9, f9, f3
/* 80380A6C 0037D9CC C0 A2 CF 1C */ lfs f5, lbl_805AEC3C@sda21(r2)
/* 80380A70 0037D9D0 C8 21 00 58 */ lfd f1, 0x58(r1)
/* 80380A74 0037D9D4 90 61 00 60 */ stw r3, 0x60(r1)
/* 80380A78 0037D9D8 EC E1 00 28 */ fsubs f7, f1, f0
/* 80380A7C 0037D9DC C0 62 CF 20 */ lfs f3, lbl_805AEC40@sda21(r2)
/* 80380A80 0037D9E0 90 61 00 68 */ stw r3, 0x68(r1)
/* 80380A84 0037D9E4 C8 41 00 60 */ lfd f2, 0x60(r1)
/* 80380A88 0037D9E8 90 A1 00 74 */ stw r5, 0x74(r1)
/* 80380A8C 0037D9EC C8 21 00 68 */ lfd f1, 0x68(r1)
/* 80380A90 0037D9F0 EC C2 00 28 */ fsubs f6, f2, f0
/* 80380A94 0037D9F4 90 61 00 70 */ stw r3, 0x70(r1)
/* 80380A98 0037D9F8 EC E8 01 F2 */ fmuls f7, f8, f7
/* 80380A9C 0037D9FC EC 81 00 28 */ fsubs f4, f1, f0
/* 80380AA0 0037DA00 90 61 00 48 */ stw r3, 0x48(r1)
/* 80380AA4 0037DA04 C0 22 CE FC */ lfs f1, lbl_805AEC1C@sda21(r2)
/* 80380AA8 0037DA08 EC CA 01 B2 */ fmuls f6, f10, f6
/* 80380AAC 0037DA0C C9 01 00 48 */ lfd f8, 0x48(r1)
/* 80380AB0 0037DA10 C8 41 00 70 */ lfd f2, 0x70(r1)
/* 80380AB4 0037DA14 EC 85 01 32 */ fmuls f4, f5, f4
/* 80380AB8 0037DA18 ED 08 00 28 */ fsubs f8, f8, f0
/* 80380ABC 0037DA1C EC 02 00 28 */ fsubs f0, f2, f0
/* 80380AC0 0037DA20 C1 82 CE F8 */ lfs f12, lbl_805AEC18@sda21(r2)
/* 80380AC4 0037DA24 EC 49 38 28 */ fsubs f2, f9, f7
/* 80380AC8 0037DA28 EC AA 02 32 */ fmuls f5, f10, f8
/* 80380ACC 0037DA2C ED 61 58 2A */ fadds f11, f1, f11
/* 80380AD0 0037DA30 EC 03 00 32 */ fmuls f0, f3, f0
/* 80380AD4 0037DA34 C0 E2 CF 0C */ lfs f7, lbl_805AEC2C@sda21(r2)
/* 80380AD8 0037DA38 EC A5 10 2A */ fadds f5, f5, f2
/* 80380ADC 0037DA3C EC 46 20 28 */ fsubs f2, f6, f4
/* 80380AE0 0037DA40 ED 2C 58 2A */ fadds f9, f12, f11
/* 80380AE4 0037DA44 C1 02 CF 24 */ lfs f8, lbl_805AEC44@sda21(r2)
/* 80380AE8 0037DA48 EC 67 28 2A */ fadds f3, f7, f5
/* 80380AEC 0037DA4C EC 02 00 28 */ fsubs f0, f2, f0
/* 80380AF0 0037DA50 FC 09 40 40 */ fcmpo cr0, f9, f8
/* 80380AF4 0037DA54 EC 6C 18 2A */ fadds f3, f12, f3
/* 80380AF8 0037DA58 EC 07 00 2A */ fadds f0, f7, f0
/* 80380AFC 0037DA5C EC 4C 00 2A */ fadds f2, f12, f0
/* 80380B00 0037DA60 40 81 00 08 */ ble lbl_80380B08
/* 80380B04 0037DA64 48 00 00 18 */ b lbl_80380B1C
lbl_80380B08:
/* 80380B08 0037DA68 FC 09 08 40 */ fcmpo cr0, f9, f1
/* 80380B0C 0037DA6C 40 80 00 08 */ bge lbl_80380B14
/* 80380B10 0037DA70 48 00 00 08 */ b lbl_80380B18
lbl_80380B14:
/* 80380B14 0037DA74 FC 20 48 90 */ fmr f1, f9
lbl_80380B18:
/* 80380B18 0037DA78 FD 00 08 90 */ fmr f8, f1
lbl_80380B1C:
/* 80380B1C 0037DA7C FC 00 40 1E */ fctiwz f0, f8
/* 80380B20 0037DA80 C0 22 CF 28 */ lfs f1, lbl_805AEC48@sda21(r2)
/* 80380B24 0037DA84 FC 03 08 40 */ fcmpo cr0, f3, f1
/* 80380B28 0037DA88 D8 01 00 30 */ stfd f0, 0x30(r1)
/* 80380B2C 0037DA8C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80380B30 0037DA90 98 01 00 1C */ stb r0, 0x1c(r1)
/* 80380B34 0037DA94 40 81 00 08 */ ble lbl_80380B3C
/* 80380B38 0037DA98 48 00 00 18 */ b lbl_80380B50
lbl_80380B3C:
/* 80380B3C 0037DA9C C0 22 CE FC */ lfs f1, lbl_805AEC1C@sda21(r2)
/* 80380B40 0037DAA0 FC 03 08 40 */ fcmpo cr0, f3, f1
/* 80380B44 0037DAA4 40 80 00 08 */ bge lbl_80380B4C
/* 80380B48 0037DAA8 48 00 00 08 */ b lbl_80380B50
lbl_80380B4C:
/* 80380B4C 0037DAAC FC 20 18 90 */ fmr f1, f3
lbl_80380B50:
/* 80380B50 0037DAB0 FC 00 08 1E */ fctiwz f0, f1
/* 80380B54 0037DAB4 C0 22 CF 28 */ lfs f1, lbl_805AEC48@sda21(r2)
/* 80380B58 0037DAB8 FC 02 08 40 */ fcmpo cr0, f2, f1
/* 80380B5C 0037DABC D8 01 00 30 */ stfd f0, 0x30(r1)
/* 80380B60 0037DAC0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80380B64 0037DAC4 98 01 00 1D */ stb r0, 0x1d(r1)
/* 80380B68 0037DAC8 40 81 00 08 */ ble lbl_80380B70
/* 80380B6C 0037DACC 48 00 00 18 */ b lbl_80380B84
lbl_80380B70:
/* 80380B70 0037DAD0 C0 22 CE FC */ lfs f1, lbl_805AEC1C@sda21(r2)
/* 80380B74 0037DAD4 FC 02 08 40 */ fcmpo cr0, f2, f1
/* 80380B78 0037DAD8 40 80 00 08 */ bge lbl_80380B80
/* 80380B7C 0037DADC 48 00 00 08 */ b lbl_80380B84
lbl_80380B80:
/* 80380B80 0037DAE0 FC 20 10 90 */ fmr f1, f2
lbl_80380B84:
/* 80380B84 0037DAE4 FC 00 08 1E */ fctiwz f0, f1
/* 80380B88 0037DAE8 38 00 00 00 */ li r0, 0
/* 80380B8C 0037DAEC 38 C1 00 24 */ addi r6, r1, 0x24
/* 80380B90 0037DAF0 38 7D 00 00 */ addi r3, r29, 0
/* 80380B94 0037DAF4 D8 01 00 30 */ stfd f0, 0x30(r1)
/* 80380B98 0037DAF8 38 80 02 80 */ li r4, 0x280
/* 80380B9C 0037DAFC 80 E1 00 34 */ lwz r7, 0x34(r1)
/* 80380BA0 0037DB00 38 A0 01 E0 */ li r5, 0x1e0
/* 80380BA4 0037DB04 39 00 00 64 */ li r8, 0x64
/* 80380BA8 0037DB08 98 E1 00 1E */ stb r7, 0x1e(r1)
/* 80380BAC 0037DB0C 38 E0 00 30 */ li r7, 0x30
/* 80380BB0 0037DB10 98 01 00 1F */ stb r0, 0x1f(r1)
/* 80380BB4 0037DB14 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80380BB8 0037DB18 90 01 00 24 */ stw r0, 0x24(r1)
/* 80380BBC 0037DB1C A1 3E 00 0E */ lhz r9, 0xe(r30)
/* 80380BC0 0037DB20 81 5F 00 08 */ lwz r10, 8(r31)
/* 80380BC4 0037DB24 4B FF F4 95 */ bl ScreenReport
/* 80380BC8 0037DB28 3C 80 00 09 */ lis r4, 0x00096000@ha
/* 80380BCC 0037DB2C 38 7D 00 00 */ addi r3, r29, 0
/* 80380BD0 0037DB30 38 84 60 00 */ addi r4, r4, 0x00096000@l
/* 80380BD4 0037DB34 4B FF DE DD */ bl DCFlushRange
/* 80380BD8 0037DB38 38 60 00 00 */ li r3, 0
/* 80380BDC 0037DB3C 48 00 86 D1 */ bl VISetBlack
/* 80380BE0 0037DB40 48 00 85 31 */ bl VIFlush
/* 80380BE4 0037DB44 48 00 87 45 */ bl VIGetRetraceCount
/* 80380BE8 0037DB48 7C 7D 1B 78 */ mr r29, r3
lbl_80380BEC:
/* 80380BEC 0037DB4C 48 00 87 3D */ bl VIGetRetraceCount
/* 80380BF0 0037DB50 7C 1D 18 50 */ subf r0, r29, r3
/* 80380BF4 0037DB54 2C 00 00 01 */ cmpwi r0, 1
/* 80380BF8 0037DB58 41 80 FF F4 */ blt lbl_80380BEC
/* 80380BFC 0037DB5C 48 00 0A 65 */ bl OSDisableInterrupts
/* 80380C00 0037DB60 80 9F 00 08 */ lwz r4, 8(r31)
/* 80380C04 0037DB64 4C C6 31 82 */ crclr 6
/* 80380C08 0037DB68 38 6D 9F 80 */ addi r3, r13, lbl_805A8B40@sda21
/* 80380C0C 0037DB6C 4B FF ED A1 */ bl OSReport
/* 80380C10 0037DB70 4B FE EC 05 */ bl PPCHalt
/* 80380C14 0037DB74 80 01 00 8C */ lwz r0, 0x8c(r1)
/* 80380C18 0037DB78 83 E1 00 84 */ lwz r31, 0x84(r1)
/* 80380C1C 0037DB7C 83 C1 00 80 */ lwz r30, 0x80(r1)
/* 80380C20 0037DB80 83 A1 00 7C */ lwz r29, 0x7c(r1)
/* 80380C24 0037DB84 83 81 00 78 */ lwz r28, 0x78(r1)
/* 80380C28 0037DB88 38 21 00 88 */ addi r1, r1, 0x88
/* 80380C2C 0037DB8C 7C 08 03 A6 */ mtlr r0
/* 80380C30 0037DB90 4E 80 00 20 */ blr

736
asm/Dolphin/OS/OSFont.s Normal file
View File

@ -0,0 +1,736 @@
.include "macros.inc"
.section .text, "ax"
.global sub_80380c34
sub_80380c34:
/* 80380C34 0037DB94 7C 08 02 A6 */ mflr r0
/* 80380C38 0037DB98 90 01 00 04 */ stw r0, 4(r1)
/* 80380C3C 0037DB9C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80380C40 0037DBA0 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80380C44 0037DBA4 7C 7F 1B 78 */ mr r31, r3
/* 80380C48 0037DBA8 48 00 02 FD */ bl OSGetFontEncode
/* 80380C4C 0037DBAC 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 80380C50 0037DBB0 28 00 00 01 */ cmplwi r0, 1
/* 80380C54 0037DBB4 40 82 01 48 */ bne lbl_80380D9C
/* 80380C58 0037DBB8 57 E0 04 3E */ clrlwi r0, r31, 0x10
/* 80380C5C 0037DBBC 28 00 00 20 */ cmplwi r0, 0x20
/* 80380C60 0037DBC0 41 80 00 24 */ blt lbl_80380C84
/* 80380C64 0037DBC4 28 00 00 DF */ cmplwi r0, 0xdf
/* 80380C68 0037DBC8 41 81 00 1C */ bgt lbl_80380C84
/* 80380C6C 0037DBCC 3C 60 80 3F */ lis r3, lbl_803F1750@ha
/* 80380C70 0037DBD0 38 63 17 50 */ addi r3, r3, lbl_803F1750@l
/* 80380C74 0037DBD4 54 00 08 3C */ slwi r0, r0, 1
/* 80380C78 0037DBD8 7C 63 02 14 */ add r3, r3, r0
/* 80380C7C 0037DBDC A0 63 FF C0 */ lhz r3, -0x40(r3)
/* 80380C80 0037DBE0 48 00 01 3C */ b lbl_80380DBC
lbl_80380C84:
/* 80380C84 0037DBE4 57 E0 04 3E */ clrlwi r0, r31, 0x10
/* 80380C88 0037DBE8 28 00 88 9E */ cmplwi r0, 0x889e
/* 80380C8C 0037DBEC 40 81 00 7C */ ble lbl_80380D08
/* 80380C90 0037DBF0 28 00 98 72 */ cmplwi r0, 0x9872
/* 80380C94 0037DBF4 41 81 00 74 */ bgt lbl_80380D08
/* 80380C98 0037DBF8 7C 03 46 70 */ srawi r3, r0, 8
/* 80380C9C 0037DBFC 54 04 06 3E */ clrlwi r4, r0, 0x18
/* 80380CA0 0037DC00 38 03 FF 78 */ addi r0, r3, -136
/* 80380CA4 0037DC04 28 04 00 40 */ cmplwi r4, 0x40
/* 80380CA8 0037DC08 1C A0 00 BC */ mulli r5, r0, 0xbc
/* 80380CAC 0037DC0C 38 60 00 00 */ li r3, 0
/* 80380CB0 0037DC10 38 03 00 00 */ addi r0, r3, 0
/* 80380CB4 0037DC14 41 80 00 10 */ blt lbl_80380CC4
/* 80380CB8 0037DC18 28 04 00 FC */ cmplwi r4, 0xfc
/* 80380CBC 0037DC1C 41 81 00 08 */ bgt lbl_80380CC4
/* 80380CC0 0037DC20 38 00 00 01 */ li r0, 1
lbl_80380CC4:
/* 80380CC4 0037DC24 2C 00 00 00 */ cmpwi r0, 0
/* 80380CC8 0037DC28 41 82 00 14 */ beq lbl_80380CDC
/* 80380CCC 0037DC2C 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80380CD0 0037DC30 28 00 00 7F */ cmplwi r0, 0x7f
/* 80380CD4 0037DC34 41 82 00 08 */ beq lbl_80380CDC
/* 80380CD8 0037DC38 38 60 00 01 */ li r3, 1
lbl_80380CDC:
/* 80380CDC 0037DC3C 2C 03 00 00 */ cmpwi r3, 0
/* 80380CE0 0037DC40 40 82 00 0C */ bne lbl_80380CEC
/* 80380CE4 0037DC44 38 60 00 00 */ li r3, 0
/* 80380CE8 0037DC48 48 00 00 D4 */ b lbl_80380DBC
lbl_80380CEC:
/* 80380CEC 0037DC4C 38 64 FF C0 */ addi r3, r4, -64
/* 80380CF0 0037DC50 2C 03 00 40 */ cmpwi r3, 0x40
/* 80380CF4 0037DC54 41 80 00 08 */ blt lbl_80380CFC
/* 80380CF8 0037DC58 38 63 FF FF */ addi r3, r3, -1
lbl_80380CFC:
/* 80380CFC 0037DC5C 38 63 02 BE */ addi r3, r3, 0x2be
/* 80380D00 0037DC60 7C 65 1A 14 */ add r3, r5, r3
/* 80380D04 0037DC64 48 00 00 B8 */ b lbl_80380DBC
lbl_80380D08:
/* 80380D08 0037DC68 57 E0 04 3E */ clrlwi r0, r31, 0x10
/* 80380D0C 0037DC6C 28 00 81 40 */ cmplwi r0, 0x8140
/* 80380D10 0037DC70 41 80 00 A8 */ blt lbl_80380DB8
/* 80380D14 0037DC74 28 00 87 9E */ cmplwi r0, 0x879e
/* 80380D18 0037DC78 40 80 00 A0 */ bge lbl_80380DB8
/* 80380D1C 0037DC7C 7C 03 46 70 */ srawi r3, r0, 8
/* 80380D20 0037DC80 54 04 06 3E */ clrlwi r4, r0, 0x18
/* 80380D24 0037DC84 38 03 FF 7F */ addi r0, r3, -129
/* 80380D28 0037DC88 28 04 00 40 */ cmplwi r4, 0x40
/* 80380D2C 0037DC8C 1C A0 00 BC */ mulli r5, r0, 0xbc
/* 80380D30 0037DC90 38 60 00 00 */ li r3, 0
/* 80380D34 0037DC94 38 03 00 00 */ addi r0, r3, 0
/* 80380D38 0037DC98 41 80 00 10 */ blt lbl_80380D48
/* 80380D3C 0037DC9C 28 04 00 FC */ cmplwi r4, 0xfc
/* 80380D40 0037DCA0 41 81 00 08 */ bgt lbl_80380D48
/* 80380D44 0037DCA4 38 00 00 01 */ li r0, 1
lbl_80380D48:
/* 80380D48 0037DCA8 2C 00 00 00 */ cmpwi r0, 0
/* 80380D4C 0037DCAC 41 82 00 14 */ beq lbl_80380D60
/* 80380D50 0037DCB0 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80380D54 0037DCB4 28 00 00 7F */ cmplwi r0, 0x7f
/* 80380D58 0037DCB8 41 82 00 08 */ beq lbl_80380D60
/* 80380D5C 0037DCBC 38 60 00 01 */ li r3, 1
lbl_80380D60:
/* 80380D60 0037DCC0 2C 03 00 00 */ cmpwi r3, 0
/* 80380D64 0037DCC4 40 82 00 0C */ bne lbl_80380D70
/* 80380D68 0037DCC8 38 60 00 00 */ li r3, 0
/* 80380D6C 0037DCCC 48 00 00 50 */ b lbl_80380DBC
lbl_80380D70:
/* 80380D70 0037DCD0 38 64 FF C0 */ addi r3, r4, -64
/* 80380D74 0037DCD4 2C 03 00 40 */ cmpwi r3, 0x40
/* 80380D78 0037DCD8 41 80 00 08 */ blt lbl_80380D80
/* 80380D7C 0037DCDC 38 63 FF FF */ addi r3, r3, -1
lbl_80380D80:
/* 80380D80 0037DCE0 7C 05 1A 14 */ add r0, r5, r3
/* 80380D84 0037DCE4 3C 60 80 3F */ lis r3, lbl_803F18D0@ha
/* 80380D88 0037DCE8 54 04 08 3C */ slwi r4, r0, 1
/* 80380D8C 0037DCEC 38 03 18 D0 */ addi r0, r3, lbl_803F18D0@l
/* 80380D90 0037DCF0 7C 60 22 14 */ add r3, r0, r4
/* 80380D94 0037DCF4 A0 63 00 00 */ lhz r3, 0(r3)
/* 80380D98 0037DCF8 48 00 00 24 */ b lbl_80380DBC
lbl_80380D9C:
/* 80380D9C 0037DCFC 57 E3 04 3E */ clrlwi r3, r31, 0x10
/* 80380DA0 0037DD00 28 03 00 20 */ cmplwi r3, 0x20
/* 80380DA4 0037DD04 40 81 00 14 */ ble lbl_80380DB8
/* 80380DA8 0037DD08 28 03 00 FF */ cmplwi r3, 0xff
/* 80380DAC 0037DD0C 41 81 00 0C */ bgt lbl_80380DB8
/* 80380DB0 0037DD10 38 63 FF E0 */ addi r3, r3, -32
/* 80380DB4 0037DD14 48 00 00 08 */ b lbl_80380DBC
lbl_80380DB8:
/* 80380DB8 0037DD18 38 60 00 00 */ li r3, 0
lbl_80380DBC:
/* 80380DBC 0037DD1C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80380DC0 0037DD20 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80380DC4 0037DD24 38 21 00 18 */ addi r1, r1, 0x18
/* 80380DC8 0037DD28 7C 08 03 A6 */ mtlr r0
/* 80380DCC 0037DD2C 4E 80 00 20 */ blr
.global sub_80380dd0
sub_80380dd0:
/* 80380DD0 0037DD30 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80380DD4 0037DD34 38 C3 00 10 */ addi r6, r3, 0x10
/* 80380DD8 0037DD38 39 40 00 00 */ li r10, 0
/* 80380DDC 0037DD3C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80380DE0 0037DD40 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80380DE4 0037DD44 3B C0 00 00 */ li r30, 0
/* 80380DE8 0037DD48 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80380DEC 0037DD4C 83 E3 00 04 */ lwz r31, 4(r3)
/* 80380DF0 0037DD50 81 63 00 08 */ lwz r11, 8(r3)
/* 80380DF4 0037DD54 81 83 00 0C */ lwz r12, 0xc(r3)
lbl_80380DF8:
/* 80380DF8 0037DD58 28 1E 00 00 */ cmplwi r30, 0
/* 80380DFC 0037DD5C 40 82 00 10 */ bne lbl_80380E0C
/* 80380E00 0037DD60 83 A6 00 00 */ lwz r29, 0(r6)
/* 80380E04 0037DD64 3B C0 00 20 */ li r30, 0x20
/* 80380E08 0037DD68 38 C6 00 04 */ addi r6, r6, 4
lbl_80380E0C:
/* 80380E0C 0037DD6C 57 A0 00 01 */ rlwinm. r0, r29, 0, 0, 0
/* 80380E10 0037DD70 41 82 00 20 */ beq lbl_80380E30
/* 80380E14 0037DD74 7D 80 63 78 */ mr r0, r12
/* 80380E18 0037DD78 7C A3 00 AE */ lbzx r5, r3, r0
/* 80380E1C 0037DD7C 7D 40 53 78 */ mr r0, r10
/* 80380E20 0037DD80 39 4A 00 01 */ addi r10, r10, 1
/* 80380E24 0037DD84 7C A4 01 AE */ stbx r5, r4, r0
/* 80380E28 0037DD88 39 8C 00 01 */ addi r12, r12, 1
/* 80380E2C 0037DD8C 48 00 00 F4 */ b lbl_80380F20
lbl_80380E30:
/* 80380E30 0037DD90 7C E3 5A 14 */ add r7, r3, r11
/* 80380E34 0037DD94 88 A7 00 00 */ lbz r5, 0(r7)
/* 80380E38 0037DD98 39 6B 00 02 */ addi r11, r11, 2
/* 80380E3C 0037DD9C 88 07 00 01 */ lbz r0, 1(r7)
/* 80380E40 0037DDA0 50 A0 44 2E */ rlwimi r0, r5, 8, 0x10, 0x17
/* 80380E44 0037DDA4 7C 05 66 71 */ srawi. r5, r0, 0xc
/* 80380E48 0037DDA8 54 00 05 3E */ clrlwi r0, r0, 0x14
/* 80380E4C 0037DDAC 7D 20 50 50 */ subf r9, r0, r10
/* 80380E50 0037DDB0 40 82 00 18 */ bne lbl_80380E68
/* 80380E54 0037DDB4 7D 80 63 78 */ mr r0, r12
/* 80380E58 0037DDB8 7C A3 00 AE */ lbzx r5, r3, r0
/* 80380E5C 0037DDBC 39 8C 00 01 */ addi r12, r12, 1
/* 80380E60 0037DDC0 38 05 00 12 */ addi r0, r5, 0x12
/* 80380E64 0037DDC4 48 00 00 08 */ b lbl_80380E6C
lbl_80380E68:
/* 80380E68 0037DDC8 38 05 00 02 */ addi r0, r5, 2
lbl_80380E6C:
/* 80380E6C 0037DDCC 2C 00 00 00 */ cmpwi r0, 0
/* 80380E70 0037DDD0 7C 05 03 78 */ mr r5, r0
/* 80380E74 0037DDD4 7C E4 52 14 */ add r7, r4, r10
/* 80380E78 0037DDD8 40 81 00 A8 */ ble lbl_80380F20
/* 80380E7C 0037DDDC 54 A0 E8 FF */ rlwinm. r0, r5, 0x1d, 3, 0x1f
/* 80380E80 0037DDE0 7C 09 03 A6 */ mtctr r0
/* 80380E84 0037DDE4 41 82 00 7C */ beq lbl_80380F00
lbl_80380E88:
/* 80380E88 0037DDE8 39 09 FF FF */ addi r8, r9, -1
/* 80380E8C 0037DDEC 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380E90 0037DDF0 39 09 00 00 */ addi r8, r9, 0
/* 80380E94 0037DDF4 39 4A 00 08 */ addi r10, r10, 8
/* 80380E98 0037DDF8 98 07 00 00 */ stb r0, 0(r7)
/* 80380E9C 0037DDFC 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380EA0 0037DE00 39 09 00 01 */ addi r8, r9, 1
/* 80380EA4 0037DE04 98 07 00 01 */ stb r0, 1(r7)
/* 80380EA8 0037DE08 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380EAC 0037DE0C 39 09 00 02 */ addi r8, r9, 2
/* 80380EB0 0037DE10 98 07 00 02 */ stb r0, 2(r7)
/* 80380EB4 0037DE14 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380EB8 0037DE18 39 09 00 03 */ addi r8, r9, 3
/* 80380EBC 0037DE1C 98 07 00 03 */ stb r0, 3(r7)
/* 80380EC0 0037DE20 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380EC4 0037DE24 39 09 00 04 */ addi r8, r9, 4
/* 80380EC8 0037DE28 98 07 00 04 */ stb r0, 4(r7)
/* 80380ECC 0037DE2C 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380ED0 0037DE30 39 09 00 05 */ addi r8, r9, 5
/* 80380ED4 0037DE34 98 07 00 05 */ stb r0, 5(r7)
/* 80380ED8 0037DE38 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380EDC 0037DE3C 39 09 00 06 */ addi r8, r9, 6
/* 80380EE0 0037DE40 39 29 00 08 */ addi r9, r9, 8
/* 80380EE4 0037DE44 98 07 00 06 */ stb r0, 6(r7)
/* 80380EE8 0037DE48 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380EEC 0037DE4C 98 07 00 07 */ stb r0, 7(r7)
/* 80380EF0 0037DE50 38 E7 00 08 */ addi r7, r7, 8
/* 80380EF4 0037DE54 42 00 FF 94 */ bdnz lbl_80380E88
/* 80380EF8 0037DE58 70 A5 00 07 */ andi. r5, r5, 7
/* 80380EFC 0037DE5C 41 82 00 24 */ beq lbl_80380F20
lbl_80380F00:
/* 80380F00 0037DE60 7C A9 03 A6 */ mtctr r5
lbl_80380F04:
/* 80380F04 0037DE64 39 09 FF FF */ addi r8, r9, -1
/* 80380F08 0037DE68 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380F0C 0037DE6C 39 4A 00 01 */ addi r10, r10, 1
/* 80380F10 0037DE70 39 29 00 01 */ addi r9, r9, 1
/* 80380F14 0037DE74 98 07 00 00 */ stb r0, 0(r7)
/* 80380F18 0037DE78 38 E7 00 01 */ addi r7, r7, 1
/* 80380F1C 0037DE7C 42 00 FF E8 */ bdnz lbl_80380F04
lbl_80380F20:
/* 80380F20 0037DE80 7C 0A F8 00 */ cmpw r10, r31
/* 80380F24 0037DE84 57 BD 08 3C */ slwi r29, r29, 1
/* 80380F28 0037DE88 3B DE FF FF */ addi r30, r30, -1
/* 80380F2C 0037DE8C 41 80 FE CC */ blt lbl_80380DF8
/* 80380F30 0037DE90 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80380F34 0037DE94 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80380F38 0037DE98 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80380F3C 0037DE9C 38 21 00 20 */ addi r1, r1, 0x20
/* 80380F40 0037DEA0 4E 80 00 20 */ blr
.global OSGetFontEncode
OSGetFontEncode:
/* 80380F44 0037DEA4 A0 6D 9F 88 */ lhz r3, lbl_805A8B48@sda21(r13)
/* 80380F48 0037DEA8 28 03 00 01 */ cmplwi r3, 1
/* 80380F4C 0037DEAC 4C 81 00 20 */ blelr
/* 80380F50 0037DEB0 3C 60 80 00 */ lis r3, 0x800000CC@ha
/* 80380F54 0037DEB4 80 03 00 CC */ lwz r0, 0x800000CC@l(r3)
/* 80380F58 0037DEB8 2C 00 00 00 */ cmpwi r0, 0
/* 80380F5C 0037DEBC 41 82 00 0C */ beq lbl_80380F68
/* 80380F60 0037DEC0 41 80 00 2C */ blt lbl_80380F8C
/* 80380F64 0037DEC4 48 00 00 28 */ b lbl_80380F8C
lbl_80380F68:
/* 80380F68 0037DEC8 3C 60 CC 00 */ lis r3, 0xCC00206E@ha
/* 80380F6C 0037DECC A0 03 20 6E */ lhz r0, 0xCC00206E@l(r3)
/* 80380F70 0037DED0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80380F74 0037DED4 41 82 00 0C */ beq lbl_80380F80
/* 80380F78 0037DED8 38 00 00 01 */ li r0, 1
/* 80380F7C 0037DEDC 48 00 00 08 */ b lbl_80380F84
lbl_80380F80:
/* 80380F80 0037DEE0 38 00 00 00 */ li r0, 0
lbl_80380F84:
/* 80380F84 0037DEE4 B0 0D 9F 88 */ sth r0, lbl_805A8B48@sda21(r13)
/* 80380F88 0037DEE8 48 00 00 0C */ b lbl_80380F94
lbl_80380F8C:
/* 80380F8C 0037DEEC 38 00 00 00 */ li r0, 0
/* 80380F90 0037DEF0 B0 0D 9F 88 */ sth r0, lbl_805A8B48@sda21(r13)
lbl_80380F94:
/* 80380F94 0037DEF4 A0 6D 9F 88 */ lhz r3, lbl_805A8B48@sda21(r13)
/* 80380F98 0037DEF8 4E 80 00 20 */ blr
.global sub_80380f9c
sub_80380f9c:
/* 80380F9C 0037DEFC 7C 08 02 A6 */ mflr r0
/* 80380FA0 0037DF00 90 01 00 04 */ stw r0, 4(r1)
/* 80380FA4 0037DF04 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80380FA8 0037DF08 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80380FAC 0037DF0C 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80380FB0 0037DF10 3B C5 00 00 */ addi r30, r5, 0
/* 80380FB4 0037DF14 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80380FB8 0037DF18 3B A4 00 00 */ addi r29, r4, 0
/* 80380FBC 0037DF1C 93 81 00 18 */ stw r28, 0x18(r1)
/* 80380FC0 0037DF20 3B 83 00 00 */ addi r28, r3, 0
/* 80380FC4 0037DF24 48 00 00 3C */ b lbl_80381000
lbl_80380FC8:
/* 80380FC8 0037DF28 2C 1D 01 00 */ cmpwi r29, 0x100
/* 80380FCC 0037DF2C 41 81 00 0C */ bgt lbl_80380FD8
/* 80380FD0 0037DF30 7F BF EB 78 */ mr r31, r29
/* 80380FD4 0037DF34 48 00 00 08 */ b lbl_80380FDC
lbl_80380FD8:
/* 80380FD8 0037DF38 3B E0 01 00 */ li r31, 0x100
lbl_80380FDC:
/* 80380FDC 0037DF3C 7F BF E8 50 */ subf r29, r31, r29
lbl_80380FE0:
/* 80380FE0 0037DF40 38 7C 00 00 */ addi r3, r28, 0
/* 80380FE4 0037DF44 38 9F 00 00 */ addi r4, r31, 0
/* 80380FE8 0037DF48 38 BE 00 00 */ addi r5, r30, 0
/* 80380FEC 0037DF4C 48 00 2F 01 */ bl sub_80383eec
/* 80380FF0 0037DF50 2C 03 00 00 */ cmpwi r3, 0
/* 80380FF4 0037DF54 41 82 FF EC */ beq lbl_80380FE0
/* 80380FF8 0037DF58 7F DE FA 14 */ add r30, r30, r31
/* 80380FFC 0037DF5C 7F 9C FA 14 */ add r28, r28, r31
lbl_80381000:
/* 80381000 0037DF60 2C 1D 00 00 */ cmpwi r29, 0
/* 80381004 0037DF64 41 81 FF C4 */ bgt lbl_80380FC8
/* 80381008 0037DF68 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8038100C 0037DF6C 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80381010 0037DF70 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80381014 0037DF74 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80381018 0037DF78 83 81 00 18 */ lwz r28, 0x18(r1)
/* 8038101C 0037DF7C 38 21 00 28 */ addi r1, r1, 0x28
/* 80381020 0037DF80 7C 08 03 A6 */ mtlr r0
/* 80381024 0037DF84 4E 80 00 20 */ blr
.global sub_80381028
sub_80381028:
/* 80381028 0037DF88 7C 08 02 A6 */ mflr r0
/* 8038102C 0037DF8C 90 01 00 04 */ stw r0, 4(r1)
/* 80381030 0037DF90 38 00 00 00 */ li r0, 0
/* 80381034 0037DF94 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80381038 0037DF98 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8038103C 0037DF9C 93 C1 00 38 */ stw r30, 0x38(r1)
/* 80381040 0037DFA0 3B C4 00 00 */ addi r30, r4, 0
/* 80381044 0037DFA4 93 A1 00 34 */ stw r29, 0x34(r1)
/* 80381048 0037DFA8 3B A3 00 00 */ addi r29, r3, 0
/* 8038104C 0037DFAC 90 0D AD 04 */ stw r0, lbl_805A98C4@sda21(r13)
/* 80381050 0037DFB0 4B FF FE F5 */ bl OSGetFontEncode
/* 80381054 0037DFB4 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 80381058 0037DFB8 28 00 00 01 */ cmplwi r0, 1
/* 8038105C 0037DFBC 40 82 00 20 */ bne lbl_8038107C
/* 80381060 0037DFC0 3C 80 00 05 */ lis r4, 0x0004D000@ha
/* 80381064 0037DFC4 3C A0 00 1B */ lis r5, 0x001AFF00@ha
/* 80381068 0037DFC8 38 7E 00 00 */ addi r3, r30, 0
/* 8038106C 0037DFCC 38 84 D0 00 */ addi r4, r4, 0x0004D000@l
/* 80381070 0037DFD0 38 A5 FF 00 */ addi r5, r5, 0x001AFF00@l
/* 80381074 0037DFD4 4B FF FF 29 */ bl sub_80380f9c
/* 80381078 0037DFD8 48 00 00 18 */ b lbl_80381090
lbl_8038107C:
/* 8038107C 0037DFDC 3C 80 00 20 */ lis r4, 0x001FCF00@ha
/* 80381080 0037DFE0 38 7E 00 00 */ addi r3, r30, 0
/* 80381084 0037DFE4 38 A4 CF 00 */ addi r5, r4, 0x001FCF00@l
/* 80381088 0037DFE8 38 80 30 00 */ li r4, 0x3000
/* 8038108C 0037DFEC 4B FF FF 11 */ bl sub_80380f9c
lbl_80381090:
/* 80381090 0037DFF0 88 1E 00 00 */ lbz r0, 0(r30)
/* 80381094 0037DFF4 28 00 00 59 */ cmplwi r0, 0x59
/* 80381098 0037DFF8 40 82 00 24 */ bne lbl_803810BC
/* 8038109C 0037DFFC 88 1E 00 01 */ lbz r0, 1(r30)
/* 803810A0 0037E000 28 00 00 61 */ cmplwi r0, 0x61
/* 803810A4 0037E004 40 82 00 18 */ bne lbl_803810BC
/* 803810A8 0037E008 88 1E 00 02 */ lbz r0, 2(r30)
/* 803810AC 0037E00C 28 00 00 79 */ cmplwi r0, 0x79
/* 803810B0 0037E010 40 82 00 0C */ bne lbl_803810BC
/* 803810B4 0037E014 83 FE 00 04 */ lwz r31, 4(r30)
/* 803810B8 0037E018 48 00 00 08 */ b lbl_803810C0
lbl_803810BC:
/* 803810BC 0037E01C 3B E0 00 00 */ li r31, 0
lbl_803810C0:
/* 803810C0 0037E020 28 1F 00 00 */ cmplwi r31, 0
/* 803810C4 0037E024 41 82 02 78 */ beq lbl_8038133C
/* 803810C8 0037E028 38 7E 00 00 */ addi r3, r30, 0
/* 803810CC 0037E02C 38 9D 00 00 */ addi r4, r29, 0
/* 803810D0 0037E030 4B FF FD 01 */ bl sub_80380dd0
/* 803810D4 0037E034 93 AD AD 00 */ stw r29, lbl_805A98C0@sda21(r13)
/* 803810D8 0037E038 A0 8D 9F 88 */ lhz r4, lbl_805A8B48@sda21(r13)
/* 803810DC 0037E03C A0 1D 00 22 */ lhz r0, 0x22(r29)
/* 803810E0 0037E040 28 04 00 01 */ cmplwi r4, 1
/* 803810E4 0037E044 7C 1D 02 14 */ add r0, r29, r0
/* 803810E8 0037E048 90 0D AD 08 */ stw r0, lbl_805A98C8@sda21(r13)
/* 803810EC 0037E04C A0 7D 00 1A */ lhz r3, 0x1a(r29)
/* 803810F0 0037E050 A0 1D 00 1C */ lhz r0, 0x1c(r29)
/* 803810F4 0037E054 7C 03 01 D6 */ mullw r0, r3, r0
/* 803810F8 0037E058 90 0D AD 0C */ stw r0, lbl_805A98CC@sda21(r13)
/* 803810FC 0037E05C 41 81 00 08 */ bgt lbl_80381104
/* 80381100 0037E060 48 00 00 4C */ b lbl_8038114C
lbl_80381104:
/* 80381104 0037E064 3C 60 80 00 */ lis r3, 0x800000CC@ha
/* 80381108 0037E068 80 03 00 CC */ lwz r0, 0x800000CC@l(r3)
/* 8038110C 0037E06C 2C 00 00 00 */ cmpwi r0, 0
/* 80381110 0037E070 41 82 00 0C */ beq lbl_8038111C
/* 80381114 0037E074 41 80 00 2C */ blt lbl_80381140
/* 80381118 0037E078 48 00 00 28 */ b lbl_80381140
lbl_8038111C:
/* 8038111C 0037E07C 3C 60 CC 00 */ lis r3, 0xCC00206E@ha
/* 80381120 0037E080 A0 03 20 6E */ lhz r0, 0xCC00206E@l(r3)
/* 80381124 0037E084 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80381128 0037E088 41 82 00 0C */ beq lbl_80381134
/* 8038112C 0037E08C 38 00 00 01 */ li r0, 1
/* 80381130 0037E090 48 00 00 08 */ b lbl_80381138
lbl_80381134:
/* 80381134 0037E094 38 00 00 00 */ li r0, 0
lbl_80381138:
/* 80381138 0037E098 B0 0D 9F 88 */ sth r0, lbl_805A8B48@sda21(r13)
/* 8038113C 0037E09C 48 00 00 0C */ b lbl_80381148
lbl_80381140:
/* 80381140 0037E0A0 38 00 00 00 */ li r0, 0
/* 80381144 0037E0A4 B0 0D 9F 88 */ sth r0, lbl_805A8B48@sda21(r13)
lbl_80381148:
/* 80381148 0037E0A8 A0 8D 9F 88 */ lhz r4, lbl_805A8B48@sda21(r13)
lbl_8038114C:
/* 8038114C 0037E0AC 54 80 04 3E */ clrlwi r0, r4, 0x10
/* 80381150 0037E0B0 28 00 00 01 */ cmplwi r0, 1
/* 80381154 0037E0B4 40 82 01 E8 */ bne lbl_8038133C
/* 80381158 0037E0B8 80 82 CF 38 */ lwz r4, lbl_805AEC58@sda21(r2)
/* 8038115C 0037E0BC 38 60 00 54 */ li r3, 0x54
/* 80381160 0037E0C0 80 02 CF 3C */ lwz r0, lbl_805AEC5C@sda21(r2)
/* 80381164 0037E0C4 90 81 00 1C */ stw r4, 0x1c(r1)
/* 80381168 0037E0C8 90 01 00 20 */ stw r0, 0x20(r1)
/* 8038116C 0037E0CC 4B FF FA C9 */ bl sub_80380c34
/* 80381170 0037E0D0 80 AD AD 0C */ lwz r5, lbl_805A98CC@sda21(r13)
/* 80381174 0037E0D4 81 8D AD 00 */ lwz r12, lbl_805A98C0@sda21(r13)
/* 80381178 0037E0D8 7D 43 2B D6 */ divw r10, r3, r5
/* 8038117C 0037E0DC A0 C1 00 1C */ lhz r6, 0x1c(r1)
/* 80381180 0037E0E0 A0 0C 00 1E */ lhz r0, 0x1e(r12)
/* 80381184 0037E0E4 80 8C 00 14 */ lwz r4, 0x14(r12)
/* 80381188 0037E0E8 81 6C 00 24 */ lwz r11, 0x24(r12)
/* 8038118C 0037E0EC 7D 0A 29 D6 */ mullw r8, r10, r5
/* 80381190 0037E0F0 A1 2C 00 1A */ lhz r9, 0x1a(r12)
/* 80381194 0037E0F4 A0 AC 00 12 */ lhz r5, 0x12(r12)
/* 80381198 0037E0F8 A0 EC 00 10 */ lhz r7, 0x10(r12)
/* 8038119C 0037E0FC 7F C8 18 50 */ subf r30, r8, r3
/* 803811A0 0037E100 7D 1E 4B D6 */ divw r8, r30, r9
/* 803811A4 0037E104 7C 68 49 D6 */ mullw r3, r8, r9
/* 803811A8 0037E108 7C A8 29 D6 */ mullw r5, r8, r5
/* 803811AC 0037E10C 7C 00 1E 70 */ srawi r0, r0, 3
/* 803811B0 0037E110 7C 63 F0 50 */ subf r3, r3, r30
/* 803811B4 0037E114 7C 00 01 94 */ addze r0, r0
/* 803811B8 0037E118 54 00 28 34 */ slwi r0, r0, 5
/* 803811BC 0037E11C 7C 09 0E 70 */ srawi r9, r0, 1
/* 803811C0 0037E120 7D 4A 21 D6 */ mullw r10, r10, r4
/* 803811C4 0037E124 7C 63 39 D6 */ mullw r3, r3, r7
/* 803811C8 0037E128 7D 29 01 94 */ addze r9, r9
/* 803811CC 0037E12C 38 05 00 04 */ addi r0, r5, 4
/* 803811D0 0037E130 7C 04 1E 70 */ srawi r4, r0, 3
/* 803811D4 0037E134 7C 84 01 94 */ addze r4, r4
/* 803811D8 0037E138 7C 68 1E 70 */ srawi r8, r3, 3
/* 803811DC 0037E13C 7D 08 01 94 */ addze r8, r8
/* 803811E0 0037E140 7C 07 1E 70 */ srawi r7, r0, 3
/* 803811E4 0037E144 7C E7 01 94 */ addze r7, r7
/* 803811E8 0037E148 54 E7 18 38 */ slwi r7, r7, 3
/* 803811EC 0037E14C 7C E7 00 10 */ subfc r7, r7, r0
/* 803811F0 0037E150 7C 60 1E 70 */ srawi r0, r3, 3
/* 803811F4 0037E154 7C 00 01 94 */ addze r0, r0
/* 803811F8 0037E158 54 00 18 38 */ slwi r0, r0, 3
/* 803811FC 0037E15C 7C 00 18 10 */ subfc r0, r0, r3
/* 80381200 0037E160 7C 03 16 70 */ srawi r3, r0, 2
/* 80381204 0037E164 7C 09 21 D6 */ mullw r0, r9, r4
/* 80381208 0037E168 7C 8C 5A 14 */ add r4, r12, r11
/* 8038120C 0037E16C 55 49 F8 7E */ srwi r9, r10, 1
/* 80381210 0037E170 7C 84 4A 14 */ add r4, r4, r9
/* 80381214 0037E174 7D 24 02 14 */ add r9, r4, r0
/* 80381218 0037E178 55 00 20 36 */ slwi r0, r8, 4
/* 8038121C 0037E17C 7D 29 02 14 */ add r9, r9, r0
/* 80381220 0037E180 54 E7 08 3C */ slwi r7, r7, 1
/* 80381224 0037E184 7D 29 3A 14 */ add r9, r9, r7
/* 80381228 0037E188 7C 63 01 94 */ addze r3, r3
/* 8038122C 0037E18C 7D 29 1A 14 */ add r9, r9, r3
/* 80381230 0037E190 B0 C9 00 00 */ sth r6, 0(r9)
/* 80381234 0037E194 39 45 00 05 */ addi r10, r5, 5
/* 80381238 0037E198 39 25 00 06 */ addi r9, r5, 6
/* 8038123C 0037E19C 80 ED AD 00 */ lwz r7, lbl_805A98C0@sda21(r13)
/* 80381240 0037E1A0 38 C5 00 07 */ addi r6, r5, 7
/* 80381244 0037E1A4 A0 A1 00 1E */ lhz r5, 0x1e(r1)
/* 80381248 0037E1A8 A0 E7 00 1E */ lhz r7, 0x1e(r7)
/* 8038124C 0037E1AC 7C E7 1E 70 */ srawi r7, r7, 3
/* 80381250 0037E1B0 7C E7 01 94 */ addze r7, r7
/* 80381254 0037E1B4 54 E7 28 34 */ slwi r7, r7, 5
/* 80381258 0037E1B8 7C E8 0E 70 */ srawi r8, r7, 1
/* 8038125C 0037E1BC 7D 08 01 94 */ addze r8, r8
/* 80381260 0037E1C0 7D 47 1E 70 */ srawi r7, r10, 3
/* 80381264 0037E1C4 7C E7 01 94 */ addze r7, r7
/* 80381268 0037E1C8 7D 08 39 D6 */ mullw r8, r8, r7
/* 8038126C 0037E1CC 7D 47 1E 70 */ srawi r7, r10, 3
/* 80381270 0037E1D0 7C E7 01 94 */ addze r7, r7
/* 80381274 0037E1D4 54 E7 18 38 */ slwi r7, r7, 3
/* 80381278 0037E1D8 7D 04 42 14 */ add r8, r4, r8
/* 8038127C 0037E1DC 7C E7 50 10 */ subfc r7, r7, r10
/* 80381280 0037E1E0 7D 08 02 14 */ add r8, r8, r0
/* 80381284 0037E1E4 54 E7 08 3C */ slwi r7, r7, 1
/* 80381288 0037E1E8 7D 08 3A 14 */ add r8, r8, r7
/* 8038128C 0037E1EC 7D 08 1A 14 */ add r8, r8, r3
/* 80381290 0037E1F0 B0 A8 00 00 */ sth r5, 0(r8)
/* 80381294 0037E1F4 80 ED AD 00 */ lwz r7, lbl_805A98C0@sda21(r13)
/* 80381298 0037E1F8 A0 A1 00 20 */ lhz r5, 0x20(r1)
/* 8038129C 0037E1FC A0 E7 00 1E */ lhz r7, 0x1e(r7)
/* 803812A0 0037E200 7C E7 1E 70 */ srawi r7, r7, 3
/* 803812A4 0037E204 7C E7 01 94 */ addze r7, r7
/* 803812A8 0037E208 54 E7 28 34 */ slwi r7, r7, 5
/* 803812AC 0037E20C 7C E8 0E 70 */ srawi r8, r7, 1
/* 803812B0 0037E210 7D 08 01 94 */ addze r8, r8
/* 803812B4 0037E214 7D 27 1E 70 */ srawi r7, r9, 3
/* 803812B8 0037E218 7C E7 01 94 */ addze r7, r7
/* 803812BC 0037E21C 7D 08 39 D6 */ mullw r8, r8, r7
/* 803812C0 0037E220 7D 27 1E 70 */ srawi r7, r9, 3
/* 803812C4 0037E224 7C E7 01 94 */ addze r7, r7
/* 803812C8 0037E228 54 E7 18 38 */ slwi r7, r7, 3
/* 803812CC 0037E22C 7D 04 42 14 */ add r8, r4, r8
/* 803812D0 0037E230 7C E7 48 10 */ subfc r7, r7, r9
/* 803812D4 0037E234 7D 08 02 14 */ add r8, r8, r0
/* 803812D8 0037E238 54 E7 08 3C */ slwi r7, r7, 1
/* 803812DC 0037E23C 7D 08 3A 14 */ add r8, r8, r7
/* 803812E0 0037E240 7D 08 1A 14 */ add r8, r8, r3
/* 803812E4 0037E244 B0 A8 00 00 */ sth r5, 0(r8)
/* 803812E8 0037E248 80 AD AD 00 */ lwz r5, lbl_805A98C0@sda21(r13)
/* 803812EC 0037E24C A0 A5 00 1E */ lhz r5, 0x1e(r5)
/* 803812F0 0037E250 7C A5 1E 70 */ srawi r5, r5, 3
/* 803812F4 0037E254 7C A5 01 94 */ addze r5, r5
/* 803812F8 0037E258 54 A5 28 34 */ slwi r5, r5, 5
/* 803812FC 0037E25C 7C A7 0E 70 */ srawi r7, r5, 1
/* 80381300 0037E260 7C E7 01 94 */ addze r7, r7
/* 80381304 0037E264 7C C5 1E 70 */ srawi r5, r6, 3
/* 80381308 0037E268 7C A5 01 94 */ addze r5, r5
/* 8038130C 0037E26C 7C A7 29 D6 */ mullw r5, r7, r5
/* 80381310 0037E270 7C E4 2A 14 */ add r7, r4, r5
/* 80381314 0037E274 7C C5 1E 70 */ srawi r5, r6, 3
/* 80381318 0037E278 A0 81 00 22 */ lhz r4, 0x22(r1)
/* 8038131C 0037E27C 7C A5 01 94 */ addze r5, r5
/* 80381320 0037E280 54 A5 18 38 */ slwi r5, r5, 3
/* 80381324 0037E284 7C A5 30 10 */ subfc r5, r5, r6
/* 80381328 0037E288 7C E7 02 14 */ add r7, r7, r0
/* 8038132C 0037E28C 54 A0 08 3C */ slwi r0, r5, 1
/* 80381330 0037E290 7C E7 02 14 */ add r7, r7, r0
/* 80381334 0037E294 7C E7 1A 14 */ add r7, r7, r3
/* 80381338 0037E298 B0 87 00 00 */ sth r4, 0(r7)
lbl_8038133C:
/* 8038133C 0037E29C 7F E3 FB 78 */ mr r3, r31
/* 80381340 0037E2A0 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80381344 0037E2A4 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 80381348 0037E2A8 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 8038134C 0037E2AC 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 80381350 0037E2B0 38 21 00 40 */ addi r1, r1, 0x40
/* 80381354 0037E2B4 7C 08 03 A6 */ mtlr r0
/* 80381358 0037E2B8 4E 80 00 20 */ blr
.global sub_8038135c
sub_8038135c:
/* 8038135C 0037E2BC 7C 08 02 A6 */ mflr r0
/* 80381360 0037E2C0 90 01 00 04 */ stw r0, 4(r1)
/* 80381364 0037E2C4 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 80381368 0037E2C8 BE 21 00 24 */ stmw r17, 0x24(r1)
/* 8038136C 0037E2CC 7C 7C 1B 78 */ mr r28, r3
/* 80381370 0037E2D0 3B A4 00 00 */ addi r29, r4, 0
/* 80381374 0037E2D4 3B C5 00 00 */ addi r30, r5, 0
/* 80381378 0037E2D8 3B 06 00 00 */ addi r24, r6, 0
/* 8038137C 0037E2DC 3B E7 00 00 */ addi r31, r7, 0
/* 80381380 0037E2E0 88 03 00 00 */ lbz r0, 0(r3)
/* 80381384 0037E2E4 28 00 00 00 */ cmplwi r0, 0
/* 80381388 0037E2E8 7C 03 03 78 */ mr r3, r0
/* 8038138C 0037E2EC 40 82 00 0C */ bne lbl_80381398
/* 80381390 0037E2F0 7F 83 E3 78 */ mr r3, r28
/* 80381394 0037E2F4 48 00 02 B8 */ b lbl_8038164C
lbl_80381398:
/* 80381398 0037E2F8 A0 0D 9F 88 */ lhz r0, lbl_805A8B48@sda21(r13)
/* 8038139C 0037E2FC 3B 9C 00 01 */ addi r28, r28, 1
/* 803813A0 0037E300 28 00 00 01 */ cmplwi r0, 1
/* 803813A4 0037E304 41 81 00 08 */ bgt lbl_803813AC
/* 803813A8 0037E308 48 00 00 4C */ b lbl_803813F4
lbl_803813AC:
/* 803813AC 0037E30C 3C 80 80 00 */ lis r4, 0x800000CC@ha
/* 803813B0 0037E310 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
/* 803813B4 0037E314 2C 00 00 00 */ cmpwi r0, 0
/* 803813B8 0037E318 41 82 00 0C */ beq lbl_803813C4
/* 803813BC 0037E31C 41 80 00 2C */ blt lbl_803813E8
/* 803813C0 0037E320 48 00 00 28 */ b lbl_803813E8
lbl_803813C4:
/* 803813C4 0037E324 3C 80 CC 00 */ lis r4, 0xCC00206E@ha
/* 803813C8 0037E328 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4)
/* 803813CC 0037E32C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 803813D0 0037E330 41 82 00 0C */ beq lbl_803813DC
/* 803813D4 0037E334 38 00 00 01 */ li r0, 1
/* 803813D8 0037E338 48 00 00 08 */ b lbl_803813E0
lbl_803813DC:
/* 803813DC 0037E33C 38 00 00 00 */ li r0, 0
lbl_803813E0:
/* 803813E0 0037E340 B0 0D 9F 88 */ sth r0, lbl_805A8B48@sda21(r13)
/* 803813E4 0037E344 48 00 00 0C */ b lbl_803813F0
lbl_803813E8:
/* 803813E8 0037E348 38 00 00 00 */ li r0, 0
/* 803813EC 0037E34C B0 0D 9F 88 */ sth r0, lbl_805A8B48@sda21(r13)
lbl_803813F0:
/* 803813F0 0037E350 A0 0D 9F 88 */ lhz r0, lbl_805A8B48@sda21(r13)
lbl_803813F4:
/* 803813F4 0037E354 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 803813F8 0037E358 28 00 00 01 */ cmplwi r0, 1
/* 803813FC 0037E35C 40 82 00 74 */ bne lbl_80381470
/* 80381400 0037E360 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 80381404 0037E364 28 00 00 81 */ cmplwi r0, 0x81
/* 80381408 0037E368 38 80 00 01 */ li r4, 1
/* 8038140C 0037E36C 38 A0 00 00 */ li r5, 0
/* 80381410 0037E370 41 80 00 10 */ blt lbl_80381420
/* 80381414 0037E374 28 00 00 9F */ cmplwi r0, 0x9f
/* 80381418 0037E378 41 81 00 08 */ bgt lbl_80381420
/* 8038141C 0037E37C 7C 85 23 78 */ mr r5, r4
lbl_80381420:
/* 80381420 0037E380 2C 05 00 00 */ cmpwi r5, 0
/* 80381424 0037E384 40 82 00 2C */ bne lbl_80381450
/* 80381428 0037E388 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8038142C 0037E38C 28 00 00 E0 */ cmplwi r0, 0xe0
/* 80381430 0037E390 38 A0 00 00 */ li r5, 0
/* 80381434 0037E394 41 80 00 10 */ blt lbl_80381444
/* 80381438 0037E398 28 00 00 FC */ cmplwi r0, 0xfc
/* 8038143C 0037E39C 41 81 00 08 */ bgt lbl_80381444
/* 80381440 0037E3A0 38 A0 00 01 */ li r5, 1
lbl_80381444:
/* 80381444 0037E3A4 2C 05 00 00 */ cmpwi r5, 0
/* 80381448 0037E3A8 40 82 00 08 */ bne lbl_80381450
/* 8038144C 0037E3AC 38 80 00 00 */ li r4, 0
lbl_80381450:
/* 80381450 0037E3B0 2C 04 00 00 */ cmpwi r4, 0
/* 80381454 0037E3B4 41 82 00 1C */ beq lbl_80381470
/* 80381458 0037E3B8 88 9C 00 00 */ lbz r4, 0(r28)
/* 8038145C 0037E3BC 7C 80 07 75 */ extsb. r0, r4
/* 80381460 0037E3C0 41 82 00 10 */ beq lbl_80381470
/* 80381464 0037E3C4 54 60 42 2E */ rlwinm r0, r3, 8, 8, 0x17
/* 80381468 0037E3C8 7C 03 23 78 */ or r3, r0, r4
/* 8038146C 0037E3CC 3B 9C 00 01 */ addi r28, r28, 1
lbl_80381470:
/* 80381470 0037E3D0 80 8D AD 00 */ lwz r4, lbl_805A98C0@sda21(r13)
/* 80381474 0037E3D4 3B 24 00 2C */ addi r25, r4, 0x2c
/* 80381478 0037E3D8 4B FF F7 BD */ bl sub_80380c34
/* 8038147C 0037E3DC 80 CD AD 0C */ lwz r6, lbl_805A98CC@sda21(r13)
/* 80381480 0037E3E0 57 00 10 3A */ slwi r0, r24, 2
/* 80381484 0037E3E4 81 8D AD 00 */ lwz r12, lbl_805A98C0@sda21(r13)
/* 80381488 0037E3E8 7C 00 1E 70 */ srawi r0, r0, 3
/* 8038148C 0037E3EC 7D 63 33 D6 */ divw r11, r3, r6
/* 80381490 0037E3F0 80 8C 00 14 */ lwz r4, 0x14(r12)
/* 80381494 0037E3F4 80 AC 00 24 */ lwz r5, 0x24(r12)
/* 80381498 0037E3F8 A1 2C 00 1A */ lhz r9, 0x1a(r12)
/* 8038149C 0037E3FC A0 EC 00 12 */ lhz r7, 0x12(r12)
/* 803814A0 0037E400 7D 0B 31 D6 */ mullw r8, r11, r6
/* 803814A4 0037E404 A0 CC 00 10 */ lhz r6, 0x10(r12)
/* 803814A8 0037E408 7E 28 18 50 */ subf r17, r8, r3
/* 803814AC 0037E40C 7D 51 4B D6 */ divw r10, r17, r9
/* 803814B0 0037E410 7D 0A 49 D6 */ mullw r8, r10, r9
/* 803814B4 0037E414 7C 8B 21 D6 */ mullw r4, r11, r4
/* 803814B8 0037E418 7D 68 88 50 */ subf r11, r8, r17
/* 803814BC 0037E41C 7C 00 01 94 */ addze r0, r0
/* 803814C0 0037E420 7D 4A 39 D6 */ mullw r10, r10, r7
/* 803814C4 0037E424 7D 6B 31 D6 */ mullw r11, r11, r6
/* 803814C8 0037E428 7F 0C 2A 14 */ add r24, r12, r5
/* 803814CC 0037E42C 54 84 F8 7E */ srwi r4, r4, 1
/* 803814D0 0037E430 7F 18 22 14 */ add r24, r24, r4
/* 803814D4 0037E434 54 07 28 34 */ slwi r7, r0, 5
/* 803814D8 0037E438 3B 60 00 00 */ li r27, 0
/* 803814DC 0037E43C 48 00 01 48 */ b lbl_80381624
lbl_803814E0:
/* 803814E0 0037E440 7C 8A DA 14 */ add r4, r10, r27
/* 803814E4 0037E444 7C 80 1E 70 */ srawi r0, r4, 3
/* 803814E8 0037E448 7C 00 01 94 */ addze r0, r0
/* 803814EC 0037E44C 7C 88 1E 70 */ srawi r8, r4, 3
/* 803814F0 0037E450 7D 08 01 94 */ addze r8, r8
/* 803814F4 0037E454 55 08 18 38 */ slwi r8, r8, 3
/* 803814F8 0037E458 7D 08 20 10 */ subfc r8, r8, r4
/* 803814FC 0037E45C 7F 64 1E 70 */ srawi r4, r27, 3
/* 80381500 0037E460 7C 84 01 94 */ addze r4, r4
/* 80381504 0037E464 7C A4 39 D6 */ mullw r5, r4, r7
/* 80381508 0037E468 7F 66 1E 70 */ srawi r6, r27, 3
/* 8038150C 0037E46C 7C C6 01 94 */ addze r6, r6
/* 80381510 0037E470 54 C6 18 38 */ slwi r6, r6, 3
/* 80381514 0037E474 7C C6 D8 10 */ subfc r6, r6, r27
/* 80381518 0037E478 55 04 08 3C */ slwi r4, r8, 1
/* 8038151C 0037E47C 7C BD 2A 14 */ add r5, r29, r5
/* 80381520 0037E480 54 C6 10 3A */ slwi r6, r6, 2
/* 80381524 0037E484 39 80 00 00 */ li r12, 0
/* 80381528 0037E488 48 00 00 E8 */ b lbl_80381610
lbl_8038152C:
/* 8038152C 0037E48C A1 29 00 1E */ lhz r9, 0x1e(r9)
/* 80381530 0037E490 7E AB 62 14 */ add r21, r11, r12
/* 80381534 0037E494 7D 1E 62 14 */ add r8, r30, r12
/* 80381538 0037E498 7D 29 1E 70 */ srawi r9, r9, 3
/* 8038153C 0037E49C 7D 29 01 94 */ addze r9, r9
/* 80381540 0037E4A0 55 29 28 34 */ slwi r9, r9, 5
/* 80381544 0037E4A4 7D 32 0E 70 */ srawi r18, r9, 1
/* 80381548 0037E4A8 7E 52 01 94 */ addze r18, r18
/* 8038154C 0037E4AC 7E B3 1E 70 */ srawi r19, r21, 3
/* 80381550 0037E4B0 7E 73 01 94 */ addze r19, r19
/* 80381554 0037E4B4 7E A9 1E 70 */ srawi r9, r21, 3
/* 80381558 0037E4B8 7D 29 01 94 */ addze r9, r9
/* 8038155C 0037E4BC 55 29 18 38 */ slwi r9, r9, 3
/* 80381560 0037E4C0 7D 29 A8 10 */ subfc r9, r9, r21
/* 80381564 0037E4C4 7D 34 16 70 */ srawi r20, r9, 2
/* 80381568 0037E4C8 7E 94 01 94 */ addze r20, r20
/* 8038156C 0037E4CC 7E BA 16 70 */ srawi r26, r21, 2
/* 80381570 0037E4D0 7F 5A 01 94 */ addze r26, r26
/* 80381574 0037E4D4 57 5A 10 3A */ slwi r26, r26, 2
/* 80381578 0037E4D8 7F 5A A8 10 */ subfc r26, r26, r21
/* 8038157C 0037E4DC 7D 15 1E 70 */ srawi r21, r8, 3
/* 80381580 0037E4E0 7E B5 01 94 */ addze r21, r21
/* 80381584 0037E4E4 7D 09 1E 70 */ srawi r9, r8, 3
/* 80381588 0037E4E8 7D 29 01 94 */ addze r9, r9
/* 8038158C 0037E4EC 55 29 18 38 */ slwi r9, r9, 3
/* 80381590 0037E4F0 7E 52 01 D6 */ mullw r18, r18, r0
/* 80381594 0037E4F4 7D 29 40 10 */ subfc r9, r9, r8
/* 80381598 0037E4F8 7D 36 0E 70 */ srawi r22, r9, 1
/* 8038159C 0037E4FC 7E D6 01 94 */ addze r22, r22
/* 803815A0 0037E500 7D 17 0E 70 */ srawi r23, r8, 1
/* 803815A4 0037E504 7E F7 01 94 */ addze r23, r23
/* 803815A8 0037E508 56 A9 28 34 */ slwi r9, r21, 5
/* 803815AC 0037E50C 56 F7 08 3C */ slwi r23, r23, 1
/* 803815B0 0037E510 7D 25 4A 14 */ add r9, r5, r9
/* 803815B4 0037E514 7D 29 32 14 */ add r9, r9, r6
/* 803815B8 0037E518 7E 38 92 14 */ add r17, r24, r18
/* 803815BC 0037E51C 56 75 20 36 */ slwi r21, r19, 4
/* 803815C0 0037E520 7E 31 AA 14 */ add r17, r17, r21
/* 803815C4 0037E524 7E 31 22 14 */ add r17, r17, r4
/* 803815C8 0037E528 7E F7 40 11 */ subfc. r23, r23, r8
/* 803815CC 0037E52C 7E 31 A2 14 */ add r17, r17, r20
/* 803815D0 0037E530 7D 29 B2 14 */ add r9, r9, r22
/* 803815D4 0037E534 41 82 00 0C */ beq lbl_803815E0
/* 803815D8 0037E538 3A 40 00 0F */ li r18, 0xf
/* 803815DC 0037E53C 48 00 00 08 */ b lbl_803815E4
lbl_803815E0:
/* 803815E0 0037E540 3A 40 00 F0 */ li r18, 0xf0
lbl_803815E4:
/* 803815E4 0037E544 57 48 08 3C */ slwi r8, r26, 1
/* 803815E8 0037E548 8B 51 00 00 */ lbz r26, 0(r17)
/* 803815EC 0037E54C 21 08 00 06 */ subfic r8, r8, 6
/* 803815F0 0037E550 8A E9 00 00 */ lbz r23, 0(r9)
/* 803815F4 0037E554 7F 48 46 30 */ sraw r8, r26, r8
/* 803815F8 0037E558 55 08 07 BE */ clrlwi r8, r8, 0x1e
/* 803815FC 0037E55C 7D 19 40 AE */ lbzx r8, r25, r8
/* 80381600 0037E560 39 8C 00 01 */ addi r12, r12, 1
/* 80381604 0037E564 7D 08 90 38 */ and r8, r8, r18
/* 80381608 0037E568 7E E8 43 78 */ or r8, r23, r8
/* 8038160C 0037E56C 99 09 00 00 */ stb r8, 0(r9)
lbl_80381610:
/* 80381610 0037E570 81 2D AD 00 */ lwz r9, lbl_805A98C0@sda21(r13)
/* 80381614 0037E574 A1 09 00 10 */ lhz r8, 0x10(r9)
/* 80381618 0037E578 7C 0C 40 00 */ cmpw r12, r8
/* 8038161C 0037E57C 41 80 FF 10 */ blt lbl_8038152C
/* 80381620 0037E580 3B 7B 00 01 */ addi r27, r27, 1
lbl_80381624:
/* 80381624 0037E584 80 8D AD 00 */ lwz r4, lbl_805A98C0@sda21(r13)
/* 80381628 0037E588 A0 04 00 12 */ lhz r0, 0x12(r4)
/* 8038162C 0037E58C 7C 1B 00 00 */ cmpw r27, r0
/* 80381630 0037E590 41 80 FE B0 */ blt lbl_803814E0
/* 80381634 0037E594 28 1F 00 00 */ cmplwi r31, 0
/* 80381638 0037E598 41 82 00 10 */ beq lbl_80381648
/* 8038163C 0037E59C 80 8D AD 08 */ lwz r4, lbl_805A98C8@sda21(r13)
/* 80381640 0037E5A0 7C 04 18 AE */ lbzx r0, r4, r3
/* 80381644 0037E5A4 90 1F 00 00 */ stw r0, 0(r31)
lbl_80381648:
/* 80381648 0037E5A8 7F 83 E3 78 */ mr r3, r28
lbl_8038164C:
/* 8038164C 0037E5AC BA 21 00 24 */ lmw r17, 0x24(r1)
/* 80381650 0037E5B0 80 01 00 64 */ lwz r0, 0x64(r1)
/* 80381654 0037E5B4 38 21 00 60 */ addi r1, r1, 0x60
/* 80381658 0037E5B8 7C 08 03 A6 */ mtlr r0
/* 8038165C 0037E5BC 4E 80 00 20 */ blr

View File

@ -0,0 +1,662 @@
.include "macros.inc"
.section .text, "ax"
.global OSDisableInterrupts
OSDisableInterrupts:
.global __RAS_OSDisableInterrupts_begin
__RAS_OSDisableInterrupts_begin:
/* 80381660 0037E5C0 7C 60 00 A6 */ mfmsr r3
/* 80381664 0037E5C4 54 64 04 5E */ rlwinm r4, r3, 0, 0x11, 0xf
/* 80381668 0037E5C8 7C 80 01 24 */ mtmsr r4
.global __RAS_OSDisableInterrupts_end
__RAS_OSDisableInterrupts_end:
/* 8038166C 0037E5CC 54 63 8F FE */ rlwinm r3, r3, 0x11, 0x1f, 0x1f
/* 80381670 0037E5D0 4E 80 00 20 */ blr
.global OSEnableInterrupts
OSEnableInterrupts:
/* 80381674 0037E5D4 7C 60 00 A6 */ mfmsr r3
/* 80381678 0037E5D8 60 64 80 00 */ ori r4, r3, 0x8000
/* 8038167C 0037E5DC 7C 80 01 24 */ mtmsr r4
/* 80381680 0037E5E0 54 63 8F FE */ rlwinm r3, r3, 0x11, 0x1f, 0x1f
/* 80381684 0037E5E4 4E 80 00 20 */ blr
.global OSRestoreInterrupts
OSRestoreInterrupts:
/* 80381688 0037E5E8 2C 03 00 00 */ cmpwi r3, 0
/* 8038168C 0037E5EC 7C 80 00 A6 */ mfmsr r4
/* 80381690 0037E5F0 41 82 00 0C */ beq lbl_8038169C
/* 80381694 0037E5F4 60 85 80 00 */ ori r5, r4, 0x8000
/* 80381698 0037E5F8 48 00 00 08 */ b lbl_803816A0
lbl_8038169C:
/* 8038169C 0037E5FC 54 85 04 5E */ rlwinm r5, r4, 0, 0x11, 0xf
lbl_803816A0:
/* 803816A0 0037E600 7C A0 01 24 */ mtmsr r5
/* 803816A4 0037E604 54 83 8F FE */ rlwinm r3, r4, 0x11, 0x1f, 0x1f
/* 803816A8 0037E608 4E 80 00 20 */ blr
.global __OSSetInterruptHandler
__OSSetInterruptHandler:
/* 803816AC 0037E60C 7C 60 07 34 */ extsh r0, r3
/* 803816B0 0037E610 80 6D AD 10 */ lwz r3, lbl_805A98D0@sda21(r13)
/* 803816B4 0037E614 54 00 10 3A */ slwi r0, r0, 2
/* 803816B8 0037E618 7C A3 02 14 */ add r5, r3, r0
/* 803816BC 0037E61C 80 65 00 00 */ lwz r3, 0(r5)
/* 803816C0 0037E620 90 85 00 00 */ stw r4, 0(r5)
/* 803816C4 0037E624 4E 80 00 20 */ blr
.global __OSGetInterruptHandler
__OSGetInterruptHandler:
/* 803816C8 0037E628 7C 60 07 34 */ extsh r0, r3
/* 803816CC 0037E62C 80 6D AD 10 */ lwz r3, lbl_805A98D0@sda21(r13)
/* 803816D0 0037E630 54 00 10 3A */ slwi r0, r0, 2
/* 803816D4 0037E634 7C 63 00 2E */ lwzx r3, r3, r0
/* 803816D8 0037E638 4E 80 00 20 */ blr
.global __OSInterruptInit
__OSInterruptInit:
/* 803816DC 0037E63C 7C 08 02 A6 */ mflr r0
/* 803816E0 0037E640 90 01 00 04 */ stw r0, 4(r1)
/* 803816E4 0037E644 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803816E8 0037E648 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803816EC 0037E64C 3F E0 80 00 */ lis r31, 0x80003040@ha
/* 803816F0 0037E650 38 1F 30 40 */ addi r0, r31, 0x80003040@l
/* 803816F4 0037E654 90 0D AD 10 */ stw r0, lbl_805A98D0@sda21(r13)
/* 803816F8 0037E658 38 80 00 00 */ li r4, 0
/* 803816FC 0037E65C 38 A0 00 80 */ li r5, 0x80
/* 80381700 0037E660 80 6D AD 10 */ lwz r3, lbl_805A98D0@sda21(r13)
/* 80381704 0037E664 4B C8 1C A5 */ bl memset
/* 80381708 0037E668 38 00 00 00 */ li r0, 0
/* 8038170C 0037E66C 90 1F 00 C4 */ stw r0, 0xc4(r31)
/* 80381710 0037E670 3C 60 CC 00 */ lis r3, 0xCC003000@ha
/* 80381714 0037E674 38 83 30 00 */ addi r4, r3, 0xCC003000@l
/* 80381718 0037E678 90 1F 00 C8 */ stw r0, 0xc8(r31)
/* 8038171C 0037E67C 38 00 00 F0 */ li r0, 0xf0
/* 80381720 0037E680 38 60 FF E0 */ li r3, -32
/* 80381724 0037E684 90 04 00 04 */ stw r0, 4(r4)
/* 80381728 0037E688 48 00 03 01 */ bl __OSMaskInterrupts
/* 8038172C 0037E68C 3C 60 80 38 */ lis r3, ExternalInterruptHandler@ha
/* 80381730 0037E690 38 83 1E 7C */ addi r4, r3, ExternalInterruptHandler@l
/* 80381734 0037E694 38 60 00 04 */ li r3, 4
/* 80381738 0037E698 4B FF C7 91 */ bl __OSSetExceptionHandler
/* 8038173C 0037E69C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80381740 0037E6A0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80381744 0037E6A4 38 21 00 10 */ addi r1, r1, 0x10
/* 80381748 0037E6A8 7C 08 03 A6 */ mtlr r0
/* 8038174C 0037E6AC 4E 80 00 20 */ blr
.global SetInterruptMask
SetInterruptMask:
/* 80381750 0037E6B0 7C 60 00 34 */ cntlzw r0, r3
/* 80381754 0037E6B4 2C 00 00 0C */ cmpwi r0, 0xc
/* 80381758 0037E6B8 40 80 00 24 */ bge lbl_8038177C
/* 8038175C 0037E6BC 2C 00 00 08 */ cmpwi r0, 8
/* 80381760 0037E6C0 41 82 00 FC */ beq lbl_8038185C
/* 80381764 0037E6C4 40 80 01 28 */ bge lbl_8038188C
/* 80381768 0037E6C8 2C 00 00 05 */ cmpwi r0, 5
/* 8038176C 0037E6CC 40 80 00 9C */ bge lbl_80381808
/* 80381770 0037E6D0 2C 00 00 00 */ cmpwi r0, 0
/* 80381774 0037E6D4 40 80 00 28 */ bge lbl_8038179C
/* 80381778 0037E6D8 48 00 02 AC */ b lbl_80381A24
lbl_8038177C:
/* 8038177C 0037E6DC 2C 00 00 11 */ cmpwi r0, 0x11
/* 80381780 0037E6E0 40 80 00 10 */ bge lbl_80381790
/* 80381784 0037E6E4 2C 00 00 0F */ cmpwi r0, 0xf
/* 80381788 0037E6E8 40 80 01 A8 */ bge lbl_80381930
/* 8038178C 0037E6EC 48 00 01 50 */ b lbl_803818DC
lbl_80381790:
/* 80381790 0037E6F0 2C 00 00 1B */ cmpwi r0, 0x1b
/* 80381794 0037E6F4 40 80 02 90 */ bge lbl_80381A24
/* 80381798 0037E6F8 48 00 01 D8 */ b lbl_80381970
lbl_8038179C:
/* 8038179C 0037E6FC 54 80 00 00 */ rlwinm r0, r4, 0, 0, 0
/* 803817A0 0037E700 28 00 00 00 */ cmplwi r0, 0
/* 803817A4 0037E704 38 A0 00 00 */ li r5, 0
/* 803817A8 0037E708 40 82 00 08 */ bne lbl_803817B0
/* 803817AC 0037E70C 60 A5 00 01 */ ori r5, r5, 1
lbl_803817B0:
/* 803817B0 0037E710 54 80 00 42 */ rlwinm r0, r4, 0, 1, 1
/* 803817B4 0037E714 28 00 00 00 */ cmplwi r0, 0
/* 803817B8 0037E718 40 82 00 08 */ bne lbl_803817C0
/* 803817BC 0037E71C 60 A5 00 02 */ ori r5, r5, 2
lbl_803817C0:
/* 803817C0 0037E720 54 80 00 84 */ rlwinm r0, r4, 0, 2, 2
/* 803817C4 0037E724 28 00 00 00 */ cmplwi r0, 0
/* 803817C8 0037E728 40 82 00 08 */ bne lbl_803817D0
/* 803817CC 0037E72C 60 A5 00 04 */ ori r5, r5, 4
lbl_803817D0:
/* 803817D0 0037E730 54 80 00 C6 */ rlwinm r0, r4, 0, 3, 3
/* 803817D4 0037E734 28 00 00 00 */ cmplwi r0, 0
/* 803817D8 0037E738 40 82 00 08 */ bne lbl_803817E0
/* 803817DC 0037E73C 60 A5 00 08 */ ori r5, r5, 8
lbl_803817E0:
/* 803817E0 0037E740 54 80 01 08 */ rlwinm r0, r4, 0, 4, 4
/* 803817E4 0037E744 28 00 00 00 */ cmplwi r0, 0
/* 803817E8 0037E748 40 82 00 08 */ bne lbl_803817F0
/* 803817EC 0037E74C 60 A5 00 10 */ ori r5, r5, 0x10
lbl_803817F0:
/* 803817F0 0037E750 3C 80 CC 00 */ lis r4, 0xCC004000@ha
/* 803817F4 0037E754 54 A0 04 3E */ clrlwi r0, r5, 0x10
/* 803817F8 0037E758 38 84 40 00 */ addi r4, r4, 0xCC004000@l
/* 803817FC 0037E75C B0 04 00 1C */ sth r0, 0x1c(r4)
/* 80381800 0037E760 54 63 01 7E */ clrlwi r3, r3, 5
/* 80381804 0037E764 48 00 02 20 */ b lbl_80381A24
lbl_80381808:
/* 80381808 0037E768 3C A0 CC 00 */ lis r5, 0xCC005000@ha
/* 8038180C 0037E76C 38 A5 50 00 */ addi r5, r5, 0xCC005000@l
/* 80381810 0037E770 38 A5 00 0A */ addi r5, r5, 0xa
/* 80381814 0037E774 54 80 01 4A */ rlwinm r0, r4, 0, 5, 5
/* 80381818 0037E778 A0 C5 00 00 */ lhz r6, 0(r5)
/* 8038181C 0037E77C 28 00 00 00 */ cmplwi r0, 0
/* 80381820 0037E780 54 C6 07 6C */ rlwinm r6, r6, 0, 0x1d, 0x16
/* 80381824 0037E784 40 82 00 08 */ bne lbl_8038182C
/* 80381828 0037E788 60 C6 00 10 */ ori r6, r6, 0x10
lbl_8038182C:
/* 8038182C 0037E78C 54 80 01 8C */ rlwinm r0, r4, 0, 6, 6
/* 80381830 0037E790 28 00 00 00 */ cmplwi r0, 0
/* 80381834 0037E794 40 82 00 08 */ bne lbl_8038183C
/* 80381838 0037E798 60 C6 00 40 */ ori r6, r6, 0x40
lbl_8038183C:
/* 8038183C 0037E79C 54 80 01 CE */ rlwinm r0, r4, 0, 7, 7
/* 80381840 0037E7A0 28 00 00 00 */ cmplwi r0, 0
/* 80381844 0037E7A4 40 82 00 08 */ bne lbl_8038184C
/* 80381848 0037E7A8 60 C6 01 00 */ ori r6, r6, 0x100
lbl_8038184C:
/* 8038184C 0037E7AC 54 C0 04 3E */ clrlwi r0, r6, 0x10
/* 80381850 0037E7B0 B0 05 00 00 */ sth r0, 0(r5)
/* 80381854 0037E7B4 54 63 02 08 */ rlwinm r3, r3, 0, 8, 4
/* 80381858 0037E7B8 48 00 01 CC */ b lbl_80381A24
lbl_8038185C:
/* 8038185C 0037E7BC 54 80 02 10 */ rlwinm r0, r4, 0, 8, 8
/* 80381860 0037E7C0 3C 80 CC 00 */ lis r4, 0xCC006C00@ha
/* 80381864 0037E7C4 28 00 00 00 */ cmplwi r0, 0
/* 80381868 0037E7C8 80 A4 6C 00 */ lwz r5, 0xCC006C00@l(r4)
/* 8038186C 0037E7CC 38 00 FF D3 */ li r0, -45
/* 80381870 0037E7D0 7C A5 00 38 */ and r5, r5, r0
/* 80381874 0037E7D4 40 82 00 08 */ bne lbl_8038187C
/* 80381878 0037E7D8 60 A5 00 04 */ ori r5, r5, 4
lbl_8038187C:
/* 8038187C 0037E7DC 3C 80 CC 00 */ lis r4, 0xCC006C00@ha
/* 80381880 0037E7E0 90 A4 6C 00 */ stw r5, 0xCC006C00@l(r4)
/* 80381884 0037E7E4 54 63 02 4E */ rlwinm r3, r3, 0, 9, 7
/* 80381888 0037E7E8 48 00 01 9C */ b lbl_80381A24
lbl_8038188C:
/* 8038188C 0037E7EC 54 80 02 52 */ rlwinm r0, r4, 0, 9, 9
/* 80381890 0037E7F0 3C A0 CC 00 */ lis r5, 0xCC006800@ha
/* 80381894 0037E7F4 28 00 00 00 */ cmplwi r0, 0
/* 80381898 0037E7F8 80 A5 68 00 */ lwz r5, 0xCC006800@l(r5)
/* 8038189C 0037E7FC 38 00 D3 F0 */ li r0, -11280
/* 803818A0 0037E800 7C A5 00 38 */ and r5, r5, r0
/* 803818A4 0037E804 40 82 00 08 */ bne lbl_803818AC
/* 803818A8 0037E808 60 A5 00 01 */ ori r5, r5, 1
lbl_803818AC:
/* 803818AC 0037E80C 54 80 02 94 */ rlwinm r0, r4, 0, 0xa, 0xa
/* 803818B0 0037E810 28 00 00 00 */ cmplwi r0, 0
/* 803818B4 0037E814 40 82 00 08 */ bne lbl_803818BC
/* 803818B8 0037E818 60 A5 00 04 */ ori r5, r5, 4
lbl_803818BC:
/* 803818BC 0037E81C 54 80 02 D6 */ rlwinm r0, r4, 0, 0xb, 0xb
/* 803818C0 0037E820 28 00 00 00 */ cmplwi r0, 0
/* 803818C4 0037E824 40 82 00 08 */ bne lbl_803818CC
/* 803818C8 0037E828 60 A5 04 00 */ ori r5, r5, 0x400
lbl_803818CC:
/* 803818CC 0037E82C 3C 80 CC 00 */ lis r4, 0xCC006800@ha
/* 803818D0 0037E830 90 A4 68 00 */ stw r5, 0xCC006800@l(r4)
/* 803818D4 0037E834 54 63 03 10 */ rlwinm r3, r3, 0, 0xc, 8
/* 803818D8 0037E838 48 00 01 4C */ b lbl_80381A24
lbl_803818DC:
/* 803818DC 0037E83C 3C A0 CC 00 */ lis r5, 0xCC006800@ha
/* 803818E0 0037E840 38 C5 68 00 */ addi r6, r5, 0xCC006800@l
/* 803818E4 0037E844 38 C6 00 14 */ addi r6, r6, 0x14
/* 803818E8 0037E848 54 80 03 18 */ rlwinm r0, r4, 0, 0xc, 0xc
/* 803818EC 0037E84C 80 E6 00 00 */ lwz r7, 0(r6)
/* 803818F0 0037E850 38 A0 F3 F0 */ li r5, -3088
/* 803818F4 0037E854 28 00 00 00 */ cmplwi r0, 0
/* 803818F8 0037E858 7C E7 28 38 */ and r7, r7, r5
/* 803818FC 0037E85C 40 82 00 08 */ bne lbl_80381904
/* 80381900 0037E860 60 E7 00 01 */ ori r7, r7, 1
lbl_80381904:
/* 80381904 0037E864 54 80 03 5A */ rlwinm r0, r4, 0, 0xd, 0xd
/* 80381908 0037E868 28 00 00 00 */ cmplwi r0, 0
/* 8038190C 0037E86C 40 82 00 08 */ bne lbl_80381914
/* 80381910 0037E870 60 E7 00 04 */ ori r7, r7, 4
lbl_80381914:
/* 80381914 0037E874 54 80 03 9C */ rlwinm r0, r4, 0, 0xe, 0xe
/* 80381918 0037E878 28 00 00 00 */ cmplwi r0, 0
/* 8038191C 0037E87C 40 82 00 08 */ bne lbl_80381924
/* 80381920 0037E880 60 E7 04 00 */ ori r7, r7, 0x400
lbl_80381924:
/* 80381924 0037E884 90 E6 00 00 */ stw r7, 0(r6)
/* 80381928 0037E888 54 63 03 D6 */ rlwinm r3, r3, 0, 0xf, 0xb
/* 8038192C 0037E88C 48 00 00 F8 */ b lbl_80381A24
lbl_80381930:
/* 80381930 0037E890 3C A0 CC 00 */ lis r5, 0xCC006800@ha
/* 80381934 0037E894 38 A5 68 00 */ addi r5, r5, 0xCC006800@l
/* 80381938 0037E898 38 A5 00 28 */ addi r5, r5, 0x28
/* 8038193C 0037E89C 54 80 03 DE */ rlwinm r0, r4, 0, 0xf, 0xf
/* 80381940 0037E8A0 80 C5 00 00 */ lwz r6, 0(r5)
/* 80381944 0037E8A4 28 00 00 00 */ cmplwi r0, 0
/* 80381948 0037E8A8 54 C6 00 36 */ rlwinm r6, r6, 0, 0, 0x1b
/* 8038194C 0037E8AC 40 82 00 08 */ bne lbl_80381954
/* 80381950 0037E8B0 60 C6 00 01 */ ori r6, r6, 1
lbl_80381954:
/* 80381954 0037E8B4 54 80 04 20 */ rlwinm r0, r4, 0, 0x10, 0x10
/* 80381958 0037E8B8 28 00 00 00 */ cmplwi r0, 0
/* 8038195C 0037E8BC 40 82 00 08 */ bne lbl_80381964
/* 80381960 0037E8C0 60 C6 00 04 */ ori r6, r6, 4
lbl_80381964:
/* 80381964 0037E8C4 90 C5 00 00 */ stw r6, 0(r5)
/* 80381968 0037E8C8 54 63 04 5C */ rlwinm r3, r3, 0, 0x11, 0xe
/* 8038196C 0037E8CC 48 00 00 B8 */ b lbl_80381A24
lbl_80381970:
/* 80381970 0037E8D0 54 80 04 62 */ rlwinm r0, r4, 0, 0x11, 0x11
/* 80381974 0037E8D4 28 00 00 00 */ cmplwi r0, 0
/* 80381978 0037E8D8 38 A0 00 F0 */ li r5, 0xf0
/* 8038197C 0037E8DC 40 82 00 08 */ bne lbl_80381984
/* 80381980 0037E8E0 60 A5 08 00 */ ori r5, r5, 0x800
lbl_80381984:
/* 80381984 0037E8E4 54 80 05 28 */ rlwinm r0, r4, 0, 0x14, 0x14
/* 80381988 0037E8E8 28 00 00 00 */ cmplwi r0, 0
/* 8038198C 0037E8EC 40 82 00 08 */ bne lbl_80381994
/* 80381990 0037E8F0 60 A5 00 08 */ ori r5, r5, 8
lbl_80381994:
/* 80381994 0037E8F4 54 80 05 6A */ rlwinm r0, r4, 0, 0x15, 0x15
/* 80381998 0037E8F8 28 00 00 00 */ cmplwi r0, 0
/* 8038199C 0037E8FC 40 82 00 08 */ bne lbl_803819A4
/* 803819A0 0037E900 60 A5 00 04 */ ori r5, r5, 4
lbl_803819A4:
/* 803819A4 0037E904 54 80 05 AC */ rlwinm r0, r4, 0, 0x16, 0x16
/* 803819A8 0037E908 28 00 00 00 */ cmplwi r0, 0
/* 803819AC 0037E90C 40 82 00 08 */ bne lbl_803819B4
/* 803819B0 0037E910 60 A5 00 02 */ ori r5, r5, 2
lbl_803819B4:
/* 803819B4 0037E914 54 80 05 EE */ rlwinm r0, r4, 0, 0x17, 0x17
/* 803819B8 0037E918 28 00 00 00 */ cmplwi r0, 0
/* 803819BC 0037E91C 40 82 00 08 */ bne lbl_803819C4
/* 803819C0 0037E920 60 A5 00 01 */ ori r5, r5, 1
lbl_803819C4:
/* 803819C4 0037E924 54 80 06 30 */ rlwinm r0, r4, 0, 0x18, 0x18
/* 803819C8 0037E928 28 00 00 00 */ cmplwi r0, 0
/* 803819CC 0037E92C 40 82 00 08 */ bne lbl_803819D4
/* 803819D0 0037E930 60 A5 01 00 */ ori r5, r5, 0x100
lbl_803819D4:
/* 803819D4 0037E934 54 80 06 72 */ rlwinm r0, r4, 0, 0x19, 0x19
/* 803819D8 0037E938 28 00 00 00 */ cmplwi r0, 0
/* 803819DC 0037E93C 40 82 00 08 */ bne lbl_803819E4
/* 803819E0 0037E940 60 A5 10 00 */ ori r5, r5, 0x1000
lbl_803819E4:
/* 803819E4 0037E944 54 80 04 A4 */ rlwinm r0, r4, 0, 0x12, 0x12
/* 803819E8 0037E948 28 00 00 00 */ cmplwi r0, 0
/* 803819EC 0037E94C 40 82 00 08 */ bne lbl_803819F4
/* 803819F0 0037E950 60 A5 02 00 */ ori r5, r5, 0x200
lbl_803819F4:
/* 803819F4 0037E954 54 80 04 E6 */ rlwinm r0, r4, 0, 0x13, 0x13
/* 803819F8 0037E958 28 00 00 00 */ cmplwi r0, 0
/* 803819FC 0037E95C 40 82 00 08 */ bne lbl_80381A04
/* 80381A00 0037E960 60 A5 04 00 */ ori r5, r5, 0x400
lbl_80381A04:
/* 80381A04 0037E964 54 80 06 B4 */ rlwinm r0, r4, 0, 0x1a, 0x1a
/* 80381A08 0037E968 28 00 00 00 */ cmplwi r0, 0
/* 80381A0C 0037E96C 40 82 00 08 */ bne lbl_80381A14
/* 80381A10 0037E970 60 A5 20 00 */ ori r5, r5, 0x2000
lbl_80381A14:
/* 80381A14 0037E974 3C 80 CC 00 */ lis r4, 0xCC003000@ha
/* 80381A18 0037E978 38 84 30 00 */ addi r4, r4, 0xCC003000@l
/* 80381A1C 0037E97C 90 A4 00 04 */ stw r5, 4(r4)
/* 80381A20 0037E980 54 63 06 E0 */ rlwinm r3, r3, 0, 0x1b, 0x10
lbl_80381A24:
/* 80381A24 0037E984 4E 80 00 20 */ blr
.global __OSMaskInterrupts
__OSMaskInterrupts:
/* 80381A28 0037E988 7C 08 02 A6 */ mflr r0
/* 80381A2C 0037E98C 90 01 00 04 */ stw r0, 4(r1)
/* 80381A30 0037E990 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80381A34 0037E994 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80381A38 0037E998 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80381A3C 0037E99C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80381A40 0037E9A0 7C 7F 1B 78 */ mr r31, r3
/* 80381A44 0037E9A4 4B FF FC 1D */ bl OSDisableInterrupts
/* 80381A48 0037E9A8 3C 80 80 00 */ lis r4, 0x800000C4@ha
/* 80381A4C 0037E9AC 83 A4 00 C4 */ lwz r29, 0x800000C4@l(r4)
/* 80381A50 0037E9B0 7C 7E 1B 78 */ mr r30, r3
/* 80381A54 0037E9B4 80 A4 00 C8 */ lwz r5, 0xc8(r4)
/* 80381A58 0037E9B8 7F A0 2B 78 */ or r0, r29, r5
/* 80381A5C 0037E9BC 7F E3 00 78 */ andc r3, r31, r0
/* 80381A60 0037E9C0 7F FF EB 78 */ or r31, r31, r29
/* 80381A64 0037E9C4 93 E4 00 C4 */ stw r31, 0xc4(r4)
/* 80381A68 0037E9C8 7F FF 2B 78 */ or r31, r31, r5
/* 80381A6C 0037E9CC 48 00 00 04 */ b lbl_80381A70
lbl_80381A70:
/* 80381A70 0037E9D0 48 00 00 04 */ b lbl_80381A74
lbl_80381A74:
/* 80381A74 0037E9D4 48 00 00 0C */ b lbl_80381A80
lbl_80381A78:
/* 80381A78 0037E9D8 7F E4 FB 78 */ mr r4, r31
/* 80381A7C 0037E9DC 4B FF FC D5 */ bl SetInterruptMask
lbl_80381A80:
/* 80381A80 0037E9E0 28 03 00 00 */ cmplwi r3, 0
/* 80381A84 0037E9E4 40 82 FF F4 */ bne lbl_80381A78
/* 80381A88 0037E9E8 7F C3 F3 78 */ mr r3, r30
/* 80381A8C 0037E9EC 4B FF FB FD */ bl OSRestoreInterrupts
/* 80381A90 0037E9F0 7F A3 EB 78 */ mr r3, r29
/* 80381A94 0037E9F4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80381A98 0037E9F8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80381A9C 0037E9FC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80381AA0 0037EA00 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80381AA4 0037EA04 38 21 00 20 */ addi r1, r1, 0x20
/* 80381AA8 0037EA08 7C 08 03 A6 */ mtlr r0
/* 80381AAC 0037EA0C 4E 80 00 20 */ blr
.global __OSUnmaskInterrupts
__OSUnmaskInterrupts:
/* 80381AB0 0037EA10 7C 08 02 A6 */ mflr r0
/* 80381AB4 0037EA14 90 01 00 04 */ stw r0, 4(r1)
/* 80381AB8 0037EA18 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80381ABC 0037EA1C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80381AC0 0037EA20 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80381AC4 0037EA24 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80381AC8 0037EA28 7C 7F 1B 78 */ mr r31, r3
/* 80381ACC 0037EA2C 4B FF FB 95 */ bl OSDisableInterrupts
/* 80381AD0 0037EA30 3C 80 80 00 */ lis r4, 0x800000C4@ha
/* 80381AD4 0037EA34 83 A4 00 C4 */ lwz r29, 0x800000C4@l(r4)
/* 80381AD8 0037EA38 7C 7E 1B 78 */ mr r30, r3
/* 80381ADC 0037EA3C 80 A4 00 C8 */ lwz r5, 0xc8(r4)
/* 80381AE0 0037EA40 7F A0 2B 78 */ or r0, r29, r5
/* 80381AE4 0037EA44 7F E3 00 38 */ and r3, r31, r0
/* 80381AE8 0037EA48 7F BF F8 78 */ andc r31, r29, r31
/* 80381AEC 0037EA4C 93 E4 00 C4 */ stw r31, 0xc4(r4)
/* 80381AF0 0037EA50 7F FF 2B 78 */ or r31, r31, r5
/* 80381AF4 0037EA54 48 00 00 04 */ b lbl_80381AF8
lbl_80381AF8:
/* 80381AF8 0037EA58 48 00 00 04 */ b lbl_80381AFC
lbl_80381AFC:
/* 80381AFC 0037EA5C 48 00 00 0C */ b lbl_80381B08
lbl_80381B00:
/* 80381B00 0037EA60 7F E4 FB 78 */ mr r4, r31
/* 80381B04 0037EA64 4B FF FC 4D */ bl SetInterruptMask
lbl_80381B08:
/* 80381B08 0037EA68 28 03 00 00 */ cmplwi r3, 0
/* 80381B0C 0037EA6C 40 82 FF F4 */ bne lbl_80381B00
/* 80381B10 0037EA70 7F C3 F3 78 */ mr r3, r30
/* 80381B14 0037EA74 4B FF FB 75 */ bl OSRestoreInterrupts
/* 80381B18 0037EA78 7F A3 EB 78 */ mr r3, r29
/* 80381B1C 0037EA7C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80381B20 0037EA80 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80381B24 0037EA84 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80381B28 0037EA88 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80381B2C 0037EA8C 38 21 00 20 */ addi r1, r1, 0x20
/* 80381B30 0037EA90 7C 08 03 A6 */ mtlr r0
/* 80381B34 0037EA94 4E 80 00 20 */ blr
.global __OSDispatchInterrupt
__OSDispatchInterrupt:
/* 80381B38 0037EA98 7C 08 02 A6 */ mflr r0
/* 80381B3C 0037EA9C 90 01 00 04 */ stw r0, 4(r1)
/* 80381B40 0037EAA0 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80381B44 0037EAA4 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80381B48 0037EAA8 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80381B4C 0037EAAC 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80381B50 0037EAB0 7C 9E 23 78 */ mr r30, r4
/* 80381B54 0037EAB4 3C 60 CC 00 */ lis r3, 0xCC003000@ha
/* 80381B58 0037EAB8 83 E3 30 00 */ lwz r31, 0xCC003000@l(r3)
/* 80381B5C 0037EABC 57 FF 04 1C */ rlwinm r31, r31, 0, 0x10, 0xe
/* 80381B60 0037EAC0 28 1F 00 00 */ cmplwi r31, 0
/* 80381B64 0037EAC4 41 82 00 18 */ beq lbl_80381B7C
/* 80381B68 0037EAC8 38 63 30 00 */ addi r3, r3, 0x3000
/* 80381B6C 0037EACC 80 03 00 04 */ lwz r0, 4(r3)
/* 80381B70 0037EAD0 7F E0 00 38 */ and r0, r31, r0
/* 80381B74 0037EAD4 28 00 00 00 */ cmplwi r0, 0
/* 80381B78 0037EAD8 40 82 00 0C */ bne lbl_80381B84
lbl_80381B7C:
/* 80381B7C 0037EADC 7F C3 F3 78 */ mr r3, r30
/* 80381B80 0037EAE0 4B FF D9 85 */ bl OSLoadContext
lbl_80381B84:
/* 80381B84 0037EAE4 57 E0 06 30 */ rlwinm r0, r31, 0, 0x18, 0x18
/* 80381B88 0037EAE8 28 00 00 00 */ cmplwi r0, 0
/* 80381B8C 0037EAEC 38 00 00 00 */ li r0, 0
/* 80381B90 0037EAF0 41 82 00 60 */ beq lbl_80381BF0
/* 80381B94 0037EAF4 3C 60 CC 00 */ lis r3, 0xCC004000@ha
/* 80381B98 0037EAF8 38 63 40 00 */ addi r3, r3, 0xCC004000@l
/* 80381B9C 0037EAFC A0 83 00 1E */ lhz r4, 0x1e(r3)
/* 80381BA0 0037EB00 54 83 07 FE */ clrlwi r3, r4, 0x1f
/* 80381BA4 0037EB04 28 03 00 00 */ cmplwi r3, 0
/* 80381BA8 0037EB08 41 82 00 08 */ beq lbl_80381BB0
/* 80381BAC 0037EB0C 64 00 80 00 */ oris r0, r0, 0x8000
lbl_80381BB0:
/* 80381BB0 0037EB10 54 83 07 BC */ rlwinm r3, r4, 0, 0x1e, 0x1e
/* 80381BB4 0037EB14 28 03 00 00 */ cmplwi r3, 0
/* 80381BB8 0037EB18 41 82 00 08 */ beq lbl_80381BC0
/* 80381BBC 0037EB1C 64 00 40 00 */ oris r0, r0, 0x4000
lbl_80381BC0:
/* 80381BC0 0037EB20 54 83 07 7A */ rlwinm r3, r4, 0, 0x1d, 0x1d
/* 80381BC4 0037EB24 28 03 00 00 */ cmplwi r3, 0
/* 80381BC8 0037EB28 41 82 00 08 */ beq lbl_80381BD0
/* 80381BCC 0037EB2C 64 00 20 00 */ oris r0, r0, 0x2000
lbl_80381BD0:
/* 80381BD0 0037EB30 54 83 07 38 */ rlwinm r3, r4, 0, 0x1c, 0x1c
/* 80381BD4 0037EB34 28 03 00 00 */ cmplwi r3, 0
/* 80381BD8 0037EB38 41 82 00 08 */ beq lbl_80381BE0
/* 80381BDC 0037EB3C 64 00 10 00 */ oris r0, r0, 0x1000
lbl_80381BE0:
/* 80381BE0 0037EB40 54 83 06 F6 */ rlwinm r3, r4, 0, 0x1b, 0x1b
/* 80381BE4 0037EB44 28 03 00 00 */ cmplwi r3, 0
/* 80381BE8 0037EB48 41 82 00 08 */ beq lbl_80381BF0
/* 80381BEC 0037EB4C 64 00 08 00 */ oris r0, r0, 0x800
lbl_80381BF0:
/* 80381BF0 0037EB50 57 E3 06 72 */ rlwinm r3, r31, 0, 0x19, 0x19
/* 80381BF4 0037EB54 28 03 00 00 */ cmplwi r3, 0
/* 80381BF8 0037EB58 41 82 00 40 */ beq lbl_80381C38
/* 80381BFC 0037EB5C 3C 60 CC 00 */ lis r3, 0xCC005000@ha
/* 80381C00 0037EB60 38 63 50 00 */ addi r3, r3, 0xCC005000@l
/* 80381C04 0037EB64 A0 83 00 0A */ lhz r4, 0xa(r3)
/* 80381C08 0037EB68 54 83 07 38 */ rlwinm r3, r4, 0, 0x1c, 0x1c
/* 80381C0C 0037EB6C 28 03 00 00 */ cmplwi r3, 0
/* 80381C10 0037EB70 41 82 00 08 */ beq lbl_80381C18
/* 80381C14 0037EB74 64 00 04 00 */ oris r0, r0, 0x400
lbl_80381C18:
/* 80381C18 0037EB78 54 83 06 B4 */ rlwinm r3, r4, 0, 0x1a, 0x1a
/* 80381C1C 0037EB7C 28 03 00 00 */ cmplwi r3, 0
/* 80381C20 0037EB80 41 82 00 08 */ beq lbl_80381C28
/* 80381C24 0037EB84 64 00 02 00 */ oris r0, r0, 0x200
lbl_80381C28:
/* 80381C28 0037EB88 54 83 06 30 */ rlwinm r3, r4, 0, 0x18, 0x18
/* 80381C2C 0037EB8C 28 03 00 00 */ cmplwi r3, 0
/* 80381C30 0037EB90 41 82 00 08 */ beq lbl_80381C38
/* 80381C34 0037EB94 64 00 01 00 */ oris r0, r0, 0x100
lbl_80381C38:
/* 80381C38 0037EB98 57 E3 06 B4 */ rlwinm r3, r31, 0, 0x1a, 0x1a
/* 80381C3C 0037EB9C 28 03 00 00 */ cmplwi r3, 0
/* 80381C40 0037EBA0 41 82 00 1C */ beq lbl_80381C5C
/* 80381C44 0037EBA4 3C 60 CC 00 */ lis r3, 0xCC006C00@ha
/* 80381C48 0037EBA8 80 63 6C 00 */ lwz r3, 0xCC006C00@l(r3)
/* 80381C4C 0037EBAC 54 63 07 38 */ rlwinm r3, r3, 0, 0x1c, 0x1c
/* 80381C50 0037EBB0 28 03 00 00 */ cmplwi r3, 0
/* 80381C54 0037EBB4 41 82 00 08 */ beq lbl_80381C5C
/* 80381C58 0037EBB8 64 00 00 80 */ oris r0, r0, 0x80
lbl_80381C5C:
/* 80381C5C 0037EBBC 57 E3 06 F6 */ rlwinm r3, r31, 0, 0x1b, 0x1b
/* 80381C60 0037EBC0 28 03 00 00 */ cmplwi r3, 0
/* 80381C64 0037EBC4 41 82 00 A4 */ beq lbl_80381D08
/* 80381C68 0037EBC8 3C 60 CC 00 */ lis r3, 0xCC006800@ha
/* 80381C6C 0037EBCC 80 83 68 00 */ lwz r4, 0xCC006800@l(r3)
/* 80381C70 0037EBD0 54 83 07 BC */ rlwinm r3, r4, 0, 0x1e, 0x1e
/* 80381C74 0037EBD4 28 03 00 00 */ cmplwi r3, 0
/* 80381C78 0037EBD8 41 82 00 08 */ beq lbl_80381C80
/* 80381C7C 0037EBDC 64 00 00 40 */ oris r0, r0, 0x40
lbl_80381C80:
/* 80381C80 0037EBE0 54 83 07 38 */ rlwinm r3, r4, 0, 0x1c, 0x1c
/* 80381C84 0037EBE4 28 03 00 00 */ cmplwi r3, 0
/* 80381C88 0037EBE8 41 82 00 08 */ beq lbl_80381C90
/* 80381C8C 0037EBEC 64 00 00 20 */ oris r0, r0, 0x20
lbl_80381C90:
/* 80381C90 0037EBF0 54 83 05 28 */ rlwinm r3, r4, 0, 0x14, 0x14
/* 80381C94 0037EBF4 28 03 00 00 */ cmplwi r3, 0
/* 80381C98 0037EBF8 41 82 00 08 */ beq lbl_80381CA0
/* 80381C9C 0037EBFC 64 00 00 10 */ oris r0, r0, 0x10
lbl_80381CA0:
/* 80381CA0 0037EC00 3C 60 CC 00 */ lis r3, 0xCC006800@ha
/* 80381CA4 0037EC04 38 63 68 00 */ addi r3, r3, 0xCC006800@l
/* 80381CA8 0037EC08 80 83 00 14 */ lwz r4, 0x14(r3)
/* 80381CAC 0037EC0C 54 83 07 BC */ rlwinm r3, r4, 0, 0x1e, 0x1e
/* 80381CB0 0037EC10 28 03 00 00 */ cmplwi r3, 0
/* 80381CB4 0037EC14 41 82 00 08 */ beq lbl_80381CBC
/* 80381CB8 0037EC18 64 00 00 08 */ oris r0, r0, 8
lbl_80381CBC:
/* 80381CBC 0037EC1C 54 83 07 38 */ rlwinm r3, r4, 0, 0x1c, 0x1c
/* 80381CC0 0037EC20 28 03 00 00 */ cmplwi r3, 0
/* 80381CC4 0037EC24 41 82 00 08 */ beq lbl_80381CCC
/* 80381CC8 0037EC28 64 00 00 04 */ oris r0, r0, 4
lbl_80381CCC:
/* 80381CCC 0037EC2C 54 83 05 28 */ rlwinm r3, r4, 0, 0x14, 0x14
/* 80381CD0 0037EC30 28 03 00 00 */ cmplwi r3, 0
/* 80381CD4 0037EC34 41 82 00 08 */ beq lbl_80381CDC
/* 80381CD8 0037EC38 64 00 00 02 */ oris r0, r0, 2
lbl_80381CDC:
/* 80381CDC 0037EC3C 3C 60 CC 00 */ lis r3, 0xCC006800@ha
/* 80381CE0 0037EC40 38 63 68 00 */ addi r3, r3, 0xCC006800@l
/* 80381CE4 0037EC44 80 83 00 28 */ lwz r4, 0x28(r3)
/* 80381CE8 0037EC48 54 83 07 BC */ rlwinm r3, r4, 0, 0x1e, 0x1e
/* 80381CEC 0037EC4C 28 03 00 00 */ cmplwi r3, 0
/* 80381CF0 0037EC50 41 82 00 08 */ beq lbl_80381CF8
/* 80381CF4 0037EC54 64 00 00 01 */ oris r0, r0, 1
lbl_80381CF8:
/* 80381CF8 0037EC58 54 83 07 38 */ rlwinm r3, r4, 0, 0x1c, 0x1c
/* 80381CFC 0037EC5C 28 03 00 00 */ cmplwi r3, 0
/* 80381D00 0037EC60 41 82 00 08 */ beq lbl_80381D08
/* 80381D04 0037EC64 60 00 80 00 */ ori r0, r0, 0x8000
lbl_80381D08:
/* 80381D08 0037EC68 57 E3 04 A4 */ rlwinm r3, r31, 0, 0x12, 0x12
/* 80381D0C 0037EC6C 28 03 00 00 */ cmplwi r3, 0
/* 80381D10 0037EC70 41 82 00 08 */ beq lbl_80381D18
/* 80381D14 0037EC74 60 00 00 20 */ ori r0, r0, 0x20
lbl_80381D18:
/* 80381D18 0037EC78 57 E3 04 E6 */ rlwinm r3, r31, 0, 0x13, 0x13
/* 80381D1C 0037EC7C 28 03 00 00 */ cmplwi r3, 0
/* 80381D20 0037EC80 41 82 00 08 */ beq lbl_80381D28
/* 80381D24 0037EC84 60 00 00 40 */ ori r0, r0, 0x40
lbl_80381D28:
/* 80381D28 0037EC88 57 E3 05 6A */ rlwinm r3, r31, 0, 0x15, 0x15
/* 80381D2C 0037EC8C 28 03 00 00 */ cmplwi r3, 0
/* 80381D30 0037EC90 41 82 00 08 */ beq lbl_80381D38
/* 80381D34 0037EC94 60 00 10 00 */ ori r0, r0, 0x1000
lbl_80381D38:
/* 80381D38 0037EC98 57 E3 05 AC */ rlwinm r3, r31, 0, 0x16, 0x16
/* 80381D3C 0037EC9C 28 03 00 00 */ cmplwi r3, 0
/* 80381D40 0037ECA0 41 82 00 08 */ beq lbl_80381D48
/* 80381D44 0037ECA4 60 00 20 00 */ ori r0, r0, 0x2000
lbl_80381D48:
/* 80381D48 0037ECA8 57 E3 05 EE */ rlwinm r3, r31, 0, 0x17, 0x17
/* 80381D4C 0037ECAC 28 03 00 00 */ cmplwi r3, 0
/* 80381D50 0037ECB0 41 82 00 08 */ beq lbl_80381D58
/* 80381D54 0037ECB4 60 00 00 80 */ ori r0, r0, 0x80
lbl_80381D58:
/* 80381D58 0037ECB8 57 E3 07 38 */ rlwinm r3, r31, 0, 0x1c, 0x1c
/* 80381D5C 0037ECBC 28 03 00 00 */ cmplwi r3, 0
/* 80381D60 0037ECC0 41 82 00 08 */ beq lbl_80381D68
/* 80381D64 0037ECC4 60 00 08 00 */ ori r0, r0, 0x800
lbl_80381D68:
/* 80381D68 0037ECC8 57 E3 07 7A */ rlwinm r3, r31, 0, 0x1d, 0x1d
/* 80381D6C 0037ECCC 28 03 00 00 */ cmplwi r3, 0
/* 80381D70 0037ECD0 41 82 00 08 */ beq lbl_80381D78
/* 80381D74 0037ECD4 60 00 04 00 */ ori r0, r0, 0x400
lbl_80381D78:
/* 80381D78 0037ECD8 57 E3 07 BC */ rlwinm r3, r31, 0, 0x1e, 0x1e
/* 80381D7C 0037ECDC 28 03 00 00 */ cmplwi r3, 0
/* 80381D80 0037ECE0 41 82 00 08 */ beq lbl_80381D88
/* 80381D84 0037ECE4 60 00 02 00 */ ori r0, r0, 0x200
lbl_80381D88:
/* 80381D88 0037ECE8 57 E3 05 28 */ rlwinm r3, r31, 0, 0x14, 0x14
/* 80381D8C 0037ECEC 28 03 00 00 */ cmplwi r3, 0
/* 80381D90 0037ECF0 41 82 00 08 */ beq lbl_80381D98
/* 80381D94 0037ECF4 60 00 40 00 */ ori r0, r0, 0x4000
lbl_80381D98:
/* 80381D98 0037ECF8 57 E3 07 FE */ clrlwi r3, r31, 0x1f
/* 80381D9C 0037ECFC 28 03 00 00 */ cmplwi r3, 0
/* 80381DA0 0037ED00 41 82 00 08 */ beq lbl_80381DA8
/* 80381DA4 0037ED04 60 00 01 00 */ ori r0, r0, 0x100
lbl_80381DA8:
/* 80381DA8 0037ED08 3C 60 80 00 */ lis r3, 0x800000C4@ha
/* 80381DAC 0037ED0C 80 83 00 C4 */ lwz r4, 0x800000C4@l(r3)
/* 80381DB0 0037ED10 80 63 00 C8 */ lwz r3, 0xc8(r3)
/* 80381DB4 0037ED14 7C 83 1B 78 */ or r3, r4, r3
/* 80381DB8 0037ED18 7C 04 18 78 */ andc r4, r0, r3
/* 80381DBC 0037ED1C 28 04 00 00 */ cmplwi r4, 0
/* 80381DC0 0037ED20 41 82 00 98 */ beq lbl_80381E58
/* 80381DC4 0037ED24 3C 60 80 3F */ lis r3, lbl_803F2260@ha
/* 80381DC8 0037ED28 38 03 22 60 */ addi r0, r3, lbl_803F2260@l
/* 80381DCC 0037ED2C 7C 03 03 78 */ mr r3, r0
/* 80381DD0 0037ED30 48 00 00 04 */ b lbl_80381DD4
lbl_80381DD4:
/* 80381DD4 0037ED34 48 00 00 04 */ b lbl_80381DD8
lbl_80381DD8:
/* 80381DD8 0037ED38 80 03 00 00 */ lwz r0, 0(r3)
/* 80381DDC 0037ED3C 7C 80 00 38 */ and r0, r4, r0
/* 80381DE0 0037ED40 28 00 00 00 */ cmplwi r0, 0
/* 80381DE4 0037ED44 41 82 00 10 */ beq lbl_80381DF4
/* 80381DE8 0037ED48 7C 00 00 34 */ cntlzw r0, r0
/* 80381DEC 0037ED4C 7C 1D 07 34 */ extsh r29, r0
/* 80381DF0 0037ED50 48 00 00 0C */ b lbl_80381DFC
lbl_80381DF4:
/* 80381DF4 0037ED54 38 63 00 04 */ addi r3, r3, 4
/* 80381DF8 0037ED58 4B FF FF E0 */ b lbl_80381DD8
lbl_80381DFC:
/* 80381DFC 0037ED5C 80 6D AD 10 */ lwz r3, lbl_805A98D0@sda21(r13)
/* 80381E00 0037ED60 57 A0 10 3A */ slwi r0, r29, 2
/* 80381E04 0037ED64 7F E3 00 2E */ lwzx r31, r3, r0
/* 80381E08 0037ED68 28 1F 00 00 */ cmplwi r31, 0
/* 80381E0C 0037ED6C 41 82 00 4C */ beq lbl_80381E58
/* 80381E10 0037ED70 2C 1D 00 04 */ cmpwi r29, 4
/* 80381E14 0037ED74 40 81 00 1C */ ble lbl_80381E30
/* 80381E18 0037ED78 B3 AD AD 18 */ sth r29, lbl_805A98D8@sda21(r13)
/* 80381E1C 0037ED7C 48 00 35 8D */ bl OSGetTime
/* 80381E20 0037ED80 90 8D AD 24 */ stw r4, lbl_805A98E4@sda21(r13)
/* 80381E24 0037ED84 90 6D AD 20 */ stw r3, lbl_805A98E0@sda21(r13)
/* 80381E28 0037ED88 80 1E 01 98 */ lwz r0, 0x198(r30)
/* 80381E2C 0037ED8C 90 0D AD 14 */ stw r0, lbl_805A98D4@sda21(r13)
lbl_80381E30:
/* 80381E30 0037ED90 48 00 27 B1 */ bl OSDisableScheduler
/* 80381E34 0037ED94 7F A3 EB 78 */ mr r3, r29
/* 80381E38 0037ED98 7F C4 F3 78 */ mr r4, r30
/* 80381E3C 0037ED9C 7F EC FB 78 */ mr r12, r31
/* 80381E40 0037EDA0 7D 88 03 A6 */ mtlr r12
/* 80381E44 0037EDA4 4E 80 00 21 */ blrl
/* 80381E48 0037EDA8 48 00 27 D9 */ bl OSEnableScheduler
/* 80381E4C 0037EDAC 48 00 2C A1 */ bl __OSReschedule
/* 80381E50 0037EDB0 7F C3 F3 78 */ mr r3, r30
/* 80381E54 0037EDB4 4B FF D6 B1 */ bl OSLoadContext
lbl_80381E58:
/* 80381E58 0037EDB8 7F C3 F3 78 */ mr r3, r30
/* 80381E5C 0037EDBC 4B FF D6 A9 */ bl OSLoadContext
/* 80381E60 0037EDC0 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80381E64 0037EDC4 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80381E68 0037EDC8 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80381E6C 0037EDCC 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80381E70 0037EDD0 38 21 00 28 */ addi r1, r1, 0x28
/* 80381E74 0037EDD4 7C 08 03 A6 */ mtlr r0
/* 80381E78 0037EDD8 4E 80 00 20 */ blr
.global ExternalInterruptHandler
ExternalInterruptHandler:
/* 80381E7C 0037EDDC 90 04 00 00 */ stw r0, 0(r4)
/* 80381E80 0037EDE0 90 24 00 04 */ stw r1, 4(r4)
/* 80381E84 0037EDE4 90 44 00 08 */ stw r2, 8(r4)
/* 80381E88 0037EDE8 BC C4 00 18 */ stmw r6, 0x18(r4)
/* 80381E8C 0037EDEC 7C 11 E2 A6 */ mfspr r0, 0x391
/* 80381E90 0037EDF0 90 04 01 A8 */ stw r0, 0x1a8(r4)
/* 80381E94 0037EDF4 7C 12 E2 A6 */ mfspr r0, 0x392
/* 80381E98 0037EDF8 90 04 01 AC */ stw r0, 0x1ac(r4)
/* 80381E9C 0037EDFC 7C 13 E2 A6 */ mfspr r0, 0x393
/* 80381EA0 0037EE00 90 04 01 B0 */ stw r0, 0x1b0(r4)
/* 80381EA4 0037EE04 7C 14 E2 A6 */ mfspr r0, 0x394
/* 80381EA8 0037EE08 90 04 01 B4 */ stw r0, 0x1b4(r4)
/* 80381EAC 0037EE0C 7C 15 E2 A6 */ mfspr r0, 0x395
/* 80381EB0 0037EE10 90 04 01 B8 */ stw r0, 0x1b8(r4)
/* 80381EB4 0037EE14 7C 16 E2 A6 */ mfspr r0, 0x396
/* 80381EB8 0037EE18 90 04 01 BC */ stw r0, 0x1bc(r4)
/* 80381EBC 0037EE1C 7C 17 E2 A6 */ mfspr r0, 0x397
/* 80381EC0 0037EE20 90 04 01 C0 */ stw r0, 0x1c0(r4)
/* 80381EC4 0037EE24 94 21 FF F8 */ stwu r1, -8(r1)
/* 80381EC8 0037EE28 4B FF FC 70 */ b __OSDispatchInterrupt

709
asm/Dolphin/OS/OSLink.s Normal file
View File

@ -0,0 +1,709 @@
.include "macros.inc"
.section .text, "ax"
.global OSNotifyLink
OSNotifyLink:
/* 80381ECC 0037EE2C 4E 80 00 20 */ blr
.global OSNotifyUnlink
OSNotifyUnlink:
/* 80381ED0 0037EE30 4E 80 00 20 */ blr
.global Relocate
Relocate:
/* 80381ED4 0037EE34 7C 08 02 A6 */ mflr r0
/* 80381ED8 0037EE38 90 01 00 04 */ stw r0, 4(r1)
/* 80381EDC 0037EE3C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80381EE0 0037EE40 BE E1 00 1C */ stmw r23, 0x1c(r1)
/* 80381EE4 0037EE44 7C 7A 1B 79 */ or. r26, r3, r3
/* 80381EE8 0037EE48 3B 64 00 00 */ addi r27, r4, 0
/* 80381EEC 0037EE4C 41 82 00 0C */ beq lbl_80381EF8
/* 80381EF0 0037EE50 83 FA 00 00 */ lwz r31, 0(r26)
/* 80381EF4 0037EE54 48 00 00 08 */ b lbl_80381EFC
lbl_80381EF8:
/* 80381EF8 0037EE58 3B E0 00 00 */ li r31, 0
lbl_80381EFC:
/* 80381EFC 0037EE5C 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 80381F00 0037EE60 80 1B 00 2C */ lwz r0, 0x2c(r27)
/* 80381F04 0037EE64 38 83 00 00 */ addi r4, r3, 0
/* 80381F08 0037EE68 7C 63 02 14 */ add r3, r3, r0
/* 80381F0C 0037EE6C 38 03 00 07 */ addi r0, r3, 7
/* 80381F10 0037EE70 7C 04 00 50 */ subf r0, r4, r0
/* 80381F14 0037EE74 54 00 E8 FE */ srwi r0, r0, 3
/* 80381F18 0037EE78 7C 04 18 40 */ cmplw r4, r3
/* 80381F1C 0037EE7C 7C 09 03 A6 */ mtctr r0
/* 80381F20 0037EE80 40 80 00 18 */ bge lbl_80381F38
lbl_80381F24:
/* 80381F24 0037EE84 80 04 00 00 */ lwz r0, 0(r4)
/* 80381F28 0037EE88 7C 00 F8 40 */ cmplw r0, r31
/* 80381F2C 0037EE8C 41 82 00 14 */ beq lbl_80381F40
/* 80381F30 0037EE90 38 84 00 08 */ addi r4, r4, 8
/* 80381F34 0037EE94 42 00 FF F0 */ bdnz lbl_80381F24
lbl_80381F38:
/* 80381F38 0037EE98 38 60 00 00 */ li r3, 0
/* 80381F3C 0037EE9C 48 00 02 40 */ b lbl_8038217C
lbl_80381F40:
/* 80381F40 0037EEA0 3C 60 80 3F */ lis r3, lbl_803F2290@ha
/* 80381F44 0037EEA4 83 C4 00 04 */ lwz r30, 4(r4)
/* 80381F48 0037EEA8 3B 23 22 90 */ addi r25, r3, lbl_803F2290@l
/* 80381F4C 0037EEAC 3B A0 00 00 */ li r29, 0
/* 80381F50 0037EEB0 48 00 01 F4 */ b lbl_80382144
lbl_80381F54:
/* 80381F54 0037EEB4 A0 1E 00 00 */ lhz r0, 0(r30)
/* 80381F58 0037EEB8 28 1F 00 00 */ cmplwi r31, 0
/* 80381F5C 0037EEBC 7F 9C 02 14 */ add r28, r28, r0
/* 80381F60 0037EEC0 41 82 00 1C */ beq lbl_80381F7C
/* 80381F64 0037EEC4 88 1E 00 03 */ lbz r0, 3(r30)
/* 80381F68 0037EEC8 80 7A 00 10 */ lwz r3, 0x10(r26)
/* 80381F6C 0037EECC 54 00 18 38 */ slwi r0, r0, 3
/* 80381F70 0037EED0 7C 03 00 2E */ lwzx r0, r3, r0
/* 80381F74 0037EED4 54 05 00 3C */ rlwinm r5, r0, 0, 0, 0x1e
/* 80381F78 0037EED8 48 00 00 08 */ b lbl_80381F80
lbl_80381F7C:
/* 80381F7C 0037EEDC 38 A0 00 00 */ li r5, 0
lbl_80381F80:
/* 80381F80 0037EEE0 2C 04 00 06 */ cmpwi r4, 6
/* 80381F84 0037EEE4 41 82 00 C4 */ beq lbl_80382048
/* 80381F88 0037EEE8 40 80 00 30 */ bge lbl_80381FB8
/* 80381F8C 0037EEEC 2C 04 00 02 */ cmpwi r4, 2
/* 80381F90 0037EEF0 41 82 00 68 */ beq lbl_80381FF8
/* 80381F94 0037EEF4 40 80 00 14 */ bge lbl_80381FA8
/* 80381F98 0037EEF8 2C 04 00 00 */ cmpwi r4, 0
/* 80381F9C 0037EEFC 41 82 01 A4 */ beq lbl_80382140
/* 80381FA0 0037EF00 40 80 00 48 */ bge lbl_80381FE8
/* 80381FA4 0037EF04 48 00 01 90 */ b lbl_80382134
lbl_80381FA8:
/* 80381FA8 0037EF08 2C 04 00 04 */ cmpwi r4, 4
/* 80381FAC 0037EF0C 41 82 00 78 */ beq lbl_80382024
/* 80381FB0 0037EF10 40 80 00 84 */ bge lbl_80382034
/* 80381FB4 0037EF14 48 00 00 60 */ b lbl_80382014
lbl_80381FB8:
/* 80381FB8 0037EF18 2C 04 00 C9 */ cmpwi r4, 0xc9
/* 80381FBC 0037EF1C 41 82 01 84 */ beq lbl_80382140
/* 80381FC0 0037EF20 40 80 00 1C */ bge lbl_80381FDC
/* 80381FC4 0037EF24 2C 04 00 0A */ cmpwi r4, 0xa
/* 80381FC8 0037EF28 41 82 00 C8 */ beq lbl_80382090
/* 80381FCC 0037EF2C 41 80 00 A8 */ blt lbl_80382074
/* 80381FD0 0037EF30 2C 04 00 0E */ cmpwi r4, 0xe
/* 80381FD4 0037EF34 40 80 01 60 */ bge lbl_80382134
/* 80381FD8 0037EF38 48 00 00 D8 */ b lbl_803820B0
lbl_80381FDC:
/* 80381FDC 0037EF3C 2C 04 00 CB */ cmpwi r4, 0xcb
/* 80381FE0 0037EF40 40 80 01 54 */ bge lbl_80382134
/* 80381FE4 0037EF44 48 00 00 EC */ b lbl_803820D0
lbl_80381FE8:
/* 80381FE8 0037EF48 80 1E 00 04 */ lwz r0, 4(r30)
/* 80381FEC 0037EF4C 7C 05 02 14 */ add r0, r5, r0
/* 80381FF0 0037EF50 90 1C 00 00 */ stw r0, 0(r28)
/* 80381FF4 0037EF54 48 00 01 4C */ b lbl_80382140
lbl_80381FF8:
/* 80381FF8 0037EF58 80 1E 00 04 */ lwz r0, 4(r30)
/* 80381FFC 0037EF5C 80 7C 00 00 */ lwz r3, 0(r28)
/* 80382000 0037EF60 7C 05 02 14 */ add r0, r5, r0
/* 80382004 0037EF64 54 63 07 8A */ rlwinm r3, r3, 0, 0x1e, 5
/* 80382008 0037EF68 50 03 01 BA */ rlwimi r3, r0, 0, 6, 0x1d
/* 8038200C 0037EF6C 90 7C 00 00 */ stw r3, 0(r28)
/* 80382010 0037EF70 48 00 01 30 */ b lbl_80382140
lbl_80382014:
/* 80382014 0037EF74 80 1E 00 04 */ lwz r0, 4(r30)
/* 80382018 0037EF78 7C 05 02 14 */ add r0, r5, r0
/* 8038201C 0037EF7C B0 1C 00 00 */ sth r0, 0(r28)
/* 80382020 0037EF80 48 00 01 20 */ b lbl_80382140
lbl_80382024:
/* 80382024 0037EF84 80 1E 00 04 */ lwz r0, 4(r30)
/* 80382028 0037EF88 7C 05 02 14 */ add r0, r5, r0
/* 8038202C 0037EF8C B0 1C 00 00 */ sth r0, 0(r28)
/* 80382030 0037EF90 48 00 01 10 */ b lbl_80382140
lbl_80382034:
/* 80382034 0037EF94 80 1E 00 04 */ lwz r0, 4(r30)
/* 80382038 0037EF98 7C 05 02 14 */ add r0, r5, r0
/* 8038203C 0037EF9C 54 00 84 3E */ srwi r0, r0, 0x10
/* 80382040 0037EFA0 B0 1C 00 00 */ sth r0, 0(r28)
/* 80382044 0037EFA4 48 00 00 FC */ b lbl_80382140
lbl_80382048:
/* 80382048 0037EFA8 80 1E 00 04 */ lwz r0, 4(r30)
/* 8038204C 0037EFAC 7C 85 02 14 */ add r4, r5, r0
/* 80382050 0037EFB0 54 80 04 21 */ rlwinm. r0, r4, 0, 0x10, 0x10
/* 80382054 0037EFB4 41 82 00 0C */ beq lbl_80382060
/* 80382058 0037EFB8 38 60 00 01 */ li r3, 1
/* 8038205C 0037EFBC 48 00 00 08 */ b lbl_80382064
lbl_80382060:
/* 80382060 0037EFC0 38 60 00 00 */ li r3, 0
lbl_80382064:
/* 80382064 0037EFC4 54 80 84 3E */ srwi r0, r4, 0x10
/* 80382068 0037EFC8 7C 00 1A 14 */ add r0, r0, r3
/* 8038206C 0037EFCC B0 1C 00 00 */ sth r0, 0(r28)
/* 80382070 0037EFD0 48 00 00 D0 */ b lbl_80382140
lbl_80382074:
/* 80382074 0037EFD4 80 1E 00 04 */ lwz r0, 4(r30)
/* 80382078 0037EFD8 80 7C 00 00 */ lwz r3, 0(r28)
/* 8038207C 0037EFDC 7C 05 02 14 */ add r0, r5, r0
/* 80382080 0037EFE0 54 63 07 9E */ rlwinm r3, r3, 0, 0x1e, 0xf
/* 80382084 0037EFE4 50 03 04 3A */ rlwimi r3, r0, 0, 0x10, 0x1d
/* 80382088 0037EFE8 90 7C 00 00 */ stw r3, 0(r28)
/* 8038208C 0037EFEC 48 00 00 B4 */ b lbl_80382140
lbl_80382090:
/* 80382090 0037EFF0 80 1E 00 04 */ lwz r0, 4(r30)
/* 80382094 0037EFF4 80 7C 00 00 */ lwz r3, 0(r28)
/* 80382098 0037EFF8 7C 05 02 14 */ add r0, r5, r0
/* 8038209C 0037EFFC 7C 1C 00 50 */ subf r0, r28, r0
/* 803820A0 0037F000 54 63 07 8A */ rlwinm r3, r3, 0, 0x1e, 5
/* 803820A4 0037F004 50 03 01 BA */ rlwimi r3, r0, 0, 6, 0x1d
/* 803820A8 0037F008 90 7C 00 00 */ stw r3, 0(r28)
/* 803820AC 0037F00C 48 00 00 94 */ b lbl_80382140
lbl_803820B0:
/* 803820B0 0037F010 80 1E 00 04 */ lwz r0, 4(r30)
/* 803820B4 0037F014 80 7C 00 00 */ lwz r3, 0(r28)
/* 803820B8 0037F018 7C 05 02 14 */ add r0, r5, r0
/* 803820BC 0037F01C 7C 1C 00 50 */ subf r0, r28, r0
/* 803820C0 0037F020 54 63 07 9E */ rlwinm r3, r3, 0, 0x1e, 0xf
/* 803820C4 0037F024 50 03 04 3A */ rlwimi r3, r0, 0, 0x10, 0x1d
/* 803820C8 0037F028 90 7C 00 00 */ stw r3, 0(r28)
/* 803820CC 0037F02C 48 00 00 74 */ b lbl_80382140
lbl_803820D0:
/* 803820D0 0037F030 88 1E 00 03 */ lbz r0, 3(r30)
/* 803820D4 0037F034 28 1D 00 00 */ cmplwi r29, 0
/* 803820D8 0037F038 80 7B 00 10 */ lwz r3, 0x10(r27)
/* 803820DC 0037F03C 54 00 18 38 */ slwi r0, r0, 3
/* 803820E0 0037F040 7C 63 02 14 */ add r3, r3, r0
/* 803820E4 0037F044 80 03 00 00 */ lwz r0, 0(r3)
/* 803820E8 0037F048 3A E3 00 00 */ addi r23, r3, 0
/* 803820EC 0037F04C 54 1C 00 3C */ rlwinm r28, r0, 0, 0, 0x1e
/* 803820F0 0037F050 41 82 00 24 */ beq lbl_80382114
/* 803820F4 0037F054 80 1D 00 00 */ lwz r0, 0(r29)
/* 803820F8 0037F058 80 9D 00 04 */ lwz r4, 4(r29)
/* 803820FC 0037F05C 54 18 00 3C */ rlwinm r24, r0, 0, 0, 0x1e
/* 80382100 0037F060 38 78 00 00 */ addi r3, r24, 0
/* 80382104 0037F064 4B FF C9 AD */ bl DCFlushRange
/* 80382108 0037F068 7F 03 C3 78 */ mr r3, r24
/* 8038210C 0037F06C 80 9D 00 04 */ lwz r4, 4(r29)
/* 80382110 0037F070 4B FF CA 85 */ bl ICInvalidateRange
lbl_80382114:
/* 80382114 0037F074 80 17 00 00 */ lwz r0, 0(r23)
/* 80382118 0037F078 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8038211C 0037F07C 41 82 00 0C */ beq lbl_80382128
/* 80382120 0037F080 7E E0 BB 78 */ mr r0, r23
/* 80382124 0037F084 48 00 00 08 */ b lbl_8038212C
lbl_80382128:
/* 80382128 0037F088 38 00 00 00 */ li r0, 0
lbl_8038212C:
/* 8038212C 0037F08C 7C 1D 03 78 */ mr r29, r0
/* 80382130 0037F090 48 00 00 10 */ b lbl_80382140
lbl_80382134:
/* 80382134 0037F094 38 79 00 00 */ addi r3, r25, 0
/* 80382138 0037F098 4C C6 31 82 */ crclr 6
/* 8038213C 0037F09C 4B FF D8 71 */ bl OSReport
lbl_80382140:
/* 80382140 0037F0A0 3B DE 00 08 */ addi r30, r30, 8
lbl_80382144:
/* 80382144 0037F0A4 88 9E 00 02 */ lbz r4, 2(r30)
/* 80382148 0037F0A8 28 04 00 CB */ cmplwi r4, 0xcb
/* 8038214C 0037F0AC 40 82 FE 08 */ bne lbl_80381F54
/* 80382150 0037F0B0 28 1D 00 00 */ cmplwi r29, 0
/* 80382154 0037F0B4 41 82 00 24 */ beq lbl_80382178
/* 80382158 0037F0B8 80 1D 00 00 */ lwz r0, 0(r29)
/* 8038215C 0037F0BC 80 9D 00 04 */ lwz r4, 4(r29)
/* 80382160 0037F0C0 54 19 00 3C */ rlwinm r25, r0, 0, 0, 0x1e
/* 80382164 0037F0C4 38 79 00 00 */ addi r3, r25, 0
/* 80382168 0037F0C8 4B FF C9 49 */ bl DCFlushRange
/* 8038216C 0037F0CC 7F 23 CB 78 */ mr r3, r25
/* 80382170 0037F0D0 80 9D 00 04 */ lwz r4, 4(r29)
/* 80382174 0037F0D4 4B FF CA 21 */ bl ICInvalidateRange
lbl_80382178:
/* 80382178 0037F0D8 38 60 00 01 */ li r3, 1
lbl_8038217C:
/* 8038217C 0037F0DC BA E1 00 1C */ lmw r23, 0x1c(r1)
/* 80382180 0037F0E0 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80382184 0037F0E4 38 21 00 40 */ addi r1, r1, 0x40
/* 80382188 0037F0E8 7C 08 03 A6 */ mtlr r0
/* 8038218C 0037F0EC 4E 80 00 20 */ blr
.global OSLink
OSLink:
/* 80382190 0037F0F0 7C 08 02 A6 */ mflr r0
/* 80382194 0037F0F4 90 01 00 04 */ stw r0, 4(r1)
/* 80382198 0037F0F8 38 00 00 00 */ li r0, 0
/* 8038219C 0037F0FC 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803821A0 0037F100 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803821A4 0037F104 3B E3 00 00 */ addi r31, r3, 0
/* 803821A8 0037F108 93 C1 00 10 */ stw r30, 0x10(r1)
/* 803821AC 0037F10C 7C 9E 23 78 */ mr r30, r4
/* 803821B0 0037F110 98 03 00 33 */ stb r0, 0x33(r3)
/* 803821B4 0037F114 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 803821B8 0037F118 28 00 00 02 */ cmplwi r0, 2
/* 803821BC 0037F11C 41 81 00 40 */ bgt lbl_803821FC
/* 803821C0 0037F120 41 80 00 44 */ blt lbl_80382204
/* 803821C4 0037F124 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 803821C8 0037F128 28 03 00 00 */ cmplwi r3, 0
/* 803821CC 0037F12C 41 82 00 14 */ beq lbl_803821E0
/* 803821D0 0037F130 7C 1F 1B 96 */ divwu r0, r31, r3
/* 803821D4 0037F134 7C 00 19 D6 */ mullw r0, r0, r3
/* 803821D8 0037F138 7C 00 F8 51 */ subf. r0, r0, r31
/* 803821DC 0037F13C 40 82 00 20 */ bne lbl_803821FC
lbl_803821E0:
/* 803821E0 0037F140 80 7F 00 44 */ lwz r3, 0x44(r31)
/* 803821E4 0037F144 28 03 00 00 */ cmplwi r3, 0
/* 803821E8 0037F148 41 82 00 1C */ beq lbl_80382204
/* 803821EC 0037F14C 7C 1E 1B 96 */ divwu r0, r30, r3
/* 803821F0 0037F150 7C 00 19 D6 */ mullw r0, r0, r3
/* 803821F4 0037F154 7C 00 F0 51 */ subf. r0, r0, r30
/* 803821F8 0037F158 41 82 00 0C */ beq lbl_80382204
lbl_803821FC:
/* 803821FC 0037F15C 38 60 00 00 */ li r3, 0
/* 80382200 0037F160 48 00 01 D4 */ b lbl_803823D4
lbl_80382204:
/* 80382204 0037F164 3C 60 80 00 */ lis r3, 0x800030C8@ha
/* 80382208 0037F168 38 A3 30 C8 */ addi r5, r3, 0x800030C8@l
/* 8038220C 0037F16C 84 85 00 04 */ lwzu r4, 4(r5)
/* 80382210 0037F170 28 04 00 00 */ cmplwi r4, 0
/* 80382214 0037F174 40 82 00 0C */ bne lbl_80382220
/* 80382218 0037F178 93 E3 30 C8 */ stw r31, 0x30c8(r3)
/* 8038221C 0037F17C 48 00 00 08 */ b lbl_80382224
lbl_80382220:
/* 80382220 0037F180 93 E4 00 04 */ stw r31, 4(r4)
lbl_80382224:
/* 80382224 0037F184 90 9F 00 08 */ stw r4, 8(r31)
/* 80382228 0037F188 38 00 00 00 */ li r0, 0
/* 8038222C 0037F18C 38 7E 00 00 */ addi r3, r30, 0
/* 80382230 0037F190 90 1F 00 04 */ stw r0, 4(r31)
/* 80382234 0037F194 38 80 00 00 */ li r4, 0
/* 80382238 0037F198 93 E5 00 00 */ stw r31, 0(r5)
/* 8038223C 0037F19C 80 BF 00 20 */ lwz r5, 0x20(r31)
/* 80382240 0037F1A0 4B C8 11 69 */ bl memset
/* 80382244 0037F1A4 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 80382248 0037F1A8 38 A0 00 01 */ li r5, 1
/* 8038224C 0037F1AC 38 60 00 08 */ li r3, 8
/* 80382250 0037F1B0 7C 00 FA 14 */ add r0, r0, r31
/* 80382254 0037F1B4 90 1F 00 10 */ stw r0, 0x10(r31)
/* 80382258 0037F1B8 80 1F 00 24 */ lwz r0, 0x24(r31)
/* 8038225C 0037F1BC 7C 00 FA 14 */ add r0, r0, r31
/* 80382260 0037F1C0 90 1F 00 24 */ stw r0, 0x24(r31)
/* 80382264 0037F1C4 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 80382268 0037F1C8 7C 00 FA 14 */ add r0, r0, r31
/* 8038226C 0037F1CC 90 1F 00 28 */ stw r0, 0x28(r31)
/* 80382270 0037F1D0 48 00 00 48 */ b lbl_803822B8
lbl_80382274:
/* 80382274 0037F1D4 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 80382278 0037F1D8 7C 80 1A 14 */ add r4, r0, r3
/* 8038227C 0037F1DC 80 04 00 00 */ lwz r0, 0(r4)
/* 80382280 0037F1E0 28 00 00 00 */ cmplwi r0, 0
/* 80382284 0037F1E4 41 82 00 10 */ beq lbl_80382294
/* 80382288 0037F1E8 7C 00 FA 14 */ add r0, r0, r31
/* 8038228C 0037F1EC 90 04 00 00 */ stw r0, 0(r4)
/* 80382290 0037F1F0 48 00 00 20 */ b lbl_803822B0
lbl_80382294:
/* 80382294 0037F1F4 80 04 00 04 */ lwz r0, 4(r4)
/* 80382298 0037F1F8 28 00 00 00 */ cmplwi r0, 0
/* 8038229C 0037F1FC 41 82 00 14 */ beq lbl_803822B0
/* 803822A0 0037F200 98 BF 00 33 */ stb r5, 0x33(r31)
/* 803822A4 0037F204 93 C4 00 00 */ stw r30, 0(r4)
/* 803822A8 0037F208 80 04 00 04 */ lwz r0, 4(r4)
/* 803822AC 0037F20C 7F DE 02 14 */ add r30, r30, r0
lbl_803822B0:
/* 803822B0 0037F210 38 63 00 08 */ addi r3, r3, 8
/* 803822B4 0037F214 38 A5 00 01 */ addi r5, r5, 1
lbl_803822B8:
/* 803822B8 0037F218 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803822BC 0037F21C 7C 05 00 40 */ cmplw r5, r0
/* 803822C0 0037F220 41 80 FF B4 */ blt lbl_80382274
/* 803822C4 0037F224 80 9F 00 28 */ lwz r4, 0x28(r31)
/* 803822C8 0037F228 48 00 00 14 */ b lbl_803822DC
lbl_803822CC:
/* 803822CC 0037F22C 80 04 00 04 */ lwz r0, 4(r4)
/* 803822D0 0037F230 7C 00 FA 14 */ add r0, r0, r31
/* 803822D4 0037F234 90 04 00 04 */ stw r0, 4(r4)
/* 803822D8 0037F238 38 84 00 08 */ addi r4, r4, 8
lbl_803822DC:
/* 803822DC 0037F23C 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 803822E0 0037F240 80 1F 00 2C */ lwz r0, 0x2c(r31)
/* 803822E4 0037F244 7C 03 02 14 */ add r0, r3, r0
/* 803822E8 0037F248 7C 04 00 40 */ cmplw r4, r0
/* 803822EC 0037F24C 41 80 FF E0 */ blt lbl_803822CC
/* 803822F0 0037F250 88 1F 00 30 */ lbz r0, 0x30(r31)
/* 803822F4 0037F254 28 00 00 00 */ cmplwi r0, 0
/* 803822F8 0037F258 41 82 00 20 */ beq lbl_80382318
/* 803822FC 0037F25C 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 80382300 0037F260 54 00 18 38 */ slwi r0, r0, 3
/* 80382304 0037F264 80 9F 00 34 */ lwz r4, 0x34(r31)
/* 80382308 0037F268 7C 03 00 2E */ lwzx r0, r3, r0
/* 8038230C 0037F26C 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 80382310 0037F270 7C 04 02 14 */ add r0, r4, r0
/* 80382314 0037F274 90 1F 00 34 */ stw r0, 0x34(r31)
lbl_80382318:
/* 80382318 0037F278 88 1F 00 31 */ lbz r0, 0x31(r31)
/* 8038231C 0037F27C 28 00 00 00 */ cmplwi r0, 0
/* 80382320 0037F280 41 82 00 20 */ beq lbl_80382340
/* 80382324 0037F284 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 80382328 0037F288 54 00 18 38 */ slwi r0, r0, 3
/* 8038232C 0037F28C 80 9F 00 38 */ lwz r4, 0x38(r31)
/* 80382330 0037F290 7C 03 00 2E */ lwzx r0, r3, r0
/* 80382334 0037F294 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 80382338 0037F298 7C 04 02 14 */ add r0, r4, r0
/* 8038233C 0037F29C 90 1F 00 38 */ stw r0, 0x38(r31)
lbl_80382340:
/* 80382340 0037F2A0 88 1F 00 32 */ lbz r0, 0x32(r31)
/* 80382344 0037F2A4 28 00 00 00 */ cmplwi r0, 0
/* 80382348 0037F2A8 41 82 00 20 */ beq lbl_80382368
/* 8038234C 0037F2AC 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 80382350 0037F2B0 54 00 18 38 */ slwi r0, r0, 3
/* 80382354 0037F2B4 80 9F 00 3C */ lwz r4, 0x3c(r31)
/* 80382358 0037F2B8 7C 03 00 2E */ lwzx r0, r3, r0
/* 8038235C 0037F2BC 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 80382360 0037F2C0 7C 04 02 14 */ add r0, r4, r0
/* 80382364 0037F2C4 90 1F 00 3C */ stw r0, 0x3c(r31)
lbl_80382368:
/* 80382368 0037F2C8 3C 60 80 00 */ lis r3, 0x800030D0@ha
/* 8038236C 0037F2CC 80 63 30 D0 */ lwz r3, 0x800030D0@l(r3)
/* 80382370 0037F2D0 28 03 00 00 */ cmplwi r3, 0
/* 80382374 0037F2D4 41 82 00 10 */ beq lbl_80382384
/* 80382378 0037F2D8 80 1F 00 14 */ lwz r0, 0x14(r31)
/* 8038237C 0037F2DC 7C 00 1A 14 */ add r0, r0, r3
/* 80382380 0037F2E0 90 1F 00 14 */ stw r0, 0x14(r31)
lbl_80382384:
/* 80382384 0037F2E4 38 60 00 00 */ li r3, 0
/* 80382388 0037F2E8 38 9F 00 00 */ addi r4, r31, 0
/* 8038238C 0037F2EC 4B FF FB 49 */ bl Relocate
/* 80382390 0037F2F0 3C 60 80 00 */ lis r3, 0x800030C8@ha
/* 80382394 0037F2F4 83 C3 30 C8 */ lwz r30, 0x800030C8@l(r3)
/* 80382398 0037F2F8 48 00 00 28 */ b lbl_803823C0
lbl_8038239C:
/* 8038239C 0037F2FC 38 7F 00 00 */ addi r3, r31, 0
/* 803823A0 0037F300 38 9E 00 00 */ addi r4, r30, 0
/* 803823A4 0037F304 4B FF FB 31 */ bl Relocate
/* 803823A8 0037F308 7C 1E F8 40 */ cmplw r30, r31
/* 803823AC 0037F30C 41 82 00 10 */ beq lbl_803823BC
/* 803823B0 0037F310 38 7E 00 00 */ addi r3, r30, 0
/* 803823B4 0037F314 38 9F 00 00 */ addi r4, r31, 0
/* 803823B8 0037F318 4B FF FB 1D */ bl Relocate
lbl_803823BC:
/* 803823BC 0037F31C 83 DE 00 04 */ lwz r30, 4(r30)
lbl_803823C0:
/* 803823C0 0037F320 28 1E 00 00 */ cmplwi r30, 0
/* 803823C4 0037F324 40 82 FF D8 */ bne lbl_8038239C
/* 803823C8 0037F328 7F E3 FB 78 */ mr r3, r31
/* 803823CC 0037F32C 4B FF FB 01 */ bl OSNotifyLink
/* 803823D0 0037F330 38 60 00 01 */ li r3, 1
lbl_803823D4:
/* 803823D4 0037F334 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803823D8 0037F338 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803823DC 0037F33C 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803823E0 0037F340 38 21 00 18 */ addi r1, r1, 0x18
/* 803823E4 0037F344 7C 08 03 A6 */ mtlr r0
/* 803823E8 0037F348 4E 80 00 20 */ blr
.global Undo
Undo:
/* 803823EC 0037F34C 7C 08 02 A6 */ mflr r0
/* 803823F0 0037F350 90 01 00 04 */ stw r0, 4(r1)
/* 803823F4 0037F354 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 803823F8 0037F358 BF 21 00 1C */ stmw r25, 0x1c(r1)
/* 803823FC 0037F35C 7C 9C 23 78 */ mr r28, r4
/* 80382400 0037F360 80 83 00 00 */ lwz r4, 0(r3)
/* 80382404 0037F364 80 7C 00 28 */ lwz r3, 0x28(r28)
/* 80382408 0037F368 80 1C 00 2C */ lwz r0, 0x2c(r28)
/* 8038240C 0037F36C 38 A3 00 00 */ addi r5, r3, 0
/* 80382410 0037F370 7C 63 02 14 */ add r3, r3, r0
/* 80382414 0037F374 38 03 00 07 */ addi r0, r3, 7
/* 80382418 0037F378 7C 05 00 50 */ subf r0, r5, r0
/* 8038241C 0037F37C 54 00 E8 FE */ srwi r0, r0, 3
/* 80382420 0037F380 7C 05 18 40 */ cmplw r5, r3
/* 80382424 0037F384 7C 09 03 A6 */ mtctr r0
/* 80382428 0037F388 40 80 00 18 */ bge lbl_80382440
lbl_8038242C:
/* 8038242C 0037F38C 80 05 00 00 */ lwz r0, 0(r5)
/* 80382430 0037F390 7C 00 20 40 */ cmplw r0, r4
/* 80382434 0037F394 41 82 00 14 */ beq lbl_80382448
/* 80382438 0037F398 38 A5 00 08 */ addi r5, r5, 8
/* 8038243C 0037F39C 42 00 FF F0 */ bdnz lbl_8038242C
lbl_80382440:
/* 80382440 0037F3A0 38 60 00 00 */ li r3, 0
/* 80382444 0037F3A4 48 00 01 CC */ b lbl_80382610
lbl_80382448:
/* 80382448 0037F3A8 3C 60 80 3F */ lis r3, lbl_803F22B8@ha
/* 8038244C 0037F3AC 83 E5 00 04 */ lwz r31, 4(r5)
/* 80382450 0037F3B0 3B 63 22 B8 */ addi r27, r3, lbl_803F22B8@l
/* 80382454 0037F3B4 3B C0 00 00 */ li r30, 0
/* 80382458 0037F3B8 48 00 01 80 */ b lbl_803825D8
lbl_8038245C:
/* 8038245C 0037F3BC A0 1F 00 00 */ lhz r0, 0(r31)
/* 80382460 0037F3C0 2C 04 00 06 */ cmpwi r4, 6
/* 80382464 0037F3C4 38 60 00 00 */ li r3, 0
/* 80382468 0037F3C8 7F BD 02 14 */ add r29, r29, r0
/* 8038246C 0037F3CC 41 82 00 A4 */ beq lbl_80382510
/* 80382470 0037F3D0 40 80 00 30 */ bge lbl_803824A0
/* 80382474 0037F3D4 2C 04 00 02 */ cmpwi r4, 2
/* 80382478 0037F3D8 41 82 00 64 */ beq lbl_803824DC
/* 8038247C 0037F3DC 40 80 00 14 */ bge lbl_80382490
/* 80382480 0037F3E0 2C 04 00 00 */ cmpwi r4, 0
/* 80382484 0037F3E4 41 82 01 50 */ beq lbl_803825D4
/* 80382488 0037F3E8 40 80 00 48 */ bge lbl_803824D0
/* 8038248C 0037F3EC 48 00 01 3C */ b lbl_803825C8
lbl_80382490:
/* 80382490 0037F3F0 2C 04 00 04 */ cmpwi r4, 4
/* 80382494 0037F3F4 41 82 00 64 */ beq lbl_803824F8
/* 80382498 0037F3F8 40 80 00 6C */ bge lbl_80382504
/* 8038249C 0037F3FC 48 00 00 50 */ b lbl_803824EC
lbl_803824A0:
/* 803824A0 0037F400 2C 04 00 C9 */ cmpwi r4, 0xc9
/* 803824A4 0037F404 41 82 01 30 */ beq lbl_803825D4
/* 803824A8 0037F408 40 80 00 1C */ bge lbl_803824C4
/* 803824AC 0037F40C 2C 04 00 0A */ cmpwi r4, 0xa
/* 803824B0 0037F410 41 82 00 7C */ beq lbl_8038252C
/* 803824B4 0037F414 41 80 00 68 */ blt lbl_8038251C
/* 803824B8 0037F418 2C 04 00 0E */ cmpwi r4, 0xe
/* 803824BC 0037F41C 40 80 01 0C */ bge lbl_803825C8
/* 803824C0 0037F420 48 00 00 94 */ b lbl_80382554
lbl_803824C4:
/* 803824C4 0037F424 2C 04 00 CB */ cmpwi r4, 0xcb
/* 803824C8 0037F428 40 80 01 00 */ bge lbl_803825C8
/* 803824CC 0037F42C 48 00 00 98 */ b lbl_80382564
lbl_803824D0:
/* 803824D0 0037F430 38 00 00 00 */ li r0, 0
/* 803824D4 0037F434 90 1D 00 00 */ stw r0, 0(r29)
/* 803824D8 0037F438 48 00 00 FC */ b lbl_803825D4
lbl_803824DC:
/* 803824DC 0037F43C 80 1D 00 00 */ lwz r0, 0(r29)
/* 803824E0 0037F440 54 00 07 8A */ rlwinm r0, r0, 0, 0x1e, 5
/* 803824E4 0037F444 90 1D 00 00 */ stw r0, 0(r29)
/* 803824E8 0037F448 48 00 00 EC */ b lbl_803825D4
lbl_803824EC:
/* 803824EC 0037F44C 38 00 00 00 */ li r0, 0
/* 803824F0 0037F450 B0 1D 00 00 */ sth r0, 0(r29)
/* 803824F4 0037F454 48 00 00 E0 */ b lbl_803825D4
lbl_803824F8:
/* 803824F8 0037F458 38 00 00 00 */ li r0, 0
/* 803824FC 0037F45C B0 1D 00 00 */ sth r0, 0(r29)
/* 80382500 0037F460 48 00 00 D4 */ b lbl_803825D4
lbl_80382504:
/* 80382504 0037F464 38 00 00 00 */ li r0, 0
/* 80382508 0037F468 B0 1D 00 00 */ sth r0, 0(r29)
/* 8038250C 0037F46C 48 00 00 C8 */ b lbl_803825D4
lbl_80382510:
/* 80382510 0037F470 38 00 00 00 */ li r0, 0
/* 80382514 0037F474 B0 1D 00 00 */ sth r0, 0(r29)
/* 80382518 0037F478 48 00 00 BC */ b lbl_803825D4
lbl_8038251C:
/* 8038251C 0037F47C 80 1D 00 00 */ lwz r0, 0(r29)
/* 80382520 0037F480 54 00 07 9E */ rlwinm r0, r0, 0, 0x1e, 0xf
/* 80382524 0037F484 90 1D 00 00 */ stw r0, 0(r29)
/* 80382528 0037F488 48 00 00 AC */ b lbl_803825D4
lbl_8038252C:
/* 8038252C 0037F48C 88 1C 00 32 */ lbz r0, 0x32(r28)
/* 80382530 0037F490 28 00 00 00 */ cmplwi r0, 0
/* 80382534 0037F494 41 82 00 0C */ beq lbl_80382540
/* 80382538 0037F498 80 1C 00 3C */ lwz r0, 0x3c(r28)
/* 8038253C 0037F49C 7C 7D 00 50 */ subf r3, r29, r0
lbl_80382540:
/* 80382540 0037F4A0 80 1D 00 00 */ lwz r0, 0(r29)
/* 80382544 0037F4A4 54 00 07 8A */ rlwinm r0, r0, 0, 0x1e, 5
/* 80382548 0037F4A8 50 60 01 BA */ rlwimi r0, r3, 0, 6, 0x1d
/* 8038254C 0037F4AC 90 1D 00 00 */ stw r0, 0(r29)
/* 80382550 0037F4B0 48 00 00 84 */ b lbl_803825D4
lbl_80382554:
/* 80382554 0037F4B4 80 1D 00 00 */ lwz r0, 0(r29)
/* 80382558 0037F4B8 54 00 07 9E */ rlwinm r0, r0, 0, 0x1e, 0xf
/* 8038255C 0037F4BC 90 1D 00 00 */ stw r0, 0(r29)
/* 80382560 0037F4C0 48 00 00 74 */ b lbl_803825D4
lbl_80382564:
/* 80382564 0037F4C4 88 1F 00 03 */ lbz r0, 3(r31)
/* 80382568 0037F4C8 28 1E 00 00 */ cmplwi r30, 0
/* 8038256C 0037F4CC 80 7C 00 10 */ lwz r3, 0x10(r28)
/* 80382570 0037F4D0 54 00 18 38 */ slwi r0, r0, 3
/* 80382574 0037F4D4 7C 63 02 14 */ add r3, r3, r0
/* 80382578 0037F4D8 80 03 00 00 */ lwz r0, 0(r3)
/* 8038257C 0037F4DC 3B 43 00 00 */ addi r26, r3, 0
/* 80382580 0037F4E0 54 1D 00 3C */ rlwinm r29, r0, 0, 0, 0x1e
/* 80382584 0037F4E4 41 82 00 24 */ beq lbl_803825A8
/* 80382588 0037F4E8 80 1E 00 00 */ lwz r0, 0(r30)
/* 8038258C 0037F4EC 80 9E 00 04 */ lwz r4, 4(r30)
/* 80382590 0037F4F0 54 19 00 3C */ rlwinm r25, r0, 0, 0, 0x1e
/* 80382594 0037F4F4 38 79 00 00 */ addi r3, r25, 0
/* 80382598 0037F4F8 4B FF C5 19 */ bl DCFlushRange
/* 8038259C 0037F4FC 7F 23 CB 78 */ mr r3, r25
/* 803825A0 0037F500 80 9E 00 04 */ lwz r4, 4(r30)
/* 803825A4 0037F504 4B FF C5 F1 */ bl ICInvalidateRange
lbl_803825A8:
/* 803825A8 0037F508 80 1A 00 00 */ lwz r0, 0(r26)
/* 803825AC 0037F50C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 803825B0 0037F510 41 82 00 0C */ beq lbl_803825BC
/* 803825B4 0037F514 7F 40 D3 78 */ mr r0, r26
/* 803825B8 0037F518 48 00 00 08 */ b lbl_803825C0
lbl_803825BC:
/* 803825BC 0037F51C 38 00 00 00 */ li r0, 0
lbl_803825C0:
/* 803825C0 0037F520 7C 1E 03 78 */ mr r30, r0
/* 803825C4 0037F524 48 00 00 10 */ b lbl_803825D4
lbl_803825C8:
/* 803825C8 0037F528 38 7B 00 00 */ addi r3, r27, 0
/* 803825CC 0037F52C 4C C6 31 82 */ crclr 6
/* 803825D0 0037F530 4B FF D3 DD */ bl OSReport
lbl_803825D4:
/* 803825D4 0037F534 3B FF 00 08 */ addi r31, r31, 8
lbl_803825D8:
/* 803825D8 0037F538 88 9F 00 02 */ lbz r4, 2(r31)
/* 803825DC 0037F53C 28 04 00 CB */ cmplwi r4, 0xcb
/* 803825E0 0037F540 40 82 FE 7C */ bne lbl_8038245C
/* 803825E4 0037F544 28 1E 00 00 */ cmplwi r30, 0
/* 803825E8 0037F548 41 82 00 24 */ beq lbl_8038260C
/* 803825EC 0037F54C 80 1E 00 00 */ lwz r0, 0(r30)
/* 803825F0 0037F550 80 9E 00 04 */ lwz r4, 4(r30)
/* 803825F4 0037F554 54 1B 00 3C */ rlwinm r27, r0, 0, 0, 0x1e
/* 803825F8 0037F558 38 7B 00 00 */ addi r3, r27, 0
/* 803825FC 0037F55C 4B FF C4 B5 */ bl DCFlushRange
/* 80382600 0037F560 7F 63 DB 78 */ mr r3, r27
/* 80382604 0037F564 80 9E 00 04 */ lwz r4, 4(r30)
/* 80382608 0037F568 4B FF C5 8D */ bl ICInvalidateRange
lbl_8038260C:
/* 8038260C 0037F56C 38 60 00 01 */ li r3, 1
lbl_80382610:
/* 80382610 0037F570 BB 21 00 1C */ lmw r25, 0x1c(r1)
/* 80382614 0037F574 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80382618 0037F578 38 21 00 38 */ addi r1, r1, 0x38
/* 8038261C 0037F57C 7C 08 03 A6 */ mtlr r0
/* 80382620 0037F580 4E 80 00 20 */ blr
.global OSUnlink
OSUnlink:
/* 80382624 0037F584 7C 08 02 A6 */ mflr r0
/* 80382628 0037F588 90 01 00 04 */ stw r0, 4(r1)
/* 8038262C 0037F58C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80382630 0037F590 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80382634 0037F594 7C 7F 1B 78 */ mr r31, r3
/* 80382638 0037F598 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8038263C 0037F59C 80 83 00 04 */ lwz r4, 4(r3)
/* 80382640 0037F5A0 80 A3 00 08 */ lwz r5, 8(r3)
/* 80382644 0037F5A4 28 04 00 00 */ cmplwi r4, 0
/* 80382648 0037F5A8 40 82 00 10 */ bne lbl_80382658
/* 8038264C 0037F5AC 3C 60 80 00 */ lis r3, 0x800030CC@ha
/* 80382650 0037F5B0 90 A3 30 CC */ stw r5, 0x800030CC@l(r3)
/* 80382654 0037F5B4 48 00 00 08 */ b lbl_8038265C
lbl_80382658:
/* 80382658 0037F5B8 90 A4 00 08 */ stw r5, 8(r4)
lbl_8038265C:
/* 8038265C 0037F5BC 28 05 00 00 */ cmplwi r5, 0
/* 80382660 0037F5C0 40 82 00 10 */ bne lbl_80382670
/* 80382664 0037F5C4 3C 60 80 00 */ lis r3, 0x800030C8@ha
/* 80382668 0037F5C8 90 83 30 C8 */ stw r4, 0x800030C8@l(r3)
/* 8038266C 0037F5CC 48 00 00 08 */ b lbl_80382674
lbl_80382670:
/* 80382670 0037F5D0 90 85 00 04 */ stw r4, 4(r5)
lbl_80382674:
/* 80382674 0037F5D4 3C 60 80 00 */ lis r3, 0x800030C8@ha
/* 80382678 0037F5D8 83 C3 30 C8 */ lwz r30, 0x800030C8@l(r3)
/* 8038267C 0037F5DC 48 00 00 14 */ b lbl_80382690
lbl_80382680:
/* 80382680 0037F5E0 38 7F 00 00 */ addi r3, r31, 0
/* 80382684 0037F5E4 38 9E 00 00 */ addi r4, r30, 0
/* 80382688 0037F5E8 4B FF FD 65 */ bl Undo
/* 8038268C 0037F5EC 83 DE 00 04 */ lwz r30, 4(r30)
lbl_80382690:
/* 80382690 0037F5F0 28 1E 00 00 */ cmplwi r30, 0
/* 80382694 0037F5F4 40 82 FF EC */ bne lbl_80382680
/* 80382698 0037F5F8 7F E3 FB 78 */ mr r3, r31
/* 8038269C 0037F5FC 4B FF F8 35 */ bl OSNotifyUnlink
/* 803826A0 0037F600 3C 60 80 00 */ lis r3, 0x800030D0@ha
/* 803826A4 0037F604 80 63 30 D0 */ lwz r3, 0x800030D0@l(r3)
/* 803826A8 0037F608 28 03 00 00 */ cmplwi r3, 0
/* 803826AC 0037F60C 41 82 00 10 */ beq lbl_803826BC
/* 803826B0 0037F610 80 1F 00 14 */ lwz r0, 0x14(r31)
/* 803826B4 0037F614 7C 03 00 50 */ subf r0, r3, r0
/* 803826B8 0037F618 90 1F 00 14 */ stw r0, 0x14(r31)
lbl_803826BC:
/* 803826BC 0037F61C 88 1F 00 30 */ lbz r0, 0x30(r31)
/* 803826C0 0037F620 28 00 00 00 */ cmplwi r0, 0
/* 803826C4 0037F624 41 82 00 20 */ beq lbl_803826E4
/* 803826C8 0037F628 80 9F 00 10 */ lwz r4, 0x10(r31)
/* 803826CC 0037F62C 54 03 18 38 */ slwi r3, r0, 3
/* 803826D0 0037F630 80 1F 00 34 */ lwz r0, 0x34(r31)
/* 803826D4 0037F634 7C 64 18 2E */ lwzx r3, r4, r3
/* 803826D8 0037F638 54 63 00 3C */ rlwinm r3, r3, 0, 0, 0x1e
/* 803826DC 0037F63C 7C 03 00 50 */ subf r0, r3, r0
/* 803826E0 0037F640 90 1F 00 34 */ stw r0, 0x34(r31)
lbl_803826E4:
/* 803826E4 0037F644 88 1F 00 31 */ lbz r0, 0x31(r31)
/* 803826E8 0037F648 28 00 00 00 */ cmplwi r0, 0
/* 803826EC 0037F64C 41 82 00 20 */ beq lbl_8038270C
/* 803826F0 0037F650 80 9F 00 10 */ lwz r4, 0x10(r31)
/* 803826F4 0037F654 54 03 18 38 */ slwi r3, r0, 3
/* 803826F8 0037F658 80 1F 00 38 */ lwz r0, 0x38(r31)
/* 803826FC 0037F65C 7C 64 18 2E */ lwzx r3, r4, r3
/* 80382700 0037F660 54 63 00 3C */ rlwinm r3, r3, 0, 0, 0x1e
/* 80382704 0037F664 7C 03 00 50 */ subf r0, r3, r0
/* 80382708 0037F668 90 1F 00 38 */ stw r0, 0x38(r31)
lbl_8038270C:
/* 8038270C 0037F66C 88 1F 00 32 */ lbz r0, 0x32(r31)
/* 80382710 0037F670 28 00 00 00 */ cmplwi r0, 0
/* 80382714 0037F674 41 82 00 20 */ beq lbl_80382734
/* 80382718 0037F678 80 9F 00 10 */ lwz r4, 0x10(r31)
/* 8038271C 0037F67C 54 03 18 38 */ slwi r3, r0, 3
/* 80382720 0037F680 80 1F 00 3C */ lwz r0, 0x3c(r31)
/* 80382724 0037F684 7C 64 18 2E */ lwzx r3, r4, r3
/* 80382728 0037F688 54 63 00 3C */ rlwinm r3, r3, 0, 0, 0x1e
/* 8038272C 0037F68C 7C 03 00 50 */ subf r0, r3, r0
/* 80382730 0037F690 90 1F 00 3C */ stw r0, 0x3c(r31)
lbl_80382734:
/* 80382734 0037F694 80 9F 00 28 */ lwz r4, 0x28(r31)
/* 80382738 0037F698 48 00 00 14 */ b lbl_8038274C
lbl_8038273C:
/* 8038273C 0037F69C 80 04 00 04 */ lwz r0, 4(r4)
/* 80382740 0037F6A0 7C 1F 00 50 */ subf r0, r31, r0
/* 80382744 0037F6A4 90 04 00 04 */ stw r0, 4(r4)
/* 80382748 0037F6A8 38 84 00 08 */ addi r4, r4, 8
lbl_8038274C:
/* 8038274C 0037F6AC 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 80382750 0037F6B0 80 1F 00 2C */ lwz r0, 0x2c(r31)
/* 80382754 0037F6B4 7C 03 02 14 */ add r0, r3, r0
/* 80382758 0037F6B8 7C 04 00 40 */ cmplw r4, r0
/* 8038275C 0037F6BC 41 80 FF E0 */ blt lbl_8038273C
/* 80382760 0037F6C0 38 C0 00 01 */ li r6, 1
/* 80382764 0037F6C4 38 A0 00 08 */ li r5, 8
/* 80382768 0037F6C8 38 60 00 00 */ li r3, 0
/* 8038276C 0037F6CC 48 00 00 40 */ b lbl_803827AC
lbl_80382770:
/* 80382770 0037F6D0 88 1F 00 33 */ lbz r0, 0x33(r31)
/* 80382774 0037F6D4 80 9F 00 10 */ lwz r4, 0x10(r31)
/* 80382778 0037F6D8 7C 06 00 40 */ cmplw r6, r0
/* 8038277C 0037F6DC 7C 84 2A 14 */ add r4, r4, r5
/* 80382780 0037F6E0 40 82 00 10 */ bne lbl_80382790
/* 80382784 0037F6E4 98 7F 00 33 */ stb r3, 0x33(r31)
/* 80382788 0037F6E8 90 64 00 00 */ stw r3, 0(r4)
/* 8038278C 0037F6EC 48 00 00 18 */ b lbl_803827A4
lbl_80382790:
/* 80382790 0037F6F0 80 04 00 00 */ lwz r0, 0(r4)
/* 80382794 0037F6F4 28 00 00 00 */ cmplwi r0, 0
/* 80382798 0037F6F8 41 82 00 0C */ beq lbl_803827A4
/* 8038279C 0037F6FC 7C 1F 00 50 */ subf r0, r31, r0
/* 803827A0 0037F700 90 04 00 00 */ stw r0, 0(r4)
lbl_803827A4:
/* 803827A4 0037F704 38 A5 00 08 */ addi r5, r5, 8
/* 803827A8 0037F708 38 C6 00 01 */ addi r6, r6, 1
lbl_803827AC:
/* 803827AC 0037F70C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803827B0 0037F710 7C 06 00 40 */ cmplw r6, r0
/* 803827B4 0037F714 41 80 FF BC */ blt lbl_80382770
/* 803827B8 0037F718 80 1F 00 24 */ lwz r0, 0x24(r31)
/* 803827BC 0037F71C 38 60 00 01 */ li r3, 1
/* 803827C0 0037F720 7C 1F 00 50 */ subf r0, r31, r0
/* 803827C4 0037F724 90 1F 00 24 */ stw r0, 0x24(r31)
/* 803827C8 0037F728 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 803827CC 0037F72C 7C 1F 00 50 */ subf r0, r31, r0
/* 803827D0 0037F730 90 1F 00 28 */ stw r0, 0x28(r31)
/* 803827D4 0037F734 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 803827D8 0037F738 7C 1F 00 50 */ subf r0, r31, r0
/* 803827DC 0037F73C 90 1F 00 10 */ stw r0, 0x10(r31)
/* 803827E0 0037F740 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803827E4 0037F744 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803827E8 0037F748 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803827EC 0037F74C 38 21 00 18 */ addi r1, r1, 0x18
/* 803827F0 0037F750 7C 08 03 A6 */ mtlr r0
/* 803827F4 0037F754 4E 80 00 20 */ blr
.global __OSModuleInit
__OSModuleInit:
/* 803827F8 0037F758 3C 80 80 00 */ lis r4, 0x800030CC@ha
/* 803827FC 0037F75C 38 00 00 00 */ li r0, 0
/* 80382800 0037F760 90 04 30 CC */ stw r0, 0x800030CC@l(r4)
/* 80382804 0037F764 90 04 30 C8 */ stw r0, 0x30c8(r4)
/* 80382808 0037F768 90 04 30 D0 */ stw r0, 0x30d0(r4)
/* 8038280C 0037F76C 4E 80 00 20 */ blr

416
asm/Dolphin/OS/OSMemory.s Normal file
View File

@ -0,0 +1,416 @@
.include "macros.inc"
.section .text, "ax"
.global sub_80382810
sub_80382810:
/* 80382810 0037F770 7C 08 02 A6 */ mflr r0
/* 80382814 0037F774 90 01 00 04 */ stw r0, 4(r1)
/* 80382818 0037F778 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8038281C 0037F77C 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80382820 0037F780 3B E5 00 00 */ addi r31, r5, 0
/* 80382824 0037F784 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80382828 0037F788 3B C4 00 00 */ addi r30, r4, 0
/* 8038282C 0037F78C 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80382830 0037F790 3B A3 00 00 */ addi r29, r3, 0
/* 80382834 0037F794 48 00 1D 91 */ bl OSInitThreadQueue
/* 80382838 0037F798 38 7D 00 08 */ addi r3, r29, 8
/* 8038283C 0037F79C 48 00 1D 89 */ bl OSInitThreadQueue
/* 80382840 0037F7A0 93 DD 00 10 */ stw r30, 0x10(r29)
/* 80382844 0037F7A4 38 00 00 00 */ li r0, 0
/* 80382848 0037F7A8 93 FD 00 14 */ stw r31, 0x14(r29)
/* 8038284C 0037F7AC 90 1D 00 18 */ stw r0, 0x18(r29)
/* 80382850 0037F7B0 90 1D 00 1C */ stw r0, 0x1c(r29)
/* 80382854 0037F7B4 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80382858 0037F7B8 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8038285C 0037F7BC 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80382860 0037F7C0 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80382864 0037F7C4 38 21 00 28 */ addi r1, r1, 0x28
/* 80382868 0037F7C8 7C 08 03 A6 */ mtlr r0
/* 8038286C 0037F7CC 4E 80 00 20 */ blr
.global sub_80382870
sub_80382870:
/* 80382870 0037F7D0 7C 08 02 A6 */ mflr r0
/* 80382874 0037F7D4 90 01 00 04 */ stw r0, 4(r1)
/* 80382878 0037F7D8 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8038287C 0037F7DC 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80382880 0037F7E0 3B E5 00 00 */ addi r31, r5, 0
/* 80382884 0037F7E4 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80382888 0037F7E8 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 8038288C 0037F7EC 3B A4 00 00 */ addi r29, r4, 0
/* 80382890 0037F7F0 93 81 00 18 */ stw r28, 0x18(r1)
/* 80382894 0037F7F4 3B 83 00 00 */ addi r28, r3, 0
/* 80382898 0037F7F8 4B FF ED C9 */ bl OSDisableInterrupts
/* 8038289C 0037F7FC 3B C3 00 00 */ addi r30, r3, 0
/* 803828A0 0037F800 57 FF 07 FE */ clrlwi r31, r31, 0x1f
/* 803828A4 0037F804 48 00 00 24 */ b lbl_803828C8
lbl_803828A8:
/* 803828A8 0037F808 2C 1F 00 00 */ cmpwi r31, 0
/* 803828AC 0037F80C 40 82 00 14 */ bne lbl_803828C0
/* 803828B0 0037F810 7F C3 F3 78 */ mr r3, r30
/* 803828B4 0037F814 4B FF ED D5 */ bl OSRestoreInterrupts
/* 803828B8 0037F818 38 60 00 00 */ li r3, 0
/* 803828BC 0037F81C 48 00 00 5C */ b lbl_80382918
lbl_803828C0:
/* 803828C0 0037F820 7F 83 E3 78 */ mr r3, r28
/* 803828C4 0037F824 48 00 28 49 */ bl OSSleepThread
lbl_803828C8:
/* 803828C8 0037F828 80 DC 00 14 */ lwz r6, 0x14(r28)
/* 803828CC 0037F82C 80 9C 00 1C */ lwz r4, 0x1c(r28)
/* 803828D0 0037F830 7C 06 20 00 */ cmpw r6, r4
/* 803828D4 0037F834 40 81 FF D4 */ ble lbl_803828A8
/* 803828D8 0037F838 80 1C 00 18 */ lwz r0, 0x18(r28)
/* 803828DC 0037F83C 38 7C 00 08 */ addi r3, r28, 8
/* 803828E0 0037F840 80 BC 00 10 */ lwz r5, 0x10(r28)
/* 803828E4 0037F844 7C 80 22 14 */ add r4, r0, r4
/* 803828E8 0037F848 7C 04 33 D6 */ divw r0, r4, r6
/* 803828EC 0037F84C 7C 00 31 D6 */ mullw r0, r0, r6
/* 803828F0 0037F850 7C 00 20 50 */ subf r0, r0, r4
/* 803828F4 0037F854 54 00 10 3A */ slwi r0, r0, 2
/* 803828F8 0037F858 7F A5 01 2E */ stwx r29, r5, r0
/* 803828FC 0037F85C 80 9C 00 1C */ lwz r4, 0x1c(r28)
/* 80382900 0037F860 38 04 00 01 */ addi r0, r4, 1
/* 80382904 0037F864 90 1C 00 1C */ stw r0, 0x1c(r28)
/* 80382908 0037F868 48 00 28 F1 */ bl OSWakeupThread
/* 8038290C 0037F86C 7F C3 F3 78 */ mr r3, r30
/* 80382910 0037F870 4B FF ED 79 */ bl OSRestoreInterrupts
/* 80382914 0037F874 38 60 00 01 */ li r3, 1
lbl_80382918:
/* 80382918 0037F878 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8038291C 0037F87C 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80382920 0037F880 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80382924 0037F884 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80382928 0037F888 83 81 00 18 */ lwz r28, 0x18(r1)
/* 8038292C 0037F88C 38 21 00 28 */ addi r1, r1, 0x28
/* 80382930 0037F890 7C 08 03 A6 */ mtlr r0
/* 80382934 0037F894 4E 80 00 20 */ blr
.global sub_80382938
sub_80382938:
/* 80382938 0037F898 7C 08 02 A6 */ mflr r0
/* 8038293C 0037F89C 90 01 00 04 */ stw r0, 4(r1)
/* 80382940 0037F8A0 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80382944 0037F8A4 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80382948 0037F8A8 3B E3 00 00 */ addi r31, r3, 0
/* 8038294C 0037F8AC 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80382950 0037F8B0 3B C5 00 00 */ addi r30, r5, 0
/* 80382954 0037F8B4 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80382958 0037F8B8 93 81 00 18 */ stw r28, 0x18(r1)
/* 8038295C 0037F8BC 3B 84 00 00 */ addi r28, r4, 0
/* 80382960 0037F8C0 4B FF ED 01 */ bl OSDisableInterrupts
/* 80382964 0037F8C4 3B A3 00 00 */ addi r29, r3, 0
/* 80382968 0037F8C8 57 DE 07 FE */ clrlwi r30, r30, 0x1f
/* 8038296C 0037F8CC 48 00 00 24 */ b lbl_80382990
lbl_80382970:
/* 80382970 0037F8D0 2C 1E 00 00 */ cmpwi r30, 0
/* 80382974 0037F8D4 40 82 00 14 */ bne lbl_80382988
/* 80382978 0037F8D8 7F A3 EB 78 */ mr r3, r29
/* 8038297C 0037F8DC 4B FF ED 0D */ bl OSRestoreInterrupts
/* 80382980 0037F8E0 38 60 00 00 */ li r3, 0
/* 80382984 0037F8E4 48 00 00 70 */ b lbl_803829F4
lbl_80382988:
/* 80382988 0037F8E8 38 7F 00 08 */ addi r3, r31, 8
/* 8038298C 0037F8EC 48 00 27 81 */ bl OSSleepThread
lbl_80382990:
/* 80382990 0037F8F0 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 80382994 0037F8F4 2C 00 00 00 */ cmpwi r0, 0
/* 80382998 0037F8F8 41 82 FF D8 */ beq lbl_80382970
/* 8038299C 0037F8FC 28 1C 00 00 */ cmplwi r28, 0
/* 803829A0 0037F900 41 82 00 18 */ beq lbl_803829B8
/* 803829A4 0037F904 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 803829A8 0037F908 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 803829AC 0037F90C 54 00 10 3A */ slwi r0, r0, 2
/* 803829B0 0037F910 7C 03 00 2E */ lwzx r0, r3, r0
/* 803829B4 0037F914 90 1C 00 00 */ stw r0, 0(r28)
lbl_803829B8:
/* 803829B8 0037F918 80 BF 00 18 */ lwz r5, 0x18(r31)
/* 803829BC 0037F91C 7F E3 FB 78 */ mr r3, r31
/* 803829C0 0037F920 80 9F 00 14 */ lwz r4, 0x14(r31)
/* 803829C4 0037F924 38 A5 00 01 */ addi r5, r5, 1
/* 803829C8 0037F928 7C 05 23 D6 */ divw r0, r5, r4
/* 803829CC 0037F92C 7C 00 21 D6 */ mullw r0, r0, r4
/* 803829D0 0037F930 7C 00 28 50 */ subf r0, r0, r5
/* 803829D4 0037F934 90 1F 00 18 */ stw r0, 0x18(r31)
/* 803829D8 0037F938 80 9F 00 1C */ lwz r4, 0x1c(r31)
/* 803829DC 0037F93C 38 04 FF FF */ addi r0, r4, -1
/* 803829E0 0037F940 90 1F 00 1C */ stw r0, 0x1c(r31)
/* 803829E4 0037F944 48 00 28 15 */ bl OSWakeupThread
/* 803829E8 0037F948 7F A3 EB 78 */ mr r3, r29
/* 803829EC 0037F94C 4B FF EC 9D */ bl OSRestoreInterrupts
/* 803829F0 0037F950 38 60 00 01 */ li r3, 1
lbl_803829F4:
/* 803829F4 0037F954 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803829F8 0037F958 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 803829FC 0037F95C 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80382A00 0037F960 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80382A04 0037F964 83 81 00 18 */ lwz r28, 0x18(r1)
/* 80382A08 0037F968 38 21 00 28 */ addi r1, r1, 0x28
/* 80382A0C 0037F96C 7C 08 03 A6 */ mtlr r0
/* 80382A10 0037F970 4E 80 00 20 */ blr
.include "macros.inc"
.section .text, "ax"
.global OnReset
OnReset:
/* 80382A14 0037F974 7C 08 02 A6 */ mflr r0
/* 80382A18 0037F978 2C 03 00 00 */ cmpwi r3, 0
/* 80382A1C 0037F97C 90 01 00 04 */ stw r0, 4(r1)
/* 80382A20 0037F980 94 21 FF F8 */ stwu r1, -8(r1)
/* 80382A24 0037F984 41 82 00 18 */ beq lbl_80382A3C
/* 80382A28 0037F988 3C 60 CC 00 */ lis r3, 0xCC004010@ha
/* 80382A2C 0037F98C 38 00 00 FF */ li r0, 0xff
/* 80382A30 0037F990 B0 03 40 10 */ sth r0, 0xCC004010@l(r3)
/* 80382A34 0037F994 3C 60 F0 00 */ lis r3, 0xf000
/* 80382A38 0037F998 4B FF EF F1 */ bl __OSMaskInterrupts
lbl_80382A3C:
/* 80382A3C 0037F99C 38 60 00 01 */ li r3, 1
/* 80382A40 0037F9A0 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80382A44 0037F9A4 38 21 00 08 */ addi r1, r1, 8
/* 80382A48 0037F9A8 7C 08 03 A6 */ mtlr r0
/* 80382A4C 0037F9AC 4E 80 00 20 */ blr
.global MEMIntrruptHandler
MEMIntrruptHandler:
/* 80382A50 0037F9B0 7C 08 02 A6 */ mflr r0
/* 80382A54 0037F9B4 3C 60 CC 00 */ lis r3, 0xCC004000@ha
/* 80382A58 0037F9B8 90 01 00 04 */ stw r0, 4(r1)
/* 80382A5C 0037F9BC 39 03 40 00 */ addi r8, r3, 0xCC004000@l
/* 80382A60 0037F9C0 38 00 00 00 */ li r0, 0
/* 80382A64 0037F9C4 94 21 FF F8 */ stwu r1, -8(r1)
/* 80382A68 0037F9C8 A0 E3 40 24 */ lhz r7, 0x4024(r3)
/* 80382A6C 0037F9CC 3C 60 80 54 */ lis r3, lbl_80541250@ha
/* 80382A70 0037F9D0 A0 C8 00 22 */ lhz r6, 0x22(r8)
/* 80382A74 0037F9D4 38 63 12 50 */ addi r3, r3, lbl_80541250@l
/* 80382A78 0037F9D8 A0 A8 00 1E */ lhz r5, 0x1e(r8)
/* 80382A7C 0037F9DC 50 E6 81 9E */ rlwimi r6, r7, 0x10, 6, 0xf
/* 80382A80 0037F9E0 B0 08 00 20 */ sth r0, 0x20(r8)
/* 80382A84 0037F9E4 81 83 00 3C */ lwz r12, 0x3c(r3)
/* 80382A88 0037F9E8 28 0C 00 00 */ cmplwi r12, 0
/* 80382A8C 0037F9EC 41 82 00 18 */ beq lbl_80382AA4
/* 80382A90 0037F9F0 7D 88 03 A6 */ mtlr r12
/* 80382A94 0037F9F4 38 60 00 0F */ li r3, 0xf
/* 80382A98 0037F9F8 4C C6 31 82 */ crclr 6
/* 80382A9C 0037F9FC 4E 80 00 21 */ blrl
/* 80382AA0 0037FA00 48 00 00 0C */ b lbl_80382AAC
lbl_80382AA4:
/* 80382AA4 0037FA04 38 60 00 0F */ li r3, 0xf
/* 80382AA8 0037FA08 4B FF D2 C9 */ bl __OSUnhandledException
lbl_80382AAC:
/* 80382AAC 0037FA0C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80382AB0 0037FA10 38 21 00 08 */ addi r1, r1, 8
/* 80382AB4 0037FA14 7C 08 03 A6 */ mtlr r0
/* 80382AB8 0037FA18 4E 80 00 20 */ blr
.global OSProtectRange
OSProtectRange:
/* 80382ABC 0037FA1C 7C 08 02 A6 */ mflr r0
/* 80382AC0 0037FA20 90 01 00 04 */ stw r0, 4(r1)
/* 80382AC4 0037FA24 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80382AC8 0037FA28 BF 41 00 18 */ stmw r26, 0x18(r1)
/* 80382ACC 0037FA2C 3B 43 00 00 */ addi r26, r3, 0
/* 80382AD0 0037FA30 28 1A 00 04 */ cmplwi r26, 4
/* 80382AD4 0037FA34 40 80 00 98 */ bge lbl_80382B6C
/* 80382AD8 0037FA38 7C 64 2A 14 */ add r3, r4, r5
/* 80382ADC 0037FA3C 38 03 03 FF */ addi r0, r3, 0x3ff
/* 80382AE0 0037FA40 54 9B 00 2A */ rlwinm r27, r4, 0, 0, 0x15
/* 80382AE4 0037FA44 54 1D 00 2A */ rlwinm r29, r0, 0, 0, 0x15
/* 80382AE8 0037FA48 38 7B 00 00 */ addi r3, r27, 0
/* 80382AEC 0037FA4C 54 DF 07 BE */ clrlwi r31, r6, 0x1e
/* 80382AF0 0037FA50 7C 9B E8 50 */ subf r4, r27, r29
/* 80382AF4 0037FA54 4B FF BF BD */ bl DCFlushRange
/* 80382AF8 0037FA58 4B FF EB 69 */ bl OSDisableInterrupts
/* 80382AFC 0037FA5C 3C 00 80 00 */ lis r0, 0x8000
/* 80382B00 0037FA60 7C 1E D4 30 */ srw r30, r0, r26
/* 80382B04 0037FA64 3B 83 00 00 */ addi r28, r3, 0
/* 80382B08 0037FA68 38 7E 00 00 */ addi r3, r30, 0
/* 80382B0C 0037FA6C 4B FF EF 1D */ bl __OSMaskInterrupts
/* 80382B10 0037FA70 3C 60 CC 00 */ lis r3, 0xCC004000@ha
/* 80382B14 0037FA74 38 A3 40 00 */ addi r5, r3, 0xCC004000@l
/* 80382B18 0037FA78 57 43 10 3A */ slwi r3, r26, 2
/* 80382B1C 0037FA7C 57 60 B4 3E */ rlwinm r0, r27, 0x16, 0x10, 0x1f
/* 80382B20 0037FA80 7C 05 1B 2E */ sthx r0, r5, r3
/* 80382B24 0037FA84 57 A4 B4 3E */ rlwinm r4, r29, 0x16, 0x10, 0x1f
/* 80382B28 0037FA88 7C 65 1A 14 */ add r3, r5, r3
/* 80382B2C 0037FA8C B0 83 00 02 */ sth r4, 2(r3)
/* 80382B30 0037FA90 38 85 00 10 */ addi r4, r5, 0x10
/* 80382B34 0037FA94 57 46 08 3C */ slwi r6, r26, 1
/* 80382B38 0037FA98 38 00 00 03 */ li r0, 3
/* 80382B3C 0037FA9C A0 A5 00 10 */ lhz r5, 0x10(r5)
/* 80382B40 0037FAA0 7C 03 30 30 */ slw r3, r0, r6
/* 80382B44 0037FAA4 7F E0 30 30 */ slw r0, r31, r6
/* 80382B48 0037FAA8 7C A5 18 78 */ andc r5, r5, r3
/* 80382B4C 0037FAAC 7C A5 03 78 */ or r5, r5, r0
/* 80382B50 0037FAB0 28 1F 00 03 */ cmplwi r31, 3
/* 80382B54 0037FAB4 B0 A4 00 00 */ sth r5, 0(r4)
/* 80382B58 0037FAB8 41 82 00 0C */ beq lbl_80382B64
/* 80382B5C 0037FABC 7F C3 F3 78 */ mr r3, r30
/* 80382B60 0037FAC0 4B FF EF 51 */ bl __OSUnmaskInterrupts
lbl_80382B64:
/* 80382B64 0037FAC4 7F 83 E3 78 */ mr r3, r28
/* 80382B68 0037FAC8 4B FF EB 21 */ bl OSRestoreInterrupts
lbl_80382B6C:
/* 80382B6C 0037FACC BB 41 00 18 */ lmw r26, 0x18(r1)
/* 80382B70 0037FAD0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80382B74 0037FAD4 38 21 00 30 */ addi r1, r1, 0x30
/* 80382B78 0037FAD8 7C 08 03 A6 */ mtlr r0
/* 80382B7C 0037FADC 4E 80 00 20 */ blr
.global Config24MB
Config24MB:
/* 80382B80 0037FAE0 38 E0 00 00 */ li r7, 0
/* 80382B84 0037FAE4 3C 80 00 00 */ lis r4, 0x00000002@ha
/* 80382B88 0037FAE8 38 84 00 02 */ addi r4, r4, 0x00000002@l
/* 80382B8C 0037FAEC 3C 60 80 00 */ lis r3, 0x800001FF@ha
/* 80382B90 0037FAF0 38 63 01 FF */ addi r3, r3, 0x800001FF@l
/* 80382B94 0037FAF4 3C C0 01 00 */ lis r6, 0x01000002@ha
/* 80382B98 0037FAF8 38 C6 00 02 */ addi r6, r6, 0x01000002@l
/* 80382B9C 0037FAFC 3C A0 81 00 */ lis r5, 0x810000FF@ha
/* 80382BA0 0037FB00 38 A5 00 FF */ addi r5, r5, 0x810000FF@l
/* 80382BA4 0037FB04 4C 00 01 2C */ isync
/* 80382BA8 0037FB08 7C F8 83 A6 */ mtdbatu 0, r7
/* 80382BAC 0037FB0C 7C 99 83 A6 */ mtdbatl 0, r4
/* 80382BB0 0037FB10 7C 78 83 A6 */ mtdbatu 0, r3
/* 80382BB4 0037FB14 4C 00 01 2C */ isync
/* 80382BB8 0037FB18 7C F0 83 A6 */ mtibatu 0, r7
/* 80382BBC 0037FB1C 7C 91 83 A6 */ mtibatl 0, r4
/* 80382BC0 0037FB20 7C 70 83 A6 */ mtibatu 0, r3
/* 80382BC4 0037FB24 4C 00 01 2C */ isync
/* 80382BC8 0037FB28 7C FC 83 A6 */ mtdbatu 2, r7
/* 80382BCC 0037FB2C 7C DD 83 A6 */ mtdbatl 2, r6
/* 80382BD0 0037FB30 7C BC 83 A6 */ mtdbatu 2, r5
/* 80382BD4 0037FB34 4C 00 01 2C */ isync
/* 80382BD8 0037FB38 7C F4 83 A6 */ mtibatu 2, r7
/* 80382BDC 0037FB3C 7C D5 83 A6 */ mtibatl 2, r6
/* 80382BE0 0037FB40 7C B4 83 A6 */ mtibatu 2, r5
/* 80382BE4 0037FB44 4C 00 01 2C */ isync
/* 80382BE8 0037FB48 7C 60 00 A6 */ mfmsr r3
/* 80382BEC 0037FB4C 60 63 00 30 */ ori r3, r3, 0x30
/* 80382BF0 0037FB50 7C 7B 03 A6 */ mtspr 0x1b, r3
/* 80382BF4 0037FB54 7C 68 02 A6 */ mflr r3
/* 80382BF8 0037FB58 7C 7A 03 A6 */ mtspr 0x1a, r3
/* 80382BFC 0037FB5C 4C 00 00 64 */ rfi
.global Config48MB
Config48MB:
/* 80382C00 0037FB60 38 E0 00 00 */ li r7, 0
/* 80382C04 0037FB64 3C 80 00 00 */ lis r4, 0x00000002@ha
/* 80382C08 0037FB68 38 84 00 02 */ addi r4, r4, 0x00000002@l
/* 80382C0C 0037FB6C 3C 60 80 00 */ lis r3, 0x800003FF@ha
/* 80382C10 0037FB70 38 63 03 FF */ addi r3, r3, 0x800003FF@l
/* 80382C14 0037FB74 3C C0 02 00 */ lis r6, 0x02000002@ha
/* 80382C18 0037FB78 38 C6 00 02 */ addi r6, r6, 0x02000002@l
/* 80382C1C 0037FB7C 3C A0 82 00 */ lis r5, 0x820001FF@ha
/* 80382C20 0037FB80 38 A5 01 FF */ addi r5, r5, 0x820001FF@l
/* 80382C24 0037FB84 4C 00 01 2C */ isync
/* 80382C28 0037FB88 7C F8 83 A6 */ mtdbatu 0, r7
/* 80382C2C 0037FB8C 7C 99 83 A6 */ mtdbatl 0, r4
/* 80382C30 0037FB90 7C 78 83 A6 */ mtdbatu 0, r3
/* 80382C34 0037FB94 4C 00 01 2C */ isync
/* 80382C38 0037FB98 7C F0 83 A6 */ mtibatu 0, r7
/* 80382C3C 0037FB9C 7C 91 83 A6 */ mtibatl 0, r4
/* 80382C40 0037FBA0 7C 70 83 A6 */ mtibatu 0, r3
/* 80382C44 0037FBA4 4C 00 01 2C */ isync
/* 80382C48 0037FBA8 7C FC 83 A6 */ mtdbatu 2, r7
/* 80382C4C 0037FBAC 7C DD 83 A6 */ mtdbatl 2, r6
/* 80382C50 0037FBB0 7C BC 83 A6 */ mtdbatu 2, r5
/* 80382C54 0037FBB4 4C 00 01 2C */ isync
/* 80382C58 0037FBB8 7C F4 83 A6 */ mtibatu 2, r7
/* 80382C5C 0037FBBC 7C D5 83 A6 */ mtibatl 2, r6
/* 80382C60 0037FBC0 7C B4 83 A6 */ mtibatu 2, r5
/* 80382C64 0037FBC4 4C 00 01 2C */ isync
/* 80382C68 0037FBC8 7C 60 00 A6 */ mfmsr r3
/* 80382C6C 0037FBCC 60 63 00 30 */ ori r3, r3, 0x30
/* 80382C70 0037FBD0 7C 7B 03 A6 */ mtspr 0x1b, r3
/* 80382C74 0037FBD4 7C 68 02 A6 */ mflr r3
/* 80382C78 0037FBD8 7C 7A 03 A6 */ mtspr 0x1a, r3
/* 80382C7C 0037FBDC 4C 00 00 64 */ rfi
.global RealMode
RealMode:
/* 80382C80 0037FBE0 54 63 00 BE */ clrlwi r3, r3, 2
/* 80382C84 0037FBE4 7C 7A 03 A6 */ mtspr 0x1a, r3
/* 80382C88 0037FBE8 7C 60 00 A6 */ mfmsr r3
/* 80382C8C 0037FBEC 54 63 07 32 */ rlwinm r3, r3, 0, 0x1c, 0x19
/* 80382C90 0037FBF0 7C 7B 03 A6 */ mtspr 0x1b, r3
/* 80382C94 0037FBF4 4C 00 00 64 */ rfi
.global __OSInitMemoryProtection
__OSInitMemoryProtection:
/* 80382C98 0037FBF8 7C 08 02 A6 */ mflr r0
/* 80382C9C 0037FBFC 90 01 00 04 */ stw r0, 4(r1)
/* 80382CA0 0037FC00 94 21 FF B8 */ stwu r1, -0x48(r1)
/* 80382CA4 0037FC04 93 E1 00 44 */ stw r31, 0x44(r1)
/* 80382CA8 0037FC08 93 C1 00 40 */ stw r30, 0x40(r1)
/* 80382CAC 0037FC0C 93 A1 00 3C */ stw r29, 0x3c(r1)
/* 80382CB0 0037FC10 3C 60 80 00 */ lis r3, 0x800000F0@ha
/* 80382CB4 0037FC14 83 A3 00 F0 */ lwz r29, 0x800000F0@l(r3)
/* 80382CB8 0037FC18 4B FF E9 A9 */ bl OSDisableInterrupts
/* 80382CBC 0037FC1C 3C 00 01 80 */ lis r0, 0x180
/* 80382CC0 0037FC20 7C 1D 00 40 */ cmplw r29, r0
/* 80382CC4 0037FC24 7C 7F 1B 78 */ mr r31, r3
/* 80382CC8 0037FC28 41 81 00 14 */ bgt lbl_80382CDC
/* 80382CCC 0037FC2C 3C 60 80 38 */ lis r3, Config24MB@ha
/* 80382CD0 0037FC30 38 63 2B 80 */ addi r3, r3, Config24MB@l
/* 80382CD4 0037FC34 4B FF FF AD */ bl RealMode
/* 80382CD8 0037FC38 48 00 00 1C */ b lbl_80382CF4
lbl_80382CDC:
/* 80382CDC 0037FC3C 3C 00 03 00 */ lis r0, 0x300
/* 80382CE0 0037FC40 7C 1D 00 40 */ cmplw r29, r0
/* 80382CE4 0037FC44 41 81 00 10 */ bgt lbl_80382CF4
/* 80382CE8 0037FC48 3C 60 80 38 */ lis r3, Config48MB@ha
/* 80382CEC 0037FC4C 38 63 2C 00 */ addi r3, r3, Config48MB@l
/* 80382CF0 0037FC50 4B FF FF 91 */ bl RealMode
lbl_80382CF4:
/* 80382CF4 0037FC54 3C 60 CC 00 */ lis r3, 0xCC004000@ha
/* 80382CF8 0037FC58 3B A3 40 00 */ addi r29, r3, 0xCC004000@l
/* 80382CFC 0037FC5C 38 00 00 00 */ li r0, 0
/* 80382D00 0037FC60 B0 1D 00 20 */ sth r0, 0x20(r29)
/* 80382D04 0037FC64 38 00 00 FF */ li r0, 0xff
/* 80382D08 0037FC68 3C 60 F0 00 */ lis r3, 0xf000
/* 80382D0C 0037FC6C B0 1D 00 10 */ sth r0, 0x10(r29)
/* 80382D10 0037FC70 4B FF ED 19 */ bl __OSMaskInterrupts
/* 80382D14 0037FC74 3C 60 80 38 */ lis r3, MEMIntrruptHandler@ha
/* 80382D18 0037FC78 3B C3 2A 50 */ addi r30, r3, MEMIntrruptHandler@l
/* 80382D1C 0037FC7C 7F C4 F3 78 */ mr r4, r30
/* 80382D20 0037FC80 38 60 00 00 */ li r3, 0
/* 80382D24 0037FC84 4B FF E9 89 */ bl __OSSetInterruptHandler
/* 80382D28 0037FC88 7F C4 F3 78 */ mr r4, r30
/* 80382D2C 0037FC8C 38 60 00 01 */ li r3, 1
/* 80382D30 0037FC90 4B FF E9 7D */ bl __OSSetInterruptHandler
/* 80382D34 0037FC94 7F C4 F3 78 */ mr r4, r30
/* 80382D38 0037FC98 38 60 00 02 */ li r3, 2
/* 80382D3C 0037FC9C 4B FF E9 71 */ bl __OSSetInterruptHandler
/* 80382D40 0037FCA0 7F C4 F3 78 */ mr r4, r30
/* 80382D44 0037FCA4 38 60 00 03 */ li r3, 3
/* 80382D48 0037FCA8 4B FF E9 65 */ bl __OSSetInterruptHandler
/* 80382D4C 0037FCAC 7F C4 F3 78 */ mr r4, r30
/* 80382D50 0037FCB0 38 60 00 04 */ li r3, 4
/* 80382D54 0037FCB4 4B FF E9 59 */ bl __OSSetInterruptHandler
/* 80382D58 0037FCB8 3C 60 80 3F */ lis r3, lbl_803F22E0@ha
/* 80382D5C 0037FCBC 38 63 22 E0 */ addi r3, r3, lbl_803F22E0@l
/* 80382D60 0037FCC0 48 00 02 CD */ bl OSRegisterResetFunction
/* 80382D64 0037FCC4 3C 60 80 00 */ lis r3, 0x800000F0@ha
/* 80382D68 0037FCC8 80 83 00 F0 */ lwz r4, 0x800000F0@l(r3)
/* 80382D6C 0037FCCC 80 03 00 28 */ lwz r0, 0x28(r3)
/* 80382D70 0037FCD0 7C 04 00 40 */ cmplw r4, r0
/* 80382D74 0037FCD4 40 80 00 18 */ bge lbl_80382D8C
/* 80382D78 0037FCD8 3C 04 FE 80 */ addis r0, r4, 0xfe80
/* 80382D7C 0037FCDC 28 00 00 00 */ cmplwi r0, 0
/* 80382D80 0037FCE0 40 82 00 0C */ bne lbl_80382D8C
/* 80382D84 0037FCE4 38 00 00 02 */ li r0, 2
/* 80382D88 0037FCE8 B0 1D 00 28 */ sth r0, 0x28(r29)
lbl_80382D8C:
/* 80382D8C 0037FCEC 3C 60 08 00 */ lis r3, 0x800
/* 80382D90 0037FCF0 4B FF ED 21 */ bl __OSUnmaskInterrupts
/* 80382D94 0037FCF4 7F E3 FB 78 */ mr r3, r31
/* 80382D98 0037FCF8 4B FF E8 F1 */ bl OSRestoreInterrupts
/* 80382D9C 0037FCFC 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 80382DA0 0037FD00 83 E1 00 44 */ lwz r31, 0x44(r1)
/* 80382DA4 0037FD04 83 C1 00 40 */ lwz r30, 0x40(r1)
/* 80382DA8 0037FD08 83 A1 00 3C */ lwz r29, 0x3c(r1)
/* 80382DAC 0037FD0C 38 21 00 48 */ addi r1, r1, 0x48
/* 80382DB0 0037FD10 7C 08 03 A6 */ mtlr r0
/* 80382DB4 0037FD14 4E 80 00 20 */ blr

38
asm/Dolphin/OS/OSMutex.s Normal file
View File

@ -0,0 +1,38 @@
.include "macros.inc"
.section .text, "ax"
.global __OSUnlockAllMutex
__OSUnlockAllMutex:
/* 80382DB8 0037FD18 7C 08 02 A6 */ mflr r0
/* 80382DBC 0037FD1C 90 01 00 04 */ stw r0, 4(r1)
/* 80382DC0 0037FD20 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80382DC4 0037FD24 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80382DC8 0037FD28 3B E0 00 00 */ li r31, 0
/* 80382DCC 0037FD2C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80382DD0 0037FD30 3B C3 00 00 */ addi r30, r3, 0
/* 80382DD4 0037FD34 48 00 00 30 */ b lbl_80382E04
lbl_80382DD8:
/* 80382DD8 0037FD38 80 A4 00 10 */ lwz r5, 0x10(r4)
/* 80382DDC 0037FD3C 38 64 00 00 */ addi r3, r4, 0
/* 80382DE0 0037FD40 28 05 00 00 */ cmplwi r5, 0
/* 80382DE4 0037FD44 40 82 00 0C */ bne lbl_80382DF0
/* 80382DE8 0037FD48 93 FE 02 F8 */ stw r31, 0x2f8(r30)
/* 80382DEC 0037FD4C 48 00 00 08 */ b lbl_80382DF4
lbl_80382DF0:
/* 80382DF0 0037FD50 93 E5 00 14 */ stw r31, 0x14(r5)
lbl_80382DF4:
/* 80382DF4 0037FD54 90 BE 02 F4 */ stw r5, 0x2f4(r30)
/* 80382DF8 0037FD58 93 E4 00 0C */ stw r31, 0xc(r4)
/* 80382DFC 0037FD5C 93 E4 00 08 */ stw r31, 8(r4)
/* 80382E00 0037FD60 48 00 23 F9 */ bl OSWakeupThread
lbl_80382E04:
/* 80382E04 0037FD64 80 9E 02 F4 */ lwz r4, 0x2f4(r30)
/* 80382E08 0037FD68 28 04 00 00 */ cmplwi r4, 0
/* 80382E0C 0037FD6C 40 82 FF CC */ bne lbl_80382DD8
/* 80382E10 0037FD70 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80382E14 0037FD74 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80382E18 0037FD78 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80382E1C 0037FD7C 38 21 00 18 */ addi r1, r1, 0x18
/* 80382E20 0037FD80 7C 08 03 A6 */ mtlr r0
/* 80382E24 0037FD84 4E 80 00 20 */ blr

162
asm/Dolphin/OS/OSReboot.s Normal file
View File

@ -0,0 +1,162 @@
.include "macros.inc"
.section .text, "ax"
.global Run
Run:
/* 80382E28 0037FD88 7C 00 04 AC */ sync 0
/* 80382E2C 0037FD8C 4C 00 01 2C */ isync
/* 80382E30 0037FD90 7C 68 03 A6 */ mtlr r3
/* 80382E34 0037FD94 4E 80 00 20 */ blr
.global sub_80382e38
sub_80382e38:
/* 80382E38 0037FD98 38 00 00 01 */ li r0, 1
/* 80382E3C 0037FD9C 90 0D AD 30 */ stw r0, lbl_805A98F0@sda21(r13)
/* 80382E40 0037FDA0 4E 80 00 20 */ blr
.global sub_80382e44
sub_80382e44:
/* 80382E44 0037FDA4 7C 08 02 A6 */ mflr r0
/* 80382E48 0037FDA8 90 01 00 04 */ stw r0, 4(r1)
/* 80382E4C 0037FDAC 94 21 FC C0 */ stwu r1, -0x340(r1)
/* 80382E50 0037FDB0 93 E1 03 3C */ stw r31, 0x33c(r1)
/* 80382E54 0037FDB4 93 C1 03 38 */ stw r30, 0x338(r1)
/* 80382E58 0037FDB8 3C 60 80 54 */ lis r3, lbl_80541580@ha
/* 80382E5C 0037FDBC 3B C3 15 80 */ addi r30, r3, lbl_80541580@l
/* 80382E60 0037FDC0 4B FF E8 01 */ bl OSDisableInterrupts
/* 80382E64 0037FDC4 80 AD AD 28 */ lwz r5, lbl_805A98E8@sda21(r13)
/* 80382E68 0037FDC8 3C 80 81 30 */ lis r4, 0x812FDFF0@ha
/* 80382E6C 0037FDCC 80 0D AD 2C */ lwz r0, lbl_805A98EC@sda21(r13)
/* 80382E70 0037FDD0 38 60 00 00 */ li r3, 0
/* 80382E74 0037FDD4 3F E0 81 80 */ lis r31, 0x817FFFFC@ha
/* 80382E78 0037FDD8 38 E0 00 01 */ li r7, 1
/* 80382E7C 0037FDDC 90 7F FF FC */ stw r3, 0x817FFFFC@l(r31)
/* 80382E80 0037FDE0 3C C0 80 00 */ lis r6, 0x800030E2@ha
/* 80382E84 0037FDE4 90 7F FF F8 */ stw r3, -8(r31)
/* 80382E88 0037FDE8 38 61 00 70 */ addi r3, r1, 0x70
/* 80382E8C 0037FDEC 98 E6 30 E2 */ stb r7, 0x800030E2@l(r6)
/* 80382E90 0037FDF0 90 A4 DF F0 */ stw r5, 0x812FDFF0@l(r4)
/* 80382E94 0037FDF4 90 04 DF EC */ stw r0, -0x2014(r4)
/* 80382E98 0037FDF8 4B FF C7 7D */ bl OSClearContext
/* 80382E9C 0037FDFC 38 61 00 70 */ addi r3, r1, 0x70
/* 80382EA0 0037FE00 4B FF C5 7D */ bl OSSetCurrentContext
/* 80382EA4 0037FE04 4B FE ED 01 */ bl DVDInit
/* 80382EA8 0037FE08 38 60 00 01 */ li r3, 1
/* 80382EAC 0037FE0C 4B FF 13 51 */ bl DVDSetAutoInvalidation
/* 80382EB0 0037FE10 3C 60 80 38 */ lis r3, sub_80382e38@ha
/* 80382EB4 0037FE14 38 63 2E 38 */ addi r3, r3, sub_80382e38@l
/* 80382EB8 0037FE18 4B FF 18 E5 */ bl __DVDPrepareResetAsync
/* 80382EBC 0037FE1C 4B FF 17 FD */ bl DVDCheckDisk
/* 80382EC0 0037FE20 2C 03 00 00 */ cmpwi r3, 0
/* 80382EC4 0037FE24 40 82 00 0C */ bne lbl_80382ED0
/* 80382EC8 0037FE28 80 7F FF FC */ lwz r3, -4(r31)
/* 80382ECC 0037FE2C 48 00 02 E1 */ bl __OSDoHotReset
lbl_80382ED0:
/* 80382ED0 0037FE30 38 60 FF E0 */ li r3, -32
/* 80382ED4 0037FE34 4B FF EB 55 */ bl __OSMaskInterrupts
/* 80382ED8 0037FE38 38 60 04 00 */ li r3, 0x400
/* 80382EDC 0037FE3C 4B FF EB D5 */ bl __OSUnmaskInterrupts
/* 80382EE0 0037FE40 4B FF E7 95 */ bl OSEnableInterrupts
/* 80382EE4 0037FE44 48 00 00 04 */ b lbl_80382EE8
lbl_80382EE8:
/* 80382EE8 0037FE48 48 00 00 04 */ b lbl_80382EEC
lbl_80382EEC:
/* 80382EEC 0037FE4C 80 0D AD 30 */ lwz r0, lbl_805A98F0@sda21(r13)
/* 80382EF0 0037FE50 2C 00 00 00 */ cmpwi r0, 0
/* 80382EF4 0037FE54 41 82 FF F8 */ beq lbl_80382EEC
/* 80382EF8 0037FE58 7F C4 F3 78 */ mr r4, r30
/* 80382EFC 0037FE5C 38 61 00 40 */ addi r3, r1, 0x40
/* 80382F00 0037FE60 38 A0 00 20 */ li r5, 0x20
/* 80382F04 0037FE64 38 C0 24 40 */ li r6, 0x2440
/* 80382F08 0037FE68 38 E0 00 00 */ li r7, 0
/* 80382F0C 0037FE6C 4B FF 0A C5 */ bl DVDReadAbsAsyncForBS
/* 80382F10 0037FE70 3F E0 81 80 */ lis r31, 0x8180
/* 80382F14 0037FE74 48 00 00 04 */ b lbl_80382F18
lbl_80382F18:
/* 80382F18 0037FE78 48 00 00 04 */ b lbl_80382F1C
lbl_80382F1C:
/* 80382F1C 0037FE7C 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 80382F20 0037FE80 2C 00 00 01 */ cmpwi r0, 1
/* 80382F24 0037FE84 41 82 FF F8 */ beq lbl_80382F1C
/* 80382F28 0037FE88 40 80 00 14 */ bge lbl_80382F3C
/* 80382F2C 0037FE8C 2C 00 FF FF */ cmpwi r0, -1
/* 80382F30 0037FE90 41 82 00 18 */ beq lbl_80382F48
/* 80382F34 0037FE94 40 80 00 20 */ bge lbl_80382F54
/* 80382F38 0037FE98 4B FF FF E4 */ b lbl_80382F1C
lbl_80382F3C:
/* 80382F3C 0037FE9C 2C 00 00 0C */ cmpwi r0, 0xc
/* 80382F40 0037FEA0 40 80 FF DC */ bge lbl_80382F1C
/* 80382F44 0037FEA4 48 00 00 04 */ b lbl_80382F48
lbl_80382F48:
/* 80382F48 0037FEA8 80 7F FF FC */ lwz r3, -4(r31)
/* 80382F4C 0037FEAC 48 00 02 61 */ bl __OSDoHotReset
/* 80382F50 0037FEB0 4B FF FF CC */ b lbl_80382F1C
lbl_80382F54:
/* 80382F54 0037FEB4 80 7E 00 18 */ lwz r3, 0x18(r30)
/* 80382F58 0037FEB8 80 9E 00 14 */ lwz r4, 0x14(r30)
/* 80382F5C 0037FEBC 38 03 00 1F */ addi r0, r3, 0x1f
/* 80382F60 0037FEC0 38 84 00 20 */ addi r4, r4, 0x20
/* 80382F64 0037FEC4 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a
/* 80382F68 0037FEC8 48 00 00 04 */ b lbl_80382F6C
lbl_80382F6C:
/* 80382F6C 0037FECC 48 00 00 04 */ b lbl_80382F70
lbl_80382F70:
/* 80382F70 0037FED0 80 0D AD 30 */ lwz r0, lbl_805A98F0@sda21(r13)
/* 80382F74 0037FED4 2C 00 00 00 */ cmpwi r0, 0
/* 80382F78 0037FED8 41 82 FF F8 */ beq lbl_80382F70
/* 80382F7C 0037FEDC 7F C5 F3 78 */ mr r5, r30
/* 80382F80 0037FEE0 38 61 00 10 */ addi r3, r1, 0x10
/* 80382F84 0037FEE4 38 C4 24 40 */ addi r6, r4, 0x2440
/* 80382F88 0037FEE8 3C 80 81 30 */ lis r4, 0x8130
/* 80382F8C 0037FEEC 38 E0 00 00 */ li r7, 0
/* 80382F90 0037FEF0 4B FF 0A 41 */ bl DVDReadAbsAsyncForBS
/* 80382F94 0037FEF4 3F E0 81 80 */ lis r31, 0x8180
/* 80382F98 0037FEF8 48 00 00 04 */ b lbl_80382F9C
lbl_80382F9C:
/* 80382F9C 0037FEFC 48 00 00 04 */ b lbl_80382FA0
lbl_80382FA0:
/* 80382FA0 0037FF00 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80382FA4 0037FF04 2C 00 00 01 */ cmpwi r0, 1
/* 80382FA8 0037FF08 41 82 FF F8 */ beq lbl_80382FA0
/* 80382FAC 0037FF0C 40 80 00 14 */ bge lbl_80382FC0
/* 80382FB0 0037FF10 2C 00 FF FF */ cmpwi r0, -1
/* 80382FB4 0037FF14 41 82 00 18 */ beq lbl_80382FCC
/* 80382FB8 0037FF18 40 80 00 20 */ bge lbl_80382FD8
/* 80382FBC 0037FF1C 4B FF FF E4 */ b lbl_80382FA0
lbl_80382FC0:
/* 80382FC0 0037FF20 2C 00 00 0C */ cmpwi r0, 0xc
/* 80382FC4 0037FF24 40 80 FF DC */ bge lbl_80382FA0
/* 80382FC8 0037FF28 48 00 00 04 */ b lbl_80382FCC
lbl_80382FCC:
/* 80382FCC 0037FF2C 80 7F FF FC */ lwz r3, -4(r31)
/* 80382FD0 0037FF30 48 00 01 DD */ bl __OSDoHotReset
/* 80382FD4 0037FF34 4B FF FF CC */ b lbl_80382FA0
lbl_80382FD8:
/* 80382FD8 0037FF38 3C 60 81 30 */ lis r3, 0x8130
/* 80382FDC 0037FF3C 7F C4 F3 78 */ mr r4, r30
/* 80382FE0 0037FF40 4B FF BB B5 */ bl ICInvalidateRange
/* 80382FE4 0037FF44 4B FF E6 7D */ bl OSDisableInterrupts
/* 80382FE8 0037FF48 4B FF BB E1 */ bl ICFlashInvalidate
/* 80382FEC 0037FF4C 3C 60 81 30 */ lis r3, 0x8130
/* 80382FF0 0037FF50 4B FF FE 39 */ bl Run
/* 80382FF4 0037FF54 80 01 03 44 */ lwz r0, 0x344(r1)
/* 80382FF8 0037FF58 83 E1 03 3C */ lwz r31, 0x33c(r1)
/* 80382FFC 0037FF5C 83 C1 03 38 */ lwz r30, 0x338(r1)
/* 80383000 0037FF60 38 21 03 40 */ addi r1, r1, 0x340
/* 80383004 0037FF64 7C 08 03 A6 */ mtlr r0
/* 80383008 0037FF68 4E 80 00 20 */ blr
.global sub_8038300c
sub_8038300c:
/* 8038300C 0037FF6C 90 6D AD 28 */ stw r3, lbl_805A98E8@sda21(r13)
/* 80383010 0037FF70 90 8D AD 2C */ stw r4, lbl_805A98EC@sda21(r13)
/* 80383014 0037FF74 4E 80 00 20 */ blr
.global sub_80383018
sub_80383018:
/* 80383018 0037FF78 80 0D AC DC */ lwz r0, lbl_805A989C@sda21(r13)
/* 8038301C 0037FF7C 90 03 00 00 */ stw r0, 0(r3)
/* 80383020 0037FF80 80 0D AC D8 */ lwz r0, lbl_805A9898@sda21(r13)
/* 80383024 0037FF84 90 04 00 00 */ stw r0, 0(r4)
/* 80383028 0037FF88 4E 80 00 20 */ blr

357
asm/Dolphin/OS/OSReset.s Normal file
View File

@ -0,0 +1,357 @@
.include "macros.inc"
.section .text, "ax"
.global OSRegisterResetFunction
OSRegisterResetFunction:
/* 8038302C 0037FF8C 80 AD AD 38 */ lwz r5, lbl_805A98F8@sda21(r13)
/* 80383030 0037FF90 48 00 00 08 */ b lbl_80383038
lbl_80383034:
/* 80383034 0037FF94 80 A5 00 08 */ lwz r5, 8(r5)
lbl_80383038:
/* 80383038 0037FF98 28 05 00 00 */ cmplwi r5, 0
/* 8038303C 0037FF9C 41 82 00 14 */ beq lbl_80383050
/* 80383040 0037FFA0 80 85 00 04 */ lwz r4, 4(r5)
/* 80383044 0037FFA4 80 03 00 04 */ lwz r0, 4(r3)
/* 80383048 0037FFA8 7C 04 00 40 */ cmplw r4, r0
/* 8038304C 0037FFAC 40 81 FF E8 */ ble lbl_80383034
lbl_80383050:
/* 80383050 0037FFB0 28 05 00 00 */ cmplwi r5, 0
/* 80383054 0037FFB4 40 82 00 34 */ bne lbl_80383088
/* 80383058 0037FFB8 38 AD AD 38 */ addi r5, r13, lbl_805A98F8@sda21
/* 8038305C 0037FFBC 84 85 00 04 */ lwzu r4, 4(r5)
/* 80383060 0037FFC0 28 04 00 00 */ cmplwi r4, 0
/* 80383064 0037FFC4 40 82 00 0C */ bne lbl_80383070
/* 80383068 0037FFC8 90 6D AD 38 */ stw r3, lbl_805A98F8@sda21(r13)
/* 8038306C 0037FFCC 48 00 00 08 */ b lbl_80383074
lbl_80383070:
/* 80383070 0037FFD0 90 64 00 08 */ stw r3, 8(r4)
lbl_80383074:
/* 80383074 0037FFD4 90 83 00 0C */ stw r4, 0xc(r3)
/* 80383078 0037FFD8 38 00 00 00 */ li r0, 0
/* 8038307C 0037FFDC 90 03 00 08 */ stw r0, 8(r3)
/* 80383080 0037FFE0 90 65 00 00 */ stw r3, 0(r5)
/* 80383084 0037FFE4 4E 80 00 20 */ blr
lbl_80383088:
/* 80383088 0037FFE8 90 A3 00 08 */ stw r5, 8(r3)
/* 8038308C 0037FFEC 80 85 00 0C */ lwz r4, 0xc(r5)
/* 80383090 0037FFF0 90 65 00 0C */ stw r3, 0xc(r5)
/* 80383094 0037FFF4 28 04 00 00 */ cmplwi r4, 0
/* 80383098 0037FFF8 90 83 00 0C */ stw r4, 0xc(r3)
/* 8038309C 0037FFFC 40 82 00 0C */ bne lbl_803830A8
/* 803830A0 00380000 90 6D AD 38 */ stw r3, lbl_805A98F8@sda21(r13)
/* 803830A4 00380004 4E 80 00 20 */ blr
lbl_803830A8:
/* 803830A8 00380008 90 64 00 08 */ stw r3, 8(r4)
/* 803830AC 0038000C 4E 80 00 20 */ blr
.global __OSCallResetFunctions
__OSCallResetFunctions:
/* 803830B0 00380010 7C 08 02 A6 */ mflr r0
/* 803830B4 00380014 90 01 00 04 */ stw r0, 4(r1)
/* 803830B8 00380018 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803830BC 0038001C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803830C0 00380020 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803830C4 00380024 3B C0 00 00 */ li r30, 0
/* 803830C8 00380028 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803830CC 0038002C 3B A3 00 00 */ addi r29, r3, 0
/* 803830D0 00380030 83 ED AD 38 */ lwz r31, lbl_805A98F8@sda21(r13)
/* 803830D4 00380034 48 00 00 24 */ b lbl_803830F8
lbl_803830D8:
/* 803830D8 00380038 81 9F 00 00 */ lwz r12, 0(r31)
/* 803830DC 0038003C 38 7D 00 00 */ addi r3, r29, 0
/* 803830E0 00380040 7D 88 03 A6 */ mtlr r12
/* 803830E4 00380044 4E 80 00 21 */ blrl
/* 803830E8 00380048 7C 60 00 34 */ cntlzw r0, r3
/* 803830EC 0038004C 83 FF 00 08 */ lwz r31, 8(r31)
/* 803830F0 00380050 54 00 D9 7E */ srwi r0, r0, 5
/* 803830F4 00380054 7F DE 03 78 */ or r30, r30, r0
lbl_803830F8:
/* 803830F8 00380058 28 1F 00 00 */ cmplwi r31, 0
/* 803830FC 0038005C 40 82 FF DC */ bne lbl_803830D8
/* 80383100 00380060 48 00 0D DD */ bl __OSSyncSram
/* 80383104 00380064 7C 60 00 34 */ cntlzw r0, r3
/* 80383108 00380068 54 00 D9 7E */ srwi r0, r0, 5
/* 8038310C 0038006C 7F DE 03 79 */ or. r30, r30, r0
/* 80383110 00380070 41 82 00 0C */ beq lbl_8038311C
/* 80383114 00380074 38 60 00 00 */ li r3, 0
/* 80383118 00380078 48 00 00 08 */ b lbl_80383120
lbl_8038311C:
/* 8038311C 0038007C 38 60 00 01 */ li r3, 1
lbl_80383120:
/* 80383120 00380080 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80383124 00380084 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80383128 00380088 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8038312C 0038008C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80383130 00380090 38 21 00 20 */ addi r1, r1, 0x20
/* 80383134 00380094 7C 08 03 A6 */ mtlr r0
/* 80383138 00380098 4E 80 00 20 */ blr
.global Reset
Reset:
/* 8038313C 0038009C 48 00 00 20 */ b lbl_8038315C
lbl_80383140:
/* 80383140 003800A0 7D 10 FA A6 */ mfspr r8, 0x3f0
/* 80383144 003800A4 61 08 00 08 */ ori r8, r8, 8
/* 80383148 003800A8 7D 10 FB A6 */ mtspr 0x3f0, r8
/* 8038314C 003800AC 4C 00 01 2C */ isync
/* 80383150 003800B0 7C 00 04 AC */ sync 0
/* 80383154 003800B4 60 00 00 00 */ nop
/* 80383158 003800B8 48 00 00 08 */ b lbl_80383160
lbl_8038315C:
/* 8038315C 003800BC 48 00 00 20 */ b lbl_8038317C
lbl_80383160:
/* 80383160 003800C0 7C AC 42 E6 */ mftb r5, 0x10c
lbl_80383164:
/* 80383164 003800C4 7C CC 42 E6 */ mftb r6, 0x10c
/* 80383168 003800C8 7C E5 30 50 */ subf r7, r5, r6
/* 8038316C 003800CC 28 07 11 24 */ cmplwi r7, 0x1124
/* 80383170 003800D0 41 80 FF F4 */ blt lbl_80383164
/* 80383174 003800D4 60 00 00 00 */ nop
/* 80383178 003800D8 48 00 00 08 */ b lbl_80383180
lbl_8038317C:
/* 8038317C 003800DC 48 00 00 20 */ b lbl_8038319C
lbl_80383180:
/* 80383180 003800E0 3D 00 CC 00 */ lis r8, 0xCC003000@h
/* 80383184 003800E4 61 08 30 00 */ ori r8, r8, 0xCC003000@l
/* 80383188 003800E8 38 80 00 03 */ li r4, 3
/* 8038318C 003800EC 90 88 00 24 */ stw r4, 0x24(r8)
/* 80383190 003800F0 90 68 00 24 */ stw r3, 0x24(r8)
/* 80383194 003800F4 60 00 00 00 */ nop
/* 80383198 003800F8 48 00 00 08 */ b lbl_803831A0
lbl_8038319C:
/* 8038319C 003800FC 48 00 00 0C */ b lbl_803831A8
lbl_803831A0:
/* 803831A0 00380100 60 00 00 00 */ nop
/* 803831A4 00380104 4B FF FF FC */ b lbl_803831A0
lbl_803831A8:
/* 803831A8 00380108 4B FF FF 98 */ b lbl_80383140
.global __OSDoHotReset
__OSDoHotReset:
/* 803831AC 0038010C 7C 08 02 A6 */ mflr r0
/* 803831B0 00380110 90 01 00 04 */ stw r0, 4(r1)
/* 803831B4 00380114 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803831B8 00380118 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803831BC 0038011C 7C 7F 1B 78 */ mr r31, r3
/* 803831C0 00380120 4B FF E4 A1 */ bl OSDisableInterrupts
/* 803831C4 00380124 3C 60 CC 00 */ lis r3, 0xCC002000@ha
/* 803831C8 00380128 38 63 20 00 */ addi r3, r3, 0xCC002000@l
/* 803831CC 0038012C 38 00 00 00 */ li r0, 0
/* 803831D0 00380130 B0 03 00 02 */ sth r0, 2(r3)
/* 803831D4 00380134 4B FF B9 F5 */ bl ICFlashInvalidate
/* 803831D8 00380138 57 E3 18 38 */ slwi r3, r31, 3
/* 803831DC 0038013C 4B FF FF 61 */ bl Reset
/* 803831E0 00380140 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803831E4 00380144 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803831E8 00380148 38 21 00 18 */ addi r1, r1, 0x18
/* 803831EC 0038014C 7C 08 03 A6 */ mtlr r0
/* 803831F0 00380150 4E 80 00 20 */ blr
.global OSResetSystem
OSResetSystem:
/* 803831F4 00380154 7C 08 02 A6 */ mflr r0
/* 803831F8 00380158 90 01 00 04 */ stw r0, 4(r1)
/* 803831FC 0038015C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80383200 00380160 BF 41 00 28 */ stmw r26, 0x28(r1)
/* 80383204 00380164 7C 7A 1B 78 */ mr r26, r3
/* 80383208 00380168 7C 9D 23 78 */ mr r29, r4
/* 8038320C 0038016C 7C BE 2B 78 */ mr r30, r5
/* 80383210 00380170 48 00 13 D1 */ bl OSDisableScheduler
/* 80383214 00380174 4B FF B7 85 */ bl __OSStopAudioSystem
/* 80383218 00380178 2C 1A 00 02 */ cmpwi r26, 2
/* 8038321C 0038017C 40 82 00 10 */ bne lbl_8038322C
/* 80383220 00380180 38 60 00 01 */ li r3, 1
/* 80383224 00380184 48 00 43 E5 */ bl __PADDisableRecalibration
/* 80383228 00380188 7C 7F 1B 78 */ mr r31, r3
lbl_8038322C:
/* 8038322C 0038018C 48 00 00 04 */ b lbl_80383230
lbl_80383230:
/* 80383230 00380190 48 00 00 04 */ b lbl_80383234
lbl_80383234:
/* 80383234 00380194 83 6D AD 38 */ lwz r27, lbl_805A98F8@sda21(r13)
/* 80383238 00380198 3B 80 00 00 */ li r28, 0
/* 8038323C 0038019C 48 00 00 04 */ b lbl_80383240
lbl_80383240:
/* 80383240 003801A0 48 00 00 04 */ b lbl_80383244
lbl_80383244:
/* 80383244 003801A4 48 00 00 24 */ b lbl_80383268
lbl_80383248:
/* 80383248 003801A8 38 60 00 00 */ li r3, 0
/* 8038324C 003801AC 81 9B 00 00 */ lwz r12, 0(r27)
/* 80383250 003801B0 7D 88 03 A6 */ mtlr r12
/* 80383254 003801B4 4E 80 00 21 */ blrl
/* 80383258 003801B8 7C 60 00 34 */ cntlzw r0, r3
/* 8038325C 003801BC 83 7B 00 08 */ lwz r27, 8(r27)
/* 80383260 003801C0 54 00 D9 7E */ srwi r0, r0, 5
/* 80383264 003801C4 7F 9C 03 78 */ or r28, r28, r0
lbl_80383268:
/* 80383268 003801C8 28 1B 00 00 */ cmplwi r27, 0
/* 8038326C 003801CC 40 82 FF DC */ bne lbl_80383248
/* 80383270 003801D0 48 00 0C 6D */ bl __OSSyncSram
/* 80383274 003801D4 7C 60 00 34 */ cntlzw r0, r3
/* 80383278 003801D8 54 00 D9 7E */ srwi r0, r0, 5
/* 8038327C 003801DC 7F 9C 03 78 */ or r28, r28, r0
/* 80383280 003801E0 2C 1C 00 00 */ cmpwi r28, 0
/* 80383284 003801E4 41 82 00 0C */ beq lbl_80383290
/* 80383288 003801E8 38 00 00 00 */ li r0, 0
/* 8038328C 003801EC 48 00 00 08 */ b lbl_80383294
lbl_80383290:
/* 80383290 003801F0 38 00 00 01 */ li r0, 1
lbl_80383294:
/* 80383294 003801F4 2C 00 00 00 */ cmpwi r0, 0
/* 80383298 003801F8 41 82 FF 9C */ beq lbl_80383234
/* 8038329C 003801FC 2C 1A 00 01 */ cmpwi r26, 1
/* 803832A0 00380200 40 82 00 38 */ bne lbl_803832D8
/* 803832A4 00380204 2C 1E 00 00 */ cmpwi r30, 0
/* 803832A8 00380208 41 82 00 30 */ beq lbl_803832D8
/* 803832AC 0038020C 48 00 08 29 */ bl __OSLockSram
/* 803832B0 00380210 88 03 00 13 */ lbz r0, 0x13(r3)
/* 803832B4 00380214 60 00 00 40 */ ori r0, r0, 0x40
/* 803832B8 00380218 98 03 00 13 */ stb r0, 0x13(r3)
/* 803832BC 0038021C 38 60 00 01 */ li r3, 1
/* 803832C0 00380220 48 00 0B D5 */ bl __OSUnlockSram
/* 803832C4 00380224 48 00 00 04 */ b lbl_803832C8
lbl_803832C8:
/* 803832C8 00380228 48 00 00 04 */ b lbl_803832CC
lbl_803832CC:
/* 803832CC 0038022C 48 00 0C 11 */ bl __OSSyncSram
/* 803832D0 00380230 2C 03 00 00 */ cmpwi r3, 0
/* 803832D4 00380234 41 82 FF F8 */ beq lbl_803832CC
lbl_803832D8:
/* 803832D8 00380238 4B FF E3 89 */ bl OSDisableInterrupts
/* 803832DC 0038023C 83 8D AD 38 */ lwz r28, lbl_805A98F8@sda21(r13)
/* 803832E0 00380240 3B 60 00 00 */ li r27, 0
/* 803832E4 00380244 48 00 00 04 */ b lbl_803832E8
lbl_803832E8:
/* 803832E8 00380248 48 00 00 04 */ b lbl_803832EC
lbl_803832EC:
/* 803832EC 0038024C 48 00 00 24 */ b lbl_80383310
lbl_803832F0:
/* 803832F0 00380250 38 60 00 01 */ li r3, 1
/* 803832F4 00380254 81 9C 00 00 */ lwz r12, 0(r28)
/* 803832F8 00380258 7D 88 03 A6 */ mtlr r12
/* 803832FC 0038025C 4E 80 00 21 */ blrl
/* 80383300 00380260 7C 60 00 34 */ cntlzw r0, r3
/* 80383304 00380264 83 9C 00 08 */ lwz r28, 8(r28)
/* 80383308 00380268 54 00 D9 7E */ srwi r0, r0, 5
/* 8038330C 0038026C 7F 7B 03 78 */ or r27, r27, r0
lbl_80383310:
/* 80383310 00380270 28 1C 00 00 */ cmplwi r28, 0
/* 80383314 00380274 40 82 FF DC */ bne lbl_803832F0
/* 80383318 00380278 48 00 0B C5 */ bl __OSSyncSram
/* 8038331C 0038027C 4B FF B9 D5 */ bl LCDisable
/* 80383320 00380280 2C 1A 00 01 */ cmpwi r26, 1
/* 80383324 00380284 40 82 00 28 */ bne lbl_8038334C
/* 80383328 00380288 4B FF E3 39 */ bl OSDisableInterrupts
/* 8038332C 0038028C 3C 60 CC 00 */ lis r3, 0xCC002000@ha
/* 80383330 00380290 38 63 20 00 */ addi r3, r3, 0xCC002000@l
/* 80383334 00380294 38 00 00 00 */ li r0, 0
/* 80383338 00380298 B0 03 00 02 */ sth r0, 2(r3)
/* 8038333C 0038029C 4B FF B8 8D */ bl ICFlashInvalidate
/* 80383340 003802A0 57 A3 18 38 */ slwi r3, r29, 3
/* 80383344 003802A4 4B FF FD F9 */ bl Reset
/* 80383348 003802A8 48 00 00 60 */ b lbl_803833A8
lbl_8038334C:
/* 8038334C 003802AC 2C 1A 00 00 */ cmpwi r26, 0
/* 80383350 003802B0 40 82 00 58 */ bne lbl_803833A8
/* 80383354 003802B4 3C 60 80 00 */ lis r3, 0x800000DC@ha
/* 80383358 003802B8 80 63 00 DC */ lwz r3, 0x800000DC@l(r3)
/* 8038335C 003802BC 48 00 00 04 */ b lbl_80383360
lbl_80383360:
/* 80383360 003802C0 48 00 00 04 */ b lbl_80383364
lbl_80383364:
/* 80383364 003802C4 48 00 00 2C */ b lbl_80383390
lbl_80383368:
/* 80383368 003802C8 A0 03 02 C8 */ lhz r0, 0x2c8(r3)
/* 8038336C 003802CC 83 63 02 FC */ lwz r27, 0x2fc(r3)
/* 80383370 003802D0 2C 00 00 04 */ cmpwi r0, 4
/* 80383374 003802D4 41 82 00 14 */ beq lbl_80383388
/* 80383378 003802D8 40 80 00 14 */ bge lbl_8038338C
/* 8038337C 003802DC 2C 00 00 01 */ cmpwi r0, 1
/* 80383380 003802E0 41 82 00 08 */ beq lbl_80383388
/* 80383384 003802E4 48 00 00 08 */ b lbl_8038338C
lbl_80383388:
/* 80383388 003802E8 48 00 17 D1 */ bl OSCancelThread
lbl_8038338C:
/* 8038338C 003802EC 7F 63 DB 78 */ mr r3, r27
lbl_80383390:
/* 80383390 003802F0 28 03 00 00 */ cmplwi r3, 0
/* 80383394 003802F4 40 82 FF D4 */ bne lbl_80383368
/* 80383398 003802F8 48 00 12 89 */ bl OSEnableScheduler
/* 8038339C 003802FC 7F A3 EB 78 */ mr r3, r29
/* 803833A0 00380300 7F C4 F3 78 */ mr r4, r30
/* 803833A4 00380304 4B FF FA A1 */ bl sub_80382e44
lbl_803833A8:
/* 803833A8 00380308 3C 60 80 00 */ lis r3, 0x800000DC@ha
/* 803833AC 0038030C 80 63 00 DC */ lwz r3, 0x800000DC@l(r3)
/* 803833B0 00380310 48 00 00 04 */ b lbl_803833B4
lbl_803833B4:
/* 803833B4 00380314 48 00 00 04 */ b lbl_803833B8
lbl_803833B8:
/* 803833B8 00380318 48 00 00 2C */ b lbl_803833E4
lbl_803833BC:
/* 803833BC 0038031C A0 03 02 C8 */ lhz r0, 0x2c8(r3)
/* 803833C0 00380320 83 63 02 FC */ lwz r27, 0x2fc(r3)
/* 803833C4 00380324 2C 00 00 04 */ cmpwi r0, 4
/* 803833C8 00380328 41 82 00 14 */ beq lbl_803833DC
/* 803833CC 0038032C 40 80 00 14 */ bge lbl_803833E0
/* 803833D0 00380330 2C 00 00 01 */ cmpwi r0, 1
/* 803833D4 00380334 41 82 00 08 */ beq lbl_803833DC
/* 803833D8 00380338 48 00 00 08 */ b lbl_803833E0
lbl_803833DC:
/* 803833DC 0038033C 48 00 17 7D */ bl OSCancelThread
lbl_803833E0:
/* 803833E0 00380340 7F 63 DB 78 */ mr r3, r27
lbl_803833E4:
/* 803833E4 00380344 28 03 00 00 */ cmplwi r3, 0
/* 803833E8 00380348 40 82 FF D4 */ bne lbl_803833BC
/* 803833EC 0038034C 3F A0 80 00 */ lis r29, 0x80000040@ha
/* 803833F0 00380350 38 7D 00 40 */ addi r3, r29, 0x80000040@l
/* 803833F4 00380354 38 80 00 00 */ li r4, 0
/* 803833F8 00380358 38 A0 00 8C */ li r5, 0x8c
/* 803833FC 0038035C 4B C7 FF AD */ bl memset
/* 80383400 00380360 38 7D 00 D4 */ addi r3, r29, 0xd4
/* 80383404 00380364 38 80 00 00 */ li r4, 0
/* 80383408 00380368 38 A0 00 14 */ li r5, 0x14
/* 8038340C 0038036C 4B C7 FF 9D */ bl memset
/* 80383410 00380370 38 7D 00 F4 */ addi r3, r29, 0xf4
/* 80383414 00380374 38 80 00 00 */ li r4, 0
/* 80383418 00380378 38 A0 00 04 */ li r5, 4
/* 8038341C 0038037C 4B C7 FF 8D */ bl memset
/* 80383420 00380380 38 7D 30 00 */ addi r3, r29, 0x3000
/* 80383424 00380384 38 80 00 00 */ li r4, 0
/* 80383428 00380388 38 A0 00 C0 */ li r5, 0xc0
/* 8038342C 0038038C 4B C7 FF 7D */ bl memset
/* 80383430 00380390 38 7D 30 C8 */ addi r3, r29, 0x30c8
/* 80383434 00380394 38 80 00 00 */ li r4, 0
/* 80383438 00380398 38 A0 00 0C */ li r5, 0xc
/* 8038343C 0038039C 4B C7 FF 6D */ bl memset
/* 80383440 003803A0 38 7D 30 E2 */ addi r3, r29, 0x30e2
/* 80383444 003803A4 38 80 00 00 */ li r4, 0
/* 80383448 003803A8 38 A0 00 01 */ li r5, 1
/* 8038344C 003803AC 4B C7 FF 5D */ bl memset
/* 80383450 003803B0 7F E3 FB 78 */ mr r3, r31
/* 80383454 003803B4 48 00 41 B5 */ bl __PADDisableRecalibration
/* 80383458 003803B8 BB 41 00 28 */ lmw r26, 0x28(r1)
/* 8038345C 003803BC 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80383460 003803C0 38 21 00 40 */ addi r1, r1, 0x40
/* 80383464 003803C4 7C 08 03 A6 */ mtlr r0
/* 80383468 003803C8 4E 80 00 20 */ blr
.global OSGetResetCode
OSGetResetCode:
/* 8038346C 003803CC 3C 60 80 00 */ lis r3, 0x800030E2@ha
/* 80383470 003803D0 88 03 30 E2 */ lbz r0, 0x800030E2@l(r3)
/* 80383474 003803D4 28 00 00 00 */ cmplwi r0, 0
/* 80383478 003803D8 41 82 00 0C */ beq lbl_80383484
/* 8038347C 003803DC 3C 60 80 00 */ lis r3, 0x8000
/* 80383480 003803E0 48 00 00 18 */ b lbl_80383498
lbl_80383484:
/* 80383484 003803E4 3C 60 CC 00 */ lis r3, 0xCC003000@ha
/* 80383488 003803E8 38 63 30 00 */ addi r3, r3, 0xCC003000@l
/* 8038348C 003803EC 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80383490 003803F0 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c
/* 80383494 003803F4 54 03 E8 FE */ srwi r3, r0, 3
lbl_80383498:
/* 80383498 003803F8 4E 80 00 20 */ blr

252
asm/Dolphin/OS/OSResetSW.s Normal file
View File

@ -0,0 +1,252 @@
.include "macros.inc"
.section .text, "ax"
.global __OSResetSWInterruptHandler
__OSResetSWInterruptHandler:
/* 8038349C 003803FC 7C 08 02 A6 */ mflr r0
/* 803834A0 00380400 90 01 00 04 */ stw r0, 4(r1)
/* 803834A4 00380404 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 803834A8 00380408 93 E1 00 24 */ stw r31, 0x24(r1)
/* 803834AC 0038040C 93 C1 00 20 */ stw r30, 0x20(r1)
/* 803834B0 00380410 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 803834B4 00380414 48 00 1F 15 */ bl __OSGetSystemTime
/* 803834B8 00380418 3C A0 80 00 */ lis r5, 0x800000F8@ha
/* 803834BC 0038041C 90 8D AD 5C */ stw r4, lbl_805A991C@sda21(r13)
/* 803834C0 00380420 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
/* 803834C4 00380424 3C 80 43 1C */ lis r4, 0x431BDE83@ha
/* 803834C8 00380428 38 84 DE 83 */ addi r4, r4, 0x431BDE83@l
/* 803834CC 0038042C 90 6D AD 58 */ stw r3, lbl_805A9918@sda21(r13)
/* 803834D0 00380430 54 00 F0 BE */ srwi r0, r0, 2
/* 803834D4 00380434 7C 04 00 16 */ mulhwu r0, r4, r0
/* 803834D8 00380438 54 00 8B FE */ srwi r0, r0, 0xf
/* 803834DC 0038043C 1C 00 00 64 */ mulli r0, r0, 0x64
/* 803834E0 00380440 54 1D E8 FE */ srwi r29, r0, 3
/* 803834E4 00380444 3B C0 00 00 */ li r30, 0
/* 803834E8 00380448 3F E0 CC 00 */ lis r31, 0xcc00
lbl_803834EC:
/* 803834EC 0038044C 48 00 1E DD */ bl __OSGetSystemTime
/* 803834F0 00380450 80 CD AD 5C */ lwz r6, lbl_805A991C@sda21(r13)
/* 803834F4 00380454 6F C5 80 00 */ xoris r5, r30, 0x8000
/* 803834F8 00380458 80 0D AD 58 */ lwz r0, lbl_805A9918@sda21(r13)
/* 803834FC 0038045C 7C 86 20 10 */ subfc r4, r6, r4
/* 80383500 00380460 7C 00 19 10 */ subfe r0, r0, r3
/* 80383504 00380464 6C 03 80 00 */ xoris r3, r0, 0x8000
/* 80383508 00380468 7C 1D 20 10 */ subfc r0, r29, r4
/* 8038350C 0038046C 7C A5 19 10 */ subfe r5, r5, r3
/* 80383510 00380470 7C A3 19 10 */ subfe r5, r3, r3
/* 80383514 00380474 7C A5 00 D1 */ neg. r5, r5
/* 80383518 00380478 41 82 00 10 */ beq lbl_80383528
/* 8038351C 0038047C 80 1F 30 00 */ lwz r0, 0x3000(r31)
/* 80383520 00380480 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf
/* 80383524 00380484 41 82 FF C8 */ beq lbl_803834EC
lbl_80383528:
/* 80383528 00380488 3C 60 CC 00 */ lis r3, 0xCC003000@ha
/* 8038352C 0038048C 80 03 30 00 */ lwz r0, 0xCC003000@l(r3)
/* 80383530 00380490 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf
/* 80383534 00380494 40 82 00 34 */ bne lbl_80383568
/* 80383538 00380498 38 00 00 01 */ li r0, 1
/* 8038353C 0038049C 90 0D AD 44 */ stw r0, lbl_805A9904@sda21(r13)
/* 80383540 003804A0 38 60 02 00 */ li r3, 0x200
/* 80383544 003804A4 90 0D AD 48 */ stw r0, lbl_805A9908@sda21(r13)
/* 80383548 003804A8 4B FF E4 E1 */ bl __OSMaskInterrupts
/* 8038354C 003804AC 81 8D AD 40 */ lwz r12, lbl_805A9900@sda21(r13)
/* 80383550 003804B0 28 0C 00 00 */ cmplwi r12, 0
/* 80383554 003804B4 41 82 00 14 */ beq lbl_80383568
/* 80383558 003804B8 38 00 00 00 */ li r0, 0
/* 8038355C 003804BC 7D 88 03 A6 */ mtlr r12
/* 80383560 003804C0 90 0D AD 40 */ stw r0, lbl_805A9900@sda21(r13)
/* 80383564 003804C4 4E 80 00 21 */ blrl
lbl_80383568:
/* 80383568 003804C8 38 00 00 02 */ li r0, 2
/* 8038356C 003804CC 3C 60 CC 00 */ lis r3, 0xCC003000@ha
/* 80383570 003804D0 90 03 30 00 */ stw r0, 0xCC003000@l(r3)
/* 80383574 003804D4 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80383578 003804D8 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8038357C 003804DC 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80383580 003804E0 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80383584 003804E4 38 21 00 28 */ addi r1, r1, 0x28
/* 80383588 003804E8 7C 08 03 A6 */ mtlr r0
/* 8038358C 003804EC 4E 80 00 20 */ blr
.global OSGetResetButtonState
OSGetResetButtonState:
/* 80383590 003804F0 7C 08 02 A6 */ mflr r0
/* 80383594 003804F4 90 01 00 04 */ stw r0, 4(r1)
/* 80383598 003804F8 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8038359C 003804FC 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803835A0 00380500 93 C1 00 10 */ stw r30, 0x10(r1)
/* 803835A4 00380504 93 A1 00 0C */ stw r29, 0xc(r1)
/* 803835A8 00380508 4B FF E0 B9 */ bl OSDisableInterrupts
/* 803835AC 0038050C 7C 7E 1B 78 */ mr r30, r3
/* 803835B0 00380510 48 00 1E 19 */ bl __OSGetSystemTime
/* 803835B4 00380514 3C A0 CC 00 */ lis r5, 0xCC003000@ha
/* 803835B8 00380518 80 05 30 00 */ lwz r0, 0xCC003000@l(r5)
/* 803835BC 0038051C 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf
/* 803835C0 00380520 40 82 00 DC */ bne lbl_8038369C
/* 803835C4 00380524 80 0D AD 44 */ lwz r0, lbl_805A9904@sda21(r13)
/* 803835C8 00380528 2C 00 00 00 */ cmpwi r0, 0
/* 803835CC 0038052C 40 82 00 40 */ bne lbl_8038360C
/* 803835D0 00380530 80 0D AD 50 */ lwz r0, lbl_805A9910@sda21(r13)
/* 803835D4 00380534 38 C0 00 00 */ li r6, 0
/* 803835D8 00380538 80 AD AD 54 */ lwz r5, lbl_805A9914@sda21(r13)
/* 803835DC 0038053C 38 E0 00 01 */ li r7, 1
/* 803835E0 00380540 7C 00 32 78 */ xor r0, r0, r6
/* 803835E4 00380544 7C A5 32 78 */ xor r5, r5, r6
/* 803835E8 00380548 90 ED AD 44 */ stw r7, lbl_805A9904@sda21(r13)
/* 803835EC 0038054C 7C A0 03 79 */ or. r0, r5, r0
/* 803835F0 00380550 41 82 00 08 */ beq lbl_803835F8
/* 803835F4 00380554 48 00 00 08 */ b lbl_803835FC
lbl_803835F8:
/* 803835F8 00380558 7C C7 33 78 */ mr r7, r6
lbl_803835FC:
/* 803835FC 0038055C 90 8D AD 5C */ stw r4, lbl_805A991C@sda21(r13)
/* 80383600 00380560 7C FD 3B 78 */ mr r29, r7
/* 80383604 00380564 90 6D AD 58 */ stw r3, lbl_805A9918@sda21(r13)
/* 80383608 00380568 48 00 01 48 */ b lbl_80383750
lbl_8038360C:
/* 8038360C 0038056C 80 0D AD 50 */ lwz r0, lbl_805A9910@sda21(r13)
/* 80383610 00380570 39 20 00 00 */ li r9, 0
/* 80383614 00380574 80 AD AD 54 */ lwz r5, lbl_805A9914@sda21(r13)
/* 80383618 00380578 39 40 00 01 */ li r10, 1
/* 8038361C 0038057C 7C 00 4A 78 */ xor r0, r0, r9
/* 80383620 00380580 7C A5 4A 78 */ xor r5, r5, r9
/* 80383624 00380584 7C A0 03 79 */ or. r0, r5, r0
/* 80383628 00380588 40 82 00 58 */ bne lbl_80383680
/* 8038362C 0038058C 3C C0 80 00 */ lis r6, 0x800000F8@ha
/* 80383630 00380590 80 AD AD 5C */ lwz r5, lbl_805A991C@sda21(r13)
/* 80383634 00380594 80 E6 00 F8 */ lwz r7, 0x800000F8@l(r6)
/* 80383638 00380598 3C C0 43 1C */ lis r6, 0x431BDE83@ha
/* 8038363C 0038059C 39 06 DE 83 */ addi r8, r6, 0x431BDE83@l
/* 80383640 003805A0 80 0D AD 58 */ lwz r0, lbl_805A9918@sda21(r13)
/* 80383644 003805A4 54 E6 F0 BE */ srwi r6, r7, 2
/* 80383648 003805A8 7C C8 30 16 */ mulhwu r6, r8, r6
/* 8038364C 003805AC 54 C6 8B FE */ srwi r6, r6, 0xf
/* 80383650 003805B0 1C C6 00 64 */ mulli r6, r6, 0x64
/* 80383654 003805B4 7C E5 20 10 */ subfc r7, r5, r4
/* 80383658 003805B8 7C 00 19 10 */ subfe r0, r0, r3
/* 8038365C 003805BC 54 C8 E8 FE */ srwi r8, r6, 3
/* 80383660 003805C0 6C 05 80 00 */ xoris r5, r0, 0x8000
/* 80383664 003805C4 6D 26 80 00 */ xoris r6, r9, 0x8000
/* 80383668 003805C8 7C 07 40 10 */ subfc r0, r7, r8
/* 8038366C 003805CC 7C A5 31 10 */ subfe r5, r5, r6
/* 80383670 003805D0 7C A6 31 10 */ subfe r5, r6, r6
/* 80383674 003805D4 7C A5 00 D1 */ neg. r5, r5
/* 80383678 003805D8 40 82 00 08 */ bne lbl_80383680
/* 8038367C 003805DC 7D 2A 4B 78 */ mr r10, r9
lbl_80383680:
/* 80383680 003805E0 2C 0A 00 00 */ cmpwi r10, 0
/* 80383684 003805E4 41 82 00 0C */ beq lbl_80383690
/* 80383688 003805E8 38 00 00 01 */ li r0, 1
/* 8038368C 003805EC 48 00 00 08 */ b lbl_80383694
lbl_80383690:
/* 80383690 003805F0 38 00 00 00 */ li r0, 0
lbl_80383694:
/* 80383694 003805F4 7C 1D 03 78 */ mr r29, r0
/* 80383698 003805F8 48 00 00 B8 */ b lbl_80383750
lbl_8038369C:
/* 8038369C 003805FC 80 0D AD 44 */ lwz r0, lbl_805A9904@sda21(r13)
/* 803836A0 00380600 2C 00 00 00 */ cmpwi r0, 0
/* 803836A4 00380604 41 82 00 34 */ beq lbl_803836D8
/* 803836A8 00380608 80 AD AD 48 */ lwz r5, lbl_805A9908@sda21(r13)
/* 803836AC 0038060C 38 00 00 00 */ li r0, 0
/* 803836B0 00380610 90 0D AD 44 */ stw r0, lbl_805A9904@sda21(r13)
/* 803836B4 00380614 2C 05 00 00 */ cmpwi r5, 0
/* 803836B8 00380618 3B A5 00 00 */ addi r29, r5, 0
/* 803836BC 0038061C 41 82 00 10 */ beq lbl_803836CC
/* 803836C0 00380620 90 8D AD 54 */ stw r4, lbl_805A9914@sda21(r13)
/* 803836C4 00380624 90 6D AD 50 */ stw r3, lbl_805A9910@sda21(r13)
/* 803836C8 00380628 48 00 00 88 */ b lbl_80383750
lbl_803836CC:
/* 803836CC 0038062C 90 0D AD 54 */ stw r0, lbl_805A9914@sda21(r13)
/* 803836D0 00380630 90 0D AD 50 */ stw r0, lbl_805A9910@sda21(r13)
/* 803836D4 00380634 48 00 00 7C */ b lbl_80383750
lbl_803836D8:
/* 803836D8 00380638 80 CD AD 50 */ lwz r6, lbl_805A9910@sda21(r13)
/* 803836DC 0038063C 39 00 00 00 */ li r8, 0
/* 803836E0 00380640 80 ED AD 54 */ lwz r7, lbl_805A9914@sda21(r13)
/* 803836E4 00380644 7C C0 42 78 */ xor r0, r6, r8
/* 803836E8 00380648 7C E5 42 78 */ xor r5, r7, r8
/* 803836EC 0038064C 7C A0 03 79 */ or. r0, r5, r0
/* 803836F0 00380650 41 82 00 50 */ beq lbl_80383740
/* 803836F4 00380654 3C A0 80 00 */ lis r5, 0x800000F8@ha
/* 803836F8 00380658 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
/* 803836FC 0038065C 3C A0 10 62 */ lis r5, 0x10624DD3@ha
/* 80383700 00380660 38 A5 4D D3 */ addi r5, r5, 0x10624DD3@l
/* 80383704 00380664 54 00 F0 BE */ srwi r0, r0, 2
/* 80383708 00380668 7C 05 00 16 */ mulhwu r0, r5, r0
/* 8038370C 0038066C 54 00 D1 BE */ srwi r0, r0, 6
/* 80383710 00380670 1C 00 00 28 */ mulli r0, r0, 0x28
/* 80383714 00380674 7C E7 20 10 */ subfc r7, r7, r4
/* 80383718 00380678 7C A6 19 10 */ subfe r5, r6, r3
/* 8038371C 0038067C 6C A6 80 00 */ xoris r6, r5, 0x8000
/* 80383720 00380680 6D 05 80 00 */ xoris r5, r8, 0x8000
/* 80383724 00380684 7C 00 38 10 */ subfc r0, r0, r7
/* 80383728 00380688 7C A5 31 10 */ subfe r5, r5, r6
/* 8038372C 0038068C 7C A6 31 10 */ subfe r5, r6, r6
/* 80383730 00380690 7C A5 00 D1 */ neg. r5, r5
/* 80383734 00380694 41 82 00 0C */ beq lbl_80383740
/* 80383738 00380698 3B A0 00 01 */ li r29, 1
/* 8038373C 0038069C 48 00 00 14 */ b lbl_80383750
lbl_80383740:
/* 80383740 003806A0 38 00 00 00 */ li r0, 0
/* 80383744 003806A4 90 0D AD 54 */ stw r0, lbl_805A9914@sda21(r13)
/* 80383748 003806A8 3B A0 00 00 */ li r29, 0
/* 8038374C 003806AC 90 0D AD 50 */ stw r0, lbl_805A9910@sda21(r13)
lbl_80383750:
/* 80383750 003806B0 3C A0 80 00 */ lis r5, 0x800030E3@ha
/* 80383754 003806B4 93 AD AD 48 */ stw r29, lbl_805A9908@sda21(r13)
/* 80383758 003806B8 88 05 30 E3 */ lbz r0, 0x800030E3@l(r5)
/* 8038375C 003806BC 54 00 06 BF */ clrlwi. r0, r0, 0x1a
/* 80383760 003806C0 41 82 00 A0 */ beq lbl_80383800
/* 80383764 003806C4 1D 40 00 3C */ mulli r10, r0, 0x3c
/* 80383768 003806C8 80 05 00 F8 */ lwz r0, 0xf8(r5)
/* 8038376C 003806CC 81 2D AC EC */ lwz r9, lbl_805A98AC@sda21(r13)
/* 80383770 003806D0 81 0D AC E8 */ lwz r8, lbl_805A98A8@sda21(r13)
/* 80383774 003806D4 54 06 F0 BE */ srwi r6, r0, 2
/* 80383778 003806D8 7D 40 FE 70 */ srawi r0, r10, 0x1f
/* 8038377C 003806DC 7C E0 31 D6 */ mullw r7, r0, r6
/* 80383780 003806E0 7C 0A 30 16 */ mulhwu r0, r10, r6
/* 80383784 003806E4 7C AA 31 D6 */ mullw r5, r10, r6
/* 80383788 003806E8 7D 29 28 14 */ addc r9, r9, r5
/* 8038378C 003806EC 3B E0 00 00 */ li r31, 0
/* 80383790 003806F0 7C E7 02 14 */ add r7, r7, r0
/* 80383794 003806F4 7C 0A F9 D6 */ mullw r0, r10, r31
/* 80383798 003806F8 7C 07 02 14 */ add r0, r7, r0
/* 8038379C 003806FC 7D 08 01 14 */ adde r8, r8, r0
/* 803837A0 00380700 6D 07 80 00 */ xoris r7, r8, 0x8000
/* 803837A4 00380704 6C 65 80 00 */ xoris r5, r3, 0x8000
/* 803837A8 00380708 7C 04 48 10 */ subfc r0, r4, r9
/* 803837AC 0038070C 7C A5 39 10 */ subfe r5, r5, r7
/* 803837B0 00380710 7C A7 39 10 */ subfe r5, r7, r7
/* 803837B4 00380714 7C A5 00 D1 */ neg. r5, r5
/* 803837B8 00380718 41 82 00 48 */ beq lbl_80383800
/* 803837BC 0038071C 7C 89 20 10 */ subfc r4, r9, r4
/* 803837C0 00380720 7C 68 19 10 */ subfe r3, r8, r3
/* 803837C4 00380724 38 A0 00 00 */ li r5, 0
/* 803837C8 00380728 48 00 64 05 */ bl __div2i
/* 803837CC 0038072C 38 A0 00 00 */ li r5, 0
/* 803837D0 00380730 38 C0 00 02 */ li r6, 2
/* 803837D4 00380734 48 00 63 F9 */ bl __div2i
/* 803837D8 00380738 38 00 00 01 */ li r0, 1
/* 803837DC 0038073C 7C 84 00 38 */ and r4, r4, r0
/* 803837E0 00380740 7C 60 F8 38 */ and r0, r3, r31
/* 803837E4 00380744 7C 83 FA 78 */ xor r3, r4, r31
/* 803837E8 00380748 7C 00 FA 78 */ xor r0, r0, r31
/* 803837EC 0038074C 7C 60 03 79 */ or. r0, r3, r0
/* 803837F0 00380750 40 82 00 0C */ bne lbl_803837FC
/* 803837F4 00380754 3B A0 00 01 */ li r29, 1
/* 803837F8 00380758 48 00 00 08 */ b lbl_80383800
lbl_803837FC:
/* 803837FC 0038075C 3B A0 00 00 */ li r29, 0
lbl_80383800:
/* 80383800 00380760 7F C3 F3 78 */ mr r3, r30
/* 80383804 00380764 4B FF DE 85 */ bl OSRestoreInterrupts
/* 80383808 00380768 7F A3 EB 78 */ mr r3, r29
/* 8038380C 0038076C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80383810 00380770 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80383814 00380774 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80383818 00380778 83 A1 00 0C */ lwz r29, 0xc(r1)
/* 8038381C 0038077C 38 21 00 18 */ addi r1, r1, 0x18
/* 80383820 00380780 7C 08 03 A6 */ mtlr r0
/* 80383824 00380784 4E 80 00 20 */ blr

851
asm/Dolphin/OS/OSRtc.s Normal file
View File

@ -0,0 +1,851 @@
.include "macros.inc"
.section .text, "ax"
.global WriteSramCallback
WriteSramCallback:
/* 80383828 00380788 7C 08 02 A6 */ mflr r0
/* 8038382C 0038078C 3C 60 80 54 */ lis r3, lbl_805415A0@ha
/* 80383830 00380790 90 01 00 04 */ stw r0, 4(r1)
/* 80383834 00380794 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80383838 00380798 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8038383C 0038079C 3B E3 15 A0 */ addi r31, r3, lbl_805415A0@l
/* 80383840 003807A0 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80383844 003807A4 3B DF 00 40 */ addi r30, r31, 0x40
/* 80383848 003807A8 80 9F 00 40 */ lwz r4, 0x40(r31)
/* 8038384C 003807AC 7C 7F 22 14 */ add r3, r31, r4
/* 80383850 003807B0 20 A4 00 40 */ subfic r5, r4, 0x40
/* 80383854 003807B4 48 00 00 35 */ bl WriteSram
/* 80383858 003807B8 90 7F 00 4C */ stw r3, 0x4c(r31)
/* 8038385C 003807BC 80 1F 00 4C */ lwz r0, 0x4c(r31)
/* 80383860 003807C0 2C 00 00 00 */ cmpwi r0, 0
/* 80383864 003807C4 41 82 00 0C */ beq lbl_80383870
/* 80383868 003807C8 38 00 00 40 */ li r0, 0x40
/* 8038386C 003807CC 90 1E 00 00 */ stw r0, 0(r30)
lbl_80383870:
/* 80383870 003807D0 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80383874 003807D4 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80383878 003807D8 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8038387C 003807DC 38 21 00 18 */ addi r1, r1, 0x18
/* 80383880 003807E0 7C 08 03 A6 */ mtlr r0
/* 80383884 003807E4 4E 80 00 20 */ blr
.global WriteSram
WriteSram:
/* 80383888 003807E8 7C 08 02 A6 */ mflr r0
/* 8038388C 003807EC 3C C0 80 38 */ lis r6, WriteSramCallback@ha
/* 80383890 003807F0 90 01 00 04 */ stw r0, 4(r1)
/* 80383894 003807F4 38 06 38 28 */ addi r0, r6, WriteSramCallback@l
/* 80383898 003807F8 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8038389C 003807FC 93 E1 00 24 */ stw r31, 0x24(r1)
/* 803838A0 00380800 3B E4 00 00 */ addi r31, r4, 0
/* 803838A4 00380804 38 80 00 01 */ li r4, 1
/* 803838A8 00380808 93 C1 00 20 */ stw r30, 0x20(r1)
/* 803838AC 0038080C 3B C5 00 00 */ addi r30, r5, 0
/* 803838B0 00380810 7C 05 03 78 */ mr r5, r0
/* 803838B4 00380814 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 803838B8 00380818 3B A3 00 00 */ addi r29, r3, 0
/* 803838BC 0038081C 38 60 00 00 */ li r3, 0
/* 803838C0 00380820 48 03 DA A5 */ bl EXILock
/* 803838C4 00380824 2C 03 00 00 */ cmpwi r3, 0
/* 803838C8 00380828 40 82 00 0C */ bne lbl_803838D4
/* 803838CC 0038082C 38 60 00 00 */ li r3, 0
/* 803838D0 00380830 48 00 00 B4 */ b lbl_80383984
lbl_803838D4:
/* 803838D4 00380834 38 60 00 00 */ li r3, 0
/* 803838D8 00380838 38 80 00 01 */ li r4, 1
/* 803838DC 0038083C 38 A0 00 03 */ li r5, 3
/* 803838E0 00380840 48 03 D3 7D */ bl EXISelect
/* 803838E4 00380844 2C 03 00 00 */ cmpwi r3, 0
/* 803838E8 00380848 40 82 00 14 */ bne lbl_803838FC
/* 803838EC 0038084C 38 60 00 00 */ li r3, 0
/* 803838F0 00380850 48 03 DB 69 */ bl EXIUnlock
/* 803838F4 00380854 38 60 00 00 */ li r3, 0
/* 803838F8 00380858 48 00 00 8C */ b lbl_80383984
lbl_803838FC:
/* 803838FC 0038085C 57 FF 30 32 */ slwi r31, r31, 6
/* 80383900 00380860 38 1F 01 00 */ addi r0, r31, 0x100
/* 80383904 00380864 64 00 A0 00 */ oris r0, r0, 0xa000
/* 80383908 00380868 90 01 00 14 */ stw r0, 0x14(r1)
/* 8038390C 0038086C 38 81 00 14 */ addi r4, r1, 0x14
/* 80383910 00380870 38 60 00 00 */ li r3, 0
/* 80383914 00380874 38 A0 00 04 */ li r5, 4
/* 80383918 00380878 38 C0 00 01 */ li r6, 1
/* 8038391C 0038087C 38 E0 00 00 */ li r7, 0
/* 80383920 00380880 48 03 C7 E9 */ bl EXIImm
/* 80383924 00380884 7C 60 00 34 */ cntlzw r0, r3
/* 80383928 00380888 54 1F D9 7E */ srwi r31, r0, 5
/* 8038392C 0038088C 38 60 00 00 */ li r3, 0
/* 80383930 00380890 48 03 CB C1 */ bl sub_803c04f0
/* 80383934 00380894 7C 60 00 34 */ cntlzw r0, r3
/* 80383938 00380898 54 00 D9 7E */ srwi r0, r0, 5
/* 8038393C 0038089C 38 9D 00 00 */ addi r4, r29, 0
/* 80383940 003808A0 38 BE 00 00 */ addi r5, r30, 0
/* 80383944 003808A4 7F FF 03 78 */ or r31, r31, r0
/* 80383948 003808A8 38 60 00 00 */ li r3, 0
/* 8038394C 003808AC 38 C0 00 01 */ li r6, 1
/* 80383950 003808B0 48 03 CA 15 */ bl EXIImmEx
/* 80383954 003808B4 7C 60 00 34 */ cntlzw r0, r3
/* 80383958 003808B8 54 00 D9 7E */ srwi r0, r0, 5
/* 8038395C 003808BC 7F FF 03 78 */ or r31, r31, r0
/* 80383960 003808C0 38 60 00 00 */ li r3, 0
/* 80383964 003808C4 48 03 D4 25 */ bl EXIDeselect
/* 80383968 003808C8 7C 60 00 34 */ cntlzw r0, r3
/* 8038396C 003808CC 54 00 D9 7E */ srwi r0, r0, 5
/* 80383970 003808D0 7F FF 03 78 */ or r31, r31, r0
/* 80383974 003808D4 38 60 00 00 */ li r3, 0
/* 80383978 003808D8 48 03 DA E1 */ bl EXIUnlock
/* 8038397C 003808DC 7F E0 00 34 */ cntlzw r0, r31
/* 80383980 003808E0 54 03 D9 7E */ srwi r3, r0, 5
lbl_80383984:
/* 80383984 003808E4 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80383988 003808E8 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8038398C 003808EC 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80383990 003808F0 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80383994 003808F4 38 21 00 28 */ addi r1, r1, 0x28
/* 80383998 003808F8 7C 08 03 A6 */ mtlr r0
/* 8038399C 003808FC 4E 80 00 20 */ blr
.global sub_803839a0
sub_803839a0:
/* 803839A0 00380900 7C 08 02 A6 */ mflr r0
/* 803839A4 00380904 3C 60 80 54 */ lis r3, lbl_805415A0@ha
/* 803839A8 00380908 90 01 00 04 */ stw r0, 4(r1)
/* 803839AC 0038090C 38 80 00 40 */ li r4, 0x40
/* 803839B0 00380910 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803839B4 00380914 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803839B8 00380918 3B E0 00 00 */ li r31, 0
/* 803839BC 0038091C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 803839C0 00380920 3B C3 15 A0 */ addi r30, r3, lbl_805415A0@l
/* 803839C4 00380924 38 7E 00 00 */ addi r3, r30, 0
/* 803839C8 00380928 93 FE 00 44 */ stw r31, 0x44(r30)
/* 803839CC 0038092C 93 FE 00 48 */ stw r31, 0x48(r30)
/* 803839D0 00380930 4B FF B0 B5 */ bl DCInvalidateRange
/* 803839D4 00380934 38 60 00 00 */ li r3, 0
/* 803839D8 00380938 38 80 00 01 */ li r4, 1
/* 803839DC 0038093C 38 A0 00 00 */ li r5, 0
/* 803839E0 00380940 48 03 D9 85 */ bl EXILock
/* 803839E4 00380944 2C 03 00 00 */ cmpwi r3, 0
/* 803839E8 00380948 40 82 00 08 */ bne lbl_803839F0
/* 803839EC 0038094C 48 00 00 C4 */ b lbl_80383AB0
lbl_803839F0:
/* 803839F0 00380950 38 60 00 00 */ li r3, 0
/* 803839F4 00380954 38 80 00 01 */ li r4, 1
/* 803839F8 00380958 38 A0 00 03 */ li r5, 3
/* 803839FC 0038095C 48 03 D2 61 */ bl EXISelect
/* 80383A00 00380960 2C 03 00 00 */ cmpwi r3, 0
/* 80383A04 00380964 40 82 00 10 */ bne lbl_80383A14
/* 80383A08 00380968 38 60 00 00 */ li r3, 0
/* 80383A0C 0038096C 48 03 DA 4D */ bl EXIUnlock
/* 80383A10 00380970 48 00 00 A0 */ b lbl_80383AB0
lbl_80383A14:
/* 80383A14 00380974 3C 60 20 00 */ lis r3, 0x20000100@ha
/* 80383A18 00380978 38 03 01 00 */ addi r0, r3, 0x20000100@l
/* 80383A1C 0038097C 90 01 00 08 */ stw r0, 8(r1)
/* 80383A20 00380980 38 81 00 08 */ addi r4, r1, 8
/* 80383A24 00380984 38 60 00 00 */ li r3, 0
/* 80383A28 00380988 38 A0 00 04 */ li r5, 4
/* 80383A2C 0038098C 38 C0 00 01 */ li r6, 1
/* 80383A30 00380990 38 E0 00 00 */ li r7, 0
/* 80383A34 00380994 48 03 C6 D5 */ bl EXIImm
/* 80383A38 00380998 7C 60 00 34 */ cntlzw r0, r3
/* 80383A3C 0038099C 54 1F D9 7E */ srwi r31, r0, 5
/* 80383A40 003809A0 38 60 00 00 */ li r3, 0
/* 80383A44 003809A4 48 03 CA AD */ bl sub_803c04f0
/* 80383A48 003809A8 7C 60 00 34 */ cntlzw r0, r3
/* 80383A4C 003809AC 54 00 D9 7E */ srwi r0, r0, 5
/* 80383A50 003809B0 38 9E 00 00 */ addi r4, r30, 0
/* 80383A54 003809B4 7F FF 03 78 */ or r31, r31, r0
/* 80383A58 003809B8 38 60 00 00 */ li r3, 0
/* 80383A5C 003809BC 38 A0 00 40 */ li r5, 0x40
/* 80383A60 003809C0 38 C0 00 00 */ li r6, 0
/* 80383A64 003809C4 38 E0 00 00 */ li r7, 0
/* 80383A68 003809C8 48 03 C9 9D */ bl EXIDma
/* 80383A6C 003809CC 7C 60 00 34 */ cntlzw r0, r3
/* 80383A70 003809D0 54 00 D9 7E */ srwi r0, r0, 5
/* 80383A74 003809D4 7F FF 03 78 */ or r31, r31, r0
/* 80383A78 003809D8 38 60 00 00 */ li r3, 0
/* 80383A7C 003809DC 48 03 CA 75 */ bl sub_803c04f0
/* 80383A80 003809E0 7C 60 00 34 */ cntlzw r0, r3
/* 80383A84 003809E4 54 00 D9 7E */ srwi r0, r0, 5
/* 80383A88 003809E8 7F FF 03 78 */ or r31, r31, r0
/* 80383A8C 003809EC 38 60 00 00 */ li r3, 0
/* 80383A90 003809F0 48 03 D2 F9 */ bl EXIDeselect
/* 80383A94 003809F4 7C 60 00 34 */ cntlzw r0, r3
/* 80383A98 003809F8 54 00 D9 7E */ srwi r0, r0, 5
/* 80383A9C 003809FC 7F FF 03 78 */ or r31, r31, r0
/* 80383AA0 00380A00 38 60 00 00 */ li r3, 0
/* 80383AA4 00380A04 48 03 D9 B5 */ bl EXIUnlock
/* 80383AA8 00380A08 7F E0 00 34 */ cntlzw r0, r31
/* 80383AAC 00380A0C 54 1F D9 7E */ srwi r31, r0, 5
lbl_80383AB0:
/* 80383AB0 00380A10 93 FE 00 4C */ stw r31, 0x4c(r30)
/* 80383AB4 00380A14 38 00 00 40 */ li r0, 0x40
/* 80383AB8 00380A18 90 1E 00 40 */ stw r0, 0x40(r30)
/* 80383ABC 00380A1C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80383AC0 00380A20 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80383AC4 00380A24 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80383AC8 00380A28 38 21 00 18 */ addi r1, r1, 0x18
/* 80383ACC 00380A2C 7C 08 03 A6 */ mtlr r0
/* 80383AD0 00380A30 4E 80 00 20 */ blr
.global __OSLockSram
__OSLockSram:
/* 80383AD4 00380A34 7C 08 02 A6 */ mflr r0
/* 80383AD8 00380A38 3C 60 80 54 */ lis r3, lbl_805415A0@ha
/* 80383ADC 00380A3C 90 01 00 04 */ stw r0, 4(r1)
/* 80383AE0 00380A40 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80383AE4 00380A44 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80383AE8 00380A48 3B E3 15 A0 */ addi r31, r3, lbl_805415A0@l
/* 80383AEC 00380A4C 4B FF DB 75 */ bl OSDisableInterrupts
/* 80383AF0 00380A50 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 80383AF4 00380A54 38 9F 00 48 */ addi r4, r31, 0x48
/* 80383AF8 00380A58 2C 00 00 00 */ cmpwi r0, 0
/* 80383AFC 00380A5C 41 82 00 10 */ beq lbl_80383B0C
/* 80383B00 00380A60 4B FF DB 89 */ bl OSRestoreInterrupts
/* 80383B04 00380A64 3B E0 00 00 */ li r31, 0
/* 80383B08 00380A68 48 00 00 10 */ b lbl_80383B18
lbl_80383B0C:
/* 80383B0C 00380A6C 90 7F 00 44 */ stw r3, 0x44(r31)
/* 80383B10 00380A70 38 00 00 01 */ li r0, 1
/* 80383B14 00380A74 90 04 00 00 */ stw r0, 0(r4)
lbl_80383B18:
/* 80383B18 00380A78 7F E3 FB 78 */ mr r3, r31
/* 80383B1C 00380A7C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80383B20 00380A80 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80383B24 00380A84 38 21 00 10 */ addi r1, r1, 0x10
/* 80383B28 00380A88 7C 08 03 A6 */ mtlr r0
/* 80383B2C 00380A8C 4E 80 00 20 */ blr
.global __OSLockSramEx
__OSLockSramEx:
/* 80383B30 00380A90 7C 08 02 A6 */ mflr r0
/* 80383B34 00380A94 3C 60 80 54 */ lis r3, lbl_805415A0@ha
/* 80383B38 00380A98 90 01 00 04 */ stw r0, 4(r1)
/* 80383B3C 00380A9C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80383B40 00380AA0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80383B44 00380AA4 3B E3 15 A0 */ addi r31, r3, lbl_805415A0@l
/* 80383B48 00380AA8 4B FF DB 19 */ bl OSDisableInterrupts
/* 80383B4C 00380AAC 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 80383B50 00380AB0 38 9F 00 48 */ addi r4, r31, 0x48
/* 80383B54 00380AB4 2C 00 00 00 */ cmpwi r0, 0
/* 80383B58 00380AB8 41 82 00 10 */ beq lbl_80383B68
/* 80383B5C 00380ABC 4B FF DB 2D */ bl OSRestoreInterrupts
/* 80383B60 00380AC0 38 60 00 00 */ li r3, 0
/* 80383B64 00380AC4 48 00 00 14 */ b lbl_80383B78
lbl_80383B68:
/* 80383B68 00380AC8 90 7F 00 44 */ stw r3, 0x44(r31)
/* 80383B6C 00380ACC 38 00 00 01 */ li r0, 1
/* 80383B70 00380AD0 38 7F 00 14 */ addi r3, r31, 0x14
/* 80383B74 00380AD4 90 04 00 00 */ stw r0, 0(r4)
lbl_80383B78:
/* 80383B78 00380AD8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80383B7C 00380ADC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80383B80 00380AE0 38 21 00 10 */ addi r1, r1, 0x10
/* 80383B84 00380AE4 7C 08 03 A6 */ mtlr r0
/* 80383B88 00380AE8 4E 80 00 20 */ blr
.global sub_80383b8c
sub_80383b8c:
/* 80383B8C 00380AEC 7C 08 02 A6 */ mflr r0
/* 80383B90 00380AF0 2C 03 00 00 */ cmpwi r3, 0
/* 80383B94 00380AF4 90 01 00 04 */ stw r0, 4(r1)
/* 80383B98 00380AF8 3C 60 80 54 */ lis r3, lbl_805415A0@ha
/* 80383B9C 00380AFC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80383BA0 00380B00 BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 80383BA4 00380B04 3B E3 15 A0 */ addi r31, r3, lbl_805415A0@l
/* 80383BA8 00380B08 41 82 02 C4 */ beq lbl_80383E6C
/* 80383BAC 00380B0C 28 04 00 00 */ cmplwi r4, 0
/* 80383BB0 00380B10 40 82 01 B0 */ bne lbl_80383D60
/* 80383BB4 00380B14 88 7F 00 13 */ lbz r3, 0x13(r31)
/* 80383BB8 00380B18 54 60 07 BE */ clrlwi r0, r3, 0x1e
/* 80383BBC 00380B1C 28 00 00 02 */ cmplwi r0, 2
/* 80383BC0 00380B20 40 81 00 0C */ ble lbl_80383BCC
/* 80383BC4 00380B24 54 60 00 3A */ rlwinm r0, r3, 0, 0, 0x1d
/* 80383BC8 00380B28 98 1F 00 13 */ stb r0, 0x13(r31)
lbl_80383BCC:
/* 80383BCC 00380B2C 38 00 00 00 */ li r0, 0
/* 80383BD0 00380B30 B0 1F 00 02 */ sth r0, 2(r31)
/* 80383BD4 00380B34 38 BF 00 14 */ addi r5, r31, 0x14
/* 80383BD8 00380B38 38 DF 00 0C */ addi r6, r31, 0xc
/* 80383BDC 00380B3C 38 65 00 01 */ addi r3, r5, 1
/* 80383BE0 00380B40 B0 1F 00 00 */ sth r0, 0(r31)
/* 80383BE4 00380B44 7C 66 18 50 */ subf r3, r6, r3
/* 80383BE8 00380B48 7C 06 28 40 */ cmplw r6, r5
/* 80383BEC 00380B4C 54 63 F8 7E */ srwi r3, r3, 1
/* 80383BF0 00380B50 40 80 01 70 */ bge lbl_80383D60
/* 80383BF4 00380B54 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
/* 80383BF8 00380B58 7C 09 03 A6 */ mtctr r0
/* 80383BFC 00380B5C 41 82 01 34 */ beq lbl_80383D30
lbl_80383C00:
/* 80383C00 00380B60 A0 BF 00 00 */ lhz r5, 0(r31)
/* 80383C04 00380B64 A0 06 00 00 */ lhz r0, 0(r6)
/* 80383C08 00380B68 7C 05 02 14 */ add r0, r5, r0
/* 80383C0C 00380B6C B0 1F 00 00 */ sth r0, 0(r31)
/* 80383C10 00380B70 A0 06 00 00 */ lhz r0, 0(r6)
/* 80383C14 00380B74 A0 BF 00 02 */ lhz r5, 2(r31)
/* 80383C18 00380B78 7C 00 00 F8 */ nor r0, r0, r0
/* 80383C1C 00380B7C 7C 05 02 14 */ add r0, r5, r0
/* 80383C20 00380B80 B0 1F 00 02 */ sth r0, 2(r31)
/* 80383C24 00380B84 A0 BF 00 00 */ lhz r5, 0(r31)
/* 80383C28 00380B88 A0 06 00 02 */ lhz r0, 2(r6)
/* 80383C2C 00380B8C 7C 05 02 14 */ add r0, r5, r0
/* 80383C30 00380B90 B0 1F 00 00 */ sth r0, 0(r31)
/* 80383C34 00380B94 A0 06 00 02 */ lhz r0, 2(r6)
/* 80383C38 00380B98 A0 BF 00 02 */ lhz r5, 2(r31)
/* 80383C3C 00380B9C 7C 00 00 F8 */ nor r0, r0, r0
/* 80383C40 00380BA0 7C 05 02 14 */ add r0, r5, r0
/* 80383C44 00380BA4 B0 1F 00 02 */ sth r0, 2(r31)
/* 80383C48 00380BA8 A0 BF 00 00 */ lhz r5, 0(r31)
/* 80383C4C 00380BAC A0 06 00 04 */ lhz r0, 4(r6)
/* 80383C50 00380BB0 7C 05 02 14 */ add r0, r5, r0
/* 80383C54 00380BB4 B0 1F 00 00 */ sth r0, 0(r31)
/* 80383C58 00380BB8 A0 06 00 04 */ lhz r0, 4(r6)
/* 80383C5C 00380BBC A0 BF 00 02 */ lhz r5, 2(r31)
/* 80383C60 00380BC0 7C 00 00 F8 */ nor r0, r0, r0
/* 80383C64 00380BC4 7C 05 02 14 */ add r0, r5, r0
/* 80383C68 00380BC8 B0 1F 00 02 */ sth r0, 2(r31)
/* 80383C6C 00380BCC A0 BF 00 00 */ lhz r5, 0(r31)
/* 80383C70 00380BD0 A0 06 00 06 */ lhz r0, 6(r6)
/* 80383C74 00380BD4 7C 05 02 14 */ add r0, r5, r0
/* 80383C78 00380BD8 B0 1F 00 00 */ sth r0, 0(r31)
/* 80383C7C 00380BDC A0 06 00 06 */ lhz r0, 6(r6)
/* 80383C80 00380BE0 A0 BF 00 02 */ lhz r5, 2(r31)
/* 80383C84 00380BE4 7C 00 00 F8 */ nor r0, r0, r0
/* 80383C88 00380BE8 7C 05 02 14 */ add r0, r5, r0
/* 80383C8C 00380BEC B0 1F 00 02 */ sth r0, 2(r31)
/* 80383C90 00380BF0 A0 BF 00 00 */ lhz r5, 0(r31)
/* 80383C94 00380BF4 A0 06 00 08 */ lhz r0, 8(r6)
/* 80383C98 00380BF8 7C 05 02 14 */ add r0, r5, r0
/* 80383C9C 00380BFC B0 1F 00 00 */ sth r0, 0(r31)
/* 80383CA0 00380C00 A0 06 00 08 */ lhz r0, 8(r6)
/* 80383CA4 00380C04 A0 BF 00 02 */ lhz r5, 2(r31)
/* 80383CA8 00380C08 7C 00 00 F8 */ nor r0, r0, r0
/* 80383CAC 00380C0C 7C 05 02 14 */ add r0, r5, r0
/* 80383CB0 00380C10 B0 1F 00 02 */ sth r0, 2(r31)
/* 80383CB4 00380C14 A0 BF 00 00 */ lhz r5, 0(r31)
/* 80383CB8 00380C18 A0 06 00 0A */ lhz r0, 0xa(r6)
/* 80383CBC 00380C1C 7C 05 02 14 */ add r0, r5, r0
/* 80383CC0 00380C20 B0 1F 00 00 */ sth r0, 0(r31)
/* 80383CC4 00380C24 A0 06 00 0A */ lhz r0, 0xa(r6)
/* 80383CC8 00380C28 A0 BF 00 02 */ lhz r5, 2(r31)
/* 80383CCC 00380C2C 7C 00 00 F8 */ nor r0, r0, r0
/* 80383CD0 00380C30 7C 05 02 14 */ add r0, r5, r0
/* 80383CD4 00380C34 B0 1F 00 02 */ sth r0, 2(r31)
/* 80383CD8 00380C38 A0 BF 00 00 */ lhz r5, 0(r31)
/* 80383CDC 00380C3C A0 06 00 0C */ lhz r0, 0xc(r6)
/* 80383CE0 00380C40 7C 05 02 14 */ add r0, r5, r0
/* 80383CE4 00380C44 B0 1F 00 00 */ sth r0, 0(r31)
/* 80383CE8 00380C48 A0 06 00 0C */ lhz r0, 0xc(r6)
/* 80383CEC 00380C4C A0 BF 00 02 */ lhz r5, 2(r31)
/* 80383CF0 00380C50 7C 00 00 F8 */ nor r0, r0, r0
/* 80383CF4 00380C54 7C 05 02 14 */ add r0, r5, r0
/* 80383CF8 00380C58 B0 1F 00 02 */ sth r0, 2(r31)
/* 80383CFC 00380C5C A0 BF 00 00 */ lhz r5, 0(r31)
/* 80383D00 00380C60 A0 06 00 0E */ lhz r0, 0xe(r6)
/* 80383D04 00380C64 7C 05 02 14 */ add r0, r5, r0
/* 80383D08 00380C68 B0 1F 00 00 */ sth r0, 0(r31)
/* 80383D0C 00380C6C A0 06 00 0E */ lhz r0, 0xe(r6)
/* 80383D10 00380C70 38 C6 00 10 */ addi r6, r6, 0x10
/* 80383D14 00380C74 A0 BF 00 02 */ lhz r5, 2(r31)
/* 80383D18 00380C78 7C 00 00 F8 */ nor r0, r0, r0
/* 80383D1C 00380C7C 7C 05 02 14 */ add r0, r5, r0
/* 80383D20 00380C80 B0 1F 00 02 */ sth r0, 2(r31)
/* 80383D24 00380C84 42 00 FE DC */ bdnz lbl_80383C00
/* 80383D28 00380C88 70 63 00 07 */ andi. r3, r3, 7
/* 80383D2C 00380C8C 41 82 00 34 */ beq lbl_80383D60
lbl_80383D30:
/* 80383D30 00380C90 7C 69 03 A6 */ mtctr r3
lbl_80383D34:
/* 80383D34 00380C94 A0 BF 00 00 */ lhz r5, 0(r31)
/* 80383D38 00380C98 A0 06 00 00 */ lhz r0, 0(r6)
/* 80383D3C 00380C9C 7C 05 02 14 */ add r0, r5, r0
/* 80383D40 00380CA0 B0 1F 00 00 */ sth r0, 0(r31)
/* 80383D44 00380CA4 A0 06 00 00 */ lhz r0, 0(r6)
/* 80383D48 00380CA8 38 C6 00 02 */ addi r6, r6, 2
/* 80383D4C 00380CAC A0 BF 00 02 */ lhz r5, 2(r31)
/* 80383D50 00380CB0 7C 00 00 F8 */ nor r0, r0, r0
/* 80383D54 00380CB4 7C 05 02 14 */ add r0, r5, r0
/* 80383D58 00380CB8 B0 1F 00 02 */ sth r0, 2(r31)
/* 80383D5C 00380CBC 42 00 FF D8 */ bdnz lbl_80383D34
lbl_80383D60:
/* 80383D60 00380CC0 3B DF 00 40 */ addi r30, r31, 0x40
/* 80383D64 00380CC4 80 1F 00 40 */ lwz r0, 0x40(r31)
/* 80383D68 00380CC8 7C 04 00 40 */ cmplw r4, r0
/* 80383D6C 00380CCC 40 80 00 08 */ bge lbl_80383D74
/* 80383D70 00380CD0 90 9E 00 00 */ stw r4, 0(r30)
lbl_80383D74:
/* 80383D74 00380CD4 83 BE 00 00 */ lwz r29, 0(r30)
/* 80383D78 00380CD8 3C 60 80 38 */ lis r3, WriteSramCallback@ha
/* 80383D7C 00380CDC 38 A3 38 28 */ addi r5, r3, WriteSramCallback@l
/* 80383D80 00380CE0 23 7D 00 40 */ subfic r27, r29, 0x40
/* 80383D84 00380CE4 7F 9F EA 14 */ add r28, r31, r29
/* 80383D88 00380CE8 38 60 00 00 */ li r3, 0
/* 80383D8C 00380CEC 38 80 00 01 */ li r4, 1
/* 80383D90 00380CF0 48 03 D5 D5 */ bl EXILock
/* 80383D94 00380CF4 2C 03 00 00 */ cmpwi r3, 0
/* 80383D98 00380CF8 40 82 00 0C */ bne lbl_80383DA4
/* 80383D9C 00380CFC 38 00 00 00 */ li r0, 0
/* 80383DA0 00380D00 48 00 00 B4 */ b lbl_80383E54
lbl_80383DA4:
/* 80383DA4 00380D04 38 60 00 00 */ li r3, 0
/* 80383DA8 00380D08 38 80 00 01 */ li r4, 1
/* 80383DAC 00380D0C 38 A0 00 03 */ li r5, 3
/* 80383DB0 00380D10 48 03 CE AD */ bl EXISelect
/* 80383DB4 00380D14 2C 03 00 00 */ cmpwi r3, 0
/* 80383DB8 00380D18 40 82 00 14 */ bne lbl_80383DCC
/* 80383DBC 00380D1C 38 60 00 00 */ li r3, 0
/* 80383DC0 00380D20 48 03 D6 99 */ bl EXIUnlock
/* 80383DC4 00380D24 38 00 00 00 */ li r0, 0
/* 80383DC8 00380D28 48 00 00 8C */ b lbl_80383E54
lbl_80383DCC:
/* 80383DCC 00380D2C 57 A3 30 32 */ slwi r3, r29, 6
/* 80383DD0 00380D30 38 03 01 00 */ addi r0, r3, 0x100
/* 80383DD4 00380D34 64 00 A0 00 */ oris r0, r0, 0xa000
/* 80383DD8 00380D38 90 01 00 10 */ stw r0, 0x10(r1)
/* 80383DDC 00380D3C 38 81 00 10 */ addi r4, r1, 0x10
/* 80383DE0 00380D40 38 60 00 00 */ li r3, 0
/* 80383DE4 00380D44 38 A0 00 04 */ li r5, 4
/* 80383DE8 00380D48 38 C0 00 01 */ li r6, 1
/* 80383DEC 00380D4C 38 E0 00 00 */ li r7, 0
/* 80383DF0 00380D50 48 03 C3 19 */ bl EXIImm
/* 80383DF4 00380D54 7C 60 00 34 */ cntlzw r0, r3
/* 80383DF8 00380D58 54 1D D9 7E */ srwi r29, r0, 5
/* 80383DFC 00380D5C 38 60 00 00 */ li r3, 0
/* 80383E00 00380D60 48 03 C6 F1 */ bl sub_803c04f0
/* 80383E04 00380D64 7C 60 00 34 */ cntlzw r0, r3
/* 80383E08 00380D68 54 00 D9 7E */ srwi r0, r0, 5
/* 80383E0C 00380D6C 38 9C 00 00 */ addi r4, r28, 0
/* 80383E10 00380D70 38 BB 00 00 */ addi r5, r27, 0
/* 80383E14 00380D74 7F BD 03 78 */ or r29, r29, r0
/* 80383E18 00380D78 38 60 00 00 */ li r3, 0
/* 80383E1C 00380D7C 38 C0 00 01 */ li r6, 1
/* 80383E20 00380D80 48 03 C5 45 */ bl EXIImmEx
/* 80383E24 00380D84 7C 60 00 34 */ cntlzw r0, r3
/* 80383E28 00380D88 54 00 D9 7E */ srwi r0, r0, 5
/* 80383E2C 00380D8C 7F BD 03 78 */ or r29, r29, r0
/* 80383E30 00380D90 38 60 00 00 */ li r3, 0
/* 80383E34 00380D94 48 03 CF 55 */ bl EXIDeselect
/* 80383E38 00380D98 7C 60 00 34 */ cntlzw r0, r3
/* 80383E3C 00380D9C 54 00 D9 7E */ srwi r0, r0, 5
/* 80383E40 00380DA0 7F BD 03 78 */ or r29, r29, r0
/* 80383E44 00380DA4 38 60 00 00 */ li r3, 0
/* 80383E48 00380DA8 48 03 D6 11 */ bl EXIUnlock
/* 80383E4C 00380DAC 7F A0 00 34 */ cntlzw r0, r29
/* 80383E50 00380DB0 54 00 D9 7E */ srwi r0, r0, 5
lbl_80383E54:
/* 80383E54 00380DB4 90 1F 00 4C */ stw r0, 0x4c(r31)
/* 80383E58 00380DB8 80 1F 00 4C */ lwz r0, 0x4c(r31)
/* 80383E5C 00380DBC 2C 00 00 00 */ cmpwi r0, 0
/* 80383E60 00380DC0 41 82 00 0C */ beq lbl_80383E6C
/* 80383E64 00380DC4 38 00 00 40 */ li r0, 0x40
/* 80383E68 00380DC8 90 1E 00 00 */ stw r0, 0(r30)
lbl_80383E6C:
/* 80383E6C 00380DCC 38 00 00 00 */ li r0, 0
/* 80383E70 00380DD0 90 1F 00 48 */ stw r0, 0x48(r31)
/* 80383E74 00380DD4 80 7F 00 44 */ lwz r3, 0x44(r31)
/* 80383E78 00380DD8 4B FF D8 11 */ bl OSRestoreInterrupts
/* 80383E7C 00380DDC 80 7F 00 4C */ lwz r3, 0x4c(r31)
/* 80383E80 00380DE0 BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 80383E84 00380DE4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80383E88 00380DE8 38 21 00 30 */ addi r1, r1, 0x30
/* 80383E8C 00380DEC 7C 08 03 A6 */ mtlr r0
/* 80383E90 00380DF0 4E 80 00 20 */ blr
.global __OSUnlockSram
__OSUnlockSram:
/* 80383E94 00380DF4 7C 08 02 A6 */ mflr r0
/* 80383E98 00380DF8 38 80 00 00 */ li r4, 0
/* 80383E9C 00380DFC 90 01 00 04 */ stw r0, 4(r1)
/* 80383EA0 00380E00 94 21 FF F8 */ stwu r1, -8(r1)
/* 80383EA4 00380E04 4B FF FC E9 */ bl sub_80383b8c
/* 80383EA8 00380E08 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80383EAC 00380E0C 38 21 00 08 */ addi r1, r1, 8
/* 80383EB0 00380E10 7C 08 03 A6 */ mtlr r0
/* 80383EB4 00380E14 4E 80 00 20 */ blr
.global __OSUnlockSramEx
__OSUnlockSramEx:
/* 80383EB8 00380E18 7C 08 02 A6 */ mflr r0
/* 80383EBC 00380E1C 38 80 00 14 */ li r4, 0x14
/* 80383EC0 00380E20 90 01 00 04 */ stw r0, 4(r1)
/* 80383EC4 00380E24 94 21 FF F8 */ stwu r1, -8(r1)
/* 80383EC8 00380E28 4B FF FC C5 */ bl sub_80383b8c
/* 80383ECC 00380E2C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80383ED0 00380E30 38 21 00 08 */ addi r1, r1, 8
/* 80383ED4 00380E34 7C 08 03 A6 */ mtlr r0
/* 80383ED8 00380E38 4E 80 00 20 */ blr
.global __OSSyncSram
__OSSyncSram:
/* 80383EDC 00380E3C 3C 60 80 54 */ lis r3, lbl_805415A0@ha
/* 80383EE0 00380E40 38 63 15 A0 */ addi r3, r3, lbl_805415A0@l
/* 80383EE4 00380E44 80 63 00 4C */ lwz r3, 0x4c(r3)
/* 80383EE8 00380E48 4E 80 00 20 */ blr
.global sub_80383eec
sub_80383eec:
/* 80383EEC 00380E4C 7C 08 02 A6 */ mflr r0
/* 80383EF0 00380E50 90 01 00 04 */ stw r0, 4(r1)
/* 80383EF4 00380E54 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80383EF8 00380E58 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80383EFC 00380E5C 3B E5 00 00 */ addi r31, r5, 0
/* 80383F00 00380E60 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80383F04 00380E64 3B C4 00 00 */ addi r30, r4, 0
/* 80383F08 00380E68 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80383F0C 00380E6C 3B A3 00 00 */ addi r29, r3, 0
/* 80383F10 00380E70 4B FF AB 75 */ bl DCInvalidateRange
/* 80383F14 00380E74 38 60 00 00 */ li r3, 0
/* 80383F18 00380E78 38 80 00 01 */ li r4, 1
/* 80383F1C 00380E7C 38 A0 00 00 */ li r5, 0
/* 80383F20 00380E80 48 03 D4 45 */ bl EXILock
/* 80383F24 00380E84 2C 03 00 00 */ cmpwi r3, 0
/* 80383F28 00380E88 40 82 00 0C */ bne lbl_80383F34
/* 80383F2C 00380E8C 38 60 00 00 */ li r3, 0
/* 80383F30 00380E90 48 00 00 C4 */ b lbl_80383FF4
lbl_80383F34:
/* 80383F34 00380E94 38 60 00 00 */ li r3, 0
/* 80383F38 00380E98 38 80 00 01 */ li r4, 1
/* 80383F3C 00380E9C 38 A0 00 03 */ li r5, 3
/* 80383F40 00380EA0 48 03 CD 1D */ bl EXISelect
/* 80383F44 00380EA4 2C 03 00 00 */ cmpwi r3, 0
/* 80383F48 00380EA8 40 82 00 14 */ bne lbl_80383F5C
/* 80383F4C 00380EAC 38 60 00 00 */ li r3, 0
/* 80383F50 00380EB0 48 03 D5 09 */ bl EXIUnlock
/* 80383F54 00380EB4 38 60 00 00 */ li r3, 0
/* 80383F58 00380EB8 48 00 00 9C */ b lbl_80383FF4
lbl_80383F5C:
/* 80383F5C 00380EBC 57 E0 30 32 */ slwi r0, r31, 6
/* 80383F60 00380EC0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80383F64 00380EC4 38 81 00 14 */ addi r4, r1, 0x14
/* 80383F68 00380EC8 38 60 00 00 */ li r3, 0
/* 80383F6C 00380ECC 38 A0 00 04 */ li r5, 4
/* 80383F70 00380ED0 38 C0 00 01 */ li r6, 1
/* 80383F74 00380ED4 38 E0 00 00 */ li r7, 0
/* 80383F78 00380ED8 48 03 C1 91 */ bl EXIImm
/* 80383F7C 00380EDC 7C 60 00 34 */ cntlzw r0, r3
/* 80383F80 00380EE0 54 1F D9 7E */ srwi r31, r0, 5
/* 80383F84 00380EE4 38 60 00 00 */ li r3, 0
/* 80383F88 00380EE8 48 03 C5 69 */ bl sub_803c04f0
/* 80383F8C 00380EEC 7C 60 00 34 */ cntlzw r0, r3
/* 80383F90 00380EF0 54 00 D9 7E */ srwi r0, r0, 5
/* 80383F94 00380EF4 38 9D 00 00 */ addi r4, r29, 0
/* 80383F98 00380EF8 38 BE 00 00 */ addi r5, r30, 0
/* 80383F9C 00380EFC 7F FF 03 78 */ or r31, r31, r0
/* 80383FA0 00380F00 38 60 00 00 */ li r3, 0
/* 80383FA4 00380F04 38 C0 00 00 */ li r6, 0
/* 80383FA8 00380F08 38 E0 00 00 */ li r7, 0
/* 80383FAC 00380F0C 48 03 C4 59 */ bl EXIDma
/* 80383FB0 00380F10 7C 60 00 34 */ cntlzw r0, r3
/* 80383FB4 00380F14 54 00 D9 7E */ srwi r0, r0, 5
/* 80383FB8 00380F18 7F FF 03 78 */ or r31, r31, r0
/* 80383FBC 00380F1C 38 60 00 00 */ li r3, 0
/* 80383FC0 00380F20 48 03 C5 31 */ bl sub_803c04f0
/* 80383FC4 00380F24 7C 60 00 34 */ cntlzw r0, r3
/* 80383FC8 00380F28 54 00 D9 7E */ srwi r0, r0, 5
/* 80383FCC 00380F2C 7F FF 03 78 */ or r31, r31, r0
/* 80383FD0 00380F30 38 60 00 00 */ li r3, 0
/* 80383FD4 00380F34 48 03 CD B5 */ bl EXIDeselect
/* 80383FD8 00380F38 7C 60 00 34 */ cntlzw r0, r3
/* 80383FDC 00380F3C 54 00 D9 7E */ srwi r0, r0, 5
/* 80383FE0 00380F40 7F FF 03 78 */ or r31, r31, r0
/* 80383FE4 00380F44 38 60 00 00 */ li r3, 0
/* 80383FE8 00380F48 48 03 D4 71 */ bl EXIUnlock
/* 80383FEC 00380F4C 7F E0 00 34 */ cntlzw r0, r31
/* 80383FF0 00380F50 54 03 D9 7E */ srwi r3, r0, 5
lbl_80383FF4:
/* 80383FF4 00380F54 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80383FF8 00380F58 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80383FFC 00380F5C 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80384000 00380F60 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80384004 00380F64 38 21 00 28 */ addi r1, r1, 0x28
/* 80384008 00380F68 7C 08 03 A6 */ mtlr r0
/* 8038400C 00380F6C 4E 80 00 20 */ blr
.global OSGetSoundMode
OSGetSoundMode:
/* 80384010 00380F70 7C 08 02 A6 */ mflr r0
/* 80384014 00380F74 3C 60 80 54 */ lis r3, lbl_805415A0@ha
/* 80384018 00380F78 90 01 00 04 */ stw r0, 4(r1)
/* 8038401C 00380F7C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80384020 00380F80 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80384024 00380F84 3B E3 15 A0 */ addi r31, r3, lbl_805415A0@l
/* 80384028 00380F88 4B FF D6 39 */ bl OSDisableInterrupts
/* 8038402C 00380F8C 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 80384030 00380F90 38 9F 00 48 */ addi r4, r31, 0x48
/* 80384034 00380F94 2C 00 00 00 */ cmpwi r0, 0
/* 80384038 00380F98 41 82 00 10 */ beq lbl_80384048
/* 8038403C 00380F9C 4B FF D6 4D */ bl OSRestoreInterrupts
/* 80384040 00380FA0 3B E0 00 00 */ li r31, 0
/* 80384044 00380FA4 48 00 00 10 */ b lbl_80384054
lbl_80384048:
/* 80384048 00380FA8 90 7F 00 44 */ stw r3, 0x44(r31)
/* 8038404C 00380FAC 38 00 00 01 */ li r0, 1
/* 80384050 00380FB0 90 04 00 00 */ stw r0, 0(r4)
lbl_80384054:
/* 80384054 00380FB4 88 1F 00 13 */ lbz r0, 0x13(r31)
/* 80384058 00380FB8 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 8038405C 00380FBC 41 82 00 0C */ beq lbl_80384068
/* 80384060 00380FC0 3B E0 00 01 */ li r31, 1
/* 80384064 00380FC4 48 00 00 08 */ b lbl_8038406C
lbl_80384068:
/* 80384068 00380FC8 3B E0 00 00 */ li r31, 0
lbl_8038406C:
/* 8038406C 00380FCC 38 60 00 00 */ li r3, 0
/* 80384070 00380FD0 38 80 00 00 */ li r4, 0
/* 80384074 00380FD4 4B FF FB 19 */ bl sub_80383b8c
/* 80384078 00380FD8 7F E3 FB 78 */ mr r3, r31
/* 8038407C 00380FDC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80384080 00380FE0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80384084 00380FE4 38 21 00 20 */ addi r1, r1, 0x20
/* 80384088 00380FE8 7C 08 03 A6 */ mtlr r0
/* 8038408C 00380FEC 4E 80 00 20 */ blr
.global OSSetSoundMode
OSSetSoundMode:
/* 80384090 00380FF0 7C 08 02 A6 */ mflr r0
/* 80384094 00380FF4 3C 80 80 54 */ lis r4, lbl_805415A0@ha
/* 80384098 00380FF8 90 01 00 04 */ stw r0, 4(r1)
/* 8038409C 00380FFC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803840A0 00381000 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803840A4 00381004 3B E4 15 A0 */ addi r31, r4, lbl_805415A0@l
/* 803840A8 00381008 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803840AC 0038100C 54 7E 17 7A */ rlwinm r30, r3, 2, 0x1d, 0x1d
/* 803840B0 00381010 4B FF D5 B1 */ bl OSDisableInterrupts
/* 803840B4 00381014 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 803840B8 00381018 38 9F 00 48 */ addi r4, r31, 0x48
/* 803840BC 0038101C 2C 00 00 00 */ cmpwi r0, 0
/* 803840C0 00381020 41 82 00 10 */ beq lbl_803840D0
/* 803840C4 00381024 4B FF D5 C5 */ bl OSRestoreInterrupts
/* 803840C8 00381028 3B E0 00 00 */ li r31, 0
/* 803840CC 0038102C 48 00 00 10 */ b lbl_803840DC
lbl_803840D0:
/* 803840D0 00381030 90 7F 00 44 */ stw r3, 0x44(r31)
/* 803840D4 00381034 38 00 00 01 */ li r0, 1
/* 803840D8 00381038 90 04 00 00 */ stw r0, 0(r4)
lbl_803840DC:
/* 803840DC 0038103C 88 7F 00 13 */ lbz r3, 0x13(r31)
/* 803840E0 00381040 54 60 07 7A */ rlwinm r0, r3, 0, 0x1d, 0x1d
/* 803840E4 00381044 7C 1E 00 40 */ cmplw r30, r0
/* 803840E8 00381048 40 82 00 14 */ bne lbl_803840FC
/* 803840EC 0038104C 38 60 00 00 */ li r3, 0
/* 803840F0 00381050 38 80 00 00 */ li r4, 0
/* 803840F4 00381054 4B FF FA 99 */ bl sub_80383b8c
/* 803840F8 00381058 48 00 00 24 */ b lbl_8038411C
lbl_803840FC:
/* 803840FC 0038105C 54 60 07 B8 */ rlwinm r0, r3, 0, 0x1e, 0x1c
/* 80384100 00381060 98 1F 00 13 */ stb r0, 0x13(r31)
/* 80384104 00381064 38 60 00 01 */ li r3, 1
/* 80384108 00381068 38 80 00 00 */ li r4, 0
/* 8038410C 0038106C 88 1F 00 13 */ lbz r0, 0x13(r31)
/* 80384110 00381070 7C 00 F3 78 */ or r0, r0, r30
/* 80384114 00381074 98 1F 00 13 */ stb r0, 0x13(r31)
/* 80384118 00381078 4B FF FA 75 */ bl sub_80383b8c
lbl_8038411C:
/* 8038411C 0038107C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80384120 00381080 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80384124 00381084 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80384128 00381088 38 21 00 20 */ addi r1, r1, 0x20
/* 8038412C 0038108C 7C 08 03 A6 */ mtlr r0
/* 80384130 00381090 4E 80 00 20 */ blr
.global OSGetProgressiveMode
OSGetProgressiveMode:
/* 80384134 00381094 7C 08 02 A6 */ mflr r0
/* 80384138 00381098 3C 60 80 54 */ lis r3, lbl_805415A0@ha
/* 8038413C 0038109C 90 01 00 04 */ stw r0, 4(r1)
/* 80384140 003810A0 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80384144 003810A4 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80384148 003810A8 3B E3 15 A0 */ addi r31, r3, lbl_805415A0@l
/* 8038414C 003810AC 4B FF D5 15 */ bl OSDisableInterrupts
/* 80384150 003810B0 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 80384154 003810B4 38 9F 00 48 */ addi r4, r31, 0x48
/* 80384158 003810B8 2C 00 00 00 */ cmpwi r0, 0
/* 8038415C 003810BC 41 82 00 10 */ beq lbl_8038416C
/* 80384160 003810C0 4B FF D5 29 */ bl OSRestoreInterrupts
/* 80384164 003810C4 3B E0 00 00 */ li r31, 0
/* 80384168 003810C8 48 00 00 10 */ b lbl_80384178
lbl_8038416C:
/* 8038416C 003810CC 90 7F 00 44 */ stw r3, 0x44(r31)
/* 80384170 003810D0 38 00 00 01 */ li r0, 1
/* 80384174 003810D4 90 04 00 00 */ stw r0, 0(r4)
lbl_80384178:
/* 80384178 003810D8 88 1F 00 13 */ lbz r0, 0x13(r31)
/* 8038417C 003810DC 38 60 00 00 */ li r3, 0
/* 80384180 003810E0 38 80 00 00 */ li r4, 0
/* 80384184 003810E4 54 1F CF FE */ rlwinm r31, r0, 0x19, 0x1f, 0x1f
/* 80384188 003810E8 4B FF FA 05 */ bl sub_80383b8c
/* 8038418C 003810EC 7F E3 FB 78 */ mr r3, r31
/* 80384190 003810F0 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80384194 003810F4 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80384198 003810F8 38 21 00 18 */ addi r1, r1, 0x18
/* 8038419C 003810FC 7C 08 03 A6 */ mtlr r0
/* 803841A0 00381100 4E 80 00 20 */ blr
.global sub_803841a4
sub_803841a4:
/* 803841A4 00381104 7C 08 02 A6 */ mflr r0
/* 803841A8 00381108 3C 80 80 54 */ lis r4, lbl_805415A0@ha
/* 803841AC 0038110C 90 01 00 04 */ stw r0, 4(r1)
/* 803841B0 00381110 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803841B4 00381114 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803841B8 00381118 3B E4 15 A0 */ addi r31, r4, lbl_805415A0@l
/* 803841BC 0038111C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803841C0 00381120 54 7E 3E 30 */ rlwinm r30, r3, 7, 0x18, 0x18
/* 803841C4 00381124 4B FF D4 9D */ bl OSDisableInterrupts
/* 803841C8 00381128 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 803841CC 0038112C 38 9F 00 48 */ addi r4, r31, 0x48
/* 803841D0 00381130 2C 00 00 00 */ cmpwi r0, 0
/* 803841D4 00381134 41 82 00 10 */ beq lbl_803841E4
/* 803841D8 00381138 4B FF D4 B1 */ bl OSRestoreInterrupts
/* 803841DC 0038113C 3B E0 00 00 */ li r31, 0
/* 803841E0 00381140 48 00 00 10 */ b lbl_803841F0
lbl_803841E4:
/* 803841E4 00381144 90 7F 00 44 */ stw r3, 0x44(r31)
/* 803841E8 00381148 38 00 00 01 */ li r0, 1
/* 803841EC 0038114C 90 04 00 00 */ stw r0, 0(r4)
lbl_803841F0:
/* 803841F0 00381150 88 7F 00 13 */ lbz r3, 0x13(r31)
/* 803841F4 00381154 54 60 06 30 */ rlwinm r0, r3, 0, 0x18, 0x18
/* 803841F8 00381158 7C 1E 00 40 */ cmplw r30, r0
/* 803841FC 0038115C 40 82 00 14 */ bne lbl_80384210
/* 80384200 00381160 38 60 00 00 */ li r3, 0
/* 80384204 00381164 38 80 00 00 */ li r4, 0
/* 80384208 00381168 4B FF F9 85 */ bl sub_80383b8c
/* 8038420C 0038116C 48 00 00 24 */ b lbl_80384230
lbl_80384210:
/* 80384210 00381170 54 60 06 6E */ rlwinm r0, r3, 0, 0x19, 0x17
/* 80384214 00381174 98 1F 00 13 */ stb r0, 0x13(r31)
/* 80384218 00381178 38 60 00 01 */ li r3, 1
/* 8038421C 0038117C 38 80 00 00 */ li r4, 0
/* 80384220 00381180 88 1F 00 13 */ lbz r0, 0x13(r31)
/* 80384224 00381184 7C 00 F3 78 */ or r0, r0, r30
/* 80384228 00381188 98 1F 00 13 */ stb r0, 0x13(r31)
/* 8038422C 0038118C 4B FF F9 61 */ bl sub_80383b8c
lbl_80384230:
/* 80384230 00381190 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80384234 00381194 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80384238 00381198 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8038423C 0038119C 38 21 00 20 */ addi r1, r1, 0x20
/* 80384240 003811A0 7C 08 03 A6 */ mtlr r0
/* 80384244 003811A4 4E 80 00 20 */ blr
.global OSGetLanguage
OSGetLanguage:
/* 80384248 003811A8 7C 08 02 A6 */ mflr r0
/* 8038424C 003811AC 3C 60 80 54 */ lis r3, lbl_805415A0@ha
/* 80384250 003811B0 90 01 00 04 */ stw r0, 4(r1)
/* 80384254 003811B4 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80384258 003811B8 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8038425C 003811BC 3B E3 15 A0 */ addi r31, r3, lbl_805415A0@l
/* 80384260 003811C0 4B FF D4 01 */ bl OSDisableInterrupts
/* 80384264 003811C4 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 80384268 003811C8 38 9F 00 48 */ addi r4, r31, 0x48
/* 8038426C 003811CC 2C 00 00 00 */ cmpwi r0, 0
/* 80384270 003811D0 41 82 00 10 */ beq lbl_80384280
/* 80384274 003811D4 4B FF D4 15 */ bl OSRestoreInterrupts
/* 80384278 003811D8 3B E0 00 00 */ li r31, 0
/* 8038427C 003811DC 48 00 00 10 */ b lbl_8038428C
lbl_80384280:
/* 80384280 003811E0 90 7F 00 44 */ stw r3, 0x44(r31)
/* 80384284 003811E4 38 00 00 01 */ li r0, 1
/* 80384288 003811E8 90 04 00 00 */ stw r0, 0(r4)
lbl_8038428C:
/* 8038428C 003811EC 8B FF 00 12 */ lbz r31, 0x12(r31)
/* 80384290 003811F0 38 60 00 00 */ li r3, 0
/* 80384294 003811F4 38 80 00 00 */ li r4, 0
/* 80384298 003811F8 4B FF F8 F5 */ bl sub_80383b8c
/* 8038429C 003811FC 7F E3 FB 78 */ mr r3, r31
/* 803842A0 00381200 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803842A4 00381204 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803842A8 00381208 38 21 00 18 */ addi r1, r1, 0x18
/* 803842AC 0038120C 7C 08 03 A6 */ mtlr r0
/* 803842B0 00381210 4E 80 00 20 */ blr
.global OSGetWirelessID
OSGetWirelessID:
/* 803842B4 00381214 7C 08 02 A6 */ mflr r0
/* 803842B8 00381218 3C 80 80 54 */ lis r4, lbl_805415A0@ha
/* 803842BC 0038121C 90 01 00 04 */ stw r0, 4(r1)
/* 803842C0 00381220 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803842C4 00381224 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803842C8 00381228 3B E4 15 A0 */ addi r31, r4, lbl_805415A0@l
/* 803842CC 0038122C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803842D0 00381230 3B C3 00 00 */ addi r30, r3, 0
/* 803842D4 00381234 4B FF D3 8D */ bl OSDisableInterrupts
/* 803842D8 00381238 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 803842DC 0038123C 38 9F 00 48 */ addi r4, r31, 0x48
/* 803842E0 00381240 2C 00 00 00 */ cmpwi r0, 0
/* 803842E4 00381244 41 82 00 10 */ beq lbl_803842F4
/* 803842E8 00381248 4B FF D3 A1 */ bl OSRestoreInterrupts
/* 803842EC 0038124C 38 60 00 00 */ li r3, 0
/* 803842F0 00381250 48 00 00 14 */ b lbl_80384304
lbl_803842F4:
/* 803842F4 00381254 90 7F 00 44 */ stw r3, 0x44(r31)
/* 803842F8 00381258 38 00 00 01 */ li r0, 1
/* 803842FC 0038125C 38 7F 00 14 */ addi r3, r31, 0x14
/* 80384300 00381260 90 04 00 00 */ stw r0, 0(r4)
lbl_80384304:
/* 80384304 00381264 57 C0 08 3C */ slwi r0, r30, 1
/* 80384308 00381268 7C 63 02 14 */ add r3, r3, r0
/* 8038430C 0038126C A3 E3 00 1C */ lhz r31, 0x1c(r3)
/* 80384310 00381270 38 60 00 00 */ li r3, 0
/* 80384314 00381274 38 80 00 14 */ li r4, 0x14
/* 80384318 00381278 4B FF F8 75 */ bl sub_80383b8c
/* 8038431C 0038127C 7F E3 FB 78 */ mr r3, r31
/* 80384320 00381280 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80384324 00381284 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80384328 00381288 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8038432C 0038128C 38 21 00 20 */ addi r1, r1, 0x20
/* 80384330 00381290 7C 08 03 A6 */ mtlr r0
/* 80384334 00381294 4E 80 00 20 */ blr
.global OSSetWirelessID
OSSetWirelessID:
/* 80384338 00381298 7C 08 02 A6 */ mflr r0
/* 8038433C 0038129C 3C A0 80 54 */ lis r5, lbl_805415A0@ha
/* 80384340 003812A0 90 01 00 04 */ stw r0, 4(r1)
/* 80384344 003812A4 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80384348 003812A8 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8038434C 003812AC 3B E5 15 A0 */ addi r31, r5, lbl_805415A0@l
/* 80384350 003812B0 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80384354 003812B4 3B C4 00 00 */ addi r30, r4, 0
/* 80384358 003812B8 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 8038435C 003812BC 3B A3 00 00 */ addi r29, r3, 0
/* 80384360 003812C0 4B FF D3 01 */ bl OSDisableInterrupts
/* 80384364 003812C4 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 80384368 003812C8 38 9F 00 48 */ addi r4, r31, 0x48
/* 8038436C 003812CC 2C 00 00 00 */ cmpwi r0, 0
/* 80384370 003812D0 41 82 00 10 */ beq lbl_80384380
/* 80384374 003812D4 4B FF D3 15 */ bl OSRestoreInterrupts
/* 80384378 003812D8 38 60 00 00 */ li r3, 0
/* 8038437C 003812DC 48 00 00 14 */ b lbl_80384390
lbl_80384380:
/* 80384380 003812E0 90 7F 00 44 */ stw r3, 0x44(r31)
/* 80384384 003812E4 38 00 00 01 */ li r0, 1
/* 80384388 003812E8 38 7F 00 14 */ addi r3, r31, 0x14
/* 8038438C 003812EC 90 04 00 00 */ stw r0, 0(r4)
lbl_80384390:
/* 80384390 003812F0 57 A0 08 3C */ slwi r0, r29, 1
/* 80384394 003812F4 7C 83 02 14 */ add r4, r3, r0
/* 80384398 003812F8 A4 64 00 1C */ lhzu r3, 0x1c(r4)
/* 8038439C 003812FC 57 C0 04 3E */ clrlwi r0, r30, 0x10
/* 803843A0 00381300 7C 03 00 40 */ cmplw r3, r0
/* 803843A4 00381304 41 82 00 18 */ beq lbl_803843BC
/* 803843A8 00381308 B3 C4 00 00 */ sth r30, 0(r4)
/* 803843AC 0038130C 38 60 00 01 */ li r3, 1
/* 803843B0 00381310 38 80 00 14 */ li r4, 0x14
/* 803843B4 00381314 4B FF F7 D9 */ bl sub_80383b8c
/* 803843B8 00381318 48 00 00 10 */ b lbl_803843C8
lbl_803843BC:
/* 803843BC 0038131C 38 60 00 00 */ li r3, 0
/* 803843C0 00381320 38 80 00 14 */ li r4, 0x14
/* 803843C4 00381324 4B FF F7 C9 */ bl sub_80383b8c
lbl_803843C8:
/* 803843C8 00381328 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803843CC 0038132C 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 803843D0 00381330 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 803843D4 00381334 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 803843D8 00381338 38 21 00 28 */ addi r1, r1, 0x28
/* 803843DC 0038133C 7C 08 03 A6 */ mtlr r0
/* 803843E0 00381340 4E 80 00 20 */ blr

44
asm/Dolphin/OS/OSSync.s Normal file
View File

@ -0,0 +1,44 @@
.include "macros.inc"
.section .text, "ax"
__OSSystemCallVectorStart:
.global SystemCallVector
SystemCallVector:
/* 803843E4 00381344 7D 30 FA A6 */ mfspr r9, 0x3f0
/* 803843E8 00381348 61 2A 00 08 */ ori r10, r9, 8
/* 803843EC 0038134C 7D 50 FB A6 */ mtspr 0x3f0, r10
/* 803843F0 00381350 4C 00 01 2C */ isync
/* 803843F4 00381354 7C 00 04 AC */ sync 0
/* 803843F8 00381358 7D 30 FB A6 */ mtspr 0x3f0, r9
/* 803843FC 0038135C 4C 00 00 64 */ rfi
__OSSystemCallVectorEnd:
/* 80384400 00381360 60 00 00 00 */ nop
.global __OSInitSystemCall
__OSInitSystemCall:
/* 80384404 00381364 7C 08 02 A6 */ mflr r0
/* 80384408 00381368 90 01 00 04 */ stw r0, 4(r1)
/* 8038440C 0038136C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80384410 00381370 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80384414 00381374 3C A0 80 00 */ lis r5, 0x80000C00@ha
/* 80384418 00381378 3C 80 80 38 */ lis r4, __OSSystemCallVectorStart@ha
/* 8038441C 0038137C 3C 60 80 38 */ lis r3, __OSSystemCallVectorEnd@ha
/* 80384420 00381380 3B E5 0C 00 */ addi r31, r5, 0x80000C00@l
/* 80384424 00381384 38 03 44 00 */ addi r0, r3, __OSSystemCallVectorEnd@l
/* 80384428 00381388 38 84 43 E4 */ addi r4, r4, __OSSystemCallVectorStart@l
/* 8038442C 0038138C 7F E3 FB 78 */ mr r3, r31
/* 80384430 00381390 7C A4 00 50 */ subf r5, r4, r0
/* 80384434 00381394 4B C7 F0 5D */ bl memcpy
/* 80384438 00381398 7F E3 FB 78 */ mr r3, r31
/* 8038443C 0038139C 38 80 01 00 */ li r4, 0x100
/* 80384440 003813A0 4B FF A6 D1 */ bl DCFlushRangeNoSync
/* 80384444 003813A4 7C 00 04 AC */ sync 0
/* 80384448 003813A8 7F E3 FB 78 */ mr r3, r31
/* 8038444C 003813AC 38 80 01 00 */ li r4, 0x100
/* 80384450 003813B0 4B FF A7 45 */ bl ICInvalidateRange
/* 80384454 003813B4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80384458 003813B8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8038445C 003813BC 38 21 00 10 */ addi r1, r1, 0x10
/* 80384460 003813C0 7C 08 03 A6 */ mtlr r0
/* 80384464 003813C4 4E 80 00 20 */ blr

1157
asm/Dolphin/OS/OSThread.s Normal file

File diff suppressed because it is too large Load Diff

322
asm/Dolphin/OS/OSTime.s Normal file
View File

@ -0,0 +1,322 @@
.include "macros.inc"
.section .text, "ax"
.global OSGetTime
OSGetTime:
/* 803853A8 00382308 7C 6D 42 E6 */ mftbu r3
/* 803853AC 0038230C 7C 8C 42 E6 */ mftb r4, 0x10c
/* 803853B0 00382310 7C AD 42 E6 */ mftbu r5
/* 803853B4 00382314 7C 03 28 00 */ cmpw r3, r5
/* 803853B8 00382318 40 82 FF F0 */ bne OSGetTime
/* 803853BC 0038231C 4E 80 00 20 */ blr
.global OSGetTick
OSGetTick:
/* 803853C0 00382320 7C 6C 42 E6 */ mftb r3, 0x10c
/* 803853C4 00382324 4E 80 00 20 */ blr
.global __OSGetSystemTime
__OSGetSystemTime:
/* 803853C8 00382328 7C 08 02 A6 */ mflr r0
/* 803853CC 0038232C 90 01 00 04 */ stw r0, 4(r1)
/* 803853D0 00382330 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803853D4 00382334 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803853D8 00382338 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803853DC 0038233C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803853E0 00382340 4B FF C2 81 */ bl OSDisableInterrupts
/* 803853E4 00382344 7C 7F 1B 78 */ mr r31, r3
/* 803853E8 00382348 4B FF FF C1 */ bl OSGetTime
/* 803853EC 0038234C 3C C0 80 00 */ lis r6, 0x800030DC@ha
/* 803853F0 00382350 80 A6 30 DC */ lwz r5, 0x800030DC@l(r6)
/* 803853F4 00382354 80 06 30 D8 */ lwz r0, 0x30d8(r6)
/* 803853F8 00382358 7F A5 20 14 */ addc r29, r5, r4
/* 803853FC 0038235C 7F C0 19 14 */ adde r30, r0, r3
/* 80385400 00382360 7F E3 FB 78 */ mr r3, r31
/* 80385404 00382364 4B FF C2 85 */ bl OSRestoreInterrupts
/* 80385408 00382368 7F A4 EB 78 */ mr r4, r29
/* 8038540C 0038236C 7F C3 F3 78 */ mr r3, r30
/* 80385410 00382370 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80385414 00382374 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80385418 00382378 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8038541C 0038237C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80385420 00382380 38 21 00 20 */ addi r1, r1, 0x20
/* 80385424 00382384 7C 08 03 A6 */ mtlr r0
/* 80385428 00382388 4E 80 00 20 */ blr
.global __OSTimeToSystemTime
__OSTimeToSystemTime:
/* 8038542C 0038238C 7C 08 02 A6 */ mflr r0
/* 80385430 00382390 90 01 00 04 */ stw r0, 4(r1)
/* 80385434 00382394 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80385438 00382398 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8038543C 0038239C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80385440 003823A0 7C 7F 1B 78 */ mr r31, r3
/* 80385444 003823A4 7C 9E 23 78 */ mr r30, r4
/* 80385448 003823A8 4B FF C2 19 */ bl OSDisableInterrupts
/* 8038544C 003823AC 3C A0 80 00 */ lis r5, 0x800030DC@ha
/* 80385450 003823B0 80 85 30 DC */ lwz r4, 0x800030DC@l(r5)
/* 80385454 003823B4 80 05 30 D8 */ lwz r0, 0x30d8(r5)
/* 80385458 003823B8 7F C4 F0 14 */ addc r30, r4, r30
/* 8038545C 003823BC 7F E0 F9 14 */ adde r31, r0, r31
/* 80385460 003823C0 4B FF C2 29 */ bl OSRestoreInterrupts
/* 80385464 003823C4 7F C4 F3 78 */ mr r4, r30
/* 80385468 003823C8 7F E3 FB 78 */ mr r3, r31
/* 8038546C 003823CC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80385470 003823D0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80385474 003823D4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80385478 003823D8 38 21 00 20 */ addi r1, r1, 0x20
/* 8038547C 003823DC 7C 08 03 A6 */ mtlr r0
/* 80385480 003823E0 4E 80 00 20 */ blr
.global GetDates
GetDates:
/* 80385484 003823E4 3C A0 92 49 */ lis r5, 0x92492493@ha
/* 80385488 003823E8 38 05 24 93 */ addi r0, r5, 0x92492493@l
/* 8038548C 003823EC 38 E3 00 06 */ addi r7, r3, 6
/* 80385490 003823F0 7C C0 38 96 */ mulhw r6, r0, r7
/* 80385494 003823F4 3C A0 B3 8D */ lis r5, 0xB38CF9B1@ha
/* 80385498 003823F8 38 05 F9 B1 */ addi r0, r5, 0xB38CF9B1@l
/* 8038549C 003823FC 7C 00 18 96 */ mulhw r0, r0, r3
/* 803854A0 00382400 7C A6 3A 14 */ add r5, r6, r7
/* 803854A4 00382404 7C A5 16 70 */ srawi r5, r5, 2
/* 803854A8 00382408 54 A6 0F FE */ srwi r6, r5, 0x1f
/* 803854AC 0038240C 7C A5 32 14 */ add r5, r5, r6
/* 803854B0 00382410 7C 00 1A 14 */ add r0, r0, r3
/* 803854B4 00382414 1C C5 00 07 */ mulli r6, r5, 7
/* 803854B8 00382418 7C 00 46 70 */ srawi r0, r0, 8
/* 803854BC 0038241C 54 05 0F FE */ srwi r5, r0, 0x1f
/* 803854C0 00382420 7C A0 2A 14 */ add r5, r0, r5
/* 803854C4 00382424 7C 06 38 50 */ subf r0, r6, r7
/* 803854C8 00382428 1D 65 01 6D */ mulli r11, r5, 0x16d
/* 803854CC 0038242C 90 04 00 18 */ stw r0, 0x18(r4)
/* 803854D0 00382430 48 00 00 04 */ b lbl_803854D4
lbl_803854D4:
/* 803854D4 00382434 3C C0 51 EC */ lis r6, 0x51EB851F@ha
/* 803854D8 00382438 39 46 85 1F */ addi r10, r6, 0x51EB851F@l
/* 803854DC 0038243C 48 00 00 04 */ b lbl_803854E0
lbl_803854E0:
/* 803854E0 00382440 48 00 00 0C */ b lbl_803854EC
lbl_803854E4:
/* 803854E4 00382444 39 6B FE 93 */ addi r11, r11, -365
/* 803854E8 00382448 38 A5 FF FF */ addi r5, r5, -1
lbl_803854EC:
/* 803854EC 0038244C 2C 05 00 01 */ cmpwi r5, 1
/* 803854F0 00382450 40 80 00 0C */ bge lbl_803854FC
/* 803854F4 00382454 38 00 00 00 */ li r0, 0
/* 803854F8 00382458 48 00 00 38 */ b lbl_80385530
lbl_803854FC:
/* 803854FC 0038245C 38 05 FF FF */ addi r0, r5, -1
/* 80385500 00382460 7C 0A 00 96 */ mulhw r0, r10, r0
/* 80385504 00382464 7C 08 3E 70 */ srawi r8, r0, 7
/* 80385508 00382468 7C 06 2E 70 */ srawi r6, r0, 5
/* 8038550C 0038246C 38 05 00 03 */ addi r0, r5, 3
/* 80385510 00382470 54 C7 0F FE */ srwi r7, r6, 0x1f
/* 80385514 00382474 7C 00 16 70 */ srawi r0, r0, 2
/* 80385518 00382478 55 09 0F FE */ srwi r9, r8, 0x1f
/* 8038551C 0038247C 7C C6 3A 14 */ add r6, r6, r7
/* 80385520 00382480 7C 00 01 94 */ addze r0, r0
/* 80385524 00382484 7C E8 4A 14 */ add r7, r8, r9
/* 80385528 00382488 7C 06 00 50 */ subf r0, r6, r0
/* 8038552C 0038248C 7C 07 02 14 */ add r0, r7, r0
lbl_80385530:
/* 80385530 00382490 7C 0B 02 14 */ add r0, r11, r0
/* 80385534 00382494 7C 03 00 00 */ cmpw r3, r0
/* 80385538 00382498 41 80 FF AC */ blt lbl_803854E4
/* 8038553C 0038249C 7C A6 16 70 */ srawi r6, r5, 2
/* 80385540 003824A0 90 A4 00 14 */ stw r5, 0x14(r4)
/* 80385544 003824A4 7C C6 01 94 */ addze r6, r6
/* 80385548 003824A8 54 C6 10 3A */ slwi r6, r6, 2
/* 8038554C 003824AC 7C C6 28 10 */ subfc r6, r6, r5
/* 80385550 003824B0 7C 00 18 50 */ subf r0, r0, r3
/* 80385554 003824B4 2C 06 00 00 */ cmpwi r6, 0
/* 80385558 003824B8 90 04 00 1C */ stw r0, 0x1c(r4)
/* 8038555C 003824BC 38 E0 00 01 */ li r7, 1
/* 80385560 003824C0 39 00 00 00 */ li r8, 0
/* 80385564 003824C4 40 82 00 30 */ bne lbl_80385594
/* 80385568 003824C8 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 8038556C 003824CC 38 63 85 1F */ addi r3, r3, 0x51EB851F@l
/* 80385570 003824D0 7C 63 28 96 */ mulhw r3, r3, r5
/* 80385574 003824D4 7C 63 2E 70 */ srawi r3, r3, 5
/* 80385578 003824D8 54 66 0F FE */ srwi r6, r3, 0x1f
/* 8038557C 003824DC 7C 63 32 14 */ add r3, r3, r6
/* 80385580 003824E0 1C 63 00 64 */ mulli r3, r3, 0x64
/* 80385584 003824E4 7C 63 28 50 */ subf r3, r3, r5
/* 80385588 003824E8 2C 03 00 00 */ cmpwi r3, 0
/* 8038558C 003824EC 41 82 00 08 */ beq lbl_80385594
/* 80385590 003824F0 7C E8 3B 78 */ mr r8, r7
lbl_80385594:
/* 80385594 003824F4 2C 08 00 00 */ cmpwi r8, 0
/* 80385598 003824F8 40 82 00 30 */ bne lbl_803855C8
/* 8038559C 003824FC 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 803855A0 00382500 38 63 85 1F */ addi r3, r3, 0x51EB851F@l
/* 803855A4 00382504 7C 63 28 96 */ mulhw r3, r3, r5
/* 803855A8 00382508 7C 63 3E 70 */ srawi r3, r3, 7
/* 803855AC 0038250C 54 66 0F FE */ srwi r6, r3, 0x1f
/* 803855B0 00382510 7C 63 32 14 */ add r3, r3, r6
/* 803855B4 00382514 1C 63 01 90 */ mulli r3, r3, 0x190
/* 803855B8 00382518 7C 63 28 50 */ subf r3, r3, r5
/* 803855BC 0038251C 2C 03 00 00 */ cmpwi r3, 0
/* 803855C0 00382520 41 82 00 08 */ beq lbl_803855C8
/* 803855C4 00382524 38 E0 00 00 */ li r7, 0
lbl_803855C8:
/* 803855C8 00382528 2C 07 00 00 */ cmpwi r7, 0
/* 803855CC 0038252C 41 82 00 10 */ beq lbl_803855DC
/* 803855D0 00382530 3C 60 80 3F */ lis r3, lbl_803F2320@ha
/* 803855D4 00382534 38 C3 23 20 */ addi r6, r3, lbl_803F2320@l
/* 803855D8 00382538 48 00 00 0C */ b lbl_803855E4
lbl_803855DC:
/* 803855DC 0038253C 3C 60 80 3F */ lis r3, lbl_803F22F0@ha
/* 803855E0 00382540 38 C3 22 F0 */ addi r6, r3, lbl_803F22F0@l
lbl_803855E4:
/* 803855E4 00382544 38 E0 00 0C */ li r7, 0xc
/* 803855E8 00382548 38 60 00 30 */ li r3, 0x30
/* 803855EC 0038254C 48 00 00 04 */ b lbl_803855F0
lbl_803855F0:
/* 803855F0 00382550 48 00 00 04 */ b lbl_803855F4
lbl_803855F4:
/* 803855F4 00382554 38 63 FF FC */ addi r3, r3, -4
/* 803855F8 00382558 7C A6 18 2E */ lwzx r5, r6, r3
/* 803855FC 0038255C 38 E7 FF FF */ addi r7, r7, -1
/* 80385600 00382560 7C 00 28 00 */ cmpw r0, r5
/* 80385604 00382564 41 80 FF F0 */ blt lbl_803855F4
/* 80385608 00382568 90 E4 00 10 */ stw r7, 0x10(r4)
/* 8038560C 0038256C 7C 66 18 2E */ lwzx r3, r6, r3
/* 80385610 00382570 7C 63 00 50 */ subf r3, r3, r0
/* 80385614 00382574 38 03 00 01 */ addi r0, r3, 1
/* 80385618 00382578 90 04 00 0C */ stw r0, 0xc(r4)
/* 8038561C 0038257C 4E 80 00 20 */ blr
.global OSTicksToCalendarTime
OSTicksToCalendarTime:
/* 80385620 00382580 7C 08 02 A6 */ mflr r0
/* 80385624 00382584 90 01 00 04 */ stw r0, 4(r1)
/* 80385628 00382588 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 8038562C 0038258C BF 21 00 1C */ stmw r25, 0x1c(r1)
/* 80385630 00382590 7C 7D 1B 78 */ mr r29, r3
/* 80385634 00382594 7C 9E 23 78 */ mr r30, r4
/* 80385638 00382598 7C BF 2B 78 */ mr r31, r5
/* 8038563C 0038259C 3F 60 80 00 */ lis r27, 0x800000F8@ha
/* 80385640 003825A0 80 1B 00 F8 */ lwz r0, 0x800000F8@l(r27)
/* 80385644 003825A4 7F A3 EB 78 */ mr r3, r29
/* 80385648 003825A8 7F C4 F3 78 */ mr r4, r30
/* 8038564C 003825AC 54 06 F0 BE */ srwi r6, r0, 2
/* 80385650 003825B0 38 A0 00 00 */ li r5, 0
/* 80385654 003825B4 48 00 47 95 */ bl __mod2i
/* 80385658 003825B8 7C 7A 1B 78 */ mr r26, r3
/* 8038565C 003825BC 38 A0 00 00 */ li r5, 0
/* 80385660 003825C0 7C 99 23 78 */ mr r25, r4
/* 80385664 003825C4 6F 44 80 00 */ xoris r4, r26, 0x8000
/* 80385668 003825C8 6C A3 80 00 */ xoris r3, r5, 0x8000
/* 8038566C 003825CC 7C 05 C8 10 */ subfc r0, r5, r25
/* 80385670 003825D0 7C 63 21 10 */ subfe r3, r3, r4
/* 80385674 003825D4 7C 64 21 10 */ subfe r3, r4, r4
/* 80385678 003825D8 7C 63 00 D0 */ neg r3, r3
/* 8038567C 003825DC 2C 03 00 00 */ cmpwi r3, 0
/* 80385680 003825E0 41 82 00 14 */ beq lbl_80385694
/* 80385684 003825E4 80 1B 00 F8 */ lwz r0, 0xf8(r27)
/* 80385688 003825E8 54 00 F0 BE */ srwi r0, r0, 2
/* 8038568C 003825EC 7F 39 00 14 */ addc r25, r25, r0
/* 80385690 003825F0 7F 5A 29 14 */ adde r26, r26, r5
lbl_80385694:
/* 80385694 003825F4 38 80 00 08 */ li r4, 8
/* 80385698 003825F8 7C 7A 21 D6 */ mullw r3, r26, r4
/* 8038569C 003825FC 7C 19 20 16 */ mulhwu r0, r25, r4
/* 803856A0 00382600 3F 60 80 00 */ lis r27, 0x800000F8@ha
/* 803856A4 00382604 80 DB 00 F8 */ lwz r6, 0x800000F8@l(r27)
/* 803856A8 00382608 3C A0 43 1C */ lis r5, 0x431BDE83@ha
/* 803856AC 0038260C 38 A5 DE 83 */ addi r5, r5, 0x431BDE83@l
/* 803856B0 00382610 54 C6 F0 BE */ srwi r6, r6, 2
/* 803856B4 00382614 7C A5 30 16 */ mulhwu r5, r5, r6
/* 803856B8 00382618 54 A6 8B FE */ srwi r6, r5, 0xf
/* 803856BC 0038261C 3B 80 00 00 */ li r28, 0
/* 803856C0 00382620 7C 63 02 14 */ add r3, r3, r0
/* 803856C4 00382624 7C 19 E1 D6 */ mullw r0, r25, r28
/* 803856C8 00382628 7C 99 21 D6 */ mullw r4, r25, r4
/* 803856CC 0038262C 7C 63 02 14 */ add r3, r3, r0
/* 803856D0 00382630 38 A0 00 00 */ li r5, 0
/* 803856D4 00382634 48 00 44 F9 */ bl __div2i
/* 803856D8 00382638 38 A0 00 00 */ li r5, 0
/* 803856DC 0038263C 38 C0 03 E8 */ li r6, 0x3e8
/* 803856E0 00382640 48 00 47 09 */ bl __mod2i
/* 803856E4 00382644 90 9F 00 24 */ stw r4, 0x24(r31)
/* 803856E8 00382648 3C 60 10 62 */ lis r3, 0x10624DD3@ha
/* 803856EC 0038264C 38 A3 4D D3 */ addi r5, r3, 0x10624DD3@l
/* 803856F0 00382650 80 1B 00 F8 */ lwz r0, 0xf8(r27)
/* 803856F4 00382654 7F 43 D3 78 */ mr r3, r26
/* 803856F8 00382658 7F 24 CB 78 */ mr r4, r25
/* 803856FC 0038265C 54 00 F0 BE */ srwi r0, r0, 2
/* 80385700 00382660 7C 05 00 16 */ mulhwu r0, r5, r0
/* 80385704 00382664 54 06 D1 BE */ srwi r6, r0, 6
/* 80385708 00382668 38 A0 00 00 */ li r5, 0
/* 8038570C 0038266C 48 00 44 C1 */ bl __div2i
/* 80385710 00382670 38 A0 00 00 */ li r5, 0
/* 80385714 00382674 38 C0 03 E8 */ li r6, 0x3e8
/* 80385718 00382678 48 00 46 D1 */ bl __mod2i
/* 8038571C 0038267C 90 9F 00 20 */ stw r4, 0x20(r31)
/* 80385720 00382680 7F D9 F0 10 */ subfc r30, r25, r30
/* 80385724 00382684 7F BA E9 10 */ subfe r29, r26, r29
/* 80385728 00382688 80 1B 00 F8 */ lwz r0, 0xf8(r27)
/* 8038572C 0038268C 3C A0 00 01 */ lis r5, 0x00015180@ha
/* 80385730 00382690 3B 25 51 80 */ addi r25, r5, 0x00015180@l
/* 80385734 00382694 7F A3 EB 78 */ mr r3, r29
/* 80385738 00382698 54 06 F0 BE */ srwi r6, r0, 2
/* 8038573C 0038269C 7F C4 F3 78 */ mr r4, r30
/* 80385740 003826A0 38 A0 00 00 */ li r5, 0
/* 80385744 003826A4 48 00 44 89 */ bl __div2i
/* 80385748 003826A8 7F 26 CB 78 */ mr r6, r25
/* 8038574C 003826AC 38 A0 00 00 */ li r5, 0
/* 80385750 003826B0 48 00 44 7D */ bl __div2i
/* 80385754 003826B4 3C A0 00 0B */ lis r5, 0x000B2575@ha
/* 80385758 003826B8 80 1B 00 F8 */ lwz r0, 0xf8(r27)
/* 8038575C 003826BC 38 A5 25 75 */ addi r5, r5, 0x000B2575@l
/* 80385760 003826C0 7F 44 28 14 */ addc r26, r4, r5
/* 80385764 003826C4 54 06 F0 BE */ srwi r6, r0, 2
/* 80385768 003826C8 7C 03 E1 14 */ adde r0, r3, r28
/* 8038576C 003826CC 7F A3 EB 78 */ mr r3, r29
/* 80385770 003826D0 7F C4 F3 78 */ mr r4, r30
/* 80385774 003826D4 38 A0 00 00 */ li r5, 0
/* 80385778 003826D8 48 00 44 55 */ bl __div2i
/* 8038577C 003826DC 7F 26 CB 78 */ mr r6, r25
/* 80385780 003826E0 38 A0 00 00 */ li r5, 0
/* 80385784 003826E4 48 00 46 65 */ bl __mod2i
/* 80385788 003826E8 7C 9B 23 78 */ mr r27, r4
/* 8038578C 003826EC 2C 1B 00 00 */ cmpwi r27, 0
/* 80385790 003826F0 40 80 00 10 */ bge lbl_803857A0
/* 80385794 003826F4 3F 7B 00 01 */ addis r27, r27, 1
/* 80385798 003826F8 3B 5A FF FF */ addi r26, r26, -1
/* 8038579C 003826FC 3B 7B 51 80 */ addi r27, r27, 0x5180
lbl_803857A0:
/* 803857A0 00382700 7F 43 D3 78 */ mr r3, r26
/* 803857A4 00382704 7F E4 FB 78 */ mr r4, r31
/* 803857A8 00382708 4B FF FC DD */ bl GetDates
/* 803857AC 0038270C 3C 60 88 89 */ lis r3, 0x88888889@ha
/* 803857B0 00382710 38 A3 88 89 */ addi r5, r3, 0x88888889@l
/* 803857B4 00382714 7C 05 D8 96 */ mulhw r0, r5, r27
/* 803857B8 00382718 7C 80 DA 14 */ add r4, r0, r27
/* 803857BC 0038271C 7C 80 2E 70 */ srawi r0, r4, 5
/* 803857C0 00382720 54 03 0F FE */ srwi r3, r0, 0x1f
/* 803857C4 00382724 7C E0 1A 14 */ add r7, r0, r3
/* 803857C8 00382728 7C 05 38 96 */ mulhw r0, r5, r7
/* 803857CC 0038272C 7C 00 3A 14 */ add r0, r0, r7
/* 803857D0 00382730 7C 05 2E 70 */ srawi r5, r0, 5
/* 803857D4 00382734 7C 00 2E 70 */ srawi r0, r0, 5
/* 803857D8 00382738 54 03 0F FE */ srwi r3, r0, 0x1f
/* 803857DC 0038273C 7C 60 1A 14 */ add r3, r0, r3
/* 803857E0 00382740 7C 80 2E 70 */ srawi r0, r4, 5
/* 803857E4 00382744 54 A6 0F FE */ srwi r6, r5, 0x1f
/* 803857E8 00382748 1C 83 00 3C */ mulli r4, r3, 0x3c
/* 803857EC 0038274C 54 03 0F FE */ srwi r3, r0, 0x1f
/* 803857F0 00382750 7C A5 32 14 */ add r5, r5, r6
/* 803857F4 00382754 7C 00 1A 14 */ add r0, r0, r3
/* 803857F8 00382758 90 BF 00 08 */ stw r5, 8(r31)
/* 803857FC 0038275C 1C 00 00 3C */ mulli r0, r0, 0x3c
/* 80385800 00382760 7C 64 38 50 */ subf r3, r4, r7
/* 80385804 00382764 90 7F 00 04 */ stw r3, 4(r31)
/* 80385808 00382768 7C 00 D8 50 */ subf r0, r0, r27
/* 8038580C 0038276C 90 1F 00 00 */ stw r0, 0(r31)
/* 80385810 00382770 BB 21 00 1C */ lmw r25, 0x1c(r1)
/* 80385814 00382774 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80385818 00382778 38 21 00 38 */ addi r1, r1, 0x38
/* 8038581C 0038277C 7C 08 03 A6 */ mtlr r0
/* 80385820 00382780 4E 80 00 20 */ blr

172
asm/Dolphin/PAD/PadClamp.s Normal file
View File

@ -0,0 +1,172 @@
.include "macros.inc"
.section .text, "ax" # 0x80003640 - 0x803CB1C0
.global ClampStick
ClampStick:
/* 803858B8 00382818 88 03 00 00 */ lbz r0, 0(r3)
/* 803858BC 0038281C 89 84 00 00 */ lbz r12, 0(r4)
/* 803858C0 00382820 7C 00 07 75 */ extsb. r0, r0
/* 803858C4 00382824 7D 8C 07 74 */ extsb r12, r12
/* 803858C8 00382828 7C 0B 03 78 */ mr r11, r0
/* 803858CC 0038282C 41 80 00 0C */ blt lbl_803858D8
/* 803858D0 00382830 38 00 00 01 */ li r0, 1
/* 803858D4 00382834 48 00 00 0C */ b lbl_803858E0
lbl_803858D8:
/* 803858D8 00382838 38 00 FF FF */ li r0, -1
/* 803858DC 0038283C 7D 6B 00 D0 */ neg r11, r11
lbl_803858E0:
/* 803858E0 00382840 2C 0C 00 00 */ cmpwi r12, 0
/* 803858E4 00382844 41 80 00 0C */ blt lbl_803858F0
/* 803858E8 00382848 39 00 00 01 */ li r8, 1
/* 803858EC 0038284C 48 00 00 0C */ b lbl_803858F8
lbl_803858F0:
/* 803858F0 00382850 39 00 FF FF */ li r8, -1
/* 803858F4 00382854 7D 8C 00 D0 */ neg r12, r12
lbl_803858F8:
/* 803858F8 00382858 7C E7 07 74 */ extsb r7, r7
/* 803858FC 0038285C 7C 0B 38 00 */ cmpw r11, r7
/* 80385900 00382860 41 81 00 0C */ bgt lbl_8038590C
/* 80385904 00382864 39 60 00 00 */ li r11, 0
/* 80385908 00382868 48 00 00 08 */ b lbl_80385910
lbl_8038590C:
/* 8038590C 0038286C 7D 67 58 50 */ subf r11, r7, r11
lbl_80385910:
/* 80385910 00382870 7C 0C 38 00 */ cmpw r12, r7
/* 80385914 00382874 41 81 00 0C */ bgt lbl_80385920
/* 80385918 00382878 39 80 00 00 */ li r12, 0
/* 8038591C 0038287C 48 00 00 08 */ b lbl_80385924
lbl_80385920:
/* 80385920 00382880 7D 87 60 50 */ subf r12, r7, r12
lbl_80385924:
/* 80385924 00382884 2C 0B 00 00 */ cmpwi r11, 0
/* 80385928 00382888 40 82 00 1C */ bne lbl_80385944
/* 8038592C 0038288C 2C 0C 00 00 */ cmpwi r12, 0
/* 80385930 00382890 40 82 00 14 */ bne lbl_80385944
/* 80385934 00382894 38 00 00 00 */ li r0, 0
/* 80385938 00382898 98 04 00 00 */ stb r0, 0(r4)
/* 8038593C 0038289C 98 03 00 00 */ stb r0, 0(r3)
/* 80385940 003828A0 4E 80 00 20 */ blr
lbl_80385944:
/* 80385944 003828A4 7C C6 07 74 */ extsb r6, r6
/* 80385948 003828A8 7D 26 61 D6 */ mullw r9, r6, r12
/* 8038594C 003828AC 7C E6 59 D6 */ mullw r7, r6, r11
/* 80385950 003828B0 7C 09 38 00 */ cmpw r9, r7
/* 80385954 003828B4 41 81 00 44 */ bgt lbl_80385998
/* 80385958 003828B8 7C A9 07 74 */ extsb r9, r5
/* 8038595C 003828BC 7C A6 48 50 */ subf r5, r6, r9
/* 80385960 003828C0 7C AC 29 D6 */ mullw r5, r12, r5
/* 80385964 003828C4 7D 26 49 D6 */ mullw r9, r6, r9
/* 80385968 003828C8 7C E7 2A 14 */ add r7, r7, r5
/* 8038596C 003828CC 7C 09 38 00 */ cmpw r9, r7
/* 80385970 003828D0 40 80 00 64 */ bge lbl_803859D4
/* 80385974 003828D4 7C CB 49 D6 */ mullw r6, r11, r9
/* 80385978 003828D8 7C AC 49 D6 */ mullw r5, r12, r9
/* 8038597C 003828DC 7C C6 3B D6 */ divw r6, r6, r7
/* 80385980 003828E0 7C A5 3B D6 */ divw r5, r5, r7
/* 80385984 003828E4 7C C6 07 74 */ extsb r6, r6
/* 80385988 003828E8 7C A5 07 74 */ extsb r5, r5
/* 8038598C 003828EC 39 66 00 00 */ addi r11, r6, 0
/* 80385990 003828F0 39 85 00 00 */ addi r12, r5, 0
/* 80385994 003828F4 48 00 00 40 */ b lbl_803859D4
lbl_80385998:
/* 80385998 003828F8 7C A7 07 74 */ extsb r7, r5
/* 8038599C 003828FC 7C A6 38 50 */ subf r5, r6, r7
/* 803859A0 00382900 7C AB 29 D6 */ mullw r5, r11, r5
/* 803859A4 00382904 7D 46 39 D6 */ mullw r10, r6, r7
/* 803859A8 00382908 7C E9 2A 14 */ add r7, r9, r5
/* 803859AC 0038290C 7C 0A 38 00 */ cmpw r10, r7
/* 803859B0 00382910 40 80 00 24 */ bge lbl_803859D4
/* 803859B4 00382914 7C CB 51 D6 */ mullw r6, r11, r10
/* 803859B8 00382918 7C AC 51 D6 */ mullw r5, r12, r10
/* 803859BC 0038291C 7C C6 3B D6 */ divw r6, r6, r7
/* 803859C0 00382920 7C A5 3B D6 */ divw r5, r5, r7
/* 803859C4 00382924 7C C6 07 74 */ extsb r6, r6
/* 803859C8 00382928 7C A5 07 74 */ extsb r5, r5
/* 803859CC 0038292C 39 66 00 00 */ addi r11, r6, 0
/* 803859D0 00382930 39 85 00 00 */ addi r12, r5, 0
lbl_803859D4:
/* 803859D4 00382934 7C A0 59 D6 */ mullw r5, r0, r11
/* 803859D8 00382938 7C 08 61 D6 */ mullw r0, r8, r12
/* 803859DC 0038293C 98 A3 00 00 */ stb r5, 0(r3)
/* 803859E0 00382940 98 04 00 00 */ stb r0, 0(r4)
/* 803859E4 00382944 4E 80 00 20 */ blr
.global PADClamp
PADClamp:
/* 803859E8 00382948 7C 08 02 A6 */ mflr r0
/* 803859EC 0038294C 3C 80 80 3E */ lis r4, lbl_803D8588@ha
/* 803859F0 00382950 90 01 00 04 */ stw r0, 4(r1)
/* 803859F4 00382954 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803859F8 00382958 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803859FC 0038295C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80385A00 00382960 3B C0 00 00 */ li r30, 0
/* 80385A04 00382964 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80385A08 00382968 3B A3 00 00 */ addi r29, r3, 0
/* 80385A0C 0038296C 93 81 00 10 */ stw r28, 0x10(r1)
/* 80385A10 00382970 3B 84 85 88 */ addi r28, r4, lbl_803D8588@l
/* 80385A14 00382974 3B FC 00 01 */ addi r31, r28, 1
lbl_80385A18:
/* 80385A18 00382978 88 1D 00 0A */ lbz r0, 0xa(r29)
/* 80385A1C 0038297C 7C 00 07 75 */ extsb. r0, r0
/* 80385A20 00382980 40 82 00 AC */ bne lbl_80385ACC
/* 80385A24 00382984 88 BC 00 03 */ lbz r5, 3(r28)
/* 80385A28 00382988 38 7D 00 02 */ addi r3, r29, 2
/* 80385A2C 0038298C 88 DC 00 04 */ lbz r6, 4(r28)
/* 80385A30 00382990 38 9D 00 03 */ addi r4, r29, 3
/* 80385A34 00382994 88 FC 00 02 */ lbz r7, 2(r28)
/* 80385A38 00382998 4B FF FE 81 */ bl ClampStick
/* 80385A3C 0038299C 88 BC 00 06 */ lbz r5, 6(r28)
/* 80385A40 003829A0 38 7D 00 04 */ addi r3, r29, 4
/* 80385A44 003829A4 88 DC 00 07 */ lbz r6, 7(r28)
/* 80385A48 003829A8 38 9D 00 05 */ addi r4, r29, 5
/* 80385A4C 003829AC 88 FC 00 05 */ lbz r7, 5(r28)
/* 80385A50 003829B0 4B FF FE 69 */ bl ClampStick
/* 80385A54 003829B4 88 9D 00 06 */ lbz r4, 6(r29)
/* 80385A58 003829B8 88 1C 00 00 */ lbz r0, 0(r28)
/* 80385A5C 003829BC 88 7F 00 00 */ lbz r3, 0(r31)
/* 80385A60 003829C0 7C 04 00 40 */ cmplw r4, r0
/* 80385A64 003829C4 41 81 00 10 */ bgt lbl_80385A74
/* 80385A68 003829C8 38 00 00 00 */ li r0, 0
/* 80385A6C 003829CC 98 1D 00 06 */ stb r0, 6(r29)
/* 80385A70 003829D0 48 00 00 20 */ b lbl_80385A90
lbl_80385A74:
/* 80385A74 003829D4 7C 03 20 40 */ cmplw r3, r4
/* 80385A78 003829D8 40 80 00 08 */ bge lbl_80385A80
/* 80385A7C 003829DC 98 7D 00 06 */ stb r3, 6(r29)
lbl_80385A80:
/* 80385A80 003829E0 88 7C 00 00 */ lbz r3, 0(r28)
/* 80385A84 003829E4 88 1D 00 06 */ lbz r0, 6(r29)
/* 80385A88 003829E8 7C 03 00 50 */ subf r0, r3, r0
/* 80385A8C 003829EC 98 1D 00 06 */ stb r0, 6(r29)
lbl_80385A90:
/* 80385A90 003829F0 88 9D 00 07 */ lbz r4, 7(r29)
/* 80385A94 003829F4 88 1C 00 00 */ lbz r0, 0(r28)
/* 80385A98 003829F8 88 7F 00 00 */ lbz r3, 0(r31)
/* 80385A9C 003829FC 7C 04 00 40 */ cmplw r4, r0
/* 80385AA0 00382A00 41 81 00 10 */ bgt lbl_80385AB0
/* 80385AA4 00382A04 38 00 00 00 */ li r0, 0
/* 80385AA8 00382A08 98 1D 00 07 */ stb r0, 7(r29)
/* 80385AAC 00382A0C 48 00 00 20 */ b lbl_80385ACC
lbl_80385AB0:
/* 80385AB0 00382A10 7C 03 20 40 */ cmplw r3, r4
/* 80385AB4 00382A14 40 80 00 08 */ bge lbl_80385ABC
/* 80385AB8 00382A18 98 7D 00 07 */ stb r3, 7(r29)
lbl_80385ABC:
/* 80385ABC 00382A1C 88 7C 00 00 */ lbz r3, 0(r28)
/* 80385AC0 00382A20 88 1D 00 07 */ lbz r0, 7(r29)
/* 80385AC4 00382A24 7C 03 00 50 */ subf r0, r3, r0
/* 80385AC8 00382A28 98 1D 00 07 */ stb r0, 7(r29)
lbl_80385ACC:
/* 80385ACC 00382A2C 3B DE 00 01 */ addi r30, r30, 1
/* 80385AD0 00382A30 2C 1E 00 04 */ cmpwi r30, 4
/* 80385AD4 00382A34 3B BD 00 0C */ addi r29, r29, 0xc
/* 80385AD8 00382A38 41 80 FF 40 */ blt lbl_80385A18
/* 80385ADC 00382A3C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80385AE0 00382A40 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80385AE4 00382A44 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80385AE8 00382A48 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80385AEC 00382A4C 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80385AF0 00382A50 38 21 00 20 */ addi r1, r1, 0x20
/* 80385AF4 00382A54 7C 08 03 A6 */ mtlr r0
/* 80385AF8 00382A58 4E 80 00 20 */ blr

1942
asm/Dolphin/PAD/pad.s Normal file

File diff suppressed because it is too large Load Diff

120
asm/Dolphin/PPCArch.s Normal file
View File

@ -0,0 +1,120 @@
.include "macros.inc"
.section .text, "ax"
.global PPCMfmsr
PPCMfmsr:
/* 8036F7D4 0036C734 7C 60 00 A6 */ mfmsr r3
/* 8036F7D8 0036C738 4E 80 00 20 */ blr
.global PPCMtmsr
PPCMtmsr:
/* 8036F7DC 0036C73C 7C 60 01 24 */ mtmsr r3
/* 8036F7E0 0036C740 4E 80 00 20 */ blr
.global PPCMfhid0
PPCMfhid0:
/* 8036F7E4 0036C744 7C 70 FA A6 */ mfspr r3, 0x3f0
/* 8036F7E8 0036C748 4E 80 00 20 */ blr
.global PPCMthid0
PPCMthid0:
/* 8036F7EC 0036C74C 7C 70 FB A6 */ mtspr 0x3f0, r3
/* 8036F7F0 0036C750 4E 80 00 20 */ blr
.global PPCMfl2cr
PPCMfl2cr:
/* 8036F7F4 0036C754 7C 79 FA A6 */ mfspr r3, 0x3f9
/* 8036F7F8 0036C758 4E 80 00 20 */ blr
.global PPCMtl2cr
PPCMtl2cr:
/* 8036F7FC 0036C75C 7C 79 FB A6 */ mtspr 0x3f9, r3
/* 8036F800 0036C760 4E 80 00 20 */ blr
.global PPCMtdec
PPCMtdec:
/* 8036F804 0036C764 7C 76 03 A6 */ mtspr 0x16, r3
/* 8036F808 0036C768 4E 80 00 20 */ blr
.global PPCSync
PPCSync:
/* 8036F80C 0036C76C 44 00 00 02 */ sc
/* 8036F810 0036C770 4E 80 00 20 */ blr
.global PPCHalt
PPCHalt:
/* 8036F814 0036C774 7C 00 04 AC */ sync 0
lbl_8036F818:
/* 8036F818 0036C778 60 00 00 00 */ nop
/* 8036F81C 0036C77C 38 60 00 00 */ li r3, 0
/* 8036F820 0036C780 60 00 00 00 */ nop
/* 8036F824 0036C784 4B FF FF F4 */ b lbl_8036F818
.global PPCMffpscr
PPCMffpscr:
/* 8036F828 0036C788 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8036F82C 0036C78C DB E1 00 10 */ stfd f31, 0x10(r1)
/* 8036F830 0036C790 FF E0 04 8E */ mffs f31
/* 8036F834 0036C794 DB E1 00 08 */ stfd f31, 8(r1)
/* 8036F838 0036C798 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8036F83C 0036C79C CB E1 00 10 */ lfd f31, 0x10(r1)
/* 8036F840 0036C7A0 38 21 00 18 */ addi r1, r1, 0x18
/* 8036F844 0036C7A4 4E 80 00 20 */ blr
.global PPCMtfpscr
PPCMtfpscr:
/* 8036F848 0036C7A8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8036F84C 0036C7AC DB E1 00 18 */ stfd f31, 0x18(r1)
/* 8036F850 0036C7B0 38 80 00 00 */ li r4, 0
/* 8036F854 0036C7B4 90 81 00 10 */ stw r4, 0x10(r1)
/* 8036F858 0036C7B8 90 61 00 14 */ stw r3, 0x14(r1)
/* 8036F85C 0036C7BC CB E1 00 10 */ lfd f31, 0x10(r1)
/* 8036F860 0036C7C0 FD FE FD 8E */ mtfsf 0xff, f31
/* 8036F864 0036C7C4 CB E1 00 18 */ lfd f31, 0x18(r1)
/* 8036F868 0036C7C8 38 21 00 20 */ addi r1, r1, 0x20
/* 8036F86C 0036C7CC 4E 80 00 20 */ blr
.global PPCMfhid2
PPCMfhid2:
/* 8036F870 0036C7D0 7C 78 E2 A6 */ mfspr r3, 0x398
/* 8036F874 0036C7D4 4E 80 00 20 */ blr
.global PPCMthid2
PPCMthid2:
/* 8036F878 0036C7D8 7C 78 E3 A6 */ mtspr 0x398, r3
/* 8036F87C 0036C7DC 4E 80 00 20 */ blr
.global PPCMfwpar
PPCMfwpar:
/* 8036F880 0036C7E0 7C 00 04 AC */ sync 0
/* 8036F884 0036C7E4 7C 79 E2 A6 */ mfspr r3, 0x399
/* 8036F888 0036C7E8 4E 80 00 20 */ blr
.global PPCMtwpar
PPCMtwpar:
/* 8036F88C 0036C7EC 7C 79 E3 A6 */ mtspr 0x399, r3
/* 8036F890 0036C7F0 4E 80 00 20 */ blr
.global PPCDisableSpeculation
PPCDisableSpeculation:
/* 8036F894 0036C7F4 7C 08 02 A6 */ mflr r0
/* 8036F898 0036C7F8 90 01 00 04 */ stw r0, 4(r1)
/* 8036F89C 0036C7FC 94 21 FF F8 */ stwu r1, -8(r1)
/* 8036F8A0 0036C800 4B FF FF 45 */ bl PPCMfhid0
/* 8036F8A4 0036C804 60 63 02 00 */ ori r3, r3, 0x200
/* 8036F8A8 0036C808 4B FF FF 45 */ bl PPCMthid0
/* 8036F8AC 0036C80C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8036F8B0 0036C810 38 21 00 08 */ addi r1, r1, 8
/* 8036F8B4 0036C814 7C 08 03 A6 */ mtlr r0
/* 8036F8B8 0036C818 4E 80 00 20 */ blr
.global PPCSetFpIEEEMode
PPCSetFpIEEEMode:
/* 8036F8BC 0036C81C FF A0 00 8C */ mtfsb0 0x1d
/* 8036F8C0 0036C820 4E 80 00 20 */ blr
.global PPCSetFpNonIEEEMode
PPCSetFpNonIEEEMode:
/* 8036F8C4 0036C824 FF A0 00 4C */ mtfsb1 0x1d
/* 8036F8C8 0036C828 4E 80 00 20 */ blr

696
asm/Dolphin/ai.s Normal file
View File

@ -0,0 +1,696 @@
.include "macros.inc"
.section .text, "ax"
.global AIRegisterDMACallback
AIRegisterDMACallback:
/* 8036CF3C 00369E9C 7C 08 02 A6 */ mflr r0
/* 8036CF40 00369EA0 90 01 00 04 */ stw r0, 4(r1)
/* 8036CF44 00369EA4 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8036CF48 00369EA8 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8036CF4C 00369EAC 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8036CF50 00369EB0 7C 7E 1B 78 */ mr r30, r3
/* 8036CF54 00369EB4 83 ED AA FC */ lwz r31, lbl_805A96BC@sda21(r13)
/* 8036CF58 00369EB8 48 01 47 09 */ bl OSDisableInterrupts
/* 8036CF5C 00369EBC 93 CD AA FC */ stw r30, lbl_805A96BC@sda21(r13)
/* 8036CF60 00369EC0 48 01 47 29 */ bl OSRestoreInterrupts
/* 8036CF64 00369EC4 7F E3 FB 78 */ mr r3, r31
/* 8036CF68 00369EC8 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8036CF6C 00369ECC 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8036CF70 00369ED0 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8036CF74 00369ED4 38 21 00 18 */ addi r1, r1, 0x18
/* 8036CF78 00369ED8 7C 08 03 A6 */ mtlr r0
/* 8036CF7C 00369EDC 4E 80 00 20 */ blr
.global AIInitDMA
AIInitDMA:
/* 8036CF80 00369EE0 7C 08 02 A6 */ mflr r0
/* 8036CF84 00369EE4 90 01 00 04 */ stw r0, 4(r1)
/* 8036CF88 00369EE8 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8036CF8C 00369EEC 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8036CF90 00369EF0 3B E4 00 00 */ addi r31, r4, 0
/* 8036CF94 00369EF4 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8036CF98 00369EF8 3B C3 00 00 */ addi r30, r3, 0
/* 8036CF9C 00369EFC 48 01 46 C5 */ bl OSDisableInterrupts
/* 8036CFA0 00369F00 3C 80 CC 00 */ lis r4, 0xCC005030@ha
/* 8036CFA4 00369F04 A0 04 50 30 */ lhz r0, 0xCC005030@l(r4)
/* 8036CFA8 00369F08 38 A4 50 00 */ addi r5, r4, 0x5000
/* 8036CFAC 00369F0C 38 C4 50 00 */ addi r6, r4, 0x5000
/* 8036CFB0 00369F10 38 E4 50 00 */ addi r7, r4, 0x5000
/* 8036CFB4 00369F14 54 04 00 2A */ rlwinm r4, r0, 0, 0, 0x15
/* 8036CFB8 00369F18 57 C0 84 3E */ srwi r0, r30, 0x10
/* 8036CFBC 00369F1C 7C 80 03 78 */ or r0, r4, r0
/* 8036CFC0 00369F20 B0 05 00 30 */ sth r0, 0x30(r5)
/* 8036CFC4 00369F24 57 C0 04 3E */ clrlwi r0, r30, 0x10
/* 8036CFC8 00369F28 A0 86 00 32 */ lhz r4, 0x32(r6)
/* 8036CFCC 00369F2C 54 84 06 DE */ rlwinm r4, r4, 0, 0x1b, 0xf
/* 8036CFD0 00369F30 7C 80 03 78 */ or r0, r4, r0
/* 8036CFD4 00369F34 B0 06 00 32 */ sth r0, 0x32(r6)
/* 8036CFD8 00369F38 57 E0 DC 3E */ rlwinm r0, r31, 0x1b, 0x10, 0x1f
/* 8036CFDC 00369F3C A0 87 00 36 */ lhz r4, 0x36(r7)
/* 8036CFE0 00369F40 54 84 00 20 */ rlwinm r4, r4, 0, 0, 0x10
/* 8036CFE4 00369F44 7C 80 03 78 */ or r0, r4, r0
/* 8036CFE8 00369F48 B0 07 00 36 */ sth r0, 0x36(r7)
/* 8036CFEC 00369F4C 48 01 46 9D */ bl OSRestoreInterrupts
/* 8036CFF0 00369F50 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8036CFF4 00369F54 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8036CFF8 00369F58 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8036CFFC 00369F5C 38 21 00 18 */ addi r1, r1, 0x18
/* 8036D000 00369F60 7C 08 03 A6 */ mtlr r0
/* 8036D004 00369F64 4E 80 00 20 */ blr
.global AIStartDMA
AIStartDMA:
/* 8036D008 00369F68 3C 60 CC 00 */ lis r3, 0xCC005000@ha
/* 8036D00C 00369F6C 38 63 50 00 */ addi r3, r3, 0xCC005000@l
/* 8036D010 00369F70 A0 03 00 36 */ lhz r0, 0x36(r3)
/* 8036D014 00369F74 60 00 80 00 */ ori r0, r0, 0x8000
/* 8036D018 00369F78 B0 03 00 36 */ sth r0, 0x36(r3)
/* 8036D01C 00369F7C 4E 80 00 20 */ blr
.global AIStopDMA
AIStopDMA:
/* 8036D020 00369F80 3C 60 CC 00 */ lis r3, 0xCC005000@ha
/* 8036D024 00369F84 38 63 50 00 */ addi r3, r3, 0xCC005000@l
/* 8036D028 00369F88 A0 03 00 36 */ lhz r0, 0x36(r3)
/* 8036D02C 00369F8C 54 00 04 5E */ rlwinm r0, r0, 0, 0x11, 0xf
/* 8036D030 00369F90 B0 03 00 36 */ sth r0, 0x36(r3)
/* 8036D034 00369F94 4E 80 00 20 */ blr
.global AIGetDMAStartAddr
AIGetDMAStartAddr:
/* 8036D038 00369F98 3C 60 CC 00 */ lis r3, 0xCC005000@ha
/* 8036D03C 00369F9C 38 63 50 00 */ addi r3, r3, 0xCC005000@l
/* 8036D040 00369FA0 A0 83 00 30 */ lhz r4, 0x30(r3)
/* 8036D044 00369FA4 A0 03 00 32 */ lhz r0, 0x32(r3)
/* 8036D048 00369FA8 54 03 04 34 */ rlwinm r3, r0, 0, 0x10, 0x1a
/* 8036D04C 00369FAC 50 83 81 9E */ rlwimi r3, r4, 0x10, 6, 0xf
/* 8036D050 00369FB0 4E 80 00 20 */ blr
.global AIRegisterStreamCallback
AIRegisterStreamCallback:
/* 8036D054 00369FB4 7C 08 02 A6 */ mflr r0
/* 8036D058 00369FB8 90 01 00 04 */ stw r0, 4(r1)
/* 8036D05C 00369FBC 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8036D060 00369FC0 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8036D064 00369FC4 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8036D068 00369FC8 7C 7E 1B 78 */ mr r30, r3
/* 8036D06C 00369FCC 83 ED AA F8 */ lwz r31, lbl_805A96B8@sda21(r13)
/* 8036D070 00369FD0 48 01 45 F1 */ bl OSDisableInterrupts
/* 8036D074 00369FD4 93 CD AA F8 */ stw r30, lbl_805A96B8@sda21(r13)
/* 8036D078 00369FD8 48 01 46 11 */ bl OSRestoreInterrupts
/* 8036D07C 00369FDC 7F E3 FB 78 */ mr r3, r31
/* 8036D080 00369FE0 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8036D084 00369FE4 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8036D088 00369FE8 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8036D08C 00369FEC 38 21 00 18 */ addi r1, r1, 0x18
/* 8036D090 00369FF0 7C 08 03 A6 */ mtlr r0
/* 8036D094 00369FF4 4E 80 00 20 */ blr
.global sub_8036d098
sub_8036d098:
/* 8036D098 00369FF8 3C 60 CC 00 */ lis r3, 0xCC006C00@ha
/* 8036D09C 00369FFC 80 03 6C 00 */ lwz r0, 0xCC006C00@l(r3)
/* 8036D0A0 0036A000 54 00 06 F2 */ rlwinm r0, r0, 0, 0x1b, 0x19
/* 8036D0A4 0036A004 60 00 00 20 */ ori r0, r0, 0x20
/* 8036D0A8 0036A008 90 03 6C 00 */ stw r0, 0x6c00(r3)
/* 8036D0AC 0036A00C 4E 80 00 20 */ blr
.global SetTRKConnected
SetTRKConnected:
/* 8036D0B0 0036A010 3C 80 CC 00 */ lis r4, 0xCC006C0C@ha
/* 8036D0B4 0036A014 90 64 6C 0C */ stw r3, 0xCC006C0C@l(r4)
/* 8036D0B8 0036A018 4E 80 00 20 */ blr
.global AISetStreamPlayState
AISetStreamPlayState:
/* 8036D0BC 0036A01C 7C 08 02 A6 */ mflr r0
/* 8036D0C0 0036A020 90 01 00 04 */ stw r0, 4(r1)
/* 8036D0C4 0036A024 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8036D0C8 0036A028 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8036D0CC 0036A02C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8036D0D0 0036A030 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8036D0D4 0036A034 7C 7D 1B 78 */ mr r29, r3
/* 8036D0D8 0036A038 48 00 00 BD */ bl AIGetStreamPlayState
/* 8036D0DC 0036A03C 7C 1D 18 40 */ cmplw r29, r3
/* 8036D0E0 0036A040 41 82 00 98 */ beq lbl_8036D178
/* 8036D0E4 0036A044 48 00 02 89 */ bl AIGetStreamSampleRate
/* 8036D0E8 0036A048 28 03 00 00 */ cmplwi r3, 0
/* 8036D0EC 0036A04C 40 82 00 78 */ bne lbl_8036D164
/* 8036D0F0 0036A050 28 1D 00 01 */ cmplwi r29, 1
/* 8036D0F4 0036A054 40 82 00 70 */ bne lbl_8036D164
/* 8036D0F8 0036A058 48 00 02 CD */ bl AIGetStreamVolRight
/* 8036D0FC 0036A05C 7C 7E 1B 78 */ mr r30, r3
/* 8036D100 0036A060 48 00 02 99 */ bl AIGetStreamVolLeft
/* 8036D104 0036A064 3B A3 00 00 */ addi r29, r3, 0
/* 8036D108 0036A068 38 60 00 00 */ li r3, 0
/* 8036D10C 0036A06C 48 00 02 9D */ bl AISetStreamVolRight
/* 8036D110 0036A070 38 60 00 00 */ li r3, 0
/* 8036D114 0036A074 48 00 02 69 */ bl AISetStreamVolLeft
/* 8036D118 0036A078 48 01 45 49 */ bl OSDisableInterrupts
/* 8036D11C 0036A07C 7C 7F 1B 78 */ mr r31, r3
/* 8036D120 0036A080 48 00 05 A1 */ bl __AI_SRC_INIT
/* 8036D124 0036A084 3C 80 CC 00 */ lis r4, 0xCC006C00@ha
/* 8036D128 0036A088 80 04 6C 00 */ lwz r0, 0xCC006C00@l(r4)
/* 8036D12C 0036A08C 38 7F 00 00 */ addi r3, r31, 0
/* 8036D130 0036A090 54 00 06 F2 */ rlwinm r0, r0, 0, 0x1b, 0x19
/* 8036D134 0036A094 60 00 00 20 */ ori r0, r0, 0x20
/* 8036D138 0036A098 90 04 6C 00 */ stw r0, 0x6c00(r4)
/* 8036D13C 0036A09C 80 04 6C 00 */ lwz r0, 0x6c00(r4)
/* 8036D140 0036A0A0 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8036D144 0036A0A4 60 00 00 01 */ ori r0, r0, 1
/* 8036D148 0036A0A8 90 04 6C 00 */ stw r0, 0x6c00(r4)
/* 8036D14C 0036A0AC 48 01 45 3D */ bl OSRestoreInterrupts
/* 8036D150 0036A0B0 7F C3 F3 78 */ mr r3, r30
/* 8036D154 0036A0B4 48 00 02 29 */ bl AISetStreamVolLeft
/* 8036D158 0036A0B8 7F A3 EB 78 */ mr r3, r29
/* 8036D15C 0036A0BC 48 00 02 4D */ bl AISetStreamVolRight
/* 8036D160 0036A0C0 48 00 00 18 */ b lbl_8036D178
lbl_8036D164:
/* 8036D164 0036A0C4 3C 60 CC 00 */ lis r3, 0xCC006C00@ha
/* 8036D168 0036A0C8 80 03 6C 00 */ lwz r0, 0xCC006C00@l(r3)
/* 8036D16C 0036A0CC 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8036D170 0036A0D0 7C 00 EB 78 */ or r0, r0, r29
/* 8036D174 0036A0D4 90 03 6C 00 */ stw r0, 0x6c00(r3)
lbl_8036D178:
/* 8036D178 0036A0D8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8036D17C 0036A0DC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8036D180 0036A0E0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8036D184 0036A0E4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8036D188 0036A0E8 38 21 00 20 */ addi r1, r1, 0x20
/* 8036D18C 0036A0EC 7C 08 03 A6 */ mtlr r0
/* 8036D190 0036A0F0 4E 80 00 20 */ blr
.global AIGetStreamPlayState
AIGetStreamPlayState:
/* 8036D194 0036A0F4 3C 60 CC 00 */ lis r3, 0xCC006C00@ha
/* 8036D198 0036A0F8 80 03 6C 00 */ lwz r0, 0xCC006C00@l(r3)
/* 8036D19C 0036A0FC 54 03 07 FE */ clrlwi r3, r0, 0x1f
/* 8036D1A0 0036A100 4E 80 00 20 */ blr
.global AISetDSPSampleRate
AISetDSPSampleRate:
/* 8036D1A4 0036A104 7C 08 02 A6 */ mflr r0
/* 8036D1A8 0036A108 90 01 00 04 */ stw r0, 4(r1)
/* 8036D1AC 0036A10C 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8036D1B0 0036A110 BF 41 00 10 */ stmw r26, 0x10(r1)
/* 8036D1B4 0036A114 7C 7A 1B 78 */ mr r26, r3
/* 8036D1B8 0036A118 48 00 00 CD */ bl AIGetDSPSampleRate
/* 8036D1BC 0036A11C 7C 1A 18 40 */ cmplw r26, r3
/* 8036D1C0 0036A120 41 82 00 B0 */ beq lbl_8036D270
/* 8036D1C4 0036A124 3F E0 CC 00 */ lis r31, 0xCC006C00@ha
/* 8036D1C8 0036A128 80 1F 6C 00 */ lwz r0, 0xCC006C00@l(r31)
/* 8036D1CC 0036A12C 28 1A 00 00 */ cmplwi r26, 0
/* 8036D1D0 0036A130 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18
/* 8036D1D4 0036A134 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8036D1D8 0036A138 40 82 00 98 */ bne lbl_8036D270
/* 8036D1DC 0036A13C 48 00 01 BD */ bl AIGetStreamVolLeft
/* 8036D1E0 0036A140 7C 7E 1B 78 */ mr r30, r3
/* 8036D1E4 0036A144 48 00 01 E1 */ bl AIGetStreamVolRight
/* 8036D1E8 0036A148 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8036D1EC 0036A14C 3B A3 00 00 */ addi r29, r3, 0
/* 8036D1F0 0036A150 54 1B 07 FE */ clrlwi r27, r0, 0x1f
/* 8036D1F4 0036A154 48 00 01 79 */ bl AIGetStreamSampleRate
/* 8036D1F8 0036A158 3B 83 00 00 */ addi r28, r3, 0
/* 8036D1FC 0036A15C 38 60 00 00 */ li r3, 0
/* 8036D200 0036A160 48 00 01 7D */ bl AISetStreamVolLeft
/* 8036D204 0036A164 38 60 00 00 */ li r3, 0
/* 8036D208 0036A168 48 00 01 A1 */ bl AISetStreamVolRight
/* 8036D20C 0036A16C 48 01 44 55 */ bl OSDisableInterrupts
/* 8036D210 0036A170 7C 7A 1B 78 */ mr r26, r3
/* 8036D214 0036A174 48 00 04 AD */ bl __AI_SRC_INIT
/* 8036D218 0036A178 80 9F 6C 00 */ lwz r4, 0x6c00(r31)
/* 8036D21C 0036A17C 57 80 08 3C */ slwi r0, r28, 1
/* 8036D220 0036A180 38 7A 00 00 */ addi r3, r26, 0
/* 8036D224 0036A184 54 84 06 F2 */ rlwinm r4, r4, 0, 0x1b, 0x19
/* 8036D228 0036A188 60 84 00 20 */ ori r4, r4, 0x20
/* 8036D22C 0036A18C 90 9F 6C 00 */ stw r4, 0x6c00(r31)
/* 8036D230 0036A190 80 9F 6C 00 */ lwz r4, 0x6c00(r31)
/* 8036D234 0036A194 54 84 07 FA */ rlwinm r4, r4, 0, 0x1f, 0x1d
/* 8036D238 0036A198 7C 80 03 78 */ or r0, r4, r0
/* 8036D23C 0036A19C 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8036D240 0036A1A0 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8036D244 0036A1A4 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8036D248 0036A1A8 7C 00 DB 78 */ or r0, r0, r27
/* 8036D24C 0036A1AC 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8036D250 0036A1B0 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8036D254 0036A1B4 60 00 00 40 */ ori r0, r0, 0x40
/* 8036D258 0036A1B8 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8036D25C 0036A1BC 48 01 44 2D */ bl OSRestoreInterrupts
/* 8036D260 0036A1C0 7F C3 F3 78 */ mr r3, r30
/* 8036D264 0036A1C4 48 00 01 19 */ bl AISetStreamVolLeft
/* 8036D268 0036A1C8 7F A3 EB 78 */ mr r3, r29
/* 8036D26C 0036A1CC 48 00 01 3D */ bl AISetStreamVolRight
lbl_8036D270:
/* 8036D270 0036A1D0 BB 41 00 10 */ lmw r26, 0x10(r1)
/* 8036D274 0036A1D4 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8036D278 0036A1D8 38 21 00 28 */ addi r1, r1, 0x28
/* 8036D27C 0036A1DC 7C 08 03 A6 */ mtlr r0
/* 8036D280 0036A1E0 4E 80 00 20 */ blr
.global AIGetDSPSampleRate
AIGetDSPSampleRate:
/* 8036D284 0036A1E4 3C 60 CC 00 */ lis r3, 0xCC006C00@ha
/* 8036D288 0036A1E8 80 03 6C 00 */ lwz r0, 0xCC006C00@l(r3)
/* 8036D28C 0036A1EC 54 00 D7 FE */ rlwinm r0, r0, 0x1a, 0x1f, 0x1f
/* 8036D290 0036A1F0 68 03 00 01 */ xori r3, r0, 1
/* 8036D294 0036A1F4 4E 80 00 20 */ blr
.global __AI_set_stream_sample_rate
__AI_set_stream_sample_rate:
/* 8036D298 0036A1F8 7C 08 02 A6 */ mflr r0
/* 8036D29C 0036A1FC 90 01 00 04 */ stw r0, 4(r1)
/* 8036D2A0 0036A200 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8036D2A4 0036A204 BF 21 00 14 */ stmw r25, 0x14(r1)
/* 8036D2A8 0036A208 7C 79 1B 78 */ mr r25, r3
/* 8036D2AC 0036A20C 48 00 00 C1 */ bl AIGetStreamSampleRate
/* 8036D2B0 0036A210 7C 19 18 40 */ cmplw r25, r3
/* 8036D2B4 0036A214 41 82 00 A4 */ beq lbl_8036D358
/* 8036D2B8 0036A218 3F E0 CC 00 */ lis r31, 0xCC006C00@ha
/* 8036D2BC 0036A21C 80 1F 6C 00 */ lwz r0, 0xCC006C00@l(r31)
/* 8036D2C0 0036A220 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 8036D2C4 0036A224 7C 1D 03 78 */ mr r29, r0
/* 8036D2C8 0036A228 48 00 00 D1 */ bl AIGetStreamVolLeft
/* 8036D2CC 0036A22C 7C 7C 1B 78 */ mr r28, r3
/* 8036D2D0 0036A230 48 00 00 F5 */ bl AIGetStreamVolRight
/* 8036D2D4 0036A234 3B 63 00 00 */ addi r27, r3, 0
/* 8036D2D8 0036A238 38 60 00 00 */ li r3, 0
/* 8036D2DC 0036A23C 48 00 00 CD */ bl AISetStreamVolRight
/* 8036D2E0 0036A240 38 60 00 00 */ li r3, 0
/* 8036D2E4 0036A244 48 00 00 99 */ bl AISetStreamVolLeft
/* 8036D2E8 0036A248 80 7F 6C 00 */ lwz r3, 0x6c00(r31)
/* 8036D2EC 0036A24C 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8036D2F0 0036A250 54 7A 06 72 */ rlwinm r26, r3, 0, 0x19, 0x19
/* 8036D2F4 0036A254 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18
/* 8036D2F8 0036A258 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8036D2FC 0036A25C 48 01 43 65 */ bl OSDisableInterrupts
/* 8036D300 0036A260 7C 7E 1B 78 */ mr r30, r3
/* 8036D304 0036A264 48 00 03 BD */ bl __AI_SRC_INIT
/* 8036D308 0036A268 80 9F 6C 00 */ lwz r4, 0x6c00(r31)
/* 8036D30C 0036A26C 57 20 08 3C */ slwi r0, r25, 1
/* 8036D310 0036A270 38 7E 00 00 */ addi r3, r30, 0
/* 8036D314 0036A274 7C 84 D3 78 */ or r4, r4, r26
/* 8036D318 0036A278 90 9F 6C 00 */ stw r4, 0x6c00(r31)
/* 8036D31C 0036A27C 80 9F 6C 00 */ lwz r4, 0x6c00(r31)
/* 8036D320 0036A280 54 84 06 F2 */ rlwinm r4, r4, 0, 0x1b, 0x19
/* 8036D324 0036A284 60 84 00 20 */ ori r4, r4, 0x20
/* 8036D328 0036A288 90 9F 6C 00 */ stw r4, 0x6c00(r31)
/* 8036D32C 0036A28C 80 9F 6C 00 */ lwz r4, 0x6c00(r31)
/* 8036D330 0036A290 54 84 07 FA */ rlwinm r4, r4, 0, 0x1f, 0x1d
/* 8036D334 0036A294 7C 80 03 78 */ or r0, r4, r0
/* 8036D338 0036A298 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8036D33C 0036A29C 48 01 43 4D */ bl OSRestoreInterrupts
/* 8036D340 0036A2A0 7F A3 EB 78 */ mr r3, r29
/* 8036D344 0036A2A4 4B FF FD 79 */ bl AISetStreamPlayState
/* 8036D348 0036A2A8 7F 83 E3 78 */ mr r3, r28
/* 8036D34C 0036A2AC 48 00 00 31 */ bl AISetStreamVolLeft
/* 8036D350 0036A2B0 7F 63 DB 78 */ mr r3, r27
/* 8036D354 0036A2B4 48 00 00 55 */ bl AISetStreamVolRight
lbl_8036D358:
/* 8036D358 0036A2B8 BB 21 00 14 */ lmw r25, 0x14(r1)
/* 8036D35C 0036A2BC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8036D360 0036A2C0 38 21 00 30 */ addi r1, r1, 0x30
/* 8036D364 0036A2C4 7C 08 03 A6 */ mtlr r0
/* 8036D368 0036A2C8 4E 80 00 20 */ blr
.global AIGetStreamSampleRate
AIGetStreamSampleRate:
/* 8036D36C 0036A2CC 3C 60 CC 00 */ lis r3, 0xCC006C00@ha
/* 8036D370 0036A2D0 80 03 6C 00 */ lwz r0, 0xCC006C00@l(r3)
/* 8036D374 0036A2D4 54 03 FF FE */ rlwinm r3, r0, 0x1f, 0x1f, 0x1f
/* 8036D378 0036A2D8 4E 80 00 20 */ blr
.global AISetStreamVolLeft
AISetStreamVolLeft:
/* 8036D37C 0036A2DC 3C 80 CC 00 */ lis r4, 0xCC006C00@ha
/* 8036D380 0036A2E0 38 84 6C 00 */ addi r4, r4, 0xCC006C00@l
/* 8036D384 0036A2E4 80 04 00 04 */ lwz r0, 4(r4)
/* 8036D388 0036A2E8 54 00 00 2E */ rlwinm r0, r0, 0, 0, 0x17
/* 8036D38C 0036A2EC 50 60 06 3E */ rlwimi r0, r3, 0, 0x18, 0x1f
/* 8036D390 0036A2F0 90 04 00 04 */ stw r0, 4(r4)
/* 8036D394 0036A2F4 4E 80 00 20 */ blr
.global AIGetStreamVolLeft
AIGetStreamVolLeft:
/* 8036D398 0036A2F8 3C 60 CC 00 */ lis r3, 0xCC006C04@ha
/* 8036D39C 0036A2FC 80 03 6C 04 */ lwz r0, 0xCC006C04@l(r3)
/* 8036D3A0 0036A300 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 8036D3A4 0036A304 4E 80 00 20 */ blr
.global AISetStreamVolRight
AISetStreamVolRight:
/* 8036D3A8 0036A308 3C 80 CC 00 */ lis r4, 0xCC006C00@ha
/* 8036D3AC 0036A30C 38 84 6C 00 */ addi r4, r4, 0xCC006C00@l
/* 8036D3B0 0036A310 80 04 00 04 */ lwz r0, 4(r4)
/* 8036D3B4 0036A314 54 00 06 1E */ rlwinm r0, r0, 0, 0x18, 0xf
/* 8036D3B8 0036A318 50 60 44 2E */ rlwimi r0, r3, 8, 0x10, 0x17
/* 8036D3BC 0036A31C 90 04 00 04 */ stw r0, 4(r4)
/* 8036D3C0 0036A320 4E 80 00 20 */ blr
.global AIGetStreamVolRight
AIGetStreamVolRight:
/* 8036D3C4 0036A324 3C 60 CC 00 */ lis r3, 0xCC006C04@ha
/* 8036D3C8 0036A328 80 03 6C 04 */ lwz r0, 0xCC006C04@l(r3)
/* 8036D3CC 0036A32C 54 03 C6 3E */ rlwinm r3, r0, 0x18, 0x18, 0x1f
/* 8036D3D0 0036A330 4E 80 00 20 */ blr
.global AIInit
AIInit:
/* 8036D3D4 0036A334 7C 08 02 A6 */ mflr r0
/* 8036D3D8 0036A338 90 01 00 04 */ stw r0, 4(r1)
/* 8036D3DC 0036A33C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8036D3E0 0036A340 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8036D3E4 0036A344 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8036D3E8 0036A348 3B C3 00 00 */ addi r30, r3, 0
/* 8036D3EC 0036A34C 80 0D AB 08 */ lwz r0, lbl_805A96C8@sda21(r13)
/* 8036D3F0 0036A350 2C 00 00 01 */ cmpwi r0, 1
/* 8036D3F4 0036A354 41 82 01 34 */ beq lbl_8036D528
/* 8036D3F8 0036A358 80 6D 9E A8 */ lwz r3, lbl_805A8A68@sda21(r13)
/* 8036D3FC 0036A35C 48 01 0C 3D */ bl OSRegisterVersion
/* 8036D400 0036A360 3C 60 80 00 */ lis r3, 0x800000F8@ha
/* 8036D404 0036A364 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
/* 8036D408 0036A368 3C 60 43 1C */ lis r3, 0x431BDE83@ha
/* 8036D40C 0036A36C 3C 80 00 01 */ lis r4, 0x0000A428@ha
/* 8036D410 0036A370 54 00 F0 BE */ srwi r0, r0, 2
/* 8036D414 0036A374 38 63 DE 83 */ addi r3, r3, 0x431BDE83@l
/* 8036D418 0036A378 7C 03 00 16 */ mulhwu r0, r3, r0
/* 8036D41C 0036A37C 54 09 8B FE */ srwi r9, r0, 0xf
/* 8036D420 0036A380 38 A4 A4 28 */ addi r5, r4, 0x0000A428@l
/* 8036D424 0036A384 38 64 A4 10 */ addi r3, r4, -23536
/* 8036D428 0036A388 38 04 F6 18 */ addi r0, r4, -2536
/* 8036D42C 0036A38C 3C 80 10 62 */ lis r4, 0x10624DD3@ha
/* 8036D430 0036A390 7C E9 29 D6 */ mullw r7, r9, r5
/* 8036D434 0036A394 39 44 4D D3 */ addi r10, r4, 0x10624DD3@l
/* 8036D438 0036A398 7C A9 19 D6 */ mullw r5, r9, r3
/* 8036D43C 0036A39C 7C 89 01 D6 */ mullw r4, r9, r0
/* 8036D440 0036A3A0 1D 09 7B 24 */ mulli r8, r9, 0x7b24
/* 8036D444 0036A3A4 1C 69 0B B8 */ mulli r3, r9, 0xbb8
/* 8036D448 0036A3A8 7D 0A 40 16 */ mulhwu r8, r10, r8
/* 8036D44C 0036A3AC 7C EA 38 16 */ mulhwu r7, r10, r7
/* 8036D450 0036A3B0 7C AA 28 16 */ mulhwu r5, r10, r5
/* 8036D454 0036A3B4 7C 8A 20 16 */ mulhwu r4, r10, r4
/* 8036D458 0036A3B8 7C 6A 18 16 */ mulhwu r3, r10, r3
/* 8036D45C 0036A3BC 55 08 BA 7E */ srwi r8, r8, 9
/* 8036D460 0036A3C0 54 E7 BA 7E */ srwi r7, r7, 9
/* 8036D464 0036A3C4 91 0D AB 14 */ stw r8, lbl_805A96D4@sda21(r13)
/* 8036D468 0036A3C8 54 A5 BA 7E */ srwi r5, r5, 9
/* 8036D46C 0036A3CC 54 84 BA 7E */ srwi r4, r4, 9
/* 8036D470 0036A3D0 90 ED AB 1C */ stw r7, lbl_805A96DC@sda21(r13)
/* 8036D474 0036A3D4 3B E0 00 00 */ li r31, 0
/* 8036D478 0036A3D8 54 63 BA 7E */ srwi r3, r3, 9
/* 8036D47C 0036A3DC 90 AD AB 24 */ stw r5, lbl_805A96E4@sda21(r13)
/* 8036D480 0036A3E0 3C C0 CC 00 */ lis r6, 0xCC006C00@ha
/* 8036D484 0036A3E4 90 6D AB 34 */ stw r3, lbl_805A96F4@sda21(r13)
/* 8036D488 0036A3E8 38 60 00 01 */ li r3, 1
/* 8036D48C 0036A3EC 80 06 6C 00 */ lwz r0, 0xCC006C00@l(r6)
/* 8036D490 0036A3F0 90 8D AB 2C */ stw r4, lbl_805A96EC@sda21(r13)
/* 8036D494 0036A3F4 54 00 06 F2 */ rlwinm r0, r0, 0, 0x1b, 0x19
/* 8036D498 0036A3F8 60 00 00 20 */ ori r0, r0, 0x20
/* 8036D49C 0036A3FC 93 ED AB 10 */ stw r31, lbl_805A96D0@sda21(r13)
/* 8036D4A0 0036A400 93 ED AB 18 */ stw r31, lbl_805A96D8@sda21(r13)
/* 8036D4A4 0036A404 93 ED AB 20 */ stw r31, lbl_805A96E0@sda21(r13)
/* 8036D4A8 0036A408 93 ED AB 28 */ stw r31, lbl_805A96E8@sda21(r13)
/* 8036D4AC 0036A40C 93 ED AB 30 */ stw r31, lbl_805A96F0@sda21(r13)
/* 8036D4B0 0036A410 80 A6 6C 04 */ lwz r5, 0x6c04(r6)
/* 8036D4B4 0036A414 90 06 6C 00 */ stw r0, 0x6c00(r6)
/* 8036D4B8 0036A418 54 A0 06 1E */ rlwinm r0, r5, 0, 0x18, 0xf
/* 8036D4BC 0036A41C 60 00 00 00 */ nop
/* 8036D4C0 0036A420 90 06 6C 04 */ stw r0, 0x6c04(r6)
/* 8036D4C4 0036A424 80 06 6C 04 */ lwz r0, 0x6c04(r6)
/* 8036D4C8 0036A428 54 00 00 2E */ rlwinm r0, r0, 0, 0, 0x17
/* 8036D4CC 0036A42C 60 00 00 00 */ nop
/* 8036D4D0 0036A430 90 06 6C 04 */ stw r0, 0x6c04(r6)
/* 8036D4D4 0036A434 93 E6 6C 0C */ stw r31, 0x6c0c(r6)
/* 8036D4D8 0036A438 4B FF FD C1 */ bl __AI_set_stream_sample_rate
/* 8036D4DC 0036A43C 38 60 00 00 */ li r3, 0
/* 8036D4E0 0036A440 4B FF FC C5 */ bl AISetDSPSampleRate
/* 8036D4E4 0036A444 3C 60 80 37 */ lis r3, __AIDHandler@ha
/* 8036D4E8 0036A448 93 ED AA F8 */ stw r31, lbl_805A96B8@sda21(r13)
/* 8036D4EC 0036A44C 38 83 D5 BC */ addi r4, r3, __AIDHandler@l
/* 8036D4F0 0036A450 93 ED AA FC */ stw r31, lbl_805A96BC@sda21(r13)
/* 8036D4F4 0036A454 38 60 00 05 */ li r3, 5
/* 8036D4F8 0036A458 93 CD AB 00 */ stw r30, lbl_805A96C0@sda21(r13)
/* 8036D4FC 0036A45C 48 01 41 B1 */ bl __OSSetInterruptHandler
/* 8036D500 0036A460 3C 60 04 00 */ lis r3, 0x400
/* 8036D504 0036A464 48 01 45 AD */ bl __OSUnmaskInterrupts
/* 8036D508 0036A468 3C 60 80 37 */ lis r3, __AISHandler@ha
/* 8036D50C 0036A46C 38 83 D5 40 */ addi r4, r3, __AISHandler@l
/* 8036D510 0036A470 38 60 00 08 */ li r3, 8
/* 8036D514 0036A474 48 01 41 99 */ bl __OSSetInterruptHandler
/* 8036D518 0036A478 3C 60 00 80 */ lis r3, 0x80
/* 8036D51C 0036A47C 48 01 45 95 */ bl __OSUnmaskInterrupts
/* 8036D520 0036A480 38 00 00 01 */ li r0, 1
/* 8036D524 0036A484 90 0D AB 08 */ stw r0, lbl_805A96C8@sda21(r13)
lbl_8036D528:
/* 8036D528 0036A488 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8036D52C 0036A48C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8036D530 0036A490 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8036D534 0036A494 38 21 00 18 */ addi r1, r1, 0x18
/* 8036D538 0036A498 7C 08 03 A6 */ mtlr r0
/* 8036D53C 0036A49C 4E 80 00 20 */ blr
.global __AISHandler
__AISHandler:
/* 8036D540 0036A4A0 7C 08 02 A6 */ mflr r0
/* 8036D544 0036A4A4 90 01 00 04 */ stw r0, 4(r1)
/* 8036D548 0036A4A8 94 21 FD 20 */ stwu r1, -0x2e0(r1)
/* 8036D54C 0036A4AC 93 E1 02 DC */ stw r31, 0x2dc(r1)
/* 8036D550 0036A4B0 3F E0 CC 00 */ lis r31, 0xCC006C00@ha
/* 8036D554 0036A4B4 80 1F 6C 00 */ lwz r0, 0xCC006C00@l(r31)
/* 8036D558 0036A4B8 38 61 00 10 */ addi r3, r1, 0x10
/* 8036D55C 0036A4BC 93 C1 02 D8 */ stw r30, 0x2d8(r1)
/* 8036D560 0036A4C0 60 00 00 08 */ ori r0, r0, 8
/* 8036D564 0036A4C4 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8036D568 0036A4C8 3B C4 00 00 */ addi r30, r4, 0
/* 8036D56C 0036A4CC 48 01 20 A9 */ bl OSClearContext
/* 8036D570 0036A4D0 38 61 00 10 */ addi r3, r1, 0x10
/* 8036D574 0036A4D4 48 01 1E A9 */ bl OSSetCurrentContext
/* 8036D578 0036A4D8 81 8D AA F8 */ lwz r12, lbl_805A96B8@sda21(r13)
/* 8036D57C 0036A4DC 28 0C 00 00 */ cmplwi r12, 0
/* 8036D580 0036A4E0 41 82 00 14 */ beq lbl_8036D594
/* 8036D584 0036A4E4 38 7F 6C 00 */ addi r3, r31, 0x6c00
/* 8036D588 0036A4E8 7D 88 03 A6 */ mtlr r12
/* 8036D58C 0036A4EC 80 63 00 08 */ lwz r3, 8(r3)
/* 8036D590 0036A4F0 4E 80 00 21 */ blrl
lbl_8036D594:
/* 8036D594 0036A4F4 38 61 00 10 */ addi r3, r1, 0x10
/* 8036D598 0036A4F8 48 01 20 7D */ bl OSClearContext
/* 8036D59C 0036A4FC 7F C3 F3 78 */ mr r3, r30
/* 8036D5A0 0036A500 48 01 1E 7D */ bl OSSetCurrentContext
/* 8036D5A4 0036A504 80 01 02 E4 */ lwz r0, 0x2e4(r1)
/* 8036D5A8 0036A508 83 E1 02 DC */ lwz r31, 0x2dc(r1)
/* 8036D5AC 0036A50C 83 C1 02 D8 */ lwz r30, 0x2d8(r1)
/* 8036D5B0 0036A510 38 21 02 E0 */ addi r1, r1, 0x2e0
/* 8036D5B4 0036A514 7C 08 03 A6 */ mtlr r0
/* 8036D5B8 0036A518 4E 80 00 20 */ blr
.global __AIDHandler
__AIDHandler:
/* 8036D5BC 0036A51C 7C 08 02 A6 */ mflr r0
/* 8036D5C0 0036A520 3C 60 CC 00 */ lis r3, 0xCC005000@ha
/* 8036D5C4 0036A524 90 01 00 04 */ stw r0, 4(r1)
/* 8036D5C8 0036A528 38 63 50 00 */ addi r3, r3, 0xCC005000@l
/* 8036D5CC 0036A52C 38 00 FF 5F */ li r0, -161
/* 8036D5D0 0036A530 94 21 FD 20 */ stwu r1, -0x2e0(r1)
/* 8036D5D4 0036A534 93 E1 02 DC */ stw r31, 0x2dc(r1)
/* 8036D5D8 0036A538 3B E4 00 00 */ addi r31, r4, 0
/* 8036D5DC 0036A53C A0 A3 00 0A */ lhz r5, 0xa(r3)
/* 8036D5E0 0036A540 7C A0 00 38 */ and r0, r5, r0
/* 8036D5E4 0036A544 60 00 00 08 */ ori r0, r0, 8
/* 8036D5E8 0036A548 B0 03 00 0A */ sth r0, 0xa(r3)
/* 8036D5EC 0036A54C 38 61 00 10 */ addi r3, r1, 0x10
/* 8036D5F0 0036A550 48 01 20 25 */ bl OSClearContext
/* 8036D5F4 0036A554 38 61 00 10 */ addi r3, r1, 0x10
/* 8036D5F8 0036A558 48 01 1E 25 */ bl OSSetCurrentContext
/* 8036D5FC 0036A55C 80 6D AA FC */ lwz r3, lbl_805A96BC@sda21(r13)
/* 8036D600 0036A560 28 03 00 00 */ cmplwi r3, 0
/* 8036D604 0036A564 41 82 00 40 */ beq lbl_8036D644
/* 8036D608 0036A568 80 0D AB 0C */ lwz r0, lbl_805A96CC@sda21(r13)
/* 8036D60C 0036A56C 2C 00 00 00 */ cmpwi r0, 0
/* 8036D610 0036A570 40 82 00 34 */ bne lbl_8036D644
/* 8036D614 0036A574 80 0D AB 00 */ lwz r0, lbl_805A96C0@sda21(r13)
/* 8036D618 0036A578 38 80 00 01 */ li r4, 1
/* 8036D61C 0036A57C 90 8D AB 0C */ stw r4, lbl_805A96CC@sda21(r13)
/* 8036D620 0036A580 28 00 00 00 */ cmplwi r0, 0
/* 8036D624 0036A584 41 82 00 0C */ beq lbl_8036D630
/* 8036D628 0036A588 48 00 00 41 */ bl __AICallbackStackSwitch
/* 8036D62C 0036A58C 48 00 00 10 */ b lbl_8036D63C
lbl_8036D630:
/* 8036D630 0036A590 39 83 00 00 */ addi r12, r3, 0
/* 8036D634 0036A594 7D 88 03 A6 */ mtlr r12
/* 8036D638 0036A598 4E 80 00 21 */ blrl
lbl_8036D63C:
/* 8036D63C 0036A59C 38 00 00 00 */ li r0, 0
/* 8036D640 0036A5A0 90 0D AB 0C */ stw r0, lbl_805A96CC@sda21(r13)
lbl_8036D644:
/* 8036D644 0036A5A4 38 61 00 10 */ addi r3, r1, 0x10
/* 8036D648 0036A5A8 48 01 1F CD */ bl OSClearContext
/* 8036D64C 0036A5AC 7F E3 FB 78 */ mr r3, r31
/* 8036D650 0036A5B0 48 01 1D CD */ bl OSSetCurrentContext
/* 8036D654 0036A5B4 80 01 02 E4 */ lwz r0, 0x2e4(r1)
/* 8036D658 0036A5B8 83 E1 02 DC */ lwz r31, 0x2dc(r1)
/* 8036D65C 0036A5BC 38 21 02 E0 */ addi r1, r1, 0x2e0
/* 8036D660 0036A5C0 7C 08 03 A6 */ mtlr r0
/* 8036D664 0036A5C4 4E 80 00 20 */ blr
.global __AICallbackStackSwitch
__AICallbackStackSwitch:
/* 8036D668 0036A5C8 7C 08 02 A6 */ mflr r0
/* 8036D66C 0036A5CC 90 01 00 04 */ stw r0, 4(r1)
/* 8036D670 0036A5D0 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8036D674 0036A5D4 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8036D678 0036A5D8 7C 7F 1B 78 */ mr r31, r3
/* 8036D67C 0036A5DC 3C A0 80 5B */ lis r5, lbl_805A96C4@ha
/* 8036D680 0036A5E0 38 A5 96 C4 */ addi r5, r5, lbl_805A96C4@l
/* 8036D684 0036A5E4 90 25 00 00 */ stw r1, 0(r5)
/* 8036D688 0036A5E8 3C A0 80 5B */ lis r5, lbl_805A96C0@ha
/* 8036D68C 0036A5EC 38 A5 96 C0 */ addi r5, r5, lbl_805A96C0@l
/* 8036D690 0036A5F0 80 25 00 00 */ lwz r1, 0(r5)
/* 8036D694 0036A5F4 38 21 FF F8 */ addi r1, r1, -8
/* 8036D698 0036A5F8 7F E8 03 A6 */ mtlr r31
/* 8036D69C 0036A5FC 4E 80 00 21 */ blrl
/* 8036D6A0 0036A600 3C A0 80 5B */ lis r5, lbl_805A96C4@ha
/* 8036D6A4 0036A604 38 A5 96 C4 */ addi r5, r5, lbl_805A96C4@l
/* 8036D6A8 0036A608 80 25 00 00 */ lwz r1, 0(r5)
/* 8036D6AC 0036A60C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8036D6B0 0036A610 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8036D6B4 0036A614 38 21 00 18 */ addi r1, r1, 0x18
/* 8036D6B8 0036A618 7C 08 03 A6 */ mtlr r0
/* 8036D6BC 0036A61C 4E 80 00 20 */ blr
.global __AI_SRC_INIT
__AI_SRC_INIT:
/* 8036D6C0 0036A620 7C 08 02 A6 */ mflr r0
/* 8036D6C4 0036A624 90 01 00 04 */ stw r0, 4(r1)
/* 8036D6C8 0036A628 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8036D6CC 0036A62C BF 41 00 18 */ stmw r26, 0x18(r1)
/* 8036D6D0 0036A630 38 80 00 00 */ li r4, 0
/* 8036D6D4 0036A634 38 60 00 00 */ li r3, 0
/* 8036D6D8 0036A638 38 00 00 00 */ li r0, 0
/* 8036D6DC 0036A63C 3B 80 00 00 */ li r28, 0
/* 8036D6E0 0036A640 3B A0 00 00 */ li r29, 0
/* 8036D6E4 0036A644 48 00 00 04 */ b lbl_8036D6E8
lbl_8036D6E8:
/* 8036D6E8 0036A648 3F E0 CC 00 */ lis r31, 0xcc00
/* 8036D6EC 0036A64C 48 00 00 04 */ b lbl_8036D6F0
lbl_8036D6F0:
/* 8036D6F0 0036A650 48 00 01 64 */ b lbl_8036D854
lbl_8036D6F4:
/* 8036D6F4 0036A654 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8036D6F8 0036A658 3B DF 6C 00 */ addi r30, r31, 0x6c00
/* 8036D6FC 0036A65C 3B DE 00 08 */ addi r30, r30, 8
/* 8036D700 0036A660 54 00 06 F2 */ rlwinm r0, r0, 0, 0x1b, 0x19
/* 8036D704 0036A664 60 00 00 20 */ ori r0, r0, 0x20
/* 8036D708 0036A668 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8036D70C 0036A66C 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8036D710 0036A670 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
/* 8036D714 0036A674 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8036D718 0036A678 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8036D71C 0036A67C 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8036D720 0036A680 60 00 00 01 */ ori r0, r0, 1
/* 8036D724 0036A684 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8036D728 0036A688 80 7E 00 00 */ lwz r3, 0(r30)
/* 8036D72C 0036A68C 48 00 00 04 */ b lbl_8036D730
lbl_8036D730:
/* 8036D730 0036A690 48 00 00 04 */ b lbl_8036D734
lbl_8036D734:
/* 8036D734 0036A694 80 1E 00 00 */ lwz r0, 0(r30)
/* 8036D738 0036A698 7C 03 00 40 */ cmplw r3, r0
/* 8036D73C 0036A69C 41 82 FF F8 */ beq lbl_8036D734
/* 8036D740 0036A6A0 48 01 7C 69 */ bl OSGetTime
/* 8036D744 0036A6A4 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8036D748 0036A6A8 7C 9A 23 78 */ mr r26, r4
/* 8036D74C 0036A6AC 7C 7B 1B 78 */ mr r27, r3
/* 8036D750 0036A6B0 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
/* 8036D754 0036A6B4 60 00 00 02 */ ori r0, r0, 2
/* 8036D758 0036A6B8 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8036D75C 0036A6BC 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8036D760 0036A6C0 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8036D764 0036A6C4 60 00 00 01 */ ori r0, r0, 1
/* 8036D768 0036A6C8 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8036D76C 0036A6CC 80 7E 00 00 */ lwz r3, 0(r30)
/* 8036D770 0036A6D0 48 00 00 04 */ b lbl_8036D774
lbl_8036D774:
/* 8036D774 0036A6D4 48 00 00 04 */ b lbl_8036D778
lbl_8036D778:
/* 8036D778 0036A6D8 80 1E 00 00 */ lwz r0, 0(r30)
/* 8036D77C 0036A6DC 7C 03 00 40 */ cmplw r3, r0
/* 8036D780 0036A6E0 41 82 FF F8 */ beq lbl_8036D778
/* 8036D784 0036A6E4 48 01 7C 25 */ bl OSGetTime
/* 8036D788 0036A6E8 7D 1A 20 10 */ subfc r8, r26, r4
/* 8036D78C 0036A6EC 81 8D AB 14 */ lwz r12, lbl_805A96D4@sda21(r13)
/* 8036D790 0036A6F0 80 BF 6C 00 */ lwz r5, 0x6c00(r31)
/* 8036D794 0036A6F4 7C FB 19 10 */ subfe r7, r27, r3
/* 8036D798 0036A6F8 81 4D AB 34 */ lwz r10, lbl_805A96F4@sda21(r13)
/* 8036D79C 0036A6FC 6C E7 80 00 */ xoris r7, r7, 0x8000
/* 8036D7A0 0036A700 54 A5 07 FA */ rlwinm r5, r5, 0, 0x1f, 0x1d
/* 8036D7A4 0036A704 81 6D AB 10 */ lwz r11, lbl_805A96D0@sda21(r13)
/* 8036D7A8 0036A708 7C CA 60 10 */ subfc r6, r10, r12
/* 8036D7AC 0036A70C 81 2D AB 30 */ lwz r9, lbl_805A96F0@sda21(r13)
/* 8036D7B0 0036A710 90 BF 6C 00 */ stw r5, 0x6c00(r31)
/* 8036D7B4 0036A714 7C 09 59 10 */ subfe r0, r9, r11
/* 8036D7B8 0036A718 6C 05 80 00 */ xoris r5, r0, 0x8000
/* 8036D7BC 0036A71C 7C 06 40 10 */ subfc r0, r6, r8
/* 8036D7C0 0036A720 80 1F 6C 00 */ lwz r0, 0x6c00(r31)
/* 8036D7C4 0036A724 7C A5 39 10 */ subfe r5, r5, r7
/* 8036D7C8 0036A728 7C A7 39 10 */ subfe r5, r7, r7
/* 8036D7CC 0036A72C 7C A5 00 D0 */ neg r5, r5
/* 8036D7D0 0036A730 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8036D7D4 0036A734 2C 05 00 00 */ cmpwi r5, 0
/* 8036D7D8 0036A738 90 1F 6C 00 */ stw r0, 0x6c00(r31)
/* 8036D7DC 0036A73C 41 82 00 14 */ beq lbl_8036D7F0
/* 8036D7E0 0036A740 83 AD AB 20 */ lwz r29, lbl_805A96E0@sda21(r13)
/* 8036D7E4 0036A744 38 00 00 01 */ li r0, 1
/* 8036D7E8 0036A748 83 8D AB 24 */ lwz r28, lbl_805A96E4@sda21(r13)
/* 8036D7EC 0036A74C 48 00 00 68 */ b lbl_8036D854
lbl_8036D7F0:
/* 8036D7F0 0036A750 7C CC 50 14 */ addc r6, r12, r10
/* 8036D7F4 0036A754 7C 0B 49 14 */ adde r0, r11, r9
/* 8036D7F8 0036A758 6C 05 80 00 */ xoris r5, r0, 0x8000
/* 8036D7FC 0036A75C 7C 06 40 10 */ subfc r0, r6, r8
/* 8036D800 0036A760 7C A5 39 10 */ subfe r5, r5, r7
/* 8036D804 0036A764 7C A7 39 10 */ subfe r5, r7, r7
/* 8036D808 0036A768 7C A5 00 D0 */ neg r5, r5
/* 8036D80C 0036A76C 2C 05 00 00 */ cmpwi r5, 0
/* 8036D810 0036A770 40 82 00 40 */ bne lbl_8036D850
/* 8036D814 0036A774 80 AD AB 1C */ lwz r5, lbl_805A96DC@sda21(r13)
/* 8036D818 0036A778 80 0D AB 18 */ lwz r0, lbl_805A96D8@sda21(r13)
/* 8036D81C 0036A77C 7C CA 28 10 */ subfc r6, r10, r5
/* 8036D820 0036A780 7C 09 01 10 */ subfe r0, r9, r0
/* 8036D824 0036A784 6C 05 80 00 */ xoris r5, r0, 0x8000
/* 8036D828 0036A788 7C 06 40 10 */ subfc r0, r6, r8
/* 8036D82C 0036A78C 7C A5 39 10 */ subfe r5, r5, r7
/* 8036D830 0036A790 7C A7 39 10 */ subfe r5, r7, r7
/* 8036D834 0036A794 7C A5 00 D0 */ neg r5, r5
/* 8036D838 0036A798 2C 05 00 00 */ cmpwi r5, 0
/* 8036D83C 0036A79C 41 82 00 14 */ beq lbl_8036D850
/* 8036D840 0036A7A0 83 AD AB 28 */ lwz r29, lbl_805A96E8@sda21(r13)
/* 8036D844 0036A7A4 38 00 00 01 */ li r0, 1
/* 8036D848 0036A7A8 83 8D AB 2C */ lwz r28, lbl_805A96EC@sda21(r13)
/* 8036D84C 0036A7AC 48 00 00 08 */ b lbl_8036D854
lbl_8036D850:
/* 8036D850 0036A7B0 38 00 00 00 */ li r0, 0
lbl_8036D854:
/* 8036D854 0036A7B4 28 00 00 00 */ cmplwi r0, 0
/* 8036D858 0036A7B8 41 82 FE 9C */ beq lbl_8036D6F4
/* 8036D85C 0036A7BC 7F 64 E0 14 */ addc r27, r4, r28
/* 8036D860 0036A7C0 7F 43 E9 14 */ adde r26, r3, r29
/* 8036D864 0036A7C4 48 00 00 04 */ b lbl_8036D868
lbl_8036D868:
/* 8036D868 0036A7C8 48 00 00 04 */ b lbl_8036D86C
lbl_8036D86C:
/* 8036D86C 0036A7CC 48 01 7B 3D */ bl OSGetTime
/* 8036D870 0036A7D0 6C 65 80 00 */ xoris r5, r3, 0x8000
/* 8036D874 0036A7D4 6F 43 80 00 */ xoris r3, r26, 0x8000
/* 8036D878 0036A7D8 7C 1B 20 10 */ subfc r0, r27, r4
/* 8036D87C 0036A7DC 7C 63 29 10 */ subfe r3, r3, r5
/* 8036D880 0036A7E0 7C 65 29 10 */ subfe r3, r5, r5
/* 8036D884 0036A7E4 7C 63 00 D0 */ neg r3, r3
/* 8036D888 0036A7E8 2C 03 00 00 */ cmpwi r3, 0
/* 8036D88C 0036A7EC 40 82 FF E0 */ bne lbl_8036D86C
/* 8036D890 0036A7F0 BB 41 00 18 */ lmw r26, 0x18(r1)
/* 8036D894 0036A7F4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8036D898 0036A7F8 38 21 00 30 */ addi r1, r1, 0x30
/* 8036D89C 0036A7FC 7C 08 03 A6 */ mtlr r0
/* 8036D8A0 0036A800 4E 80 00 20 */ blr

78
asm/Dolphin/db.s Normal file
View File

@ -0,0 +1,78 @@
.include "macros.inc"
.section .text, "ax"
.global DBInit
DBInit:
/* 8036F8CC 0036C82C 3C 80 80 00 */ lis r4, 0x80000040@ha
/* 8036F8D0 0036C830 38 04 00 40 */ addi r0, r4, 0x80000040@l
/* 8036F8D4 0036C834 3C 60 80 37 */ lis r3, __DBExceptionDestination@ha
/* 8036F8D8 0036C838 90 0D AB 80 */ stw r0, lbl_805A9740@sda21(r13)
/* 8036F8DC 0036C83C 38 63 F9 3C */ addi r3, r3, __DBExceptionDestination@l
/* 8036F8E0 0036C840 3C 03 80 00 */ addis r0, r3, 0x8000
/* 8036F8E4 0036C844 90 04 00 48 */ stw r0, 0x48(r4)
/* 8036F8E8 0036C848 38 00 00 01 */ li r0, 1
/* 8036F8EC 0036C84C 90 0D AB 84 */ stw r0, lbl_805A9744@sda21(r13)
/* 8036F8F0 0036C850 4E 80 00 20 */ blr
.global __DBExceptionDestinationAux
__DBExceptionDestinationAux:
/* 8036F8F4 0036C854 7C 08 02 A6 */ mflr r0
/* 8036F8F8 0036C858 3C 60 80 3F */ lis r3, lbl_803EF9B8@ha
/* 8036F8FC 0036C85C 90 01 00 04 */ stw r0, 4(r1)
/* 8036F900 0036C860 38 63 F9 B8 */ addi r3, r3, lbl_803EF9B8@l
/* 8036F904 0036C864 4C C6 31 82 */ crclr 6
/* 8036F908 0036C868 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8036F90C 0036C86C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8036F910 0036C870 80 80 00 C0 */ lwz r4, 0xc0(0)
/* 8036F914 0036C874 3F E4 80 00 */ addis r31, r4, 0x8000
/* 8036F918 0036C878 48 01 00 95 */ bl OSReport
/* 8036F91C 0036C87C 7F E3 FB 78 */ mr r3, r31
/* 8036F920 0036C880 48 00 FD 19 */ bl OSDumpContext
/* 8036F924 0036C884 4B FF FE F1 */ bl PPCHalt
/* 8036F928 0036C888 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8036F92C 0036C88C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8036F930 0036C890 38 21 00 18 */ addi r1, r1, 0x18
/* 8036F934 0036C894 7C 08 03 A6 */ mtlr r0
/* 8036F938 0036C898 4E 80 00 20 */ blr
.global __DBExceptionDestination
__DBExceptionDestination:
/* 8036F93C 0036C89C 7C 60 00 A6 */ mfmsr r3
/* 8036F940 0036C8A0 60 63 00 30 */ ori r3, r3, 0x30
/* 8036F944 0036C8A4 7C 60 01 24 */ mtmsr r3
/* 8036F948 0036C8A8 4B FF FF AC */ b __DBExceptionDestinationAux
.global __DBIsExceptionMarked
__DBIsExceptionMarked:
/* 8036F94C 0036C8AC 80 8D AB 80 */ lwz r4, lbl_805A9740@sda21(r13)
/* 8036F950 0036C8B0 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8036F954 0036C8B4 38 60 00 01 */ li r3, 1
/* 8036F958 0036C8B8 80 84 00 04 */ lwz r4, 4(r4)
/* 8036F95C 0036C8BC 7C 60 00 30 */ slw r0, r3, r0
/* 8036F960 0036C8C0 7C 83 00 38 */ and r3, r4, r0
/* 8036F964 0036C8C4 4E 80 00 20 */ blr
.global DBPrintf
DBPrintf:
/* 8036F968 0036C8C8 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8036F96C 0036C8CC 40 86 00 24 */ bne cr1, lbl_8036F990
/* 8036F970 0036C8D0 D8 21 00 28 */ stfd f1, 0x28(r1)
/* 8036F974 0036C8D4 D8 41 00 30 */ stfd f2, 0x30(r1)
/* 8036F978 0036C8D8 D8 61 00 38 */ stfd f3, 0x38(r1)
/* 8036F97C 0036C8DC D8 81 00 40 */ stfd f4, 0x40(r1)
/* 8036F980 0036C8E0 D8 A1 00 48 */ stfd f5, 0x48(r1)
/* 8036F984 0036C8E4 D8 C1 00 50 */ stfd f6, 0x50(r1)
/* 8036F988 0036C8E8 D8 E1 00 58 */ stfd f7, 0x58(r1)
/* 8036F98C 0036C8EC D9 01 00 60 */ stfd f8, 0x60(r1)
lbl_8036F990:
/* 8036F990 0036C8F0 90 61 00 08 */ stw r3, 8(r1)
/* 8036F994 0036C8F4 90 81 00 0C */ stw r4, 0xc(r1)
/* 8036F998 0036C8F8 90 A1 00 10 */ stw r5, 0x10(r1)
/* 8036F99C 0036C8FC 90 C1 00 14 */ stw r6, 0x14(r1)
/* 8036F9A0 0036C900 90 E1 00 18 */ stw r7, 0x18(r1)
/* 8036F9A4 0036C904 91 01 00 1C */ stw r8, 0x1c(r1)
/* 8036F9A8 0036C908 91 21 00 20 */ stw r9, 0x20(r1)
/* 8036F9AC 0036C90C 91 41 00 24 */ stw r10, 0x24(r1)
/* 8036F9B0 0036C910 38 21 00 70 */ addi r1, r1, 0x70
/* 8036F9B4 0036C914 4E 80 00 20 */ blr

View File

@ -356,7 +356,7 @@ DTKInit:
/* 803B79E8 003B4948 4B FB 59 C1 */ bl AISetStreamVolRight
/* 803B79EC 003B494C 3C 60 80 3B */ lis r3, sub_803b782c@ha
/* 803B79F0 003B4950 38 63 78 2C */ addi r3, r3, sub_803b782c@l
/* 803B79F4 003B4954 4B FB 56 61 */ bl AIRegisterDMACallback
/* 803B79F4 003B4954 4B FB 56 61 */ bl AIRegisterStreamCallback
/* 803B79F8 003B4958 4B FB 56 A1 */ bl sub_8036d098
/* 803B79FC 003B495C 38 60 00 00 */ li r3, 0
/* 803B7A00 003B4960 4B FB 56 BD */ bl AISetStreamPlayState

298
asm/Dolphin/mtx/mtx.s Normal file
View File

@ -0,0 +1,298 @@
.include "macros.inc"
.section .text, "ax"
.global PSMTXIdentity
PSMTXIdentity:
/* 8037D040 00379FA0 C0 02 CE DC */ lfs f0, lbl_805AEBFC@sda21(r2)
/* 8037D044 00379FA4 C0 22 CE D8 */ lfs f1, lbl_805AEBF8@sda21(r2)
/* 8037D048 00379FA8 F0 03 00 08 */ psq_st f0, 8(r3), 0, qr0
/* 8037D04C 00379FAC 10 40 0C 60 */ ps_merge01 f2, f0, f1
/* 8037D050 00379FB0 F0 03 00 18 */ psq_st f0, 24(r3), 0, qr0
/* 8037D054 00379FB4 10 21 04 A0 */ ps_merge10 f1, f1, f0
/* 8037D058 00379FB8 F0 03 00 20 */ psq_st f0, 32(r3), 0, qr0
/* 8037D05C 00379FBC F0 43 00 10 */ psq_st f2, 16(r3), 0, qr0
/* 8037D060 00379FC0 F0 23 00 00 */ psq_st f1, 0(r3), 0, qr0
/* 8037D064 00379FC4 F0 23 00 28 */ psq_st f1, 40(r3), 0, qr0
/* 8037D068 00379FC8 4E 80 00 20 */ blr
.global PSMTXCopy
PSMTXCopy:
/* 8037D06C 00379FCC E0 03 00 00 */ psq_l f0, 0(r3), 0, qr0
/* 8037D070 00379FD0 F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0
/* 8037D074 00379FD4 E0 23 00 08 */ psq_l f1, 8(r3), 0, qr0
/* 8037D078 00379FD8 F0 24 00 08 */ psq_st f1, 8(r4), 0, qr0
/* 8037D07C 00379FDC E0 43 00 10 */ psq_l f2, 16(r3), 0, qr0
/* 8037D080 00379FE0 F0 44 00 10 */ psq_st f2, 16(r4), 0, qr0
/* 8037D084 00379FE4 E0 63 00 18 */ psq_l f3, 24(r3), 0, qr0
/* 8037D088 00379FE8 F0 64 00 18 */ psq_st f3, 24(r4), 0, qr0
/* 8037D08C 00379FEC E0 83 00 20 */ psq_l f4, 32(r3), 0, qr0
/* 8037D090 00379FF0 F0 84 00 20 */ psq_st f4, 32(r4), 0, qr0
/* 8037D094 00379FF4 E0 A3 00 28 */ psq_l f5, 40(r3), 0, qr0
/* 8037D098 00379FF8 F0 A4 00 28 */ psq_st f5, 40(r4), 0, qr0
/* 8037D09C 00379FFC 4E 80 00 20 */ blr
.global PSMTXConcat
PSMTXConcat:
/* 8037D0A0 0037A000 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8037D0A4 0037A004 E0 03 00 00 */ psq_l f0, 0(r3), 0, qr0
/* 8037D0A8 0037A008 D9 C1 00 08 */ stfd f14, 8(r1)
/* 8037D0AC 0037A00C E0 C4 00 00 */ psq_l f6, 0(r4), 0, qr0
/* 8037D0B0 0037A010 3C C0 80 5B */ lis r6, lbl_805A8B20@ha
/* 8037D0B4 0037A014 E0 E4 00 08 */ psq_l f7, 8(r4), 0, qr0
/* 8037D0B8 0037A018 D9 E1 00 10 */ stfd f15, 0x10(r1)
/* 8037D0BC 0037A01C 38 C6 8B 20 */ addi r6, r6, lbl_805A8B20@l
/* 8037D0C0 0037A020 DB E1 00 28 */ stfd f31, 0x28(r1)
/* 8037D0C4 0037A024 E1 04 00 10 */ psq_l f8, 16(r4), 0, qr0
/* 8037D0C8 0037A028 11 86 00 18 */ ps_muls0 f12, f6, f0
/* 8037D0CC 0037A02C E0 43 00 10 */ psq_l f2, 16(r3), 0, qr0
/* 8037D0D0 0037A030 11 A7 00 18 */ ps_muls0 f13, f7, f0
/* 8037D0D4 0037A034 E3 E6 00 00 */ psq_l f31, 0(r6), 0, qr0
/* 8037D0D8 0037A038 11 C6 00 98 */ ps_muls0 f14, f6, f2
/* 8037D0DC 0037A03C E1 24 00 18 */ psq_l f9, 24(r4), 0, qr0
/* 8037D0E0 0037A040 11 E7 00 98 */ ps_muls0 f15, f7, f2
/* 8037D0E4 0037A044 E0 23 00 08 */ psq_l f1, 8(r3), 0, qr0
/* 8037D0E8 0037A048 11 88 60 1E */ ps_madds1 f12, f8, f0, f12
/* 8037D0EC 0037A04C E0 63 00 18 */ psq_l f3, 24(r3), 0, qr0
/* 8037D0F0 0037A050 11 C8 70 9E */ ps_madds1 f14, f8, f2, f14
/* 8037D0F4 0037A054 E1 44 00 20 */ psq_l f10, 32(r4), 0, qr0
/* 8037D0F8 0037A058 11 A9 68 1E */ ps_madds1 f13, f9, f0, f13
/* 8037D0FC 0037A05C E1 64 00 28 */ psq_l f11, 40(r4), 0, qr0
/* 8037D100 0037A060 11 E9 78 9E */ ps_madds1 f15, f9, f2, f15
/* 8037D104 0037A064 E0 83 00 20 */ psq_l f4, 32(r3), 0, qr0
/* 8037D108 0037A068 E0 A3 00 28 */ psq_l f5, 40(r3), 0, qr0
/* 8037D10C 0037A06C 11 8A 60 5C */ ps_madds0 f12, f10, f1, f12
/* 8037D110 0037A070 11 AB 68 5C */ ps_madds0 f13, f11, f1, f13
/* 8037D114 0037A074 11 CA 70 DC */ ps_madds0 f14, f10, f3, f14
/* 8037D118 0037A078 11 EB 78 DC */ ps_madds0 f15, f11, f3, f15
/* 8037D11C 0037A07C F1 85 00 00 */ psq_st f12, 0(r5), 0, qr0
/* 8037D120 0037A080 10 46 01 18 */ ps_muls0 f2, f6, f4
/* 8037D124 0037A084 11 BF 68 5E */ ps_madds1 f13, f31, f1, f13
/* 8037D128 0037A088 10 07 01 18 */ ps_muls0 f0, f7, f4
/* 8037D12C 0037A08C F1 C5 00 10 */ psq_st f14, 16(r5), 0, qr0
/* 8037D130 0037A090 11 FF 78 DE */ ps_madds1 f15, f31, f3, f15
/* 8037D134 0037A094 F1 A5 00 08 */ psq_st f13, 8(r5), 0, qr0
/* 8037D138 0037A098 10 48 11 1E */ ps_madds1 f2, f8, f4, f2
/* 8037D13C 0037A09C 10 09 01 1E */ ps_madds1 f0, f9, f4, f0
/* 8037D140 0037A0A0 10 4A 11 5C */ ps_madds0 f2, f10, f5, f2
/* 8037D144 0037A0A4 C9 C1 00 08 */ lfd f14, 8(r1)
/* 8037D148 0037A0A8 F1 E5 00 18 */ psq_st f15, 24(r5), 0, qr0
/* 8037D14C 0037A0AC 10 0B 01 5C */ ps_madds0 f0, f11, f5, f0
/* 8037D150 0037A0B0 F0 45 00 20 */ psq_st f2, 32(r5), 0, qr0
/* 8037D154 0037A0B4 10 1F 01 5E */ ps_madds1 f0, f31, f5, f0
/* 8037D158 0037A0B8 C9 E1 00 10 */ lfd f15, 0x10(r1)
/* 8037D15C 0037A0BC F0 05 00 28 */ psq_st f0, 40(r5), 0, qr0
/* 8037D160 0037A0C0 CB E1 00 28 */ lfd f31, 0x28(r1)
/* 8037D164 0037A0C4 38 21 00 40 */ addi r1, r1, 0x40
/* 8037D168 0037A0C8 4E 80 00 20 */ blr
.global PSMTXInvXpose
PSMTXInvXpose:
/* 8037D16C 0037A0CC E0 03 80 00 */ psq_l f0, 0(r3), 1, qr0
/* 8037D170 0037A0D0 E0 23 00 04 */ psq_l f1, 4(r3), 0, qr0
/* 8037D174 0037A0D4 E0 43 80 10 */ psq_l f2, 16(r3), 1, qr0
/* 8037D178 0037A0D8 10 C1 04 A0 */ ps_merge10 f6, f1, f0
/* 8037D17C 0037A0DC E0 63 00 14 */ psq_l f3, 20(r3), 0, qr0
/* 8037D180 0037A0E0 E0 83 80 20 */ psq_l f4, 32(r3), 1, qr0
/* 8037D184 0037A0E4 10 E3 14 A0 */ ps_merge10 f7, f3, f2
/* 8037D188 0037A0E8 E0 A3 00 24 */ psq_l f5, 36(r3), 0, qr0
/* 8037D18C 0037A0EC 11 63 01 B2 */ ps_mul f11, f3, f6
/* 8037D190 0037A0F0 11 05 24 A0 */ ps_merge10 f8, f5, f4
/* 8037D194 0037A0F4 11 A5 01 F2 */ ps_mul f13, f5, f7
/* 8037D198 0037A0F8 11 61 59 F8 */ ps_msub f11, f1, f7, f11
/* 8037D19C 0037A0FC 11 81 02 32 */ ps_mul f12, f1, f8
/* 8037D1A0 0037A100 11 A3 6A 38 */ ps_msub f13, f3, f8, f13
/* 8037D1A4 0037A104 11 85 61 B8 */ ps_msub f12, f5, f6, f12
/* 8037D1A8 0037A108 11 43 01 32 */ ps_mul f10, f3, f4
/* 8037D1AC 0037A10C 11 20 01 72 */ ps_mul f9, f0, f5
/* 8037D1B0 0037A110 11 01 00 B2 */ ps_mul f8, f1, f2
/* 8037D1B4 0037A114 11 42 51 78 */ ps_msub f10, f2, f5, f10
/* 8037D1B8 0037A118 11 21 49 38 */ ps_msub f9, f1, f4, f9
/* 8037D1BC 0037A11C 11 00 40 F8 */ ps_msub f8, f0, f3, f8
/* 8037D1C0 0037A120 10 E0 03 72 */ ps_mul f7, f0, f13
/* 8037D1C4 0037A124 10 21 08 28 */ ps_sub f1, f1, f1
/* 8037D1C8 0037A128 10 E2 3B 3A */ ps_madd f7, f2, f12, f7
/* 8037D1CC 0037A12C 10 E4 3A FA */ ps_madd f7, f4, f11, f7
/* 8037D1D0 0037A130 10 07 08 40 */ ps_cmpo0 cr0, f7, f1
/* 8037D1D4 0037A134 40 82 00 0C */ bne lbl_8037D1E0
/* 8037D1D8 0037A138 38 60 00 00 */ li r3, 0
/* 8037D1DC 0037A13C 4E 80 00 20 */ blr
lbl_8037D1E0:
/* 8037D1E0 0037A140 EC 00 38 30 */ fres f0, f7
/* 8037D1E4 0037A144 F0 24 80 0C */ psq_st f1, 12(r4), 1, qr0
/* 8037D1E8 0037A148 10 C0 00 2A */ ps_add f6, f0, f0
/* 8037D1EC 0037A14C 10 A0 00 32 */ ps_mul f5, f0, f0
/* 8037D1F0 0037A150 F0 24 80 1C */ psq_st f1, 28(r4), 1, qr0
/* 8037D1F4 0037A154 10 07 31 7C */ ps_nmsub f0, f7, f5, f6
/* 8037D1F8 0037A158 F0 24 80 2C */ psq_st f1, 44(r4), 1, qr0
/* 8037D1FC 0037A15C 11 AD 00 18 */ ps_muls0 f13, f13, f0
/* 8037D200 0037A160 11 8C 00 18 */ ps_muls0 f12, f12, f0
/* 8037D204 0037A164 11 6B 00 18 */ ps_muls0 f11, f11, f0
/* 8037D208 0037A168 F1 A4 00 00 */ psq_st f13, 0(r4), 0, qr0
/* 8037D20C 0037A16C F1 84 00 10 */ psq_st f12, 16(r4), 0, qr0
/* 8037D210 0037A170 11 4A 00 18 */ ps_muls0 f10, f10, f0
/* 8037D214 0037A174 11 29 00 18 */ ps_muls0 f9, f9, f0
/* 8037D218 0037A178 F1 64 00 20 */ psq_st f11, 32(r4), 0, qr0
/* 8037D21C 0037A17C F1 44 80 08 */ psq_st f10, 8(r4), 1, qr0
/* 8037D220 0037A180 11 08 00 18 */ ps_muls0 f8, f8, f0
/* 8037D224 0037A184 38 60 00 01 */ li r3, 1
/* 8037D228 0037A188 F1 24 80 18 */ psq_st f9, 24(r4), 1, qr0
/* 8037D22C 0037A18C F1 04 80 28 */ psq_st f8, 40(r4), 1, qr0
/* 8037D230 0037A190 4E 80 00 20 */ blr
.global PSMTXTrans
PSMTXTrans:
/* 8037D234 0037A194 C0 02 CE DC */ lfs f0, lbl_805AEBFC@sda21(r2)
/* 8037D238 0037A198 C0 82 CE D8 */ lfs f4, lbl_805AEBF8@sda21(r2)
/* 8037D23C 0037A19C D0 23 00 0C */ stfs f1, 0xc(r3)
/* 8037D240 0037A1A0 D0 43 00 1C */ stfs f2, 0x1c(r3)
/* 8037D244 0037A1A4 F0 03 00 04 */ psq_st f0, 4(r3), 0, qr0
/* 8037D248 0037A1A8 F0 03 00 20 */ psq_st f0, 32(r3), 0, qr0
/* 8037D24C 0037A1AC D0 03 00 10 */ stfs f0, 0x10(r3)
/* 8037D250 0037A1B0 D0 83 00 14 */ stfs f4, 0x14(r3)
/* 8037D254 0037A1B4 D0 03 00 18 */ stfs f0, 0x18(r3)
/* 8037D258 0037A1B8 D0 83 00 28 */ stfs f4, 0x28(r3)
/* 8037D25C 0037A1BC D0 63 00 2C */ stfs f3, 0x2c(r3)
/* 8037D260 0037A1C0 D0 83 00 00 */ stfs f4, 0(r3)
/* 8037D264 0037A1C4 4E 80 00 20 */ blr
.global PSMTXScale
PSMTXScale:
/* 8037D268 0037A1C8 C0 02 CE DC */ lfs f0, lbl_805AEBFC@sda21(r2)
/* 8037D26C 0037A1CC D0 23 00 00 */ stfs f1, 0(r3)
/* 8037D270 0037A1D0 F0 03 00 04 */ psq_st f0, 4(r3), 0, qr0
/* 8037D274 0037A1D4 F0 03 00 0C */ psq_st f0, 12(r3), 0, qr0
/* 8037D278 0037A1D8 D0 43 00 14 */ stfs f2, 0x14(r3)
/* 8037D27C 0037A1DC F0 03 00 18 */ psq_st f0, 24(r3), 0, qr0
/* 8037D280 0037A1E0 F0 03 00 20 */ psq_st f0, 32(r3), 0, qr0
/* 8037D284 0037A1E4 D0 63 00 28 */ stfs f3, 0x28(r3)
/* 8037D288 0037A1E8 D0 03 00 2C */ stfs f0, 0x2c(r3)
/* 8037D28C 0037A1EC 4E 80 00 20 */ blr
.global PSMTXScaleApply
PSMTXScaleApply:
/* 8037D290 0037A1F0 FC 20 08 18 */ frsp f1, f1
/* 8037D294 0037A1F4 E0 83 00 00 */ psq_l f4, 0(r3), 0, qr0
/* 8037D298 0037A1F8 FC 40 10 18 */ frsp f2, f2
/* 8037D29C 0037A1FC E0 A3 00 08 */ psq_l f5, 8(r3), 0, qr0
/* 8037D2A0 0037A200 FC 60 18 18 */ frsp f3, f3
/* 8037D2A4 0037A204 10 84 00 58 */ ps_muls0 f4, f4, f1
/* 8037D2A8 0037A208 E0 C3 00 10 */ psq_l f6, 16(r3), 0, qr0
/* 8037D2AC 0037A20C 10 A5 00 58 */ ps_muls0 f5, f5, f1
/* 8037D2B0 0037A210 E0 E3 00 18 */ psq_l f7, 24(r3), 0, qr0
/* 8037D2B4 0037A214 10 C6 00 98 */ ps_muls0 f6, f6, f2
/* 8037D2B8 0037A218 E1 03 00 20 */ psq_l f8, 32(r3), 0, qr0
/* 8037D2BC 0037A21C F0 84 00 00 */ psq_st f4, 0(r4), 0, qr0
/* 8037D2C0 0037A220 10 E7 00 98 */ ps_muls0 f7, f7, f2
/* 8037D2C4 0037A224 E0 43 00 28 */ psq_l f2, 40(r3), 0, qr0
/* 8037D2C8 0037A228 F0 A4 00 08 */ psq_st f5, 8(r4), 0, qr0
/* 8037D2CC 0037A22C 11 08 00 D8 */ ps_muls0 f8, f8, f3
/* 8037D2D0 0037A230 F0 C4 00 10 */ psq_st f6, 16(r4), 0, qr0
/* 8037D2D4 0037A234 10 42 00 D8 */ ps_muls0 f2, f2, f3
/* 8037D2D8 0037A238 F0 E4 00 18 */ psq_st f7, 24(r4), 0, qr0
/* 8037D2DC 0037A23C F1 04 00 20 */ psq_st f8, 32(r4), 0, qr0
/* 8037D2E0 0037A240 F0 44 00 28 */ psq_st f2, 40(r4), 0, qr0
/* 8037D2E4 0037A244 4E 80 00 20 */ blr
.global C_MTXLookAt
C_MTXLookAt:
/* 8037D2E8 0037A248 7C 08 02 A6 */ mflr r0
/* 8037D2EC 0037A24C 90 01 00 04 */ stw r0, 4(r1)
/* 8037D2F0 0037A250 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8037D2F4 0037A254 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 8037D2F8 0037A258 93 C1 00 48 */ stw r30, 0x48(r1)
/* 8037D2FC 0037A25C 93 A1 00 44 */ stw r29, 0x44(r1)
/* 8037D300 0037A260 7C 7D 1B 78 */ mr r29, r3
/* 8037D304 0037A264 7C 9E 23 78 */ mr r30, r4
/* 8037D308 0037A268 7C BF 2B 78 */ mr r31, r5
/* 8037D30C 0037A26C C0 3E 00 00 */ lfs f1, 0(r30)
/* 8037D310 0037A270 38 61 00 30 */ addi r3, r1, 0x30
/* 8037D314 0037A274 C0 06 00 00 */ lfs f0, 0(r6)
/* 8037D318 0037A278 7C 64 1B 78 */ mr r4, r3
/* 8037D31C 0037A27C EC 01 00 28 */ fsubs f0, f1, f0
/* 8037D320 0037A280 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8037D324 0037A284 C0 3E 00 04 */ lfs f1, 4(r30)
/* 8037D328 0037A288 C0 06 00 04 */ lfs f0, 4(r6)
/* 8037D32C 0037A28C EC 01 00 28 */ fsubs f0, f1, f0
/* 8037D330 0037A290 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 8037D334 0037A294 C0 3E 00 08 */ lfs f1, 8(r30)
/* 8037D338 0037A298 C0 06 00 08 */ lfs f0, 8(r6)
/* 8037D33C 0037A29C EC 01 00 28 */ fsubs f0, f1, f0
/* 8037D340 0037A2A0 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 8037D344 0037A2A4 48 00 03 0D */ bl C_VECNormalize
/* 8037D348 0037A2A8 7F E3 FB 78 */ mr r3, r31
/* 8037D34C 0037A2AC 38 81 00 30 */ addi r4, r1, 0x30
/* 8037D350 0037A2B0 38 A1 00 24 */ addi r5, r1, 0x24
/* 8037D354 0037A2B4 48 00 03 41 */ bl C_VECCrossProduct
/* 8037D358 0037A2B8 38 61 00 24 */ addi r3, r1, 0x24
/* 8037D35C 0037A2BC 7C 64 1B 78 */ mr r4, r3
/* 8037D360 0037A2C0 48 00 02 F1 */ bl C_VECNormalize
/* 8037D364 0037A2C4 38 61 00 30 */ addi r3, r1, 0x30
/* 8037D368 0037A2C8 38 81 00 24 */ addi r4, r1, 0x24
/* 8037D36C 0037A2CC 38 A1 00 18 */ addi r5, r1, 0x18
/* 8037D370 0037A2D0 48 00 03 25 */ bl C_VECCrossProduct
/* 8037D374 0037A2D4 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8037D378 0037A2D8 D0 1D 00 00 */ stfs f0, 0(r29)
/* 8037D37C 0037A2DC C0 01 00 28 */ lfs f0, 0x28(r1)
/* 8037D380 0037A2E0 D0 1D 00 04 */ stfs f0, 4(r29)
/* 8037D384 0037A2E4 C0 01 00 2C */ lfs f0, 0x2c(r1)
/* 8037D388 0037A2E8 D0 1D 00 08 */ stfs f0, 8(r29)
/* 8037D38C 0037A2EC C0 7E 00 00 */ lfs f3, 0(r30)
/* 8037D390 0037A2F0 C0 41 00 24 */ lfs f2, 0x24(r1)
/* 8037D394 0037A2F4 C0 3E 00 04 */ lfs f1, 4(r30)
/* 8037D398 0037A2F8 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 8037D39C 0037A2FC EC 43 00 B2 */ fmuls f2, f3, f2
/* 8037D3A0 0037A300 C0 7E 00 08 */ lfs f3, 8(r30)
/* 8037D3A4 0037A304 EC 01 00 32 */ fmuls f0, f1, f0
/* 8037D3A8 0037A308 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8037D3AC 0037A30C EC 23 00 72 */ fmuls f1, f3, f1
/* 8037D3B0 0037A310 EC 02 00 2A */ fadds f0, f2, f0
/* 8037D3B4 0037A314 EC 01 00 2A */ fadds f0, f1, f0
/* 8037D3B8 0037A318 FC 00 00 50 */ fneg f0, f0
/* 8037D3BC 0037A31C D0 1D 00 0C */ stfs f0, 0xc(r29)
/* 8037D3C0 0037A320 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8037D3C4 0037A324 D0 1D 00 10 */ stfs f0, 0x10(r29)
/* 8037D3C8 0037A328 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 8037D3CC 0037A32C D0 1D 00 14 */ stfs f0, 0x14(r29)
/* 8037D3D0 0037A330 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 8037D3D4 0037A334 D0 1D 00 18 */ stfs f0, 0x18(r29)
/* 8037D3D8 0037A338 C0 7E 00 00 */ lfs f3, 0(r30)
/* 8037D3DC 0037A33C C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8037D3E0 0037A340 C0 3E 00 04 */ lfs f1, 4(r30)
/* 8037D3E4 0037A344 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 8037D3E8 0037A348 EC 43 00 B2 */ fmuls f2, f3, f2
/* 8037D3EC 0037A34C C0 7E 00 08 */ lfs f3, 8(r30)
/* 8037D3F0 0037A350 EC 01 00 32 */ fmuls f0, f1, f0
/* 8037D3F4 0037A354 C0 21 00 20 */ lfs f1, 0x20(r1)
/* 8037D3F8 0037A358 EC 23 00 72 */ fmuls f1, f3, f1
/* 8037D3FC 0037A35C EC 02 00 2A */ fadds f0, f2, f0
/* 8037D400 0037A360 EC 01 00 2A */ fadds f0, f1, f0
/* 8037D404 0037A364 FC 00 00 50 */ fneg f0, f0
/* 8037D408 0037A368 D0 1D 00 1C */ stfs f0, 0x1c(r29)
/* 8037D40C 0037A36C C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8037D410 0037A370 D0 1D 00 20 */ stfs f0, 0x20(r29)
/* 8037D414 0037A374 C0 01 00 34 */ lfs f0, 0x34(r1)
/* 8037D418 0037A378 D0 1D 00 24 */ stfs f0, 0x24(r29)
/* 8037D41C 0037A37C C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8037D420 0037A380 D0 1D 00 28 */ stfs f0, 0x28(r29)
/* 8037D424 0037A384 C0 7E 00 00 */ lfs f3, 0(r30)
/* 8037D428 0037A388 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8037D42C 0037A38C C0 3E 00 04 */ lfs f1, 4(r30)
/* 8037D430 0037A390 C0 01 00 34 */ lfs f0, 0x34(r1)
/* 8037D434 0037A394 EC 43 00 B2 */ fmuls f2, f3, f2
/* 8037D438 0037A398 C0 7E 00 08 */ lfs f3, 8(r30)
/* 8037D43C 0037A39C EC 01 00 32 */ fmuls f0, f1, f0
/* 8037D440 0037A3A0 C0 21 00 38 */ lfs f1, 0x38(r1)
/* 8037D444 0037A3A4 EC 23 00 72 */ fmuls f1, f3, f1
/* 8037D448 0037A3A8 EC 02 00 2A */ fadds f0, f2, f0
/* 8037D44C 0037A3AC EC 01 00 2A */ fadds f0, f1, f0
/* 8037D450 0037A3B0 FC 00 00 50 */ fneg f0, f0
/* 8037D454 0037A3B4 D0 1D 00 2C */ stfs f0, 0x2c(r29)
/* 8037D458 0037A3B8 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8037D45C 0037A3BC 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 8037D460 0037A3C0 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 8037D464 0037A3C4 83 A1 00 44 */ lwz r29, 0x44(r1)
/* 8037D468 0037A3C8 38 21 00 50 */ addi r1, r1, 0x50
/* 8037D46C 0037A3CC 7C 08 03 A6 */ mtlr r0
/* 8037D470 0037A3D0 4E 80 00 20 */ blr

86
asm/Dolphin/mtx/mtx44.s Normal file
View File

@ -0,0 +1,86 @@
.include "macros.inc"
.section .text, "ax"
.global C_MTXFrustum
C_MTXFrustum:
/* 8037D51C 0037A47C ED 24 18 28 */ fsubs f9, f4, f3
/* 8037D520 0037A480 C1 42 CE E0 */ lfs f10, lbl_805AEC00@sda21(r2)
/* 8037D524 0037A484 EC 01 10 28 */ fsubs f0, f1, f2
/* 8037D528 0037A488 C1 02 CE E4 */ lfs f8, lbl_805AEC04@sda21(r2)
/* 8037D52C 0037A48C EC E6 28 28 */ fsubs f7, f6, f5
/* 8037D530 0037A490 ED 6A 48 24 */ fdivs f11, f10, f9
/* 8037D534 0037A494 ED 08 01 72 */ fmuls f8, f8, f5
/* 8037D538 0037A498 ED 2A 00 24 */ fdivs f9, f10, f0
/* 8037D53C 0037A49C EC 08 02 F2 */ fmuls f0, f8, f11
/* 8037D540 0037A4A0 EC 64 18 2A */ fadds f3, f4, f3
/* 8037D544 0037A4A4 EC 41 10 2A */ fadds f2, f1, f2
/* 8037D548 0037A4A8 D0 03 00 00 */ stfs f0, 0(r3)
/* 8037D54C 0037A4AC EC 06 01 72 */ fmuls f0, f6, f5
/* 8037D550 0037A4B0 EC CA 38 24 */ fdivs f6, f10, f7
/* 8037D554 0037A4B4 C0 82 CE E8 */ lfs f4, lbl_805AEC08@sda21(r2)
/* 8037D558 0037A4B8 D0 83 00 04 */ stfs f4, 4(r3)
/* 8037D55C 0037A4BC EC 6B 00 F2 */ fmuls f3, f11, f3
/* 8037D560 0037A4C0 FC 20 28 50 */ fneg f1, f5
/* 8037D564 0037A4C4 FC 00 00 50 */ fneg f0, f0
/* 8037D568 0037A4C8 D0 63 00 08 */ stfs f3, 8(r3)
/* 8037D56C 0037A4CC EC 68 02 72 */ fmuls f3, f8, f9
/* 8037D570 0037A4D0 EC 49 00 B2 */ fmuls f2, f9, f2
/* 8037D574 0037A4D4 D0 83 00 0C */ stfs f4, 0xc(r3)
/* 8037D578 0037A4D8 EC 21 01 B2 */ fmuls f1, f1, f6
/* 8037D57C 0037A4DC D0 83 00 10 */ stfs f4, 0x10(r3)
/* 8037D580 0037A4E0 EC 06 00 32 */ fmuls f0, f6, f0
/* 8037D584 0037A4E4 D0 63 00 14 */ stfs f3, 0x14(r3)
/* 8037D588 0037A4E8 D0 43 00 18 */ stfs f2, 0x18(r3)
/* 8037D58C 0037A4EC D0 83 00 1C */ stfs f4, 0x1c(r3)
/* 8037D590 0037A4F0 D0 83 00 20 */ stfs f4, 0x20(r3)
/* 8037D594 0037A4F4 D0 83 00 24 */ stfs f4, 0x24(r3)
/* 8037D598 0037A4F8 D0 23 00 28 */ stfs f1, 0x28(r3)
/* 8037D59C 0037A4FC D0 03 00 2C */ stfs f0, 0x2c(r3)
/* 8037D5A0 0037A500 D0 83 00 30 */ stfs f4, 0x30(r3)
/* 8037D5A4 0037A504 D0 83 00 34 */ stfs f4, 0x34(r3)
/* 8037D5A8 0037A508 C0 02 CE EC */ lfs f0, lbl_805AEC0C@sda21(r2)
/* 8037D5AC 0037A50C D0 03 00 38 */ stfs f0, 0x38(r3)
/* 8037D5B0 0037A510 D0 83 00 3C */ stfs f4, 0x3c(r3)
/* 8037D5B4 0037A514 4E 80 00 20 */ blr
.global C_MTXOrtho
C_MTXOrtho:
/* 8037D5B8 0037A518 ED 04 18 28 */ fsubs f8, f4, f3
/* 8037D5BC 0037A51C C1 22 CE E0 */ lfs f9, lbl_805AEC00@sda21(r2)
/* 8037D5C0 0037A520 EC 01 10 28 */ fsubs f0, f1, f2
/* 8037D5C4 0037A524 C0 E2 CE E4 */ lfs f7, lbl_805AEC04@sda21(r2)
/* 8037D5C8 0037A528 EC 64 18 2A */ fadds f3, f4, f3
/* 8037D5CC 0037A52C ED 49 40 24 */ fdivs f10, f9, f8
/* 8037D5D0 0037A530 ED 09 00 24 */ fdivs f8, f9, f0
/* 8037D5D4 0037A534 EC 87 02 B2 */ fmuls f4, f7, f10
/* 8037D5D8 0037A538 FC 60 18 50 */ fneg f3, f3
/* 8037D5DC 0037A53C EC 06 28 28 */ fsubs f0, f6, f5
/* 8037D5E0 0037A540 D0 83 00 00 */ stfs f4, 0(r3)
/* 8037D5E4 0037A544 EC 21 10 2A */ fadds f1, f1, f2
/* 8037D5E8 0037A548 EC 4A 00 F2 */ fmuls f2, f10, f3
/* 8037D5EC 0037A54C C0 62 CE E8 */ lfs f3, lbl_805AEC08@sda21(r2)
/* 8037D5F0 0037A550 FC 20 08 50 */ fneg f1, f1
/* 8037D5F4 0037A554 D0 63 00 04 */ stfs f3, 4(r3)
/* 8037D5F8 0037A558 EC 89 00 24 */ fdivs f4, f9, f0
/* 8037D5FC 0037A55C D0 63 00 08 */ stfs f3, 8(r3)
/* 8037D600 0037A560 D0 43 00 0C */ stfs f2, 0xc(r3)
/* 8037D604 0037A564 D0 63 00 10 */ stfs f3, 0x10(r3)
/* 8037D608 0037A568 EC 47 02 32 */ fmuls f2, f7, f8
/* 8037D60C 0037A56C FC 00 30 50 */ fneg f0, f6
/* 8037D610 0037A570 EC 28 00 72 */ fmuls f1, f8, f1
/* 8037D614 0037A574 D0 43 00 14 */ stfs f2, 0x14(r3)
/* 8037D618 0037A578 EC 00 01 32 */ fmuls f0, f0, f4
/* 8037D61C 0037A57C D0 63 00 18 */ stfs f3, 0x18(r3)
/* 8037D620 0037A580 D0 23 00 1C */ stfs f1, 0x1c(r3)
/* 8037D624 0037A584 D0 63 00 20 */ stfs f3, 0x20(r3)
/* 8037D628 0037A588 D0 63 00 24 */ stfs f3, 0x24(r3)
/* 8037D62C 0037A58C C0 22 CE EC */ lfs f1, lbl_805AEC0C@sda21(r2)
/* 8037D630 0037A590 EC 21 01 32 */ fmuls f1, f1, f4
/* 8037D634 0037A594 D0 23 00 28 */ stfs f1, 0x28(r3)
/* 8037D638 0037A598 D0 03 00 2C */ stfs f0, 0x2c(r3)
/* 8037D63C 0037A59C D0 63 00 30 */ stfs f3, 0x30(r3)
/* 8037D640 0037A5A0 D0 63 00 34 */ stfs f3, 0x34(r3)
/* 8037D644 0037A5A4 D0 63 00 38 */ stfs f3, 0x38(r3)
/* 8037D648 0037A5A8 D1 23 00 3C */ stfs f9, 0x3c(r3)
/* 8037D64C 0037A5AC 4E 80 00 20 */ blr

View File

@ -0,0 +1,51 @@
.include "macros.inc"
.section .text, "ax"
.global PSMTXMultVec
PSMTXMultVec:
/* 8037D474 0037A3D4 E0 04 00 00 */ psq_l f0, 0(r4), 0, qr0
/* 8037D478 0037A3D8 E0 43 00 00 */ psq_l f2, 0(r3), 0, qr0
/* 8037D47C 0037A3DC E0 24 80 08 */ psq_l f1, 8(r4), 1, qr0
/* 8037D480 0037A3E0 10 82 00 32 */ ps_mul f4, f2, f0
/* 8037D484 0037A3E4 E0 63 00 08 */ psq_l f3, 8(r3), 0, qr0
/* 8037D488 0037A3E8 10 A3 20 7A */ ps_madd f5, f3, f1, f4
/* 8037D48C 0037A3EC E1 03 00 10 */ psq_l f8, 16(r3), 0, qr0
/* 8037D490 0037A3F0 10 C5 29 94 */ ps_sum0 f6, f5, f6, f5
/* 8037D494 0037A3F4 E1 23 00 18 */ psq_l f9, 24(r3), 0, qr0
/* 8037D498 0037A3F8 11 48 00 32 */ ps_mul f10, f8, f0
/* 8037D49C 0037A3FC F0 C5 80 00 */ psq_st f6, 0(r5), 1, qr0
/* 8037D4A0 0037A400 11 69 50 7A */ ps_madd f11, f9, f1, f10
/* 8037D4A4 0037A404 E0 43 00 20 */ psq_l f2, 32(r3), 0, qr0
/* 8037D4A8 0037A408 11 8B 5B 14 */ ps_sum0 f12, f11, f12, f11
/* 8037D4AC 0037A40C E0 63 00 28 */ psq_l f3, 40(r3), 0, qr0
/* 8037D4B0 0037A410 10 82 00 32 */ ps_mul f4, f2, f0
/* 8037D4B4 0037A414 F1 85 80 04 */ psq_st f12, 4(r5), 1, qr0
/* 8037D4B8 0037A418 10 A3 20 7A */ ps_madd f5, f3, f1, f4
/* 8037D4BC 0037A41C 10 C5 29 94 */ ps_sum0 f6, f5, f6, f5
/* 8037D4C0 0037A420 F0 C5 80 08 */ psq_st f6, 8(r5), 1, qr0
/* 8037D4C4 0037A424 4E 80 00 20 */ blr
.global PSMTXMultVecSR
PSMTXMultVecSR:
/* 8037D4C8 0037A428 E0 03 00 00 */ psq_l f0, 0(r3), 0, qr0
/* 8037D4CC 0037A42C E0 C4 00 00 */ psq_l f6, 0(r4), 0, qr0
/* 8037D4D0 0037A430 E0 43 00 10 */ psq_l f2, 16(r3), 0, qr0
/* 8037D4D4 0037A434 11 00 01 B2 */ ps_mul f8, f0, f6
/* 8037D4D8 0037A438 E0 83 00 20 */ psq_l f4, 32(r3), 0, qr0
/* 8037D4DC 0037A43C 11 42 01 B2 */ ps_mul f10, f2, f6
/* 8037D4E0 0037A440 E0 E4 80 08 */ psq_l f7, 8(r4), 1, qr0
/* 8037D4E4 0037A444 11 84 01 B2 */ ps_mul f12, f4, f6
/* 8037D4E8 0037A448 E0 63 00 18 */ psq_l f3, 24(r3), 0, qr0
/* 8037D4EC 0037A44C 11 08 42 14 */ ps_sum0 f8, f8, f8, f8
/* 8037D4F0 0037A450 E0 A3 00 28 */ psq_l f5, 40(r3), 0, qr0
/* 8037D4F4 0037A454 11 4A 52 94 */ ps_sum0 f10, f10, f10, f10
/* 8037D4F8 0037A458 E0 23 00 08 */ psq_l f1, 8(r3), 0, qr0
/* 8037D4FC 0037A45C 11 8C 63 14 */ ps_sum0 f12, f12, f12, f12
/* 8037D500 0037A460 11 21 41 FA */ ps_madd f9, f1, f7, f8
/* 8037D504 0037A464 F1 25 80 00 */ psq_st f9, 0(r5), 1, qr0
/* 8037D508 0037A468 11 63 51 FA */ ps_madd f11, f3, f7, f10
/* 8037D50C 0037A46C F1 65 80 04 */ psq_st f11, 4(r5), 1, qr0
/* 8037D510 0037A470 11 A5 61 FA */ ps_madd f13, f5, f7, f12
/* 8037D514 0037A474 F1 A5 80 08 */ psq_st f13, 8(r5), 1, qr0
/* 8037D518 0037A478 4E 80 00 20 */ blr

25
asm/Dolphin/mtx/psmtx.s Normal file
View File

@ -0,0 +1,25 @@
.include "macros.inc"
.section .text, "ax"
.global PSMTXReorder
PSMTXReorder:
/* 8037D6D0 0037A630 E0 03 00 00 */ psq_l f0, 0(r3), 0, qr0
/* 8037D6D4 0037A634 E0 43 00 10 */ psq_l f2, 16(r3), 0, qr0
/* 8037D6D8 0037A638 E0 83 00 20 */ psq_l f4, 32(r3), 0, qr0
/* 8037D6DC 0037A63C E0 23 00 08 */ psq_l f1, 8(r3), 0, qr0
/* 8037D6E0 0037A640 10 C0 14 20 */ ps_merge00 f6, f0, f2
/* 8037D6E4 0037A644 E0 63 00 18 */ psq_l f3, 24(r3), 0, qr0
/* 8037D6E8 0037A648 11 84 04 60 */ ps_merge01 f12, f4, f0
/* 8037D6EC 0037A64C E0 A3 00 28 */ psq_l f5, 40(r3), 0, qr0
/* 8037D6F0 0037A650 10 E2 24 E0 */ ps_merge11 f7, f2, f4
/* 8037D6F4 0037A654 F0 C4 00 00 */ psq_st f6, 0(r4), 0, qr0
/* 8037D6F8 0037A658 11 01 1C 20 */ ps_merge00 f8, f1, f3
/* 8037D6FC 0037A65C F1 84 00 08 */ psq_st f12, 8(r4), 0, qr0
/* 8037D700 0037A660 11 25 0C 60 */ ps_merge01 f9, f5, f1
/* 8037D704 0037A664 F0 E4 00 10 */ psq_st f7, 16(r4), 0, qr0
/* 8037D708 0037A668 11 43 2C E0 */ ps_merge11 f10, f3, f5
/* 8037D70C 0037A66C F1 04 00 18 */ psq_st f8, 24(r4), 0, qr0
/* 8037D710 0037A670 F1 24 00 20 */ psq_st f9, 32(r4), 0, qr0
/* 8037D714 0037A674 F1 44 00 28 */ psq_st f10, 40(r4), 0, qr0
/* 8037D718 0037A678 4E 80 00 20 */ blr

42
asm/Dolphin/mtx/vec.s Normal file
View File

@ -0,0 +1,42 @@
.include "macros.inc"
.section .text, "ax"
.global C_VECNormalize
C_VECNormalize:
/* 8037D650 0037A5B0 C0 02 CE F0 */ lfs f0, lbl_805AEC10@sda21(r2)
/* 8037D654 0037A5B4 C0 22 CE F4 */ lfs f1, lbl_805AEC14@sda21(r2)
/* 8037D658 0037A5B8 E0 43 00 00 */ psq_l f2, 0(r3), 0, qr0
/* 8037D65C 0037A5BC 10 A2 00 B2 */ ps_mul f5, f2, f2
/* 8037D660 0037A5C0 E0 63 80 08 */ psq_l f3, 8(r3), 1, qr0
/* 8037D664 0037A5C4 10 83 28 FA */ ps_madd f4, f3, f3, f5
/* 8037D668 0037A5C8 10 84 28 D4 */ ps_sum0 f4, f4, f3, f5
/* 8037D66C 0037A5CC FC A0 20 34 */ frsqrte f5, f4
/* 8037D670 0037A5D0 EC C5 01 72 */ fmuls f6, f5, f5
/* 8037D674 0037A5D4 EC 05 00 32 */ fmuls f0, f5, f0
/* 8037D678 0037A5D8 EC C6 09 3C */ fnmsubs f6, f6, f4, f1
/* 8037D67C 0037A5DC EC A6 00 32 */ fmuls f5, f6, f0
/* 8037D680 0037A5E0 10 42 01 58 */ ps_muls0 f2, f2, f5
/* 8037D684 0037A5E4 F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0
/* 8037D688 0037A5E8 10 63 01 58 */ ps_muls0 f3, f3, f5
/* 8037D68C 0037A5EC F0 64 80 08 */ psq_st f3, 8(r4), 1, qr0
/* 8037D690 0037A5F0 4E 80 00 20 */ blr
.global C_VECCrossProduct
C_VECCrossProduct:
/* 8037D694 0037A5F4 E0 24 00 00 */ psq_l f1, 0(r4), 0, qr0
/* 8037D698 0037A5F8 C0 43 00 08 */ lfs f2, 8(r3)
/* 8037D69C 0037A5FC E0 03 00 00 */ psq_l f0, 0(r3), 0, qr0
/* 8037D6A0 0037A600 10 C1 0C A0 */ ps_merge10 f6, f1, f1
/* 8037D6A4 0037A604 C0 64 00 08 */ lfs f3, 8(r4)
/* 8037D6A8 0037A608 10 81 00 B2 */ ps_mul f4, f1, f2
/* 8037D6AC 0037A60C 10 E1 00 18 */ ps_muls0 f7, f1, f0
/* 8037D6B0 0037A610 10 A0 20 F8 */ ps_msub f5, f0, f3, f4
/* 8037D6B4 0037A614 11 00 39 B8 */ ps_msub f8, f0, f6, f7
/* 8037D6B8 0037A618 11 25 2C E0 */ ps_merge11 f9, f5, f5
/* 8037D6BC 0037A61C 11 45 44 60 */ ps_merge01 f10, f5, f8
/* 8037D6C0 0037A620 F1 25 80 00 */ psq_st f9, 0(r5), 1, qr0
/* 8037D6C4 0037A624 11 40 50 50 */ ps_neg f10, f10
/* 8037D6C8 0037A628 F1 45 00 04 */ psq_st f10, 4(r5), 0, qr0
/* 8037D6CC 0037A62C 4E 80 00 20 */ blr

2201
asm/Dolphin/vi.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -964,8 +964,8 @@ lbl_805A9D78:
.section .text, "ax"
.global nullsub_1
nullsub_1:
.global EnableMetroTRKInterrupts
EnableMetroTRKInterrupts:
/* 80003640 000005A0 4E 80 00 20 */ blr
.global InitMetroTRK
@ -6637,7 +6637,7 @@ main:
/* 8000851C 0000547C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80008520 00005480 7C 7D 1B 78 */ mr r29, r3
/* 80008524 00005484 38 60 00 01 */ li r3, 1
/* 80008528 00005488 48 36 C8 A5 */ bl sub_80374dcc
/* 80008528 00005488 48 36 C8 A5 */ bl DVDSetAutoFatalMessaging
/* 8000852C 0000548C 48 2C E3 D1 */ bl SetErrorHandlers
/* 80008530 00005490 3C 60 80 45 */ lis r3, 0x8045
/* 80008534 00005494 37 E3 75 60 */ addic. r31, r3, 0x7560

View File

@ -0,0 +1,19 @@
.include "macros.inc"
.section .text, "ax"
.global __copy
__copy:
/* 803896A4 00386604 28 03 00 00 */ cmplwi r3, 0
/* 803896A8 00386608 4D 82 00 20 */ beqlr
/* 803896AC 0038660C 28 05 00 00 */ cmplwi r5, 0
/* 803896B0 00386610 4D 82 00 20 */ beqlr
/* 803896B4 00386614 7C 66 1B 78 */ mr r6, r3
lbl_803896B8:
/* 803896B8 00386618 88 04 00 00 */ lbz r0, 0(r4)
/* 803896BC 0038661C 34 A5 FF FF */ addic. r5, r5, -1
/* 803896C0 00386620 38 84 00 01 */ addi r4, r4, 1
/* 803896C4 00386624 98 06 00 00 */ stb r0, 0(r6)
/* 803896C8 00386628 38 C6 00 01 */ addi r6, r6, 1
/* 803896CC 0038662C 40 82 FF EC */ bne lbl_803896B8
/* 803896D0 00386630 4E 80 00 20 */ blr

View File

@ -0,0 +1,212 @@
.include "macros.inc"
.section .text, "ax"
.global fseek
fseek:
/* 8038D46C 0038A3CC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8038D470 0038A3D0 7C 08 02 A6 */ mflr r0
/* 8038D474 0038A3D4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8038D478 0038A3D8 48 00 00 15 */ bl _fseek
/* 8038D47C 0038A3DC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8038D480 0038A3E0 7C 08 03 A6 */ mtlr r0
/* 8038D484 0038A3E4 38 21 00 10 */ addi r1, r1, 0x10
/* 8038D488 0038A3E8 4E 80 00 20 */ blr
.global _fseek
_fseek:
/* 8038D48C 0038A3EC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8038D490 0038A3F0 7C 08 02 A6 */ mflr r0
/* 8038D494 0038A3F4 90 01 00 24 */ stw r0, 0x24(r1)
/* 8038D498 0038A3F8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8038D49C 0038A3FC 7C BF 2B 78 */ mr r31, r5
/* 8038D4A0 0038A400 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8038D4A4 0038A404 7C 7E 1B 78 */ mr r30, r3
/* 8038D4A8 0038A408 90 81 00 08 */ stw r4, 8(r1)
/* 8038D4AC 0038A40C A0 03 00 04 */ lhz r0, 4(r3)
/* 8038D4B0 0038A410 54 00 D7 7E */ rlwinm r0, r0, 0x1a, 0x1d, 0x1f
/* 8038D4B4 0038A414 28 00 00 01 */ cmplwi r0, 1
/* 8038D4B8 0038A418 40 82 00 10 */ bne lbl_8038D4C8
/* 8038D4BC 0038A41C 88 1E 00 0A */ lbz r0, 0xa(r30)
/* 8038D4C0 0038A420 28 00 00 00 */ cmplwi r0, 0
/* 8038D4C4 0038A424 41 82 00 14 */ beq lbl_8038D4D8
lbl_8038D4C8:
/* 8038D4C8 0038A428 38 00 00 28 */ li r0, 0x28
/* 8038D4CC 0038A42C 38 60 FF FF */ li r3, -1
/* 8038D4D0 0038A430 90 0D AE 10 */ stw r0, lbl_805A99D0@sda21(r13)
/* 8038D4D4 0038A434 48 00 01 DC */ b lbl_8038D6B0
lbl_8038D4D8:
/* 8038D4D8 0038A438 88 1E 00 08 */ lbz r0, 8(r30)
/* 8038D4DC 0038A43C 54 00 DF 7E */ rlwinm r0, r0, 0x1b, 0x1d, 0x1f
/* 8038D4E0 0038A440 28 00 00 01 */ cmplwi r0, 1
/* 8038D4E4 0038A444 40 82 00 34 */ bne lbl_8038D518
/* 8038D4E8 0038A448 38 80 00 00 */ li r4, 0
/* 8038D4EC 0038A44C 4B FF F9 41 */ bl __flush_buffer
/* 8038D4F0 0038A450 2C 03 00 00 */ cmpwi r3, 0
/* 8038D4F4 0038A454 41 82 00 24 */ beq lbl_8038D518
/* 8038D4F8 0038A458 38 00 00 01 */ li r0, 1
/* 8038D4FC 0038A45C 38 80 00 00 */ li r4, 0
/* 8038D500 0038A460 98 1E 00 0A */ stb r0, 0xa(r30)
/* 8038D504 0038A464 38 00 00 28 */ li r0, 0x28
/* 8038D508 0038A468 38 60 FF FF */ li r3, -1
/* 8038D50C 0038A46C 90 9E 00 28 */ stw r4, 0x28(r30)
/* 8038D510 0038A470 90 0D AE 10 */ stw r0, lbl_805A99D0@sda21(r13)
/* 8038D514 0038A474 48 00 01 9C */ b lbl_8038D6B0
lbl_8038D518:
/* 8038D518 0038A478 2C 1F 00 01 */ cmpwi r31, 1
/* 8038D51C 0038A47C 40 82 00 80 */ bne lbl_8038D59C
/* 8038D520 0038A480 A0 1E 00 04 */ lhz r0, 4(r30)
/* 8038D524 0038A484 3B E0 00 00 */ li r31, 0
/* 8038D528 0038A488 54 00 D7 7E */ rlwinm r0, r0, 0x1a, 0x1d, 0x1f
/* 8038D52C 0038A48C 28 00 00 01 */ cmplwi r0, 1
/* 8038D530 0038A490 41 82 00 0C */ beq lbl_8038D53C
/* 8038D534 0038A494 28 00 00 02 */ cmplwi r0, 2
/* 8038D538 0038A498 40 82 00 10 */ bne lbl_8038D548
lbl_8038D53C:
/* 8038D53C 0038A49C 88 1E 00 0A */ lbz r0, 0xa(r30)
/* 8038D540 0038A4A0 28 00 00 00 */ cmplwi r0, 0
/* 8038D544 0038A4A4 41 82 00 14 */ beq lbl_8038D558
lbl_8038D548:
/* 8038D548 0038A4A8 38 00 00 28 */ li r0, 0x28
/* 8038D54C 0038A4AC 38 60 FF FF */ li r3, -1
/* 8038D550 0038A4B0 90 0D AE 10 */ stw r0, lbl_805A99D0@sda21(r13)
/* 8038D554 0038A4B4 48 00 00 3C */ b lbl_8038D590
lbl_8038D558:
/* 8038D558 0038A4B8 88 1E 00 08 */ lbz r0, 8(r30)
/* 8038D55C 0038A4BC 54 05 DF 7F */ rlwinm. r5, r0, 0x1b, 0x1d, 0x1f
/* 8038D560 0038A4C0 40 82 00 0C */ bne lbl_8038D56C
/* 8038D564 0038A4C4 80 7E 00 18 */ lwz r3, 0x18(r30)
/* 8038D568 0038A4C8 48 00 00 28 */ b lbl_8038D590
lbl_8038D56C:
/* 8038D56C 0038A4CC 80 7E 00 1C */ lwz r3, 0x1c(r30)
/* 8038D570 0038A4D0 28 05 00 03 */ cmplwi r5, 3
/* 8038D574 0038A4D4 80 1E 00 24 */ lwz r0, 0x24(r30)
/* 8038D578 0038A4D8 80 9E 00 34 */ lwz r4, 0x34(r30)
/* 8038D57C 0038A4DC 7C 03 00 50 */ subf r0, r3, r0
/* 8038D580 0038A4E0 7C 64 02 14 */ add r3, r4, r0
/* 8038D584 0038A4E4 41 80 00 0C */ blt lbl_8038D590
/* 8038D588 0038A4E8 38 05 FF FE */ addi r0, r5, -2
/* 8038D58C 0038A4EC 7C 60 18 50 */ subf r3, r0, r3
lbl_8038D590:
/* 8038D590 0038A4F0 80 01 00 08 */ lwz r0, 8(r1)
/* 8038D594 0038A4F4 7C 00 1A 14 */ add r0, r0, r3
/* 8038D598 0038A4F8 90 01 00 08 */ stw r0, 8(r1)
lbl_8038D59C:
/* 8038D59C 0038A4FC 2C 1F 00 02 */ cmpwi r31, 2
/* 8038D5A0 0038A500 41 82 00 90 */ beq lbl_8038D630
/* 8038D5A4 0038A504 88 1E 00 04 */ lbz r0, 4(r30)
/* 8038D5A8 0038A508 54 00 EF 7E */ rlwinm r0, r0, 0x1d, 0x1d, 0x1f
/* 8038D5AC 0038A50C 28 00 00 03 */ cmplwi r0, 3
/* 8038D5B0 0038A510 41 82 00 80 */ beq lbl_8038D630
/* 8038D5B4 0038A514 88 1E 00 08 */ lbz r0, 8(r30)
/* 8038D5B8 0038A518 54 00 DF 7E */ rlwinm r0, r0, 0x1b, 0x1d, 0x1f
/* 8038D5BC 0038A51C 28 00 00 02 */ cmplwi r0, 2
/* 8038D5C0 0038A520 41 82 00 0C */ beq lbl_8038D5CC
/* 8038D5C4 0038A524 28 00 00 03 */ cmplwi r0, 3
/* 8038D5C8 0038A528 40 82 00 68 */ bne lbl_8038D630
lbl_8038D5CC:
/* 8038D5CC 0038A52C 80 61 00 08 */ lwz r3, 8(r1)
/* 8038D5D0 0038A530 80 1E 00 18 */ lwz r0, 0x18(r30)
/* 8038D5D4 0038A534 7C 03 00 40 */ cmplw r3, r0
/* 8038D5D8 0038A538 40 80 00 10 */ bge lbl_8038D5E8
/* 8038D5DC 0038A53C 80 1E 00 34 */ lwz r0, 0x34(r30)
/* 8038D5E0 0038A540 7C 03 00 40 */ cmplw r3, r0
/* 8038D5E4 0038A544 40 80 00 18 */ bge lbl_8038D5FC
lbl_8038D5E8:
/* 8038D5E8 0038A548 88 1E 00 08 */ lbz r0, 8(r30)
/* 8038D5EC 0038A54C 38 60 00 00 */ li r3, 0
/* 8038D5F0 0038A550 50 60 2E 34 */ rlwimi r0, r3, 5, 0x18, 0x1a
/* 8038D5F4 0038A554 98 1E 00 08 */ stb r0, 8(r30)
/* 8038D5F8 0038A558 48 00 00 48 */ b lbl_8038D640
lbl_8038D5FC:
/* 8038D5FC 0038A55C 80 9E 00 1C */ lwz r4, 0x1c(r30)
/* 8038D600 0038A560 7C 00 18 50 */ subf r0, r0, r3
/* 8038D604 0038A564 38 60 00 02 */ li r3, 2
/* 8038D608 0038A568 7C 04 02 14 */ add r0, r4, r0
/* 8038D60C 0038A56C 90 1E 00 24 */ stw r0, 0x24(r30)
/* 8038D610 0038A570 80 81 00 08 */ lwz r4, 8(r1)
/* 8038D614 0038A574 80 1E 00 18 */ lwz r0, 0x18(r30)
/* 8038D618 0038A578 7C 04 00 50 */ subf r0, r4, r0
/* 8038D61C 0038A57C 90 1E 00 28 */ stw r0, 0x28(r30)
/* 8038D620 0038A580 88 1E 00 08 */ lbz r0, 8(r30)
/* 8038D624 0038A584 50 60 2E 34 */ rlwimi r0, r3, 5, 0x18, 0x1a
/* 8038D628 0038A588 98 1E 00 08 */ stb r0, 8(r30)
/* 8038D62C 0038A58C 48 00 00 14 */ b lbl_8038D640
lbl_8038D630:
/* 8038D630 0038A590 88 1E 00 08 */ lbz r0, 8(r30)
/* 8038D634 0038A594 38 60 00 00 */ li r3, 0
/* 8038D638 0038A598 50 60 2E 34 */ rlwimi r0, r3, 5, 0x18, 0x1a
/* 8038D63C 0038A59C 98 1E 00 08 */ stb r0, 8(r30)
lbl_8038D640:
/* 8038D640 0038A5A0 88 1E 00 08 */ lbz r0, 8(r30)
/* 8038D644 0038A5A4 54 00 DF 7F */ rlwinm. r0, r0, 0x1b, 0x1d, 0x1f
/* 8038D648 0038A5A8 40 82 00 64 */ bne lbl_8038D6AC
/* 8038D64C 0038A5AC 81 9E 00 38 */ lwz r12, 0x38(r30)
/* 8038D650 0038A5B0 28 0C 00 00 */ cmplwi r12, 0
/* 8038D654 0038A5B4 41 82 00 44 */ beq lbl_8038D698
/* 8038D658 0038A5B8 7F E5 FB 78 */ mr r5, r31
/* 8038D65C 0038A5BC 38 81 00 08 */ addi r4, r1, 8
/* 8038D660 0038A5C0 80 7E 00 00 */ lwz r3, 0(r30)
/* 8038D664 0038A5C4 80 DE 00 48 */ lwz r6, 0x48(r30)
/* 8038D668 0038A5C8 7D 89 03 A6 */ mtctr r12
/* 8038D66C 0038A5CC 4E 80 04 21 */ bctrl
/* 8038D670 0038A5D0 2C 03 00 00 */ cmpwi r3, 0
/* 8038D674 0038A5D4 41 82 00 24 */ beq lbl_8038D698
/* 8038D678 0038A5D8 38 00 00 01 */ li r0, 1
/* 8038D67C 0038A5DC 38 80 00 00 */ li r4, 0
/* 8038D680 0038A5E0 98 1E 00 0A */ stb r0, 0xa(r30)
/* 8038D684 0038A5E4 38 00 00 28 */ li r0, 0x28
/* 8038D688 0038A5E8 38 60 FF FF */ li r3, -1
/* 8038D68C 0038A5EC 90 9E 00 28 */ stw r4, 0x28(r30)
/* 8038D690 0038A5F0 90 0D AE 10 */ stw r0, lbl_805A99D0@sda21(r13)
/* 8038D694 0038A5F4 48 00 00 1C */ b lbl_8038D6B0
lbl_8038D698:
/* 8038D698 0038A5F8 38 60 00 00 */ li r3, 0
/* 8038D69C 0038A5FC 98 7E 00 09 */ stb r3, 9(r30)
/* 8038D6A0 0038A600 80 01 00 08 */ lwz r0, 8(r1)
/* 8038D6A4 0038A604 90 1E 00 18 */ stw r0, 0x18(r30)
/* 8038D6A8 0038A608 90 7E 00 28 */ stw r3, 0x28(r30)
lbl_8038D6AC:
/* 8038D6AC 0038A60C 38 60 00 00 */ li r3, 0
lbl_8038D6B0:
/* 8038D6B0 0038A610 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8038D6B4 0038A614 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8038D6B8 0038A618 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8038D6BC 0038A61C 7C 08 03 A6 */ mtlr r0
/* 8038D6C0 0038A620 38 21 00 20 */ addi r1, r1, 0x20
/* 8038D6C4 0038A624 4E 80 00 20 */ blr
.global ftell
ftell:
/* 8038D6C8 0038A628 A0 03 00 04 */ lhz r0, 4(r3)
/* 8038D6CC 0038A62C 54 00 D7 7E */ rlwinm r0, r0, 0x1a, 0x1d, 0x1f
/* 8038D6D0 0038A630 28 00 00 01 */ cmplwi r0, 1
/* 8038D6D4 0038A634 41 82 00 0C */ beq lbl_8038D6E0
/* 8038D6D8 0038A638 28 00 00 02 */ cmplwi r0, 2
/* 8038D6DC 0038A63C 40 82 00 10 */ bne lbl_8038D6EC
lbl_8038D6E0:
/* 8038D6E0 0038A640 88 03 00 0A */ lbz r0, 0xa(r3)
/* 8038D6E4 0038A644 28 00 00 00 */ cmplwi r0, 0
/* 8038D6E8 0038A648 41 82 00 14 */ beq lbl_8038D6FC
lbl_8038D6EC:
/* 8038D6EC 0038A64C 38 00 00 28 */ li r0, 0x28
/* 8038D6F0 0038A650 38 60 FF FF */ li r3, -1
/* 8038D6F4 0038A654 90 0D AE 10 */ stw r0, lbl_805A99D0@sda21(r13)
/* 8038D6F8 0038A658 4E 80 00 20 */ blr
lbl_8038D6FC:
/* 8038D6FC 0038A65C 88 03 00 08 */ lbz r0, 8(r3)
/* 8038D700 0038A660 54 05 DF 7F */ rlwinm. r5, r0, 0x1b, 0x1d, 0x1f
/* 8038D704 0038A664 40 82 00 0C */ bne lbl_8038D710
/* 8038D708 0038A668 80 63 00 18 */ lwz r3, 0x18(r3)
/* 8038D70C 0038A66C 4E 80 00 20 */ blr
lbl_8038D710:
/* 8038D710 0038A670 80 83 00 1C */ lwz r4, 0x1c(r3)
/* 8038D714 0038A674 28 05 00 03 */ cmplwi r5, 3
/* 8038D718 0038A678 80 03 00 24 */ lwz r0, 0x24(r3)
/* 8038D71C 0038A67C 80 63 00 34 */ lwz r3, 0x34(r3)
/* 8038D720 0038A680 7C 04 00 50 */ subf r0, r4, r0
/* 8038D724 0038A684 7C 63 02 14 */ add r3, r3, r0
/* 8038D728 0038A688 4D 80 00 20 */ bltlr
/* 8038D72C 0038A68C 38 05 FF FE */ addi r0, r5, -2
/* 8038D730 0038A690 7C 60 18 50 */ subf r3, r0, r3
/* 8038D734 0038A694 4E 80 00 20 */ blr

View File

@ -0,0 +1,36 @@
.include "macros.inc"
.section .text, "ax"
.global __unregister_fragment
__unregister_fragment:
/* 8038A160 003870C0 2C 03 00 00 */ cmpwi r3, 0
/* 8038A164 003870C4 4D 80 00 20 */ bltlr
/* 8038A168 003870C8 2C 03 00 01 */ cmpwi r3, 1
/* 8038A16C 003870CC 4C 80 00 20 */ bgelr
/* 8038A170 003870D0 1C 83 00 0C */ mulli r4, r3, 0xc
/* 8038A174 003870D4 3C 60 80 54 */ lis r3, lbl_80542188@ha
/* 8038A178 003870D8 38 00 00 00 */ li r0, 0
/* 8038A17C 003870DC 38 63 21 88 */ addi r3, r3, lbl_80542188@l
/* 8038A180 003870E0 7C 63 22 14 */ add r3, r3, r4
/* 8038A184 003870E4 90 03 00 00 */ stw r0, 0(r3)
/* 8038A188 003870E8 90 03 00 04 */ stw r0, 4(r3)
/* 8038A18C 003870EC 90 03 00 08 */ stw r0, 8(r3)
/* 8038A190 003870F0 4E 80 00 20 */ blr
.global __register_fragment
__register_fragment:
/* 8038A194 003870F4 3C A0 80 54 */ lis r5, lbl_80542188@ha
/* 8038A198 003870F8 38 A5 21 88 */ addi r5, r5, lbl_80542188@l
/* 8038A19C 003870FC 80 05 00 08 */ lwz r0, 8(r5)
/* 8038A1A0 00387100 2C 00 00 00 */ cmpwi r0, 0
/* 8038A1A4 00387104 40 82 00 1C */ bne lbl_8038A1C0
/* 8038A1A8 00387108 90 65 00 00 */ stw r3, 0(r5)
/* 8038A1AC 0038710C 38 00 00 01 */ li r0, 1
/* 8038A1B0 00387110 38 60 00 00 */ li r3, 0
/* 8038A1B4 00387114 90 85 00 04 */ stw r4, 4(r5)
/* 8038A1B8 00387118 90 05 00 08 */ stw r0, 8(r5)
/* 8038A1BC 0038711C 4E 80 00 20 */ blr
lbl_8038A1C0:
/* 8038A1C0 00387120 38 60 FF FF */ li r3, -1
/* 8038A1C4 00387124 4E 80 00 20 */ blr

View File

@ -0,0 +1,162 @@
.include "macros.inc"
.section .text, "ax"
.global __destroy_arr
__destroy_arr:
/* 803896D4 00386634 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803896D8 00386638 7C 08 02 A6 */ mflr r0
/* 803896DC 0038663C 90 01 00 24 */ stw r0, 0x24(r1)
/* 803896E0 00386640 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803896E4 00386644 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803896E8 00386648 7C DE 33 78 */ mr r30, r6
/* 803896EC 0038664C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803896F0 00386650 7C BD 2B 78 */ mr r29, r5
/* 803896F4 00386654 7C 1D F1 D6 */ mullw r0, r29, r30
/* 803896F8 00386658 93 81 00 10 */ stw r28, 0x10(r1)
/* 803896FC 0038665C 7C 9C 23 78 */ mr r28, r4
/* 80389700 00386660 7F E3 02 14 */ add r31, r3, r0
/* 80389704 00386664 48 00 00 20 */ b lbl_80389724
lbl_80389708:
/* 80389708 00386668 7F FD F8 50 */ subf r31, r29, r31
/* 8038970C 0038666C 7F 8C E3 78 */ mr r12, r28
/* 80389710 00386670 7F E3 FB 78 */ mr r3, r31
/* 80389714 00386674 38 80 FF FF */ li r4, -1
/* 80389718 00386678 7D 89 03 A6 */ mtctr r12
/* 8038971C 0038667C 4E 80 04 21 */ bctrl
/* 80389720 00386680 3B DE FF FF */ addi r30, r30, -1
lbl_80389724:
/* 80389724 00386684 28 1E 00 00 */ cmplwi r30, 0
/* 80389728 00386688 40 82 FF E0 */ bne lbl_80389708
/* 8038972C 0038668C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80389730 00386690 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80389734 00386694 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80389738 00386698 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8038973C 0038669C 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80389740 003866A0 7C 08 03 A6 */ mtlr r0
/* 80389744 003866A4 38 21 00 20 */ addi r1, r1, 0x20
/* 80389748 003866A8 4E 80 00 20 */ blr
.global __construct_array
__construct_array:
/* 8038974C 003866AC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80389750 003866B0 7C 08 02 A6 */ mflr r0
/* 80389754 003866B4 90 01 00 34 */ stw r0, 0x34(r1)
/* 80389758 003866B8 38 00 00 00 */ li r0, 0
/* 8038975C 003866BC 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80389760 003866C0 7C FF 3B 78 */ mr r31, r7
/* 80389764 003866C4 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80389768 003866C8 7C 7E 1B 78 */ mr r30, r3
/* 8038976C 003866CC 93 A1 00 24 */ stw r29, 0x24(r1)
/* 80389770 003866D0 7C DD 33 78 */ mr r29, r6
/* 80389774 003866D4 93 E1 00 18 */ stw r31, 0x18(r1)
/* 80389778 003866D8 93 81 00 20 */ stw r28, 0x20(r1)
/* 8038977C 003866DC 7C 9C 23 78 */ mr r28, r4
/* 80389780 003866E0 90 61 00 08 */ stw r3, 8(r1)
/* 80389784 003866E4 93 A1 00 0C */ stw r29, 0xc(r1)
/* 80389788 003866E8 93 E1 00 10 */ stw r31, 0x10(r1)
/* 8038978C 003866EC 90 A1 00 14 */ stw r5, 0x14(r1)
/* 80389790 003866F0 90 01 00 18 */ stw r0, 0x18(r1)
/* 80389794 003866F4 48 00 00 28 */ b lbl_803897BC
lbl_80389798:
/* 80389798 003866F8 7F 8C E3 78 */ mr r12, r28
/* 8038979C 003866FC 7F C3 F3 78 */ mr r3, r30
/* 803897A0 00386700 38 80 00 01 */ li r4, 1
/* 803897A4 00386704 7D 89 03 A6 */ mtctr r12
/* 803897A8 00386708 4E 80 04 21 */ bctrl
/* 803897AC 0038670C 80 61 00 18 */ lwz r3, 0x18(r1)
/* 803897B0 00386710 7F DE EA 14 */ add r30, r30, r29
/* 803897B4 00386714 38 03 00 01 */ addi r0, r3, 1
/* 803897B8 00386718 90 01 00 18 */ stw r0, 0x18(r1)
lbl_803897BC:
/* 803897BC 0038671C 80 81 00 18 */ lwz r4, 0x18(r1)
/* 803897C0 00386720 7C 04 F8 40 */ cmplw r4, r31
/* 803897C4 00386724 41 80 FF D4 */ blt lbl_80389798
/* 803897C8 00386728 80 01 00 10 */ lwz r0, 0x10(r1)
/* 803897CC 0038672C 7C 04 00 40 */ cmplw r4, r0
/* 803897D0 00386730 40 80 00 54 */ bge lbl_80389824
/* 803897D4 00386734 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803897D8 00386738 28 00 00 00 */ cmplwi r0, 0
/* 803897DC 0038673C 41 82 00 48 */ beq lbl_80389824
/* 803897E0 00386740 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803897E4 00386744 80 61 00 08 */ lwz r3, 8(r1)
/* 803897E8 00386748 7C 1F 21 D6 */ mullw r0, r31, r4
/* 803897EC 0038674C 7F C3 02 14 */ add r30, r3, r0
/* 803897F0 00386750 48 00 00 28 */ b lbl_80389818
lbl_803897F4:
/* 803897F4 00386754 81 81 00 14 */ lwz r12, 0x14(r1)
/* 803897F8 00386758 7F DF F0 50 */ subf r30, r31, r30
/* 803897FC 0038675C 7F C3 F3 78 */ mr r3, r30
/* 80389800 00386760 38 80 FF FF */ li r4, -1
/* 80389804 00386764 7D 89 03 A6 */ mtctr r12
/* 80389808 00386768 4E 80 04 21 */ bctrl
/* 8038980C 0038676C 80 61 00 18 */ lwz r3, 0x18(r1)
/* 80389810 00386770 38 03 FF FF */ addi r0, r3, -1
/* 80389814 00386774 90 01 00 18 */ stw r0, 0x18(r1)
lbl_80389818:
/* 80389818 00386778 80 01 00 18 */ lwz r0, 0x18(r1)
/* 8038981C 0038677C 28 00 00 00 */ cmplwi r0, 0
/* 80389820 00386780 40 82 FF D4 */ bne lbl_803897F4
lbl_80389824:
/* 80389824 00386784 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80389828 00386788 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8038982C 0038678C 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80389830 00386790 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 80389834 00386794 83 81 00 20 */ lwz r28, 0x20(r1)
/* 80389838 00386798 7C 08 03 A6 */ mtlr r0
/* 8038983C 0038679C 38 21 00 30 */ addi r1, r1, 0x30
/* 80389840 003867A0 4E 80 00 20 */ blr
.global __partial_array_destructor
__partial_array_destructor:
/* 80389844 003867A4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80389848 003867A8 7C 08 02 A6 */ mflr r0
/* 8038984C 003867AC 90 01 00 24 */ stw r0, 0x24(r1)
/* 80389850 003867B0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80389854 003867B4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80389858 003867B8 7C 9E 23 78 */ mr r30, r4
/* 8038985C 003867BC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80389860 003867C0 7C 7D 1B 79 */ or. r29, r3, r3
/* 80389864 003867C4 41 82 00 78 */ beq lbl_803898DC
/* 80389868 003867C8 80 9D 00 10 */ lwz r4, 0x10(r29)
/* 8038986C 003867CC 80 1D 00 08 */ lwz r0, 8(r29)
/* 80389870 003867D0 7C 04 00 40 */ cmplw r4, r0
/* 80389874 003867D4 40 80 00 58 */ bge lbl_803898CC
/* 80389878 003867D8 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 8038987C 003867DC 28 00 00 00 */ cmplwi r0, 0
/* 80389880 003867E0 41 82 00 4C */ beq lbl_803898CC
/* 80389884 003867E4 80 1D 00 04 */ lwz r0, 4(r29)
/* 80389888 003867E8 80 7D 00 00 */ lwz r3, 0(r29)
/* 8038988C 003867EC 7C 00 21 D6 */ mullw r0, r0, r4
/* 80389890 003867F0 7F E3 02 14 */ add r31, r3, r0
/* 80389894 003867F4 48 00 00 2C */ b lbl_803898C0
lbl_80389898:
/* 80389898 003867F8 80 1D 00 04 */ lwz r0, 4(r29)
/* 8038989C 003867FC 38 80 FF FF */ li r4, -1
/* 803898A0 00386800 81 9D 00 0C */ lwz r12, 0xc(r29)
/* 803898A4 00386804 7F E0 F8 50 */ subf r31, r0, r31
/* 803898A8 00386808 7F E3 FB 78 */ mr r3, r31
/* 803898AC 0038680C 7D 89 03 A6 */ mtctr r12
/* 803898B0 00386810 4E 80 04 21 */ bctrl
/* 803898B4 00386814 80 7D 00 10 */ lwz r3, 0x10(r29)
/* 803898B8 00386818 38 03 FF FF */ addi r0, r3, -1
/* 803898BC 0038681C 90 1D 00 10 */ stw r0, 0x10(r29)
lbl_803898C0:
/* 803898C0 00386820 80 1D 00 10 */ lwz r0, 0x10(r29)
/* 803898C4 00386824 28 00 00 00 */ cmplwi r0, 0
/* 803898C8 00386828 40 82 FF D0 */ bne lbl_80389898
lbl_803898CC:
/* 803898CC 0038682C 7F C0 07 35 */ extsh. r0, r30
/* 803898D0 00386830 40 81 00 0C */ ble lbl_803898DC
/* 803898D4 00386834 7F A3 EB 78 */ mr r3, r29
/* 803898D8 00386838 4B D3 8A 2D */ bl sub_800c2304
lbl_803898DC:
/* 803898DC 0038683C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803898E0 00386840 7F A3 EB 78 */ mr r3, r29
/* 803898E4 00386844 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803898E8 00386848 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803898EC 0038684C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803898F0 00386850 7C 08 03 A6 */ mtlr r0
/* 803898F4 00386854 38 21 00 20 */ addi r1, r1, 0x20
/* 803898F8 00386858 4E 80 00 20 */ blr

View File

@ -0,0 +1,45 @@
.include "macros.inc"
.section .text, "ax"
.global GetR2__Fv
GetR2__Fv:
/* 8038A0E4 00387044 7C 43 13 78 */ mr r3, r2
/* 8038A0E8 00387048 4E 80 00 20 */ blr
.global __fini_cpp_exceptions
__fini_cpp_exceptions:
/* 8038A0EC 0038704C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8038A0F0 00387050 7C 08 02 A6 */ mflr r0
/* 8038A0F4 00387054 90 01 00 14 */ stw r0, 0x14(r1)
/* 8038A0F8 00387058 80 6D 9F C8 */ lwz r3, lbl_805A8B88@sda21(r13)
/* 8038A0FC 0038705C 2C 03 FF FE */ cmpwi r3, -2
/* 8038A100 00387060 41 82 00 10 */ beq lbl_8038A110
/* 8038A104 00387064 48 00 00 5D */ bl __unregister_fragment
/* 8038A108 00387068 38 00 FF FE */ li r0, -2
/* 8038A10C 0038706C 90 0D 9F C8 */ stw r0, lbl_805A8B88@sda21(r13)
lbl_8038A110:
/* 8038A110 00387070 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8038A114 00387074 7C 08 03 A6 */ mtlr r0
/* 8038A118 00387078 38 21 00 10 */ addi r1, r1, 0x10
/* 8038A11C 0038707C 4E 80 00 20 */ blr
.global __init_cpp_exceptions
__init_cpp_exceptions:
/* 8038A120 00387080 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8038A124 00387084 7C 08 02 A6 */ mflr r0
/* 8038A128 00387088 90 01 00 14 */ stw r0, 0x14(r1)
/* 8038A12C 0038708C 80 0D 9F C8 */ lwz r0, lbl_805A8B88@sda21(r13)
/* 8038A130 00387090 2C 00 FF FE */ cmpwi r0, -2
/* 8038A134 00387094 40 82 00 1C */ bne lbl_8038A150
/* 8038A138 00387098 4B FF FF AD */ bl GetR2__Fv
/* 8038A13C 0038709C 3C A0 80 00 */ lis r5, lbl_80003604@ha
/* 8038A140 003870A0 7C 64 1B 78 */ mr r4, r3
/* 8038A144 003870A4 38 65 36 04 */ addi r3, r5, lbl_80003604@l
/* 8038A148 003870A8 48 00 00 4D */ bl __register_fragment
/* 8038A14C 003870AC 90 6D 9F C8 */ stw r3, lbl_805A8B88@sda21(r13)
lbl_8038A150:
/* 8038A150 003870B0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8038A154 003870B4 7C 08 03 A6 */ mtlr r0
/* 8038A158 003870B8 38 21 00 10 */ addi r1, r1, 0x10
/* 8038A15C 003870BC 4E 80 00 20 */ blr

View File

@ -0,0 +1,62 @@
.include "macros.inc"
.section .text, "ax"
.global __va_arg
__va_arg:
/* 8038957C 003864DC 88 E3 00 00 */ lbz r7, 0(r3)
/* 80389580 003864E0 2C 04 00 03 */ cmpwi r4, 3
/* 80389584 003864E4 7C 66 1B 78 */ mr r6, r3
/* 80389588 003864E8 38 00 00 08 */ li r0, 8
/* 8038958C 003864EC 39 00 00 04 */ li r8, 4
/* 80389590 003864F0 7C E7 07 74 */ extsb r7, r7
/* 80389594 003864F4 39 20 00 01 */ li r9, 1
/* 80389598 003864F8 38 A0 00 00 */ li r5, 0
/* 8038959C 003864FC 39 40 00 00 */ li r10, 0
/* 803895A0 00386500 39 60 00 04 */ li r11, 4
/* 803895A4 00386504 40 82 00 1C */ bne lbl_803895C0
/* 803895A8 00386508 88 E3 00 01 */ lbz r7, 1(r3)
/* 803895AC 0038650C 38 C3 00 01 */ addi r6, r3, 1
/* 803895B0 00386510 39 00 00 08 */ li r8, 8
/* 803895B4 00386514 39 40 00 20 */ li r10, 0x20
/* 803895B8 00386518 7C E7 07 74 */ extsb r7, r7
/* 803895BC 0038651C 39 60 00 08 */ li r11, 8
lbl_803895C0:
/* 803895C0 00386520 2C 04 00 02 */ cmpwi r4, 2
/* 803895C4 00386524 40 82 00 1C */ bne lbl_803895E0
/* 803895C8 00386528 54 E0 07 FF */ clrlwi. r0, r7, 0x1f
/* 803895CC 0038652C 39 00 00 08 */ li r8, 8
/* 803895D0 00386530 38 00 00 07 */ li r0, 7
/* 803895D4 00386534 41 82 00 08 */ beq lbl_803895DC
/* 803895D8 00386538 38 A0 00 01 */ li r5, 1
lbl_803895DC:
/* 803895DC 0038653C 39 20 00 02 */ li r9, 2
lbl_803895E0:
/* 803895E0 00386540 7C 07 00 00 */ cmpw r7, r0
/* 803895E4 00386544 40 80 00 24 */ bge lbl_80389608
/* 803895E8 00386548 7C E7 2A 14 */ add r7, r7, r5
/* 803895EC 0038654C 80 A3 00 08 */ lwz r5, 8(r3)
/* 803895F0 00386550 7C 67 59 D6 */ mullw r3, r7, r11
/* 803895F4 00386554 7C 07 4A 14 */ add r0, r7, r9
/* 803895F8 00386558 98 06 00 00 */ stb r0, 0(r6)
/* 803895FC 0038655C 7C CA 1A 14 */ add r6, r10, r3
/* 80389600 00386560 7C C5 32 14 */ add r6, r5, r6
/* 80389604 00386564 48 00 00 2C */ b lbl_80389630
lbl_80389608:
/* 80389608 00386568 38 A0 00 08 */ li r5, 8
/* 8038960C 0038656C 38 08 FF FF */ addi r0, r8, -1
/* 80389610 00386570 98 A6 00 00 */ stb r5, 0(r6)
/* 80389614 00386574 7C 06 00 F8 */ nor r6, r0, r0
/* 80389618 00386578 80 03 00 04 */ lwz r0, 4(r3)
/* 8038961C 0038657C 7C A8 02 14 */ add r5, r8, r0
/* 80389620 00386580 38 05 FF FF */ addi r0, r5, -1
/* 80389624 00386584 7C C6 00 38 */ and r6, r6, r0
/* 80389628 00386588 7C 06 42 14 */ add r0, r6, r8
/* 8038962C 0038658C 90 03 00 04 */ stw r0, 4(r3)
lbl_80389630:
/* 80389630 00386590 2C 04 00 00 */ cmpwi r4, 0
/* 80389634 00386594 40 82 00 08 */ bne lbl_8038963C
/* 80389638 00386598 80 C6 00 00 */ lwz r6, 0(r6)
lbl_8038963C:
/* 8038963C 0038659C 7C C3 33 78 */ mr r3, r6
/* 80389640 003865A0 4E 80 00 20 */ blr

View File

@ -0,0 +1,63 @@
.include "macros.inc"
.section .text, "ax"
.global exit
exit:
/* 8038A1C8 00387128 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8038A1CC 0038712C 7C 08 02 A6 */ mflr r0
/* 8038A1D0 00387130 90 01 00 14 */ stw r0, 0x14(r1)
/* 8038A1D4 00387134 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8038A1D8 00387138 80 0D AD F8 */ lwz r0, lbl_805A99B8@sda21(r13)
/* 8038A1DC 0038713C 2C 00 00 00 */ cmpwi r0, 0
/* 8038A1E0 00387140 40 82 00 4C */ bne lbl_8038A22C
/* 8038A1E4 00387144 4B FF F4 61 */ bl __destroy_global_chain
/* 8038A1E8 00387148 3C 60 80 3D */ lis r3, __destroy_global_chain_reference@ha
/* 8038A1EC 0038714C 38 03 B3 80 */ addi r0, r3, __destroy_global_chain_reference@l
/* 8038A1F0 00387150 7C 1F 03 78 */ mr r31, r0
/* 8038A1F4 00387154 48 00 00 10 */ b lbl_8038A204
lbl_8038A1F8:
/* 8038A1F8 00387158 7D 89 03 A6 */ mtctr r12
/* 8038A1FC 0038715C 4E 80 04 21 */ bctrl
/* 8038A200 00387160 3B FF 00 04 */ addi r31, r31, 4
lbl_8038A204:
/* 8038A204 00387164 81 9F 00 00 */ lwz r12, 0(r31)
/* 8038A208 00387168 28 0C 00 00 */ cmplwi r12, 0
/* 8038A20C 0038716C 40 82 FF EC */ bne lbl_8038A1F8
/* 8038A210 00387170 81 8D AE 00 */ lwz r12, lbl_805A99C0@sda21(r13)
/* 8038A214 00387174 28 0C 00 00 */ cmplwi r12, 0
/* 8038A218 00387178 41 82 00 14 */ beq lbl_8038A22C
/* 8038A21C 0038717C 7D 89 03 A6 */ mtctr r12
/* 8038A220 00387180 4E 80 04 21 */ bctrl
/* 8038A224 00387184 38 00 00 00 */ li r0, 0
/* 8038A228 00387188 90 0D AE 00 */ stw r0, lbl_805A99C0@sda21(r13)
lbl_8038A22C:
/* 8038A22C 0038718C 3C 60 80 54 */ lis r3, lbl_80542198@ha
/* 8038A230 00387190 3B E3 21 98 */ addi r31, r3, lbl_80542198@l
/* 8038A234 00387194 48 00 00 20 */ b lbl_8038A254
lbl_8038A238:
/* 8038A238 00387198 80 6D AD FC */ lwz r3, lbl_805A99BC@sda21(r13)
/* 8038A23C 0038719C 38 63 FF FF */ addi r3, r3, -1
/* 8038A240 003871A0 54 60 10 3A */ slwi r0, r3, 2
/* 8038A244 003871A4 90 6D AD FC */ stw r3, lbl_805A99BC@sda21(r13)
/* 8038A248 003871A8 7D 9F 00 2E */ lwzx r12, r31, r0
/* 8038A24C 003871AC 7D 89 03 A6 */ mtctr r12
/* 8038A250 003871B0 4E 80 04 21 */ bctrl
lbl_8038A254:
/* 8038A254 003871B4 80 0D AD FC */ lwz r0, lbl_805A99BC@sda21(r13)
/* 8038A258 003871B8 2C 00 00 00 */ cmpwi r0, 0
/* 8038A25C 003871BC 41 81 FF DC */ bgt lbl_8038A238
/* 8038A260 003871C0 81 8D AE 04 */ lwz r12, lbl_805A99C4@sda21(r13)
/* 8038A264 003871C4 28 0C 00 00 */ cmplwi r12, 0
/* 8038A268 003871C8 41 82 00 14 */ beq lbl_8038A27C
/* 8038A26C 003871CC 7D 89 03 A6 */ mtctr r12
/* 8038A270 003871D0 4E 80 04 21 */ bctrl
/* 8038A274 003871D4 38 00 00 00 */ li r0, 0
/* 8038A278 003871D8 90 0D AE 04 */ stw r0, lbl_805A99C4@sda21(r13)
lbl_8038A27C:
/* 8038A27C 003871DC 4B FF B6 1D */ bl _ExitProcess
/* 8038A280 003871E0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8038A284 003871E4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8038A288 003871E8 7C 08 03 A6 */ mtlr r0
/* 8038A28C 003871EC 38 21 00 10 */ addi r1, r1, 0x10
/* 8038A290 003871F0 4E 80 00 20 */ blr

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,82 @@
.include "macros.inc"
.section .text, "ax"
.global __flush_all
__flush_all:
/* 8038B0A8 00388008 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8038B0AC 0038800C 7C 08 02 A6 */ mflr r0
/* 8038B0B0 00388010 3C 60 80 3F */ lis r3, lbl_803F2778@ha
/* 8038B0B4 00388014 90 01 00 14 */ stw r0, 0x14(r1)
/* 8038B0B8 00388018 38 03 27 78 */ addi r0, r3, lbl_803F2778@l
/* 8038B0BC 0038801C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8038B0C0 00388020 3B E0 00 00 */ li r31, 0
/* 8038B0C4 00388024 93 C1 00 08 */ stw r30, 8(r1)
/* 8038B0C8 00388028 7C 1E 03 78 */ mr r30, r0
/* 8038B0CC 0038802C 48 00 00 28 */ b lbl_8038B0F4
lbl_8038B0D0:
/* 8038B0D0 00388030 A0 1E 00 04 */ lhz r0, 4(r30)
/* 8038B0D4 00388034 54 00 D7 7F */ rlwinm. r0, r0, 0x1a, 0x1d, 0x1f
/* 8038B0D8 00388038 41 82 00 18 */ beq lbl_8038B0F0
/* 8038B0DC 0038803C 7F C3 F3 78 */ mr r3, r30
/* 8038B0E0 00388040 48 00 21 95 */ bl fflush
/* 8038B0E4 00388044 2C 03 00 00 */ cmpwi r3, 0
/* 8038B0E8 00388048 41 82 00 08 */ beq lbl_8038B0F0
/* 8038B0EC 0038804C 3B E0 FF FF */ li r31, -1
lbl_8038B0F0:
/* 8038B0F0 00388050 83 DE 00 4C */ lwz r30, 0x4c(r30)
lbl_8038B0F4:
/* 8038B0F4 00388054 28 1E 00 00 */ cmplwi r30, 0
/* 8038B0F8 00388058 40 82 FF D8 */ bne lbl_8038B0D0
/* 8038B0FC 0038805C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8038B100 00388060 7F E3 FB 78 */ mr r3, r31
/* 8038B104 00388064 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8038B108 00388068 83 C1 00 08 */ lwz r30, 8(r1)
/* 8038B10C 0038806C 7C 08 03 A6 */ mtlr r0
/* 8038B110 00388070 38 21 00 10 */ addi r1, r1, 0x10
/* 8038B114 00388074 4E 80 00 20 */ blr
.global __close_all
__close_all:
/* 8038B118 00388078 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8038B11C 0038807C 7C 08 02 A6 */ mflr r0
/* 8038B120 00388080 3C 60 80 3F */ lis r3, lbl_803F2778@ha
/* 8038B124 00388084 90 01 00 14 */ stw r0, 0x14(r1)
/* 8038B128 00388088 38 03 27 78 */ addi r0, r3, lbl_803F2778@l
/* 8038B12C 0038808C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8038B130 00388090 7C 1F 03 78 */ mr r31, r0
/* 8038B134 00388094 48 00 00 60 */ b lbl_8038B194
lbl_8038B138:
/* 8038B138 00388098 A0 1F 00 04 */ lhz r0, 4(r31)
/* 8038B13C 0038809C 54 00 D7 7F */ rlwinm. r0, r0, 0x1a, 0x1d, 0x1f
/* 8038B140 003880A0 41 82 00 0C */ beq lbl_8038B14C
/* 8038B144 003880A4 7F E3 FB 78 */ mr r3, r31
/* 8038B148 003880A8 48 00 22 65 */ bl fclose
lbl_8038B14C:
/* 8038B14C 003880AC 7F E3 FB 78 */ mr r3, r31
/* 8038B150 003880B0 83 FF 00 4C */ lwz r31, 0x4c(r31)
/* 8038B154 003880B4 88 03 00 0C */ lbz r0, 0xc(r3)
/* 8038B158 003880B8 28 00 00 00 */ cmplwi r0, 0
/* 8038B15C 003880BC 41 82 00 0C */ beq lbl_8038B168
/* 8038B160 003880C0 4B FF F1 F9 */ bl sub_8038a358
/* 8038B164 003880C4 48 00 00 30 */ b lbl_8038B194
lbl_8038B168:
/* 8038B168 003880C8 A0 03 00 04 */ lhz r0, 4(r3)
/* 8038B16C 003880CC 38 80 00 03 */ li r4, 3
/* 8038B170 003880D0 50 80 35 F2 */ rlwimi r0, r4, 6, 0x17, 0x19
/* 8038B174 003880D4 28 1F 00 00 */ cmplwi r31, 0
/* 8038B178 003880D8 B0 03 00 04 */ sth r0, 4(r3)
/* 8038B17C 003880DC 41 82 00 18 */ beq lbl_8038B194
/* 8038B180 003880E0 88 1F 00 0C */ lbz r0, 0xc(r31)
/* 8038B184 003880E4 28 00 00 00 */ cmplwi r0, 0
/* 8038B188 003880E8 41 82 00 0C */ beq lbl_8038B194
/* 8038B18C 003880EC 38 00 00 00 */ li r0, 0
/* 8038B190 003880F0 90 03 00 4C */ stw r0, 0x4c(r3)
lbl_8038B194:
/* 8038B194 003880F4 28 1F 00 00 */ cmplwi r31, 0
/* 8038B198 003880F8 40 82 FF A0 */ bne lbl_8038B138
/* 8038B19C 003880FC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8038B1A0 00388100 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8038B1A4 00388104 7C 08 03 A6 */ mtlr r0
/* 8038B1A8 00388108 38 21 00 10 */ addi r1, r1, 0x10
/* 8038B1AC 0038810C 4E 80 00 20 */ blr

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,12 @@
.include "macros.inc"
.section .text, "ax"
.if 0
.global abs
abs:
/* 8038CE1C 00389D7C 7C 64 FE 70 */ srawi r4, r3, 0x1f
/* 8038CE20 00389D80 7C 80 1A 78 */ xor r0, r4, r3
/* 8038CE24 00389D84 7C 64 00 50 */ subf r3, r4, r0
/* 8038CE28 00389D88 4E 80 00 20 */ blr
.endif

View File

@ -0,0 +1,75 @@
.include "macros.inc"
.section .text, "ax"
.global __flush_buffer
__flush_buffer:
/* 8038CE2C 00389D8C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8038CE30 00389D90 7C 08 02 A6 */ mflr r0
/* 8038CE34 00389D94 90 01 00 14 */ stw r0, 0x14(r1)
/* 8038CE38 00389D98 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8038CE3C 00389D9C 7C 7F 1B 78 */ mr r31, r3
/* 8038CE40 00389DA0 93 C1 00 08 */ stw r30, 8(r1)
/* 8038CE44 00389DA4 7C 9E 23 78 */ mr r30, r4
/* 8038CE48 00389DA8 80 63 00 1C */ lwz r3, 0x1c(r3)
/* 8038CE4C 00389DAC 80 1F 00 24 */ lwz r0, 0x24(r31)
/* 8038CE50 00389DB0 7C 03 00 51 */ subf. r0, r3, r0
/* 8038CE54 00389DB4 41 82 00 50 */ beq lbl_8038CEA4
/* 8038CE58 00389DB8 90 1F 00 28 */ stw r0, 0x28(r31)
/* 8038CE5C 00389DBC 38 BF 00 28 */ addi r5, r31, 0x28
/* 8038CE60 00389DC0 81 9F 00 40 */ lwz r12, 0x40(r31)
/* 8038CE64 00389DC4 80 7F 00 00 */ lwz r3, 0(r31)
/* 8038CE68 00389DC8 80 9F 00 1C */ lwz r4, 0x1c(r31)
/* 8038CE6C 00389DCC 80 DF 00 48 */ lwz r6, 0x48(r31)
/* 8038CE70 00389DD0 7D 89 03 A6 */ mtctr r12
/* 8038CE74 00389DD4 4E 80 04 21 */ bctrl
/* 8038CE78 00389DD8 28 1E 00 00 */ cmplwi r30, 0
/* 8038CE7C 00389DDC 41 82 00 0C */ beq lbl_8038CE88
/* 8038CE80 00389DE0 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 8038CE84 00389DE4 90 1E 00 00 */ stw r0, 0(r30)
lbl_8038CE88:
/* 8038CE88 00389DE8 2C 03 00 00 */ cmpwi r3, 0
/* 8038CE8C 00389DEC 41 82 00 08 */ beq lbl_8038CE94
/* 8038CE90 00389DF0 48 00 00 48 */ b lbl_8038CED8
lbl_8038CE94:
/* 8038CE94 00389DF4 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 8038CE98 00389DF8 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 8038CE9C 00389DFC 7C 03 02 14 */ add r0, r3, r0
/* 8038CEA0 00389E00 90 1F 00 18 */ stw r0, 0x18(r31)
lbl_8038CEA4:
/* 8038CEA4 00389E04 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 8038CEA8 00389E08 38 60 00 00 */ li r3, 0
/* 8038CEAC 00389E0C 90 1F 00 24 */ stw r0, 0x24(r31)
/* 8038CEB0 00389E10 80 1F 00 20 */ lwz r0, 0x20(r31)
/* 8038CEB4 00389E14 90 1F 00 28 */ stw r0, 0x28(r31)
/* 8038CEB8 00389E18 80 BF 00 18 */ lwz r5, 0x18(r31)
/* 8038CEBC 00389E1C 80 9F 00 2C */ lwz r4, 0x2c(r31)
/* 8038CEC0 00389E20 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 8038CEC4 00389E24 7C A4 20 38 */ and r4, r5, r4
/* 8038CEC8 00389E28 7C 04 00 50 */ subf r0, r4, r0
/* 8038CECC 00389E2C 90 1F 00 28 */ stw r0, 0x28(r31)
/* 8038CED0 00389E30 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 8038CED4 00389E34 90 1F 00 34 */ stw r0, 0x34(r31)
lbl_8038CED8:
/* 8038CED8 00389E38 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8038CEDC 00389E3C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8038CEE0 00389E40 83 C1 00 08 */ lwz r30, 8(r1)
/* 8038CEE4 00389E44 7C 08 03 A6 */ mtlr r0
/* 8038CEE8 00389E48 38 21 00 10 */ addi r1, r1, 0x10
/* 8038CEEC 00389E4C 4E 80 00 20 */ blr
.global __prep_buffer
__prep_buffer:
/* 8038CEF0 00389E50 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8038CEF4 00389E54 90 03 00 24 */ stw r0, 0x24(r3)
/* 8038CEF8 00389E58 80 03 00 20 */ lwz r0, 0x20(r3)
/* 8038CEFC 00389E5C 90 03 00 28 */ stw r0, 0x28(r3)
/* 8038CF00 00389E60 80 A3 00 18 */ lwz r5, 0x18(r3)
/* 8038CF04 00389E64 80 83 00 2C */ lwz r4, 0x2c(r3)
/* 8038CF08 00389E68 80 03 00 28 */ lwz r0, 0x28(r3)
/* 8038CF0C 00389E6C 7C A4 20 38 */ and r4, r5, r4
/* 8038CF10 00389E70 7C 04 00 50 */ subf r0, r4, r0
/* 8038CF14 00389E74 90 03 00 28 */ stw r0, 0x28(r3)
/* 8038CF18 00389E78 80 03 00 18 */ lwz r0, 0x18(r3)
/* 8038CF1C 00389E7C 90 03 00 34 */ stw r0, 0x34(r3)
/* 8038CF20 00389E80 4E 80 00 20 */ blr

View File

@ -0,0 +1,16 @@
.include "macros.inc"
.section .text, "ax"
.global tolower
tolower:
/* 8038CF24 00389E84 2C 03 FF FF */ cmpwi r3, -1
/* 8038CF28 00389E88 40 82 00 0C */ bne lbl_8038CF34
/* 8038CF2C 00389E8C 38 60 FF FF */ li r3, -1
/* 8038CF30 00389E90 4E 80 00 20 */ blr
lbl_8038CF34:
/* 8038CF34 00389E94 3C 80 80 3F */ lis r4, lbl_803F2B20@ha
/* 8038CF38 00389E98 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8038CF3C 00389E9C 38 64 2B 20 */ addi r3, r4, lbl_803F2B20@l
/* 8038CF40 00389EA0 7C 63 00 AE */ lbzx r3, r3, r0
/* 8038CF44 00389EA4 4E 80 00 20 */ blr

View File

@ -0,0 +1,234 @@
.include "macros.inc"
.section .text, "ax"
.global __fwrite
__fwrite:
/* 8038CF48 00389EA8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8038CF4C 00389EAC 7C 08 02 A6 */ mflr r0
/* 8038CF50 00389EB0 90 01 00 34 */ stw r0, 0x34(r1)
/* 8038CF54 00389EB4 BF 21 00 14 */ stmw r25, 0x14(r1)
/* 8038CF58 00389EB8 7C 99 23 78 */ mr r25, r4
/* 8038CF5C 00389EBC 7C DA 33 78 */ mr r26, r6
/* 8038CF60 00389EC0 7C 7B 1B 78 */ mr r27, r3
/* 8038CF64 00389EC4 7C BC 2B 78 */ mr r28, r5
/* 8038CF68 00389EC8 38 80 00 00 */ li r4, 0
/* 8038CF6C 00389ECC 7F 43 D3 78 */ mr r3, r26
/* 8038CF70 00389ED0 48 00 43 D1 */ bl fwide
/* 8038CF74 00389ED4 2C 03 00 00 */ cmpwi r3, 0
/* 8038CF78 00389ED8 40 82 00 10 */ bne lbl_8038CF88
/* 8038CF7C 00389EDC 7F 43 D3 78 */ mr r3, r26
/* 8038CF80 00389EE0 38 80 FF FF */ li r4, -1
/* 8038CF84 00389EE4 48 00 43 BD */ bl fwide
lbl_8038CF88:
/* 8038CF88 00389EE8 7F B9 E1 D7 */ mullw. r29, r25, r28
/* 8038CF8C 00389EEC 41 82 00 1C */ beq lbl_8038CFA8
/* 8038CF90 00389EF0 88 1A 00 0A */ lbz r0, 0xa(r26)
/* 8038CF94 00389EF4 28 00 00 00 */ cmplwi r0, 0
/* 8038CF98 00389EF8 40 82 00 10 */ bne lbl_8038CFA8
/* 8038CF9C 00389EFC A0 1A 00 04 */ lhz r0, 4(r26)
/* 8038CFA0 00389F00 54 00 D7 7F */ rlwinm. r0, r0, 0x1a, 0x1d, 0x1f
/* 8038CFA4 00389F04 40 82 00 0C */ bne lbl_8038CFB0
lbl_8038CFA8:
/* 8038CFA8 00389F08 38 60 00 00 */ li r3, 0
/* 8038CFAC 00389F0C 48 00 02 94 */ b lbl_8038D240
lbl_8038CFB0:
/* 8038CFB0 00389F10 28 00 00 02 */ cmplwi r0, 2
/* 8038CFB4 00389F14 40 82 00 08 */ bne lbl_8038CFBC
/* 8038CFB8 00389F18 48 00 0D 15 */ bl __stdio_atexit
lbl_8038CFBC:
/* 8038CFBC 00389F1C 88 1A 00 05 */ lbz r0, 5(r26)
/* 8038CFC0 00389F20 3B E0 00 01 */ li r31, 1
/* 8038CFC4 00389F24 38 60 00 00 */ li r3, 0
/* 8038CFC8 00389F28 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
/* 8038CFCC 00389F2C 41 82 00 14 */ beq lbl_8038CFE0
/* 8038CFD0 00389F30 88 1A 00 04 */ lbz r0, 4(r26)
/* 8038CFD4 00389F34 54 00 FF BE */ rlwinm r0, r0, 0x1f, 0x1e, 0x1f
/* 8038CFD8 00389F38 28 00 00 02 */ cmplwi r0, 2
/* 8038CFDC 00389F3C 40 82 00 08 */ bne lbl_8038CFE4
lbl_8038CFE0:
/* 8038CFE0 00389F40 38 60 00 01 */ li r3, 1
lbl_8038CFE4:
/* 8038CFE4 00389F44 2C 03 00 00 */ cmpwi r3, 0
/* 8038CFE8 00389F48 40 82 00 18 */ bne lbl_8038D000
/* 8038CFEC 00389F4C 88 1A 00 04 */ lbz r0, 4(r26)
/* 8038CFF0 00389F50 54 00 FF BE */ rlwinm r0, r0, 0x1f, 0x1e, 0x1f
/* 8038CFF4 00389F54 28 00 00 01 */ cmplwi r0, 1
/* 8038CFF8 00389F58 41 82 00 08 */ beq lbl_8038D000
/* 8038CFFC 00389F5C 3B E0 00 00 */ li r31, 0
lbl_8038D000:
/* 8038D000 00389F60 88 1A 00 08 */ lbz r0, 8(r26)
/* 8038D004 00389F64 54 00 DF 7F */ rlwinm. r0, r0, 0x1b, 0x1d, 0x1f
/* 8038D008 00389F68 40 82 00 54 */ bne lbl_8038D05C
/* 8038D00C 00389F6C 88 7A 00 04 */ lbz r3, 4(r26)
/* 8038D010 00389F70 54 60 EF BD */ rlwinm. r0, r3, 0x1d, 0x1e, 0x1e
/* 8038D014 00389F74 54 63 EF 7E */ rlwinm r3, r3, 0x1d, 0x1d, 0x1f
/* 8038D018 00389F78 41 82 00 44 */ beq lbl_8038D05C
/* 8038D01C 00389F7C 54 60 07 7B */ rlwinm. r0, r3, 0, 0x1d, 0x1d
/* 8038D020 00389F80 41 82 00 24 */ beq lbl_8038D044
/* 8038D024 00389F84 7F 43 D3 78 */ mr r3, r26
/* 8038D028 00389F88 38 80 00 00 */ li r4, 0
/* 8038D02C 00389F8C 38 A0 00 02 */ li r5, 2
/* 8038D030 00389F90 48 00 04 3D */ bl fseek
/* 8038D034 00389F94 2C 03 00 00 */ cmpwi r3, 0
/* 8038D038 00389F98 41 82 00 0C */ beq lbl_8038D044
/* 8038D03C 00389F9C 38 60 00 00 */ li r3, 0
/* 8038D040 00389FA0 48 00 02 00 */ b lbl_8038D240
lbl_8038D044:
/* 8038D044 00389FA4 88 1A 00 08 */ lbz r0, 8(r26)
/* 8038D048 00389FA8 38 60 00 01 */ li r3, 1
/* 8038D04C 00389FAC 50 60 2E 34 */ rlwimi r0, r3, 5, 0x18, 0x1a
/* 8038D050 00389FB0 7F 43 D3 78 */ mr r3, r26
/* 8038D054 00389FB4 98 1A 00 08 */ stb r0, 8(r26)
/* 8038D058 00389FB8 4B FF FE 99 */ bl __prep_buffer
lbl_8038D05C:
/* 8038D05C 00389FBC 88 1A 00 08 */ lbz r0, 8(r26)
/* 8038D060 00389FC0 54 00 DF 7E */ rlwinm r0, r0, 0x1b, 0x1d, 0x1f
/* 8038D064 00389FC4 28 00 00 01 */ cmplwi r0, 1
/* 8038D068 00389FC8 41 82 00 1C */ beq lbl_8038D084
/* 8038D06C 00389FCC 38 60 00 01 */ li r3, 1
/* 8038D070 00389FD0 38 00 00 00 */ li r0, 0
/* 8038D074 00389FD4 98 7A 00 0A */ stb r3, 0xa(r26)
/* 8038D078 00389FD8 38 60 00 00 */ li r3, 0
/* 8038D07C 00389FDC 90 1A 00 28 */ stw r0, 0x28(r26)
/* 8038D080 00389FE0 48 00 01 C0 */ b lbl_8038D240
lbl_8038D084:
/* 8038D084 00389FE4 28 1D 00 00 */ cmplwi r29, 0
/* 8038D088 00389FE8 7F 7E DB 78 */ mr r30, r27
/* 8038D08C 00389FEC 3B 80 00 00 */ li r28, 0
/* 8038D090 00389FF0 41 82 01 20 */ beq lbl_8038D1B0
/* 8038D094 00389FF4 80 9A 00 24 */ lwz r4, 0x24(r26)
/* 8038D098 00389FF8 80 7A 00 1C */ lwz r3, 0x1c(r26)
/* 8038D09C 00389FFC 7C 04 18 40 */ cmplw r4, r3
/* 8038D0A0 0038A000 40 82 00 0C */ bne lbl_8038D0AC
/* 8038D0A4 0038A004 2C 1F 00 00 */ cmpwi r31, 0
/* 8038D0A8 0038A008 41 82 01 08 */ beq lbl_8038D1B0
lbl_8038D0AC:
/* 8038D0AC 0038A00C 80 1A 00 20 */ lwz r0, 0x20(r26)
/* 8038D0B0 0038A010 7C 63 20 50 */ subf r3, r3, r4
/* 8038D0B4 0038A014 7C 03 00 50 */ subf r0, r3, r0
/* 8038D0B8 0038A018 90 1A 00 28 */ stw r0, 0x28(r26)
lbl_8038D0BC:
/* 8038D0BC 0038A01C 80 1A 00 28 */ lwz r0, 0x28(r26)
/* 8038D0C0 0038A020 3B 60 00 00 */ li r27, 0
/* 8038D0C4 0038A024 7C 00 E8 40 */ cmplw r0, r29
/* 8038D0C8 0038A028 90 01 00 08 */ stw r0, 8(r1)
/* 8038D0CC 0038A02C 40 81 00 08 */ ble lbl_8038D0D4
/* 8038D0D0 0038A030 93 A1 00 08 */ stw r29, 8(r1)
lbl_8038D0D4:
/* 8038D0D4 0038A034 88 1A 00 04 */ lbz r0, 4(r26)
/* 8038D0D8 0038A038 54 00 FF BE */ rlwinm r0, r0, 0x1f, 0x1e, 0x1f
/* 8038D0DC 0038A03C 28 00 00 01 */ cmplwi r0, 1
/* 8038D0E0 0038A040 40 82 00 30 */ bne lbl_8038D110
/* 8038D0E4 0038A044 80 A1 00 08 */ lwz r5, 8(r1)
/* 8038D0E8 0038A048 28 05 00 00 */ cmplwi r5, 0
/* 8038D0EC 0038A04C 41 82 00 24 */ beq lbl_8038D110
/* 8038D0F0 0038A050 7F C3 F3 78 */ mr r3, r30
/* 8038D0F4 0038A054 38 80 00 0A */ li r4, 0xa
/* 8038D0F8 0038A058 48 00 07 D1 */ bl __memrchr
/* 8038D0FC 0038A05C 7C 7B 1B 79 */ or. r27, r3, r3
/* 8038D100 0038A060 41 82 00 10 */ beq lbl_8038D110
/* 8038D104 0038A064 38 1B 00 01 */ addi r0, r27, 1
/* 8038D108 0038A068 7C 1E 00 50 */ subf r0, r30, r0
/* 8038D10C 0038A06C 90 01 00 08 */ stw r0, 8(r1)
lbl_8038D110:
/* 8038D110 0038A070 80 A1 00 08 */ lwz r5, 8(r1)
/* 8038D114 0038A074 28 05 00 00 */ cmplwi r5, 0
/* 8038D118 0038A078 41 82 00 3C */ beq lbl_8038D154
/* 8038D11C 0038A07C 80 7A 00 24 */ lwz r3, 0x24(r26)
/* 8038D120 0038A080 7F C4 F3 78 */ mr r4, r30
/* 8038D124 0038A084 4B C7 63 6D */ bl memcpy
/* 8038D128 0038A088 80 61 00 08 */ lwz r3, 8(r1)
/* 8038D12C 0038A08C 80 1A 00 24 */ lwz r0, 0x24(r26)
/* 8038D130 0038A090 7F DE 1A 14 */ add r30, r30, r3
/* 8038D134 0038A094 7F 9C 1A 14 */ add r28, r28, r3
/* 8038D138 0038A098 7C 00 1A 14 */ add r0, r0, r3
/* 8038D13C 0038A09C 7F A3 E8 50 */ subf r29, r3, r29
/* 8038D140 0038A0A0 90 1A 00 24 */ stw r0, 0x24(r26)
/* 8038D144 0038A0A4 80 61 00 08 */ lwz r3, 8(r1)
/* 8038D148 0038A0A8 80 1A 00 28 */ lwz r0, 0x28(r26)
/* 8038D14C 0038A0AC 7C 03 00 50 */ subf r0, r3, r0
/* 8038D150 0038A0B0 90 1A 00 28 */ stw r0, 0x28(r26)
lbl_8038D154:
/* 8038D154 0038A0B4 80 1A 00 28 */ lwz r0, 0x28(r26)
/* 8038D158 0038A0B8 28 00 00 00 */ cmplwi r0, 0
/* 8038D15C 0038A0BC 41 82 00 18 */ beq lbl_8038D174
/* 8038D160 0038A0C0 28 1B 00 00 */ cmplwi r27, 0
/* 8038D164 0038A0C4 40 82 00 10 */ bne lbl_8038D174
/* 8038D168 0038A0C8 88 1A 00 04 */ lbz r0, 4(r26)
/* 8038D16C 0038A0CC 54 00 FF BF */ rlwinm. r0, r0, 0x1f, 0x1e, 0x1f
/* 8038D170 0038A0D0 40 82 00 30 */ bne lbl_8038D1A0
lbl_8038D174:
/* 8038D174 0038A0D4 7F 43 D3 78 */ mr r3, r26
/* 8038D178 0038A0D8 38 80 00 00 */ li r4, 0
/* 8038D17C 0038A0DC 4B FF FC B1 */ bl __flush_buffer
/* 8038D180 0038A0E0 2C 03 00 00 */ cmpwi r3, 0
/* 8038D184 0038A0E4 41 82 00 1C */ beq lbl_8038D1A0
/* 8038D188 0038A0E8 38 60 00 01 */ li r3, 1
/* 8038D18C 0038A0EC 38 00 00 00 */ li r0, 0
/* 8038D190 0038A0F0 98 7A 00 0A */ stb r3, 0xa(r26)
/* 8038D194 0038A0F4 3B A0 00 00 */ li r29, 0
/* 8038D198 0038A0F8 90 1A 00 28 */ stw r0, 0x28(r26)
/* 8038D19C 0038A0FC 48 00 00 14 */ b lbl_8038D1B0
lbl_8038D1A0:
/* 8038D1A0 0038A100 28 1D 00 00 */ cmplwi r29, 0
/* 8038D1A4 0038A104 41 82 00 0C */ beq lbl_8038D1B0
/* 8038D1A8 0038A108 2C 1F 00 00 */ cmpwi r31, 0
/* 8038D1AC 0038A10C 40 82 FF 10 */ bne lbl_8038D0BC
lbl_8038D1B0:
/* 8038D1B0 0038A110 28 1D 00 00 */ cmplwi r29, 0
/* 8038D1B4 0038A114 41 82 00 68 */ beq lbl_8038D21C
/* 8038D1B8 0038A118 2C 1F 00 00 */ cmpwi r31, 0
/* 8038D1BC 0038A11C 40 82 00 60 */ bne lbl_8038D21C
/* 8038D1C0 0038A120 83 7A 00 1C */ lwz r27, 0x1c(r26)
/* 8038D1C4 0038A124 7C 1E EA 14 */ add r0, r30, r29
/* 8038D1C8 0038A128 83 FA 00 20 */ lwz r31, 0x20(r26)
/* 8038D1CC 0038A12C 7F 43 D3 78 */ mr r3, r26
/* 8038D1D0 0038A130 38 81 00 08 */ addi r4, r1, 8
/* 8038D1D4 0038A134 93 DA 00 1C */ stw r30, 0x1c(r26)
/* 8038D1D8 0038A138 93 BA 00 20 */ stw r29, 0x20(r26)
/* 8038D1DC 0038A13C 90 1A 00 24 */ stw r0, 0x24(r26)
/* 8038D1E0 0038A140 4B FF FC 4D */ bl __flush_buffer
/* 8038D1E4 0038A144 2C 03 00 00 */ cmpwi r3, 0
/* 8038D1E8 0038A148 41 82 00 14 */ beq lbl_8038D1FC
/* 8038D1EC 0038A14C 38 60 00 01 */ li r3, 1
/* 8038D1F0 0038A150 38 00 00 00 */ li r0, 0
/* 8038D1F4 0038A154 98 7A 00 0A */ stb r3, 0xa(r26)
/* 8038D1F8 0038A158 90 1A 00 28 */ stw r0, 0x28(r26)
lbl_8038D1FC:
/* 8038D1FC 0038A15C 80 01 00 08 */ lwz r0, 8(r1)
/* 8038D200 0038A160 7F 43 D3 78 */ mr r3, r26
/* 8038D204 0038A164 93 7A 00 1C */ stw r27, 0x1c(r26)
/* 8038D208 0038A168 7F 9C 02 14 */ add r28, r28, r0
/* 8038D20C 0038A16C 93 FA 00 20 */ stw r31, 0x20(r26)
/* 8038D210 0038A170 4B FF FC E1 */ bl __prep_buffer
/* 8038D214 0038A174 38 00 00 00 */ li r0, 0
/* 8038D218 0038A178 90 1A 00 28 */ stw r0, 0x28(r26)
lbl_8038D21C:
/* 8038D21C 0038A17C 88 1A 00 04 */ lbz r0, 4(r26)
/* 8038D220 0038A180 54 00 FF BE */ rlwinm r0, r0, 0x1f, 0x1e, 0x1f
/* 8038D224 0038A184 28 00 00 02 */ cmplwi r0, 2
/* 8038D228 0038A188 41 82 00 0C */ beq lbl_8038D234
/* 8038D22C 0038A18C 38 00 00 00 */ li r0, 0
/* 8038D230 0038A190 90 1A 00 28 */ stw r0, 0x28(r26)
lbl_8038D234:
/* 8038D234 0038A194 38 19 FF FF */ addi r0, r25, -1
/* 8038D238 0038A198 7C 1C 02 14 */ add r0, r28, r0
/* 8038D23C 0038A19C 7C 60 CB 96 */ divwu r3, r0, r25
lbl_8038D240:
/* 8038D240 0038A1A0 BB 21 00 14 */ lmw r25, 0x14(r1)
/* 8038D244 0038A1A4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8038D248 0038A1A8 7C 08 03 A6 */ mtlr r0
/* 8038D24C 0038A1AC 38 21 00 30 */ addi r1, r1, 0x30
/* 8038D250 0038A1B0 4E 80 00 20 */ blr
.global fwrite
fwrite:
/* 8038D254 0038A1B4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8038D258 0038A1B8 7C 08 02 A6 */ mflr r0
/* 8038D25C 0038A1BC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8038D260 0038A1C0 4B FF FC E9 */ bl __fwrite
/* 8038D264 0038A1C4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8038D268 0038A1C8 7C 08 03 A6 */ mtlr r0
/* 8038D26C 0038A1CC 38 21 00 10 */ addi r1, r1, 0x10
/* 8038D270 0038A1D0 4E 80 00 20 */ blr

View File

@ -0,0 +1,152 @@
.include "macros.inc"
.section .text, "ax"
.global fflush
fflush:
/* 8038D274 0038A1D4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8038D278 0038A1D8 7C 08 02 A6 */ mflr r0
/* 8038D27C 0038A1DC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8038D280 0038A1E0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8038D284 0038A1E4 7C 7F 1B 79 */ or. r31, r3, r3
/* 8038D288 0038A1E8 93 C1 00 08 */ stw r30, 8(r1)
/* 8038D28C 0038A1EC 40 82 00 0C */ bne lbl_8038D298
/* 8038D290 0038A1F0 4B FF DE 19 */ bl __flush_all
/* 8038D294 0038A1F4 48 00 01 00 */ b lbl_8038D394
lbl_8038D298:
/* 8038D298 0038A1F8 88 1F 00 0A */ lbz r0, 0xa(r31)
/* 8038D29C 0038A1FC 28 00 00 00 */ cmplwi r0, 0
/* 8038D2A0 0038A200 40 82 00 10 */ bne lbl_8038D2B0
/* 8038D2A4 0038A204 A0 1F 00 04 */ lhz r0, 4(r31)
/* 8038D2A8 0038A208 54 00 D7 7F */ rlwinm. r0, r0, 0x1a, 0x1d, 0x1f
/* 8038D2AC 0038A20C 40 82 00 0C */ bne lbl_8038D2B8
lbl_8038D2B0:
/* 8038D2B0 0038A210 38 60 FF FF */ li r3, -1
/* 8038D2B4 0038A214 48 00 00 E0 */ b lbl_8038D394
lbl_8038D2B8:
/* 8038D2B8 0038A218 88 1F 00 04 */ lbz r0, 4(r31)
/* 8038D2BC 0038A21C 54 00 EF 7E */ rlwinm r0, r0, 0x1d, 0x1d, 0x1f
/* 8038D2C0 0038A220 28 00 00 01 */ cmplwi r0, 1
/* 8038D2C4 0038A224 40 82 00 0C */ bne lbl_8038D2D0
/* 8038D2C8 0038A228 38 60 00 00 */ li r3, 0
/* 8038D2CC 0038A22C 48 00 00 C8 */ b lbl_8038D394
lbl_8038D2D0:
/* 8038D2D0 0038A230 88 7F 00 08 */ lbz r3, 8(r31)
/* 8038D2D4 0038A234 54 60 DF 7E */ rlwinm r0, r3, 0x1b, 0x1d, 0x1f
/* 8038D2D8 0038A238 28 00 00 03 */ cmplwi r0, 3
/* 8038D2DC 0038A23C 41 80 00 10 */ blt lbl_8038D2EC
/* 8038D2E0 0038A240 38 00 00 02 */ li r0, 2
/* 8038D2E4 0038A244 50 03 2E 34 */ rlwimi r3, r0, 5, 0x18, 0x1a
/* 8038D2E8 0038A248 98 7F 00 08 */ stb r3, 8(r31)
lbl_8038D2EC:
/* 8038D2EC 0038A24C 88 1F 00 08 */ lbz r0, 8(r31)
/* 8038D2F0 0038A250 54 00 DF 7E */ rlwinm r0, r0, 0x1b, 0x1d, 0x1f
/* 8038D2F4 0038A254 28 00 00 02 */ cmplwi r0, 2
/* 8038D2F8 0038A258 40 82 00 0C */ bne lbl_8038D304
/* 8038D2FC 0038A25C 38 00 00 00 */ li r0, 0
/* 8038D300 0038A260 90 1F 00 28 */ stw r0, 0x28(r31)
lbl_8038D304:
/* 8038D304 0038A264 88 9F 00 08 */ lbz r4, 8(r31)
/* 8038D308 0038A268 54 80 DF 7E */ rlwinm r0, r4, 0x1b, 0x1d, 0x1f
/* 8038D30C 0038A26C 28 00 00 01 */ cmplwi r0, 1
/* 8038D310 0038A270 41 82 00 18 */ beq lbl_8038D328
/* 8038D314 0038A274 38 00 00 00 */ li r0, 0
/* 8038D318 0038A278 38 60 00 00 */ li r3, 0
/* 8038D31C 0038A27C 50 04 2E 34 */ rlwimi r4, r0, 5, 0x18, 0x1a
/* 8038D320 0038A280 98 9F 00 08 */ stb r4, 8(r31)
/* 8038D324 0038A284 48 00 00 70 */ b lbl_8038D394
lbl_8038D328:
/* 8038D328 0038A288 A0 1F 00 04 */ lhz r0, 4(r31)
/* 8038D32C 0038A28C 54 00 D7 7E */ rlwinm r0, r0, 0x1a, 0x1d, 0x1f
/* 8038D330 0038A290 28 00 00 01 */ cmplwi r0, 1
/* 8038D334 0038A294 41 82 00 0C */ beq lbl_8038D340
/* 8038D338 0038A298 3B C0 00 00 */ li r30, 0
/* 8038D33C 0038A29C 48 00 00 10 */ b lbl_8038D34C
lbl_8038D340:
/* 8038D340 0038A2A0 7F E3 FB 78 */ mr r3, r31
/* 8038D344 0038A2A4 48 00 03 85 */ bl ftell
/* 8038D348 0038A2A8 7C 7E 1B 78 */ mr r30, r3
lbl_8038D34C:
/* 8038D34C 0038A2AC 7F E3 FB 78 */ mr r3, r31
/* 8038D350 0038A2B0 38 80 00 00 */ li r4, 0
/* 8038D354 0038A2B4 4B FF FA D9 */ bl __flush_buffer
/* 8038D358 0038A2B8 2C 03 00 00 */ cmpwi r3, 0
/* 8038D35C 0038A2BC 41 82 00 1C */ beq lbl_8038D378
/* 8038D360 0038A2C0 38 60 00 01 */ li r3, 1
/* 8038D364 0038A2C4 38 00 00 00 */ li r0, 0
/* 8038D368 0038A2C8 98 7F 00 0A */ stb r3, 0xa(r31)
/* 8038D36C 0038A2CC 38 60 FF FF */ li r3, -1
/* 8038D370 0038A2D0 90 1F 00 28 */ stw r0, 0x28(r31)
/* 8038D374 0038A2D4 48 00 00 20 */ b lbl_8038D394
lbl_8038D378:
/* 8038D378 0038A2D8 88 1F 00 08 */ lbz r0, 8(r31)
/* 8038D37C 0038A2DC 38 80 00 00 */ li r4, 0
/* 8038D380 0038A2E0 50 80 2E 34 */ rlwimi r0, r4, 5, 0x18, 0x1a
/* 8038D384 0038A2E4 38 60 00 00 */ li r3, 0
/* 8038D388 0038A2E8 98 1F 00 08 */ stb r0, 8(r31)
/* 8038D38C 0038A2EC 93 DF 00 18 */ stw r30, 0x18(r31)
/* 8038D390 0038A2F0 90 9F 00 28 */ stw r4, 0x28(r31)
lbl_8038D394:
/* 8038D394 0038A2F4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8038D398 0038A2F8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8038D39C 0038A2FC 83 C1 00 08 */ lwz r30, 8(r1)
/* 8038D3A0 0038A300 7C 08 03 A6 */ mtlr r0
/* 8038D3A4 0038A304 38 21 00 10 */ addi r1, r1, 0x10
/* 8038D3A8 0038A308 4E 80 00 20 */ blr
.global fclose
fclose:
/* 8038D3AC 0038A30C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8038D3B0 0038A310 7C 08 02 A6 */ mflr r0
/* 8038D3B4 0038A314 90 01 00 24 */ stw r0, 0x24(r1)
/* 8038D3B8 0038A318 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8038D3BC 0038A31C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8038D3C0 0038A320 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8038D3C4 0038A324 7C 7D 1B 79 */ or. r29, r3, r3
/* 8038D3C8 0038A328 40 82 00 0C */ bne lbl_8038D3D4
/* 8038D3CC 0038A32C 38 60 FF FF */ li r3, -1
/* 8038D3D0 0038A330 48 00 00 80 */ b lbl_8038D450
lbl_8038D3D4:
/* 8038D3D4 0038A334 A0 1D 00 04 */ lhz r0, 4(r29)
/* 8038D3D8 0038A338 54 00 D7 7F */ rlwinm. r0, r0, 0x1a, 0x1d, 0x1f
/* 8038D3DC 0038A33C 40 82 00 0C */ bne lbl_8038D3E8
/* 8038D3E0 0038A340 38 60 00 00 */ li r3, 0
/* 8038D3E4 0038A344 48 00 00 6C */ b lbl_8038D450
lbl_8038D3E8:
/* 8038D3E8 0038A348 4B FF FE 8D */ bl fflush
/* 8038D3EC 0038A34C 81 9D 00 44 */ lwz r12, 0x44(r29)
/* 8038D3F0 0038A350 7C 7E 1B 78 */ mr r30, r3
/* 8038D3F4 0038A354 80 7D 00 00 */ lwz r3, 0(r29)
/* 8038D3F8 0038A358 7D 89 03 A6 */ mtctr r12
/* 8038D3FC 0038A35C 4E 80 04 21 */ bctrl
/* 8038D400 0038A360 A0 1D 00 04 */ lhz r0, 4(r29)
/* 8038D404 0038A364 38 80 00 00 */ li r4, 0
/* 8038D408 0038A368 50 80 35 F2 */ rlwimi r0, r4, 6, 0x17, 0x19
/* 8038D40C 0038A36C 7C 7F 1B 78 */ mr r31, r3
/* 8038D410 0038A370 B0 1D 00 04 */ sth r0, 4(r29)
/* 8038D414 0038A374 90 9D 00 00 */ stw r4, 0(r29)
/* 8038D418 0038A378 88 1D 00 08 */ lbz r0, 8(r29)
/* 8038D41C 0038A37C 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
/* 8038D420 0038A380 41 82 00 0C */ beq lbl_8038D42C
/* 8038D424 0038A384 80 7D 00 1C */ lwz r3, 0x1c(r29)
/* 8038D428 0038A388 4B FF CF 31 */ bl sub_8038a358
lbl_8038D42C:
/* 8038D42C 0038A38C 2C 1E 00 00 */ cmpwi r30, 0
/* 8038D430 0038A390 38 60 00 00 */ li r3, 0
/* 8038D434 0038A394 40 82 00 0C */ bne lbl_8038D440
/* 8038D438 0038A398 2C 1F 00 00 */ cmpwi r31, 0
/* 8038D43C 0038A39C 41 82 00 08 */ beq lbl_8038D444
lbl_8038D440:
/* 8038D440 0038A3A0 38 60 00 01 */ li r3, 1
lbl_8038D444:
/* 8038D444 0038A3A4 7C 03 00 D0 */ neg r0, r3
/* 8038D448 0038A3A8 7C 00 1B 78 */ or r0, r0, r3
/* 8038D44C 0038A3AC 7C 03 FE 70 */ srawi r3, r0, 0x1f
lbl_8038D450:
/* 8038D450 0038A3B0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8038D454 0038A3B4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8038D458 0038A3B8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8038D45C 0038A3BC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8038D460 0038A3C0 7C 08 03 A6 */ mtlr r0
/* 8038D464 0038A3C4 38 21 00 20 */ addi r1, r1, 0x20
/* 8038D468 0038A3C8 4E 80 00 20 */ blr

View File

@ -0,0 +1,35 @@
.include "macros.inc"
.section .text, "ax"
.global __destroy_global_chain
__destroy_global_chain:
/* 80389644 003865A4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80389648 003865A8 7C 08 02 A6 */ mflr r0
/* 8038964C 003865AC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80389650 003865B0 48 00 00 20 */ b lbl_80389670
lbl_80389654:
/* 80389654 003865B4 80 03 00 00 */ lwz r0, 0(r3)
/* 80389658 003865B8 38 80 FF FF */ li r4, -1
/* 8038965C 003865BC 90 0D AD F0 */ stw r0, lbl_805A99B0@sda21(r13)
/* 80389660 003865C0 81 83 00 04 */ lwz r12, 4(r3)
/* 80389664 003865C4 80 63 00 08 */ lwz r3, 8(r3)
/* 80389668 003865C8 7D 89 03 A6 */ mtctr r12
/* 8038966C 003865CC 4E 80 04 21 */ bctrl
lbl_80389670:
/* 80389670 003865D0 80 6D AD F0 */ lwz r3, lbl_805A99B0@sda21(r13)
/* 80389674 003865D4 28 03 00 00 */ cmplwi r3, 0
/* 80389678 003865D8 40 82 FF DC */ bne lbl_80389654
/* 8038967C 003865DC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80389680 003865E0 7C 08 03 A6 */ mtlr r0
/* 80389684 003865E4 38 21 00 10 */ addi r1, r1, 0x10
/* 80389688 003865E8 4E 80 00 20 */ blr
.global __register_global_object
__register_global_object:
/* 8038968C 003865EC 80 0D AD F0 */ lwz r0, lbl_805A99B0@sda21(r13)
/* 80389690 003865F0 90 05 00 00 */ stw r0, 0(r5)
/* 80389694 003865F4 90 85 00 04 */ stw r4, 4(r5)
/* 80389698 003865F8 90 65 00 08 */ stw r3, 8(r5)
/* 8038969C 003865FC 90 AD AD F0 */ stw r5, lbl_805A99B0@sda21(r13)
/* 803896A0 00386600 4E 80 00 20 */ blr

View File

@ -0,0 +1,106 @@
.include "macros.inc"
.section .text, "ax"
.global wcstombs
wcstombs:
/* 8038D738 0038A698 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8038D73C 0038A69C 7C 08 02 A6 */ mflr r0
/* 8038D740 0038A6A0 90 01 00 34 */ stw r0, 0x34(r1)
/* 8038D744 0038A6A4 BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 8038D748 0038A6A8 7C 7B 1B 79 */ or. r27, r3, r3
/* 8038D74C 0038A6AC 7C BC 2B 78 */ mr r28, r5
/* 8038D750 0038A6B0 3B C0 00 00 */ li r30, 0
/* 8038D754 0038A6B4 41 82 00 0C */ beq lbl_8038D760
/* 8038D758 0038A6B8 28 04 00 00 */ cmplwi r4, 0
/* 8038D75C 0038A6BC 40 82 00 0C */ bne lbl_8038D768
lbl_8038D760:
/* 8038D760 0038A6C0 38 60 00 00 */ li r3, 0
/* 8038D764 0038A6C4 48 00 00 60 */ b lbl_8038D7C4
lbl_8038D768:
/* 8038D768 0038A6C8 7C 9D 23 78 */ mr r29, r4
/* 8038D76C 0038A6CC 48 00 00 4C */ b lbl_8038D7B8
lbl_8038D770:
/* 8038D770 0038A6D0 A0 9D 00 00 */ lhz r4, 0(r29)
/* 8038D774 0038A6D4 28 04 00 00 */ cmplwi r4, 0
/* 8038D778 0038A6D8 40 82 00 10 */ bne lbl_8038D788
/* 8038D77C 0038A6DC 38 00 00 00 */ li r0, 0
/* 8038D780 0038A6E0 7C 1B F1 AE */ stbx r0, r27, r30
/* 8038D784 0038A6E4 48 00 00 3C */ b lbl_8038D7C0
lbl_8038D788:
/* 8038D788 0038A6E8 38 61 00 08 */ addi r3, r1, 8
/* 8038D78C 0038A6EC 3B BD 00 02 */ addi r29, r29, 2
/* 8038D790 0038A6F0 48 00 00 49 */ bl unicode_to_UTF8
/* 8038D794 0038A6F4 7C 7F 1B 78 */ mr r31, r3
/* 8038D798 0038A6F8 7C 1E FA 14 */ add r0, r30, r31
/* 8038D79C 0038A6FC 7C 00 E0 40 */ cmplw r0, r28
/* 8038D7A0 0038A700 41 81 00 20 */ bgt lbl_8038D7C0
/* 8038D7A4 0038A704 7F E5 FB 78 */ mr r5, r31
/* 8038D7A8 0038A708 7C 7B F2 14 */ add r3, r27, r30
/* 8038D7AC 0038A70C 38 81 00 08 */ addi r4, r1, 8
/* 8038D7B0 0038A710 48 00 29 15 */ bl strncpy
/* 8038D7B4 0038A714 7F DE FA 14 */ add r30, r30, r31
lbl_8038D7B8:
/* 8038D7B8 0038A718 7C 1E E0 40 */ cmplw r30, r28
/* 8038D7BC 0038A71C 40 81 FF B4 */ ble lbl_8038D770
lbl_8038D7C0:
/* 8038D7C0 0038A720 7F C3 F3 78 */ mr r3, r30
lbl_8038D7C4:
/* 8038D7C4 0038A724 BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 8038D7C8 0038A728 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8038D7CC 0038A72C 7C 08 03 A6 */ mtlr r0
/* 8038D7D0 0038A730 38 21 00 30 */ addi r1, r1, 0x30
/* 8038D7D4 0038A734 4E 80 00 20 */ blr
.global unicode_to_UTF8
unicode_to_UTF8:
/* 8038D7D8 0038A738 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8038D7DC 0038A73C 28 03 00 00 */ cmplwi r3, 0
/* 8038D7E0 0038A740 80 02 CF 70 */ lwz r0, lbl_805AEC90@sda21(r2)
/* 8038D7E4 0038A744 90 01 00 08 */ stw r0, 8(r1)
/* 8038D7E8 0038A748 40 82 00 0C */ bne lbl_8038D7F4
/* 8038D7EC 0038A74C 38 60 00 00 */ li r3, 0
/* 8038D7F0 0038A750 48 00 00 84 */ b lbl_8038D874
lbl_8038D7F4:
/* 8038D7F4 0038A754 54 80 04 3E */ clrlwi r0, r4, 0x10
/* 8038D7F8 0038A758 28 00 00 80 */ cmplwi r0, 0x80
/* 8038D7FC 0038A75C 40 80 00 0C */ bge lbl_8038D808
/* 8038D800 0038A760 38 A0 00 01 */ li r5, 1
/* 8038D804 0038A764 48 00 00 18 */ b lbl_8038D81C
lbl_8038D808:
/* 8038D808 0038A768 28 00 08 00 */ cmplwi r0, 0x800
/* 8038D80C 0038A76C 40 80 00 0C */ bge lbl_8038D818
/* 8038D810 0038A770 38 A0 00 02 */ li r5, 2
/* 8038D814 0038A774 48 00 00 08 */ b lbl_8038D81C
lbl_8038D818:
/* 8038D818 0038A778 38 A0 00 03 */ li r5, 3
lbl_8038D81C:
/* 8038D81C 0038A77C 2C 05 00 02 */ cmpwi r5, 2
/* 8038D820 0038A780 7C C3 2A 14 */ add r6, r3, r5
/* 8038D824 0038A784 41 82 00 2C */ beq lbl_8038D850
/* 8038D828 0038A788 40 80 00 10 */ bge lbl_8038D838
/* 8038D82C 0038A78C 2C 05 00 01 */ cmpwi r5, 1
/* 8038D830 0038A790 40 80 00 30 */ bge lbl_8038D860
/* 8038D834 0038A794 48 00 00 3C */ b lbl_8038D870
lbl_8038D838:
/* 8038D838 0038A798 2C 05 00 04 */ cmpwi r5, 4
/* 8038D83C 0038A79C 40 80 00 34 */ bge lbl_8038D870
/* 8038D840 0038A7A0 54 80 06 BE */ clrlwi r0, r4, 0x1a
/* 8038D844 0038A7A4 54 84 D5 BE */ rlwinm r4, r4, 0x1a, 0x16, 0x1f
/* 8038D848 0038A7A8 60 00 00 80 */ ori r0, r0, 0x80
/* 8038D84C 0038A7AC 9C 06 FF FF */ stbu r0, -1(r6)
lbl_8038D850:
/* 8038D850 0038A7B0 54 80 06 BE */ clrlwi r0, r4, 0x1a
/* 8038D854 0038A7B4 54 84 D5 BE */ rlwinm r4, r4, 0x1a, 0x16, 0x1f
/* 8038D858 0038A7B8 60 00 00 80 */ ori r0, r0, 0x80
/* 8038D85C 0038A7BC 9C 06 FF FF */ stbu r0, -1(r6)
lbl_8038D860:
/* 8038D860 0038A7C0 38 61 00 08 */ addi r3, r1, 8
/* 8038D864 0038A7C4 7C 03 28 AE */ lbzx r0, r3, r5
/* 8038D868 0038A7C8 7C 80 03 78 */ or r0, r4, r0
/* 8038D86C 0038A7CC 98 06 FF FF */ stb r0, -1(r6)
lbl_8038D870:
/* 8038D870 0038A7D0 7C A3 2B 78 */ mr r3, r5
lbl_8038D874:
/* 8038D874 0038A7D4 38 21 00 10 */ addi r1, r1, 0x10
/* 8038D878 0038A7D8 4E 80 00 20 */ blr

View File

@ -0,0 +1,32 @@
.include "macros.inc"
.section .text, "ax"
.global __ptmf_test
__ptmf_test:
/* 803898FC 0038685C 80 A3 00 00 */ lwz r5, 0(r3)
/* 80389900 00386860 80 C3 00 04 */ lwz r6, 4(r3)
/* 80389904 00386864 80 E3 00 08 */ lwz r7, 8(r3)
/* 80389908 00386868 38 60 00 01 */ li r3, 1
/* 8038990C 0038686C 2C 05 00 00 */ cmpwi r5, 0
/* 80389910 00386870 2F 06 00 00 */ cmpwi cr6, r6, 0
/* 80389914 00386874 2F 87 00 00 */ cmpwi cr7, r7, 0
/* 80389918 00386878 4C 82 00 20 */ bnelr
/* 8038991C 0038687C 4C 9A 00 20 */ bnelr cr6
/* 80389920 00386880 4C 9E 00 20 */ bnelr cr7
/* 80389924 00386884 38 60 00 00 */ li r3, 0
/* 80389928 00386888 4E 80 00 20 */ blr
.global __ptmf_scall
__ptmf_scall:
/* 8038992C 0038688C 80 0C 00 00 */ lwz r0, 0(r12)
/* 80389930 00386890 81 6C 00 04 */ lwz r11, 4(r12)
/* 80389934 00386894 81 8C 00 08 */ lwz r12, 8(r12)
/* 80389938 00386898 7C 63 02 14 */ add r3, r3, r0
/* 8038993C 0038689C 2C 0B 00 00 */ cmpwi r11, 0
/* 80389940 003868A0 41 80 00 0C */ blt lbl_8038994C
/* 80389944 003868A4 7D 83 60 2E */ lwzx r12, r3, r12
/* 80389948 003868A8 7D 8C 58 2E */ lwzx r12, r12, r11
lbl_8038994C:
/* 8038994C 003868AC 7D 89 03 A6 */ mtctr r12
/* 80389950 003868B0 4E 80 04 20 */ bctr

View File

@ -0,0 +1,687 @@
.include "macros.inc"
.section .text, "ax"
.global __cvt_fp2unsigned
__cvt_fp2unsigned:
/* 80389954 003868B4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80389958 003868B8 3C 80 80 3D */ lis r4, lbl_803D85A8@h
/* 8038995C 003868BC 60 84 85 A8 */ ori r4, r4, lbl_803D85A8@l
/* 80389960 003868C0 38 60 00 00 */ li r3, 0
/* 80389964 003868C4 C8 04 00 00 */ lfd f0, 0(r4)
/* 80389968 003868C8 C8 64 00 08 */ lfd f3, 8(r4)
/* 8038996C 003868CC C8 84 00 10 */ lfd f4, 0x10(r4)
/* 80389970 003868D0 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 80389974 003868D4 FF 01 18 00 */ fcmpu cr6, f1, f3
/* 80389978 003868D8 41 80 00 30 */ blt lbl_803899A8
/* 8038997C 003868DC 38 63 FF FF */ addi r3, r3, -1
/* 80389980 003868E0 40 98 00 28 */ bge cr6, lbl_803899A8
/* 80389984 003868E4 FF 81 20 00 */ fcmpu cr7, f1, f4
/* 80389988 003868E8 FC 40 08 90 */ fmr f2, f1
/* 8038998C 003868EC 41 9C 00 08 */ blt cr7, lbl_80389994
/* 80389990 003868F0 FC 41 20 28 */ fsub f2, f1, f4
lbl_80389994:
/* 80389994 003868F4 FC 40 10 1E */ fctiwz f2, f2
/* 80389998 003868F8 D8 41 00 08 */ stfd f2, 8(r1)
/* 8038999C 003868FC 80 61 00 0C */ lwz r3, 0xc(r1)
/* 803899A0 00386900 41 9C 00 08 */ blt cr7, lbl_803899A8
/* 803899A4 00386904 3C 63 80 00 */ addis r3, r3, 0x8000
lbl_803899A8:
/* 803899A8 00386908 38 21 00 10 */ addi r1, r1, 0x10
/* 803899AC 0038690C 4E 80 00 20 */ blr
.global __save_fpr
__save_fpr:
/* 803899B0 00386910 D9 CB FF 70 */ stfd f14, -0x90(r11)
/* 803899B4 00386914 D9 EB FF 78 */ stfd f15, -0x88(r11)
/* 803899B8 00386918 DA 0B FF 80 */ stfd f16, -0x80(r11)
/* 803899BC 0038691C DA 2B FF 88 */ stfd f17, -0x78(r11)
.global sub_803899c0
sub_803899c0:
/* 803899C0 00386920 DA 4B FF 90 */ stfd f18, -0x70(r11)
/* 803899C4 00386924 DA 6B FF 98 */ stfd f19, -0x68(r11)
/* 803899C8 00386928 DA 8B FF A0 */ stfd f20, -0x60(r11)
.global sub_803899cc
sub_803899cc:
/* 803899CC 0038692C DA AB FF A8 */ stfd f21, -0x58(r11)
/* 803899D0 00386930 DA CB FF B0 */ stfd f22, -0x50(r11)
/* 803899D4 00386934 DA EB FF B8 */ stfd f23, -0x48(r11)
/* 803899D8 00386938 DB 0B FF C0 */ stfd f24, -0x40(r11)
.global sub_803899dc
sub_803899dc:
/* 803899DC 0038693C DB 2B FF C8 */ stfd f25, -0x38(r11)
.global func_803899E0
func_803899E0:
/* 803899E0 00386940 DB 4B FF D0 */ stfd f26, -0x30(r11)
.global func_803899E4
func_803899E4:
/* 803899E4 00386944 DB 6B FF D8 */ stfd f27, -0x28(r11)
.global sub_803899e8
sub_803899e8:
/* 803899E8 00386948 DB 8B FF E0 */ stfd f28, -0x20(r11)
/* 803899EC 0038694C DB AB FF E8 */ stfd f29, -0x18(r11)
/* 803899F0 00386950 DB CB FF F0 */ stfd f30, -0x10(r11)
/* 803899F4 00386954 DB EB FF F8 */ stfd f31, -8(r11)
/* 803899F8 00386958 4E 80 00 20 */ blr
.global __restore_fpr
__restore_fpr:
/* 803899FC 0038695C C9 CB FF 70 */ lfd f14, -0x90(r11)
/* 80389A00 00386960 C9 EB FF 78 */ lfd f15, -0x88(r11)
/* 80389A04 00386964 CA 0B FF 80 */ lfd f16, -0x80(r11)
/* 80389A08 00386968 CA 2B FF 88 */ lfd f17, -0x78(r11)
.global sub_80389a0c
sub_80389a0c:
/* 80389A0C 0038696C CA 4B FF 90 */ lfd f18, -0x70(r11)
/* 80389A10 00386970 CA 6B FF 98 */ lfd f19, -0x68(r11)
/* 80389A14 00386974 CA 8B FF A0 */ lfd f20, -0x60(r11)
.global sub_80389a18
sub_80389a18:
/* 80389A18 00386978 CA AB FF A8 */ lfd f21, -0x58(r11)
/* 80389A1C 0038697C CA CB FF B0 */ lfd f22, -0x50(r11)
/* 80389A20 00386980 CA EB FF B8 */ lfd f23, -0x48(r11)
/* 80389A24 00386984 CB 0B FF C0 */ lfd f24, -0x40(r11)
.global sub_80389a28
sub_80389a28:
/* 80389A28 00386988 CB 2B FF C8 */ lfd f25, -0x38(r11)
.global func_80389A2C
func_80389A2C:
/* 80389A2C 0038698C CB 4B FF D0 */ lfd f26, -0x30(r11)
.global func_80389A30
func_80389A30:
/* 80389A30 00386990 CB 6B FF D8 */ lfd f27, -0x28(r11)
.global sub_80389a34
sub_80389a34:
/* 80389A34 00386994 CB 8B FF E0 */ lfd f28, -0x20(r11)
/* 80389A38 00386998 CB AB FF E8 */ lfd f29, -0x18(r11)
/* 80389A3C 0038699C CB CB FF F0 */ lfd f30, -0x10(r11)
/* 80389A40 003869A0 CB EB FF F8 */ lfd f31, -8(r11)
/* 80389A44 003869A4 4E 80 00 20 */ blr
.global __save_gpr
__save_gpr:
/* 80389A48 003869A8 91 CB FF B8 */ stw r14, -0x48(r11)
.global func_80389A4C
func_80389A4C:
/* 80389A4C 003869AC 91 EB FF BC */ stw r15, -0x44(r11)
.global sub_80389a50
sub_80389a50:
/* 80389A50 003869B0 92 0B FF C0 */ stw r16, -0x40(r11)
/* 80389A54 003869B4 92 2B FF C4 */ stw r17, -0x3c(r11)
.global func_80389A58
func_80389A58:
/* 80389A58 003869B8 92 4B FF C8 */ stw r18, -0x38(r11)
/* 80389A5C 003869BC 92 6B FF CC */ stw r19, -0x34(r11)
.global func_80389A60
func_80389A60:
/* 80389A60 003869C0 92 8B FF D0 */ stw r20, -0x30(r11)
.global func_80389A64
func_80389A64:
/* 80389A64 003869C4 92 AB FF D4 */ stw r21, -0x2c(r11)
.global sub_80389a68
sub_80389a68:
/* 80389A68 003869C8 92 CB FF D8 */ stw r22, -0x28(r11)
.global func_80389A6C
func_80389A6C:
/* 80389A6C 003869CC 92 EB FF DC */ stw r23, -0x24(r11)
.global func_80389A70
func_80389A70:
/* 80389A70 003869D0 93 0B FF E0 */ stw r24, -0x20(r11)
.global func_80389A74
func_80389A74:
/* 80389A74 003869D4 93 2B FF E4 */ stw r25, -0x1c(r11)
.global func_80389A78
func_80389A78:
/* 80389A78 003869D8 93 4B FF E8 */ stw r26, -0x18(r11)
.global sub_80389a7c
sub_80389a7c:
/* 80389A7C 003869DC 93 6B FF EC */ stw r27, -0x14(r11)
/* 80389A80 003869E0 93 8B FF F0 */ stw r28, -0x10(r11)
/* 80389A84 003869E4 93 AB FF F4 */ stw r29, -0xc(r11)
/* 80389A88 003869E8 93 CB FF F8 */ stw r30, -8(r11)
/* 80389A8C 003869EC 93 EB FF FC */ stw r31, -4(r11)
/* 80389A90 003869F0 4E 80 00 20 */ blr
.global __restore_gpr
__restore_gpr:
/* 80389A94 003869F4 81 CB FF B8 */ lwz r14, -0x48(r11)
.global func_80389A98
func_80389A98:
/* 80389A98 003869F8 81 EB FF BC */ lwz r15, -0x44(r11)
.global _restgpr_16
_restgpr_16:
/* 80389A9C 003869FC 82 0B FF C0 */ lwz r16, -0x40(r11)
/* 80389AA0 00386A00 82 2B FF C4 */ lwz r17, -0x3c(r11)
.global _restgpr_18
_restgpr_18:
/* 80389AA4 00386A04 82 4B FF C8 */ lwz r18, -0x38(r11)
/* 80389AA8 00386A08 82 6B FF CC */ lwz r19, -0x34(r11)
.global _restgpr_20
_restgpr_20:
/* 80389AAC 00386A0C 82 8B FF D0 */ lwz r20, -0x30(r11)
.global _restgpr_21
_restgpr_21:
/* 80389AB0 00386A10 82 AB FF D4 */ lwz r21, -0x2c(r11)
.global _restgpr_22
_restgpr_22:
/* 80389AB4 00386A14 82 CB FF D8 */ lwz r22, -0x28(r11)
.global _restgpr_23
_restgpr_23:
/* 80389AB8 00386A18 82 EB FF DC */ lwz r23, -0x24(r11)
.global _restgpr_24
_restgpr_24:
/* 80389ABC 00386A1C 83 0B FF E0 */ lwz r24, -0x20(r11)
.global _restgpr_25
_restgpr_25:
/* 80389AC0 00386A20 83 2B FF E4 */ lwz r25, -0x1c(r11)
.global _restgpr_26
_restgpr_26:
/* 80389AC4 00386A24 83 4B FF E8 */ lwz r26, -0x18(r11)
.global _restgpr_27
_restgpr_27:
/* 80389AC8 00386A28 83 6B FF EC */ lwz r27, -0x14(r11)
/* 80389ACC 00386A2C 83 8B FF F0 */ lwz r28, -0x10(r11)
/* 80389AD0 00386A30 83 AB FF F4 */ lwz r29, -0xc(r11)
/* 80389AD4 00386A34 83 CB FF F8 */ lwz r30, -8(r11)
/* 80389AD8 00386A38 83 EB FF FC */ lwz r31, -4(r11)
/* 80389ADC 00386A3C 4E 80 00 20 */ blr
.global __div2u
__div2u:
/* 80389AE0 00386A40 2C 03 00 00 */ cmpwi r3, 0
/* 80389AE4 00386A44 7C 60 00 34 */ cntlzw r0, r3
/* 80389AE8 00386A48 7C 89 00 34 */ cntlzw r9, r4
/* 80389AEC 00386A4C 40 82 00 08 */ bne lbl_80389AF4
/* 80389AF0 00386A50 38 09 00 20 */ addi r0, r9, 0x20
lbl_80389AF4:
/* 80389AF4 00386A54 2C 05 00 00 */ cmpwi r5, 0
/* 80389AF8 00386A58 7C A9 00 34 */ cntlzw r9, r5
/* 80389AFC 00386A5C 7C CA 00 34 */ cntlzw r10, r6
/* 80389B00 00386A60 40 82 00 08 */ bne lbl_80389B08
/* 80389B04 00386A64 39 2A 00 20 */ addi r9, r10, 0x20
lbl_80389B08:
/* 80389B08 00386A68 7C 00 48 00 */ cmpw r0, r9
/* 80389B0C 00386A6C 21 40 00 40 */ subfic r10, r0, 0x40
/* 80389B10 00386A70 41 81 00 B0 */ bgt lbl_80389BC0
/* 80389B14 00386A74 39 29 00 01 */ addi r9, r9, 1
/* 80389B18 00386A78 21 29 00 40 */ subfic r9, r9, 0x40
/* 80389B1C 00386A7C 7C 00 4A 14 */ add r0, r0, r9
/* 80389B20 00386A80 7D 29 50 50 */ subf r9, r9, r10
/* 80389B24 00386A84 7D 29 03 A6 */ mtctr r9
/* 80389B28 00386A88 2C 09 00 20 */ cmpwi r9, 0x20
/* 80389B2C 00386A8C 38 E9 FF E0 */ addi r7, r9, -32
/* 80389B30 00386A90 41 80 00 10 */ blt lbl_80389B40
/* 80389B34 00386A94 7C 68 3C 30 */ srw r8, r3, r7
/* 80389B38 00386A98 38 E0 00 00 */ li r7, 0
/* 80389B3C 00386A9C 48 00 00 18 */ b lbl_80389B54
lbl_80389B40:
/* 80389B40 00386AA0 7C 88 4C 30 */ srw r8, r4, r9
/* 80389B44 00386AA4 20 E9 00 20 */ subfic r7, r9, 0x20
/* 80389B48 00386AA8 7C 67 38 30 */ slw r7, r3, r7
/* 80389B4C 00386AAC 7D 08 3B 78 */ or r8, r8, r7
/* 80389B50 00386AB0 7C 67 4C 30 */ srw r7, r3, r9
lbl_80389B54:
/* 80389B54 00386AB4 2C 00 00 20 */ cmpwi r0, 0x20
/* 80389B58 00386AB8 31 20 FF E0 */ addic r9, r0, -32
/* 80389B5C 00386ABC 41 80 00 10 */ blt lbl_80389B6C
/* 80389B60 00386AC0 7C 83 48 30 */ slw r3, r4, r9
/* 80389B64 00386AC4 38 80 00 00 */ li r4, 0
/* 80389B68 00386AC8 48 00 00 18 */ b lbl_80389B80
lbl_80389B6C:
/* 80389B6C 00386ACC 7C 63 00 30 */ slw r3, r3, r0
/* 80389B70 00386AD0 21 20 00 20 */ subfic r9, r0, 0x20
/* 80389B74 00386AD4 7C 89 4C 30 */ srw r9, r4, r9
/* 80389B78 00386AD8 7C 63 4B 78 */ or r3, r3, r9
/* 80389B7C 00386ADC 7C 84 00 30 */ slw r4, r4, r0
lbl_80389B80:
/* 80389B80 00386AE0 39 40 FF FF */ li r10, -1
/* 80389B84 00386AE4 30 E7 00 00 */ addic r7, r7, 0
lbl_80389B88:
/* 80389B88 00386AE8 7C 84 21 14 */ adde r4, r4, r4
/* 80389B8C 00386AEC 7C 63 19 14 */ adde r3, r3, r3
/* 80389B90 00386AF0 7D 08 41 14 */ adde r8, r8, r8
/* 80389B94 00386AF4 7C E7 39 14 */ adde r7, r7, r7
/* 80389B98 00386AF8 7C 06 40 10 */ subfc r0, r6, r8
/* 80389B9C 00386AFC 7D 25 39 11 */ subfe. r9, r5, r7
/* 80389BA0 00386B00 41 80 00 10 */ blt lbl_80389BB0
/* 80389BA4 00386B04 7C 08 03 78 */ mr r8, r0
/* 80389BA8 00386B08 7D 27 4B 78 */ mr r7, r9
/* 80389BAC 00386B0C 30 0A 00 01 */ addic r0, r10, 1
lbl_80389BB0:
/* 80389BB0 00386B10 42 00 FF D8 */ bdnz lbl_80389B88
/* 80389BB4 00386B14 7C 84 21 14 */ adde r4, r4, r4
/* 80389BB8 00386B18 7C 63 19 14 */ adde r3, r3, r3
/* 80389BBC 00386B1C 4E 80 00 20 */ blr
lbl_80389BC0:
/* 80389BC0 00386B20 38 80 00 00 */ li r4, 0
/* 80389BC4 00386B24 38 60 00 00 */ li r3, 0
/* 80389BC8 00386B28 4E 80 00 20 */ blr
.global __div2i
__div2i:
/* 80389BCC 00386B2C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80389BD0 00386B30 54 69 00 01 */ rlwinm. r9, r3, 0, 0, 0
/* 80389BD4 00386B34 41 82 00 0C */ beq lbl_80389BE0
/* 80389BD8 00386B38 20 84 00 00 */ subfic r4, r4, 0
/* 80389BDC 00386B3C 7C 63 01 90 */ subfze r3, r3
lbl_80389BE0:
/* 80389BE0 00386B40 91 21 00 08 */ stw r9, 8(r1)
/* 80389BE4 00386B44 54 AA 00 01 */ rlwinm. r10, r5, 0, 0, 0
/* 80389BE8 00386B48 41 82 00 0C */ beq lbl_80389BF4
/* 80389BEC 00386B4C 20 C6 00 00 */ subfic r6, r6, 0
/* 80389BF0 00386B50 7C A5 01 90 */ subfze r5, r5
lbl_80389BF4:
/* 80389BF4 00386B54 91 41 00 0C */ stw r10, 0xc(r1)
/* 80389BF8 00386B58 2C 03 00 00 */ cmpwi r3, 0
/* 80389BFC 00386B5C 7C 60 00 34 */ cntlzw r0, r3
/* 80389C00 00386B60 7C 89 00 34 */ cntlzw r9, r4
/* 80389C04 00386B64 40 82 00 08 */ bne lbl_80389C0C
/* 80389C08 00386B68 38 09 00 20 */ addi r0, r9, 0x20
lbl_80389C0C:
/* 80389C0C 00386B6C 2C 05 00 00 */ cmpwi r5, 0
/* 80389C10 00386B70 7C A9 00 34 */ cntlzw r9, r5
/* 80389C14 00386B74 7C CA 00 34 */ cntlzw r10, r6
/* 80389C18 00386B78 40 82 00 08 */ bne lbl_80389C20
/* 80389C1C 00386B7C 39 2A 00 20 */ addi r9, r10, 0x20
lbl_80389C20:
/* 80389C20 00386B80 7C 00 48 00 */ cmpw r0, r9
/* 80389C24 00386B84 21 40 00 40 */ subfic r10, r0, 0x40
/* 80389C28 00386B88 41 81 00 CC */ bgt lbl_80389CF4
/* 80389C2C 00386B8C 39 29 00 01 */ addi r9, r9, 1
/* 80389C30 00386B90 21 29 00 40 */ subfic r9, r9, 0x40
/* 80389C34 00386B94 7C 00 4A 14 */ add r0, r0, r9
/* 80389C38 00386B98 7D 29 50 50 */ subf r9, r9, r10
/* 80389C3C 00386B9C 7D 29 03 A6 */ mtctr r9
/* 80389C40 00386BA0 2C 09 00 20 */ cmpwi r9, 0x20
/* 80389C44 00386BA4 38 E9 FF E0 */ addi r7, r9, -32
/* 80389C48 00386BA8 41 80 00 10 */ blt lbl_80389C58
/* 80389C4C 00386BAC 7C 68 3C 30 */ srw r8, r3, r7
/* 80389C50 00386BB0 38 E0 00 00 */ li r7, 0
/* 80389C54 00386BB4 48 00 00 18 */ b lbl_80389C6C
lbl_80389C58:
/* 80389C58 00386BB8 7C 88 4C 30 */ srw r8, r4, r9
/* 80389C5C 00386BBC 20 E9 00 20 */ subfic r7, r9, 0x20
/* 80389C60 00386BC0 7C 67 38 30 */ slw r7, r3, r7
/* 80389C64 00386BC4 7D 08 3B 78 */ or r8, r8, r7
/* 80389C68 00386BC8 7C 67 4C 30 */ srw r7, r3, r9
lbl_80389C6C:
/* 80389C6C 00386BCC 2C 00 00 20 */ cmpwi r0, 0x20
/* 80389C70 00386BD0 31 20 FF E0 */ addic r9, r0, -32
/* 80389C74 00386BD4 41 80 00 10 */ blt lbl_80389C84
/* 80389C78 00386BD8 7C 83 48 30 */ slw r3, r4, r9
/* 80389C7C 00386BDC 38 80 00 00 */ li r4, 0
/* 80389C80 00386BE0 48 00 00 18 */ b lbl_80389C98
lbl_80389C84:
/* 80389C84 00386BE4 7C 63 00 30 */ slw r3, r3, r0
/* 80389C88 00386BE8 21 20 00 20 */ subfic r9, r0, 0x20
/* 80389C8C 00386BEC 7C 89 4C 30 */ srw r9, r4, r9
/* 80389C90 00386BF0 7C 63 4B 78 */ or r3, r3, r9
/* 80389C94 00386BF4 7C 84 00 30 */ slw r4, r4, r0
lbl_80389C98:
/* 80389C98 00386BF8 39 40 FF FF */ li r10, -1
/* 80389C9C 00386BFC 30 E7 00 00 */ addic r7, r7, 0
lbl_80389CA0:
/* 80389CA0 00386C00 7C 84 21 14 */ adde r4, r4, r4
/* 80389CA4 00386C04 7C 63 19 14 */ adde r3, r3, r3
/* 80389CA8 00386C08 7D 08 41 14 */ adde r8, r8, r8
/* 80389CAC 00386C0C 7C E7 39 14 */ adde r7, r7, r7
/* 80389CB0 00386C10 7C 06 40 10 */ subfc r0, r6, r8
/* 80389CB4 00386C14 7D 25 39 11 */ subfe. r9, r5, r7
/* 80389CB8 00386C18 41 80 00 10 */ blt lbl_80389CC8
/* 80389CBC 00386C1C 7C 08 03 78 */ mr r8, r0
/* 80389CC0 00386C20 7D 27 4B 78 */ mr r7, r9
/* 80389CC4 00386C24 30 0A 00 01 */ addic r0, r10, 1
lbl_80389CC8:
/* 80389CC8 00386C28 42 00 FF D8 */ bdnz lbl_80389CA0
/* 80389CCC 00386C2C 7C 84 21 14 */ adde r4, r4, r4
/* 80389CD0 00386C30 7C 63 19 14 */ adde r3, r3, r3
/* 80389CD4 00386C34 81 21 00 08 */ lwz r9, 8(r1)
/* 80389CD8 00386C38 81 41 00 0C */ lwz r10, 0xc(r1)
/* 80389CDC 00386C3C 7D 27 52 79 */ xor. r7, r9, r10
/* 80389CE0 00386C40 41 82 00 1C */ beq lbl_80389CFC
/* 80389CE4 00386C44 2C 09 00 00 */ cmpwi r9, 0
/* 80389CE8 00386C48 20 84 00 00 */ subfic r4, r4, 0
/* 80389CEC 00386C4C 7C 63 01 90 */ subfze r3, r3
/* 80389CF0 00386C50 48 00 00 0C */ b lbl_80389CFC
lbl_80389CF4:
/* 80389CF4 00386C54 38 80 00 00 */ li r4, 0
/* 80389CF8 00386C58 38 60 00 00 */ li r3, 0
lbl_80389CFC:
/* 80389CFC 00386C5C 38 21 00 10 */ addi r1, r1, 0x10
/* 80389D00 00386C60 4E 80 00 20 */ blr
.global __mod2u
__mod2u:
/* 80389D04 00386C64 2C 03 00 00 */ cmpwi r3, 0
/* 80389D08 00386C68 7C 60 00 34 */ cntlzw r0, r3
/* 80389D0C 00386C6C 7C 89 00 34 */ cntlzw r9, r4
/* 80389D10 00386C70 40 82 00 08 */ bne lbl_80389D18
/* 80389D14 00386C74 38 09 00 20 */ addi r0, r9, 0x20
lbl_80389D18:
/* 80389D18 00386C78 2C 05 00 00 */ cmpwi r5, 0
/* 80389D1C 00386C7C 7C A9 00 34 */ cntlzw r9, r5
/* 80389D20 00386C80 7C CA 00 34 */ cntlzw r10, r6
/* 80389D24 00386C84 40 82 00 08 */ bne lbl_80389D2C
/* 80389D28 00386C88 39 2A 00 20 */ addi r9, r10, 0x20
lbl_80389D2C:
/* 80389D2C 00386C8C 7C 00 48 00 */ cmpw r0, r9
/* 80389D30 00386C90 21 40 00 40 */ subfic r10, r0, 0x40
/* 80389D34 00386C94 4D 81 00 20 */ bgtlr
/* 80389D38 00386C98 39 29 00 01 */ addi r9, r9, 1
/* 80389D3C 00386C9C 21 29 00 40 */ subfic r9, r9, 0x40
/* 80389D40 00386CA0 7C 00 4A 14 */ add r0, r0, r9
/* 80389D44 00386CA4 7D 29 50 50 */ subf r9, r9, r10
/* 80389D48 00386CA8 7D 29 03 A6 */ mtctr r9
/* 80389D4C 00386CAC 2C 09 00 20 */ cmpwi r9, 0x20
/* 80389D50 00386CB0 38 E9 FF E0 */ addi r7, r9, -32
/* 80389D54 00386CB4 41 80 00 10 */ blt lbl_80389D64
/* 80389D58 00386CB8 7C 68 3C 30 */ srw r8, r3, r7
/* 80389D5C 00386CBC 38 E0 00 00 */ li r7, 0
/* 80389D60 00386CC0 48 00 00 18 */ b lbl_80389D78
lbl_80389D64:
/* 80389D64 00386CC4 7C 88 4C 30 */ srw r8, r4, r9
/* 80389D68 00386CC8 20 E9 00 20 */ subfic r7, r9, 0x20
/* 80389D6C 00386CCC 7C 67 38 30 */ slw r7, r3, r7
/* 80389D70 00386CD0 7D 08 3B 78 */ or r8, r8, r7
/* 80389D74 00386CD4 7C 67 4C 30 */ srw r7, r3, r9
lbl_80389D78:
/* 80389D78 00386CD8 2C 00 00 20 */ cmpwi r0, 0x20
/* 80389D7C 00386CDC 31 20 FF E0 */ addic r9, r0, -32
/* 80389D80 00386CE0 41 80 00 10 */ blt lbl_80389D90
/* 80389D84 00386CE4 7C 83 48 30 */ slw r3, r4, r9
/* 80389D88 00386CE8 38 80 00 00 */ li r4, 0
/* 80389D8C 00386CEC 48 00 00 18 */ b lbl_80389DA4
lbl_80389D90:
/* 80389D90 00386CF0 7C 63 00 30 */ slw r3, r3, r0
/* 80389D94 00386CF4 21 20 00 20 */ subfic r9, r0, 0x20
/* 80389D98 00386CF8 7C 89 4C 30 */ srw r9, r4, r9
/* 80389D9C 00386CFC 7C 63 4B 78 */ or r3, r3, r9
/* 80389DA0 00386D00 7C 84 00 30 */ slw r4, r4, r0
lbl_80389DA4:
/* 80389DA4 00386D04 39 40 FF FF */ li r10, -1
/* 80389DA8 00386D08 30 E7 00 00 */ addic r7, r7, 0
lbl_80389DAC:
/* 80389DAC 00386D0C 7C 84 21 14 */ adde r4, r4, r4
/* 80389DB0 00386D10 7C 63 19 14 */ adde r3, r3, r3
/* 80389DB4 00386D14 7D 08 41 14 */ adde r8, r8, r8
/* 80389DB8 00386D18 7C E7 39 14 */ adde r7, r7, r7
/* 80389DBC 00386D1C 7C 06 40 10 */ subfc r0, r6, r8
/* 80389DC0 00386D20 7D 25 39 11 */ subfe. r9, r5, r7
/* 80389DC4 00386D24 41 80 00 10 */ blt lbl_80389DD4
/* 80389DC8 00386D28 7C 08 03 78 */ mr r8, r0
/* 80389DCC 00386D2C 7D 27 4B 78 */ mr r7, r9
/* 80389DD0 00386D30 30 0A 00 01 */ addic r0, r10, 1
lbl_80389DD4:
/* 80389DD4 00386D34 42 00 FF D8 */ bdnz lbl_80389DAC
/* 80389DD8 00386D38 7D 04 43 78 */ mr r4, r8
/* 80389DDC 00386D3C 7C E3 3B 78 */ mr r3, r7
/* 80389DE0 00386D40 4E 80 00 20 */ blr
.global sub_80389de4
sub_80389de4:
/* 80389DE4 00386D44 4E 80 00 20 */ blr
.global __mod2i
__mod2i:
/* 80389DE8 00386D48 2F 83 00 00 */ cmpwi cr7, r3, 0
/* 80389DEC 00386D4C 40 9C 00 0C */ bge cr7, lbl_80389DF8
/* 80389DF0 00386D50 20 84 00 00 */ subfic r4, r4, 0
/* 80389DF4 00386D54 7C 63 01 90 */ subfze r3, r3
lbl_80389DF8:
/* 80389DF8 00386D58 2C 05 00 00 */ cmpwi r5, 0
/* 80389DFC 00386D5C 40 80 00 0C */ bge lbl_80389E08
/* 80389E00 00386D60 20 C6 00 00 */ subfic r6, r6, 0
/* 80389E04 00386D64 7C A5 01 90 */ subfze r5, r5
lbl_80389E08:
/* 80389E08 00386D68 2C 03 00 00 */ cmpwi r3, 0
/* 80389E0C 00386D6C 7C 60 00 34 */ cntlzw r0, r3
/* 80389E10 00386D70 7C 89 00 34 */ cntlzw r9, r4
/* 80389E14 00386D74 40 82 00 08 */ bne lbl_80389E1C
/* 80389E18 00386D78 38 09 00 20 */ addi r0, r9, 0x20
lbl_80389E1C:
/* 80389E1C 00386D7C 2C 05 00 00 */ cmpwi r5, 0
/* 80389E20 00386D80 7C A9 00 34 */ cntlzw r9, r5
/* 80389E24 00386D84 7C CA 00 34 */ cntlzw r10, r6
/* 80389E28 00386D88 40 82 00 08 */ bne lbl_80389E30
/* 80389E2C 00386D8C 39 2A 00 20 */ addi r9, r10, 0x20
lbl_80389E30:
/* 80389E30 00386D90 7C 00 48 00 */ cmpw r0, r9
/* 80389E34 00386D94 21 40 00 40 */ subfic r10, r0, 0x40
/* 80389E38 00386D98 41 81 00 AC */ bgt lbl_80389EE4
/* 80389E3C 00386D9C 39 29 00 01 */ addi r9, r9, 1
/* 80389E40 00386DA0 21 29 00 40 */ subfic r9, r9, 0x40
/* 80389E44 00386DA4 7C 00 4A 14 */ add r0, r0, r9
/* 80389E48 00386DA8 7D 29 50 50 */ subf r9, r9, r10
/* 80389E4C 00386DAC 7D 29 03 A6 */ mtctr r9
/* 80389E50 00386DB0 2C 09 00 20 */ cmpwi r9, 0x20
/* 80389E54 00386DB4 38 E9 FF E0 */ addi r7, r9, -32
/* 80389E58 00386DB8 41 80 00 10 */ blt lbl_80389E68
/* 80389E5C 00386DBC 7C 68 3C 30 */ srw r8, r3, r7
/* 80389E60 00386DC0 38 E0 00 00 */ li r7, 0
/* 80389E64 00386DC4 48 00 00 18 */ b lbl_80389E7C
lbl_80389E68:
/* 80389E68 00386DC8 7C 88 4C 30 */ srw r8, r4, r9
/* 80389E6C 00386DCC 20 E9 00 20 */ subfic r7, r9, 0x20
/* 80389E70 00386DD0 7C 67 38 30 */ slw r7, r3, r7
/* 80389E74 00386DD4 7D 08 3B 78 */ or r8, r8, r7
/* 80389E78 00386DD8 7C 67 4C 30 */ srw r7, r3, r9
lbl_80389E7C:
/* 80389E7C 00386DDC 2C 00 00 20 */ cmpwi r0, 0x20
/* 80389E80 00386DE0 31 20 FF E0 */ addic r9, r0, -32
/* 80389E84 00386DE4 41 80 00 10 */ blt lbl_80389E94
/* 80389E88 00386DE8 7C 83 48 30 */ slw r3, r4, r9
/* 80389E8C 00386DEC 38 80 00 00 */ li r4, 0
/* 80389E90 00386DF0 48 00 00 18 */ b lbl_80389EA8
lbl_80389E94:
/* 80389E94 00386DF4 7C 63 00 30 */ slw r3, r3, r0
/* 80389E98 00386DF8 21 20 00 20 */ subfic r9, r0, 0x20
/* 80389E9C 00386DFC 7C 89 4C 30 */ srw r9, r4, r9
/* 80389EA0 00386E00 7C 63 4B 78 */ or r3, r3, r9
/* 80389EA4 00386E04 7C 84 00 30 */ slw r4, r4, r0
lbl_80389EA8:
/* 80389EA8 00386E08 39 40 FF FF */ li r10, -1
/* 80389EAC 00386E0C 30 E7 00 00 */ addic r7, r7, 0
lbl_80389EB0:
/* 80389EB0 00386E10 7C 84 21 14 */ adde r4, r4, r4
/* 80389EB4 00386E14 7C 63 19 14 */ adde r3, r3, r3
/* 80389EB8 00386E18 7D 08 41 14 */ adde r8, r8, r8
/* 80389EBC 00386E1C 7C E7 39 14 */ adde r7, r7, r7
/* 80389EC0 00386E20 7C 06 40 10 */ subfc r0, r6, r8
/* 80389EC4 00386E24 7D 25 39 11 */ subfe. r9, r5, r7
/* 80389EC8 00386E28 41 80 00 10 */ blt lbl_80389ED8
/* 80389ECC 00386E2C 7C 08 03 78 */ mr r8, r0
/* 80389ED0 00386E30 7D 27 4B 78 */ mr r7, r9
/* 80389ED4 00386E34 30 0A 00 01 */ addic r0, r10, 1
lbl_80389ED8:
/* 80389ED8 00386E38 42 00 FF D8 */ bdnz lbl_80389EB0
/* 80389EDC 00386E3C 7D 04 43 78 */ mr r4, r8
/* 80389EE0 00386E40 7C E3 3B 78 */ mr r3, r7
lbl_80389EE4:
/* 80389EE4 00386E44 4C 9C 00 20 */ bgelr cr7
/* 80389EE8 00386E48 20 84 00 00 */ subfic r4, r4, 0
/* 80389EEC 00386E4C 7C 63 01 90 */ subfze r3, r3
/* 80389EF0 00386E50 4E 80 00 20 */ blr
.global __shl2i
__shl2i:
/* 80389EF4 00386E54 21 05 00 20 */ subfic r8, r5, 0x20
/* 80389EF8 00386E58 31 25 FF E0 */ addic r9, r5, -32
/* 80389EFC 00386E5C 7C 63 28 30 */ slw r3, r3, r5
/* 80389F00 00386E60 7C 8A 44 30 */ srw r10, r4, r8
/* 80389F04 00386E64 7C 63 53 78 */ or r3, r3, r10
/* 80389F08 00386E68 7C 8A 48 30 */ slw r10, r4, r9
/* 80389F0C 00386E6C 7C 63 53 78 */ or r3, r3, r10
/* 80389F10 00386E70 7C 84 28 30 */ slw r4, r4, r5
/* 80389F14 00386E74 4E 80 00 20 */ blr
.global __shr2u
__shr2u:
/* 80389F18 00386E78 21 05 00 20 */ subfic r8, r5, 0x20
/* 80389F1C 00386E7C 31 25 FF E0 */ addic r9, r5, -32
/* 80389F20 00386E80 7C 84 2C 30 */ srw r4, r4, r5
/* 80389F24 00386E84 7C 6A 40 30 */ slw r10, r3, r8
/* 80389F28 00386E88 7C 84 53 78 */ or r4, r4, r10
/* 80389F2C 00386E8C 7C 6A 4C 30 */ srw r10, r3, r9
/* 80389F30 00386E90 7C 84 53 78 */ or r4, r4, r10
/* 80389F34 00386E94 7C 63 2C 30 */ srw r3, r3, r5
/* 80389F38 00386E98 4E 80 00 20 */ blr
.global __shr2i
__shr2i:
/* 80389F3C 00386E9C 21 05 00 20 */ subfic r8, r5, 0x20
/* 80389F40 00386EA0 35 25 FF E0 */ addic. r9, r5, -32
/* 80389F44 00386EA4 7C 84 2C 30 */ srw r4, r4, r5
/* 80389F48 00386EA8 7C 6A 40 30 */ slw r10, r3, r8
/* 80389F4C 00386EAC 7C 84 53 78 */ or r4, r4, r10
/* 80389F50 00386EB0 7C 6A 4E 30 */ sraw r10, r3, r9
/* 80389F54 00386EB4 40 81 00 08 */ ble lbl_80389F5C
/* 80389F58 00386EB8 7C 84 53 78 */ or r4, r4, r10
lbl_80389F5C:
/* 80389F5C 00386EBC 7C 63 2E 30 */ sraw r3, r3, r5
/* 80389F60 00386EC0 4E 80 00 20 */ blr
.global __cvt_sll_flt
__cvt_sll_flt:
/* 80389F64 00386EC4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80389F68 00386EC8 54 65 00 01 */ rlwinm. r5, r3, 0, 0, 0
/* 80389F6C 00386ECC 41 82 00 0C */ beq lbl_80389F78
/* 80389F70 00386ED0 20 84 00 00 */ subfic r4, r4, 0
/* 80389F74 00386ED4 7C 63 01 90 */ subfze r3, r3
lbl_80389F78:
/* 80389F78 00386ED8 7C 67 23 79 */ or. r7, r3, r4
/* 80389F7C 00386EDC 38 C0 00 00 */ li r6, 0
/* 80389F80 00386EE0 41 82 00 80 */ beq lbl_8038A000
/* 80389F84 00386EE4 7C 67 00 34 */ cntlzw r7, r3
/* 80389F88 00386EE8 7C 88 00 34 */ cntlzw r8, r4
/* 80389F8C 00386EEC 54 E9 D0 08 */ rlwinm r9, r7, 0x1a, 0, 4
/* 80389F90 00386EF0 7D 29 FE 70 */ srawi r9, r9, 0x1f
/* 80389F94 00386EF4 7D 29 40 38 */ and r9, r9, r8
/* 80389F98 00386EF8 7C E7 4A 14 */ add r7, r7, r9
/* 80389F9C 00386EFC 21 07 00 20 */ subfic r8, r7, 0x20
/* 80389FA0 00386F00 31 27 FF E0 */ addic r9, r7, -32
/* 80389FA4 00386F04 7C 63 38 30 */ slw r3, r3, r7
/* 80389FA8 00386F08 7C 8A 44 30 */ srw r10, r4, r8
/* 80389FAC 00386F0C 7C 63 53 78 */ or r3, r3, r10
/* 80389FB0 00386F10 7C 8A 48 30 */ slw r10, r4, r9
/* 80389FB4 00386F14 7C 63 53 78 */ or r3, r3, r10
/* 80389FB8 00386F18 7C 84 38 30 */ slw r4, r4, r7
/* 80389FBC 00386F1C 7C C7 30 50 */ subf r6, r7, r6
/* 80389FC0 00386F20 54 87 05 7E */ clrlwi r7, r4, 0x15
/* 80389FC4 00386F24 2C 07 04 00 */ cmpwi r7, 0x400
/* 80389FC8 00386F28 38 C6 04 3E */ addi r6, r6, 0x43e
/* 80389FCC 00386F2C 41 80 00 1C */ blt lbl_80389FE8
/* 80389FD0 00386F30 41 81 00 0C */ bgt lbl_80389FDC
/* 80389FD4 00386F34 54 87 05 29 */ rlwinm. r7, r4, 0, 0x14, 0x14
/* 80389FD8 00386F38 41 82 00 10 */ beq lbl_80389FE8
lbl_80389FDC:
/* 80389FDC 00386F3C 30 84 08 00 */ addic r4, r4, 0x800
/* 80389FE0 00386F40 7C 63 01 94 */ addze r3, r3
/* 80389FE4 00386F44 7C C6 01 94 */ addze r6, r6
lbl_80389FE8:
/* 80389FE8 00386F48 54 84 A8 3E */ rotlwi r4, r4, 0x15
/* 80389FEC 00386F4C 50 64 A8 14 */ rlwimi r4, r3, 0x15, 0, 0xa
/* 80389FF0 00386F50 54 63 AB 3E */ rlwinm r3, r3, 0x15, 0xc, 0x1f
/* 80389FF4 00386F54 54 C6 A0 16 */ slwi r6, r6, 0x14
/* 80389FF8 00386F58 7C C3 1B 78 */ or r3, r6, r3
/* 80389FFC 00386F5C 7C A3 1B 78 */ or r3, r5, r3
lbl_8038A000:
/* 8038A000 00386F60 90 61 00 08 */ stw r3, 8(r1)
/* 8038A004 00386F64 90 81 00 0C */ stw r4, 0xc(r1)
/* 8038A008 00386F68 C8 21 00 08 */ lfd f1, 8(r1)
/* 8038A00C 00386F6C FC 20 08 18 */ frsp f1, f1
/* 8038A010 00386F70 38 21 00 10 */ addi r1, r1, 0x10
/* 8038A014 00386F74 4E 80 00 20 */ blr
.global __cvt_dbl_usll
__cvt_dbl_usll:
/* 8038A018 00386F78 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8038A01C 00386F7C D8 21 00 08 */ stfd f1, 8(r1)
/* 8038A020 00386F80 80 61 00 08 */ lwz r3, 8(r1)
/* 8038A024 00386F84 80 81 00 0C */ lwz r4, 0xc(r1)
/* 8038A028 00386F88 54 65 65 7E */ rlwinm r5, r3, 0xc, 0x15, 0x1f
/* 8038A02C 00386F8C 28 05 03 FF */ cmplwi r5, 0x3ff
/* 8038A030 00386F90 40 80 00 10 */ bge lbl_8038A040
/* 8038A034 00386F94 38 60 00 00 */ li r3, 0
/* 8038A038 00386F98 38 80 00 00 */ li r4, 0
/* 8038A03C 00386F9C 48 00 00 A0 */ b lbl_8038A0DC
lbl_8038A040:
/* 8038A040 00386FA0 7C 66 1B 78 */ mr r6, r3
/* 8038A044 00386FA4 54 63 03 3E */ clrlwi r3, r3, 0xc
/* 8038A048 00386FA8 64 63 00 10 */ oris r3, r3, 0x10
/* 8038A04C 00386FAC 38 A5 FB CD */ addi r5, r5, -1075
/* 8038A050 00386FB0 2C 05 00 00 */ cmpwi r5, 0
/* 8038A054 00386FB4 40 80 00 2C */ bge lbl_8038A080
/* 8038A058 00386FB8 7C A5 00 D0 */ neg r5, r5
/* 8038A05C 00386FBC 21 05 00 20 */ subfic r8, r5, 0x20
/* 8038A060 00386FC0 31 25 FF E0 */ addic r9, r5, -32
/* 8038A064 00386FC4 7C 84 2C 30 */ srw r4, r4, r5
/* 8038A068 00386FC8 7C 6A 40 30 */ slw r10, r3, r8
/* 8038A06C 00386FCC 7C 84 53 78 */ or r4, r4, r10
/* 8038A070 00386FD0 7C 6A 4C 30 */ srw r10, r3, r9
/* 8038A074 00386FD4 7C 84 53 78 */ or r4, r4, r10
/* 8038A078 00386FD8 7C 63 2C 30 */ srw r3, r3, r5
/* 8038A07C 00386FDC 48 00 00 50 */ b lbl_8038A0CC
lbl_8038A080:
/* 8038A080 00386FE0 2C 05 00 0A */ cmpwi r5, 0xa
/* 8038A084 00386FE4 40 A1 00 28 */ ble+ lbl_8038A0AC
/* 8038A088 00386FE8 54 C6 00 01 */ rlwinm. r6, r6, 0, 0, 0
/* 8038A08C 00386FEC 41 82 00 10 */ beq lbl_8038A09C
/* 8038A090 00386FF0 3C 60 80 00 */ lis r3, 0x8000
/* 8038A094 00386FF4 38 80 00 00 */ li r4, 0
/* 8038A098 00386FF8 48 00 00 44 */ b lbl_8038A0DC
lbl_8038A09C:
/* 8038A09C 00386FFC 3C 60 7F FF */ lis r3, 0x7FFFFFFF@h
/* 8038A0A0 00387000 60 63 FF FF */ ori r3, r3, 0x7FFFFFFF@l
/* 8038A0A4 00387004 38 80 FF FF */ li r4, -1
/* 8038A0A8 00387008 48 00 00 34 */ b lbl_8038A0DC
lbl_8038A0AC:
/* 8038A0AC 0038700C 21 05 00 20 */ subfic r8, r5, 0x20
/* 8038A0B0 00387010 31 25 FF E0 */ addic r9, r5, -32
/* 8038A0B4 00387014 7C 63 28 30 */ slw r3, r3, r5
/* 8038A0B8 00387018 7C 8A 44 30 */ srw r10, r4, r8
/* 8038A0BC 0038701C 7C 63 53 78 */ or r3, r3, r10
/* 8038A0C0 00387020 7C 8A 48 30 */ slw r10, r4, r9
/* 8038A0C4 00387024 7C 63 53 78 */ or r3, r3, r10
/* 8038A0C8 00387028 7C 84 28 30 */ slw r4, r4, r5
lbl_8038A0CC:
/* 8038A0CC 0038702C 54 C6 00 01 */ rlwinm. r6, r6, 0, 0, 0
/* 8038A0D0 00387030 41 82 00 0C */ beq lbl_8038A0DC
/* 8038A0D4 00387034 20 84 00 00 */ subfic r4, r4, 0
/* 8038A0D8 00387038 7C 63 01 90 */ subfze r3, r3
lbl_8038A0DC:
/* 8038A0DC 0038703C 38 21 00 10 */ addi r1, r1, 0x10
/* 8038A0E0 00387040 4E 80 00 20 */ blr

View File

@ -1098,7 +1098,7 @@ lbl_803910C4:
lbl_803910D0:
/* 803910D0 0038E030 B3 81 00 2E */ sth r28, 0x2e(r1)
/* 803910D4 0038E034 38 61 00 2C */ addi r3, r1, 0x2c
/* 803910D8 0038E038 4B FF A0 D9 */ bl sub_8038b1b0
/* 803910D8 0038E038 4B FF A0 D9 */ bl __dec2num
/* 803910DC 0038E03C C8 02 CF 88 */ lfd f0, lbl_805AECA8@sda21(r2)
/* 803910E0 0038E040 D8 21 00 18 */ stfd f1, 0x18(r1)
/* 803910E4 0038E044 FC 00 08 00 */ fcmpu cr0, f0, f1

View File

@ -2,9 +2,6 @@
.section .text, "ax"
.if 0
/* THIS DOESN'T WORK???? */
.global __close_console
__close_console:
/* 80391274 0038E1D4 38 60 00 00 */ li r3, 0
@ -65,4 +62,3 @@ lbl_80391320:
/* 80391334 0038E294 7C 08 03 A6 */ mtlr r0
/* 80391338 0038E298 38 21 00 20 */ addi r1, r1, 0x20
/* 8039133C 0038E29C 4E 80 00 20 */ blr
.endif

View File

@ -1,72 +1,7 @@
.include "macros.inc"
.section .text, "ax"
.if 1
/* TODO: Move __close_console and __write_console to their own file (uart_console_io),
* they're here to work around a bug with CW
*/
.global __close_console
__close_console:
/* 80391274 0038E1D4 38 60 00 00 */ li r3, 0
/* 80391278 0038E1D8 4E 80 00 20 */ blr
.global __write_console
__write_console:
/* 8039127C 0038E1DC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80391280 0038E1E0 7C 08 02 A6 */ mflr r0
/* 80391284 0038E1E4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80391288 0038E1E8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8039128C 0038E1EC 7C DF 33 78 */ mr r31, r6
/* 80391290 0038E1F0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80391294 0038E1F4 7C BE 2B 78 */ mr r30, r5
/* 80391298 0038E1F8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8039129C 0038E1FC 7C 9D 23 78 */ mr r29, r4
/* 803912A0 0038E200 93 81 00 10 */ stw r28, 0x10(r1)
/* 803912A4 0038E204 7C 7C 1B 78 */ mr r28, r3
/* 803912A8 0038E208 38 60 00 00 */ li r3, 0
/* 803912AC 0038E20C 80 0D AE 18 */ lwz r0, lbl_805A99D8@sda21(r13)
/* 803912B0 0038E210 2C 00 00 00 */ cmpwi r0, 0
/* 803912B4 0038E214 40 82 00 20 */ bne lbl_803912D4
/* 803912B8 0038E218 3C 60 00 01 */ lis r3, 0x0000E100@ha
/* 803912BC 0038E21C 38 63 E1 00 */ addi r3, r3, 0x0000E100@l
/* 803912C0 0038E220 48 03 06 31 */ bl InitializeUART
/* 803912C4 0038E224 2C 03 00 00 */ cmpwi r3, 0
/* 803912C8 0038E228 40 82 00 0C */ bne lbl_803912D4
/* 803912CC 0038E22C 38 00 00 01 */ li r0, 1
/* 803912D0 0038E230 90 0D AE 18 */ stw r0, lbl_805A99D8@sda21(r13)
lbl_803912D4:
/* 803912D4 0038E234 2C 03 00 00 */ cmpwi r3, 0
/* 803912D8 0038E238 41 82 00 0C */ beq lbl_803912E4
/* 803912DC 0038E23C 38 60 00 01 */ li r3, 1
/* 803912E0 0038E240 48 00 00 40 */ b lbl_80391320
lbl_803912E4:
/* 803912E4 0038E244 80 9E 00 00 */ lwz r4, 0(r30)
/* 803912E8 0038E248 7F A3 EB 78 */ mr r3, r29
/* 803912EC 0038E24C 48 03 06 75 */ bl WriteUARTN
/* 803912F0 0038E250 2C 03 00 00 */ cmpwi r3, 0
/* 803912F4 0038E254 41 82 00 14 */ beq lbl_80391308
/* 803912F8 0038E258 38 00 00 00 */ li r0, 0
/* 803912FC 0038E25C 38 60 00 01 */ li r3, 1
/* 80391300 0038E260 90 1E 00 00 */ stw r0, 0(r30)
/* 80391304 0038E264 48 00 00 1C */ b lbl_80391320
lbl_80391308:
/* 80391308 0038E268 7F 83 E3 78 */ mr r3, r28
/* 8039130C 0038E26C 7F A4 EB 78 */ mr r4, r29
/* 80391310 0038E270 7F C5 F3 78 */ mr r5, r30
/* 80391314 0038E274 7F E6 FB 78 */ mr r6, r31
/* 80391318 0038E278 4B C7 23 39 */ bl sub_80003650
/* 8039131C 0038E27C 38 60 00 00 */ li r3, 0
lbl_80391320:
/* 80391320 0038E280 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80391324 0038E284 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80391328 0038E288 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8039132C 0038E28C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80391330 0038E290 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80391334 0038E294 7C 08 03 A6 */ mtlr r0
/* 80391338 0038E298 38 21 00 20 */ addi r1, r1, 0x20
/* 8039133C 0038E29C 4E 80 00 20 */ blr
.endif
.global fwide
fwide:
/* 80391340 0038E2A0 28 03 00 00 */ cmplwi r3, 0

View File

@ -114,7 +114,7 @@ salInitAi:
/* 803B4DB8 003B1D18 98 8D AF D0 */ stb r4, lbl_805A9B90@sda21(r13)
/* 803B4DBC 003B1D1C 90 0D AF C0 */ stw r0, lbl_805A9B80@sda21(r13)
/* 803B4DC0 003B1D20 93 CD AF D4 */ stw r30, lbl_805A9B94@sda21(r13)
/* 803B4DC4 003B1D24 4B FB 81 79 */ bl sub_8036cf3c
/* 803B4DC4 003B1D24 4B FB 81 79 */ bl AIRegisterDMACallback
/* 803B4DC8 003B1D28 88 0D AF D0 */ lbz r0, lbl_805A9B90@sda21(r13)
/* 803B4DCC 003B1D2C 38 80 02 80 */ li r4, 0x280
/* 803B4DD0 003B1D30 80 6D AF CC */ lwz r3, lbl_805A9B8C@sda21(r13)
@ -157,7 +157,7 @@ salExitAi:
/* 803B4E44 003B1DA4 7C 08 02 A6 */ mflr r0
/* 803B4E48 003B1DA8 38 60 00 00 */ li r3, 0
/* 803B4E4C 003B1DAC 90 01 00 14 */ stw r0, 0x14(r1)
/* 803B4E50 003B1DB0 4B FB 80 ED */ bl sub_8036cf3c
/* 803B4E50 003B1DB0 4B FB 80 ED */ bl AIRegisterDMACallback
/* 803B4E54 003B1DB4 4B FB 81 CD */ bl AIStopDMA
/* 803B4E58 003B1DB8 80 6D AF CC */ lwz r3, lbl_805A9B8C@sda21(r13)
/* 803B4E5C 003B1DBC 48 00 03 01 */ bl salFree

View File

@ -0,0 +1,53 @@
.include "macros.inc"
.section .text, "ax"
.global __init_user
__init_user:
/* 80385824 00382784 7C 08 02 A6 */ mflr r0
/* 80385828 00382788 90 01 00 04 */ stw r0, 4(r1)
/* 8038582C 0038278C 94 21 FF F8 */ stwu r1, -8(r1)
/* 80385830 00382790 48 00 00 15 */ bl __init_cpp
/* 80385834 00382794 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80385838 00382798 38 21 00 08 */ addi r1, r1, 8
/* 8038583C 0038279C 7C 08 03 A6 */ mtlr r0
/* 80385840 003827A0 4E 80 00 20 */ blr
.global __init_cpp
__init_cpp:
/* 80385844 003827A4 7C 08 02 A6 */ mflr r0
/* 80385848 003827A8 90 01 00 04 */ stw r0, 4(r1)
/* 8038584C 003827AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80385850 003827B0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80385854 003827B4 3C 60 80 3D */ lis r3, __init_cpp_exceptions_reference@ha
/* 80385858 003827B8 38 03 B1 C0 */ addi r0, r3, __init_cpp_exceptions_reference@l
/* 8038585C 003827BC 7C 1F 03 78 */ mr r31, r0
/* 80385860 003827C0 48 00 00 04 */ b lbl_80385864
lbl_80385864:
/* 80385864 003827C4 48 00 00 04 */ b lbl_80385868
lbl_80385868:
/* 80385868 003827C8 48 00 00 10 */ b lbl_80385878
lbl_8038586C:
/* 8038586C 003827CC 7D 88 03 A6 */ mtlr r12
/* 80385870 003827D0 4E 80 00 21 */ blrl
/* 80385874 003827D4 3B FF 00 04 */ addi r31, r31, 4
lbl_80385878:
/* 80385878 003827D8 81 9F 00 00 */ lwz r12, 0(r31)
/* 8038587C 003827DC 28 0C 00 00 */ cmplwi r12, 0
/* 80385880 003827E0 40 82 FF EC */ bne lbl_8038586C
/* 80385884 003827E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80385888 003827E8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8038588C 003827EC 38 21 00 10 */ addi r1, r1, 0x10
/* 80385890 003827F0 7C 08 03 A6 */ mtlr r0
/* 80385894 003827F4 4E 80 00 20 */ blr
.global _ExitProcess
_ExitProcess:
/* 80385898 003827F8 7C 08 02 A6 */ mflr r0
/* 8038589C 003827FC 90 01 00 04 */ stw r0, 4(r1)
/* 803858A0 00382800 94 21 FF F8 */ stwu r1, -8(r1)
/* 803858A4 00382804 4B FE 9F 71 */ bl PPCHalt
/* 803858A8 00382808 80 01 00 0C */ lwz r0, 0xc(r1)
/* 803858AC 0038280C 38 21 00 08 */ addi r1, r1, 8
/* 803858B0 00382810 7C 08 03 A6 */ mtlr r0
/* 803858B4 00382814 4E 80 00 20 */ blr

37905
asm/text.s

File diff suppressed because it is too large Load Diff

View File

@ -39,4 +39,7 @@ FORCEFILES
dtors.o
extab.o
extabindex.o
}
misc_io.o
printf.o
uart_console_io.o
}

View File

@ -5,8 +5,111 @@ INIT_O_FILES :=\
KYOTO_CWD :=\
$(BUILD_DIR)/asm/Kyoto_CWD/main.o
AI_FILES :=\
$(BUILD_DIR)/asm/Dolphin/ai.o
AR_FILES :=\
$(BUILD_DIR)/asm/Dolphin/AR/ar.o\
$(BUILD_DIR)/asm/Dolphin/AR/arq.o
BASE_FILES :=\
$(BUILD_DIR)/asm/Dolphin/PPCArch.o
DB_FILES :=\
$(BUILD_DIR)/asm/Dolphin/db.o
DSP_FILES :=\
$(BUILD_DIR)/asm/Dolphin/DSP/dsp.o\
$(BUILD_DIR)/asm/Dolphin/DSP/dsp_debug.o\
$(BUILD_DIR)/asm/Dolphin/DSP/dsp_task.o
DVD_FILES :=\
$(BUILD_DIR)/asm/Dolphin/DVD/dvdlow.o\
$(BUILD_DIR)/asm/Dolphin/DVD/dvdfs.o\
$(BUILD_DIR)/asm/Dolphin/DVD/dvd.o\
$(BUILD_DIR)/asm/Dolphin/DVD/dvdqueue.o\
$(BUILD_DIR)/asm/Dolphin/DVD/dvderror.o\
$(BUILD_DIR)/asm/Dolphin/DVD/dvdidutils.o\
$(BUILD_DIR)/asm/Dolphin/DVD/dvdfatal.o\
$(BUILD_DIR)/asm/Dolphin/DVD/fstload.o
GX_FILES :=\
$(BUILD_DIR)/asm/Dolphin/GX/GXInit.o\
$(BUILD_DIR)/asm/Dolphin/GX/GXFifo.o\
$(BUILD_DIR)/asm/Dolphin/GX/GXAttr.o\
$(BUILD_DIR)/asm/Dolphin/GX/GXMisc.o\
$(BUILD_DIR)/asm/Dolphin/GX/GXGeometry.o\
$(BUILD_DIR)/asm/Dolphin/GX/GXFrameBuf.o\
$(BUILD_DIR)/asm/Dolphin/GX/GXLight.o\
$(BUILD_DIR)/asm/Dolphin/GX/GXTexture.o\
$(BUILD_DIR)/asm/Dolphin/GX/GXBump.o\
$(BUILD_DIR)/asm/Dolphin/GX/GXTev.o\
$(BUILD_DIR)/asm/Dolphin/GX/GXPixel.o\
$(BUILD_DIR)/asm/Dolphin/GX/GXStubs.o\
$(BUILD_DIR)/asm/Dolphin/GX/GXDisplayList.o\
$(BUILD_DIR)/asm/Dolphin/GX/GXTransform.o\
$(BUILD_DIR)/asm/Dolphin/GX/GXPerf.o
MTX_FILES :=\
$(BUILD_DIR)/asm/Dolphin/mtx/mtx.o\
$(BUILD_DIR)/asm/Dolphin/mtx/mtx44vec.o\
$(BUILD_DIR)/asm/Dolphin/mtx/mtx44.o\
$(BUILD_DIR)/asm/Dolphin/mtx/vec.o\
$(BUILD_DIR)/asm/Dolphin/mtx/psmtx.o
# TODO: Move __ppc_eabi_init_text into the same source files as __ppc_eabi_init
OS_FILES :=\
$(BUILD_DIR)/asm/Dolphin/OS/OS.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSAlarm.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSArena.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSAudioSystem.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSCache.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSContext.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSError.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSFatal.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSFont.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSInterrupt.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSLink.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSMemory.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSMutex.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSReboot.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSReset.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSResetSW.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSRtc.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSSync.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSThread.o\
$(BUILD_DIR)/asm/Dolphin/OS/OSTime.o\
$(BUILD_DIR)/asm/os/__ppc_eabi_init_text.o
PAD_FILES :=\
$(BUILD_DIR)/asm/Dolphin/PAD/PadClamp.o\
$(BUILD_DIR)/asm/Dolphin/PAD/pad.o
VI_FILES :=\
$(BUILD_DIR)/asm/Dolphin/vi.o
MSL_PPCEABI_BARE_H :=\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/__va_arg.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/global_destructor_chain.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/CPlusLibPPC.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/NMWException.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/ptmf.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/runtime.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/__init_cpp_exceptions.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/Gecko_ExceptionPPC.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/abort_exit.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/alloc.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/ansi_files.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/ansi_fp.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/arith.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/buffer_io.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/ctype.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/direct_io.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/file_io.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/FILE_POS.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/mbstring.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/mem.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/mem_funcs.o\
$(BUILD_DIR)/asm/Runtime/PPCEABI/H/misc_io.o\
@ -102,22 +205,22 @@ CARD_FILES :=\
$(BUILD_DIR)/asm/Dolphin/CARD/CARDNet.o
SI_FILES :=\
$(BUILD_DIR)/asm/Dolphin/SIBios.o\
$(BUILD_DIR)/asm/Dolphin/SISamplingRate.o
$(BUILD_DIR)/asm/Dolphin/SI/SIBios.o\
$(BUILD_DIR)/asm/Dolphin/SI/SISamplingRate.o
EXI_FILES :=\
$(BUILD_DIR)/asm/Dolphin/EXIBios.o\
$(BUILD_DIR)/asm/Dolphin/EXIUart.o
$(BUILD_DIR)/asm/Dolphin/EXI/EXIBios.o\
$(BUILD_DIR)/asm/Dolphin/EXI/EXIUart.o
THP_FILES :=\
$(BUILD_DIR)/asm/Dolphin/THPDec.o\
$(BUILD_DIR)/asm/Dolphin/THPAudio.o
$(BUILD_DIR)/asm/Dolphin/THP/THPDec.o\
$(BUILD_DIR)/asm/Dolphin/THP/THPAudio.o
GBA_FILES :=\
$(BUILD_DIR)/asm/Dolphin/GBA.o\
$(BUILD_DIR)/asm/Dolphin/GBARead.o\
$(BUILD_DIR)/asm/Dolphin/GBAWrite.o\
$(BUILD_DIR)/asm/Dolphin/GBAXfer.o
$(BUILD_DIR)/asm/Dolphin/GBA/GBA.o\
$(BUILD_DIR)/asm/Dolphin/GBA/GBARead.o\
$(BUILD_DIR)/asm/Dolphin/GBA/GBAWrite.o\
$(BUILD_DIR)/asm/Dolphin/GBA/GBAXfer.o
TEXT_O_FILES :=\
$(BUILD_DIR)/asm/text.o