tp/asm/os/OSCache.s

503 lines
22 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 8033b56c
.global DCEnable
DCEnable:
/* 8033B56C 003384AC 7C 00 04 AC */ sync 0
/* 8033B570 003384B0 7C 70 FA A6 */ mfspr r3, 0x3f0
/* 8033B574 003384B4 60 63 40 00 */ ori r3, r3, 0x4000
/* 8033B578 003384B8 7C 70 FB A6 */ mtspr 0x3f0, r3
/* 8033B57C 003384BC 4E 80 00 20 */ blr
.global DCInvalidateRange
DCInvalidateRange:
/* 8033B580 003384C0 28 04 00 00 */ cmplwi r4, 0
/* 8033B584 003384C4 4C 81 00 20 */ blelr
/* 8033B588 003384C8 54 65 06 FE */ clrlwi r5, r3, 0x1b
/* 8033B58C 003384CC 7C 84 2A 14 */ add r4, r4, r5
/* 8033B590 003384D0 38 84 00 1F */ addi r4, r4, 0x1f
/* 8033B594 003384D4 54 84 D9 7E */ srwi r4, r4, 5
/* 8033B598 003384D8 7C 89 03 A6 */ mtctr r4
lbl_8033B59C:
/* 8033B59C 003384DC 7C 00 1B AC */ dcbi 0, r3
/* 8033B5A0 003384E0 38 63 00 20 */ addi r3, r3, 0x20
/* 8033B5A4 003384E4 42 00 FF F8 */ bdnz lbl_8033B59C
/* 8033B5A8 003384E8 4E 80 00 20 */ blr
.global DCFlushRange
DCFlushRange:
/* 8033B5AC 003384EC 28 04 00 00 */ cmplwi r4, 0
/* 8033B5B0 003384F0 4C 81 00 20 */ blelr
/* 8033B5B4 003384F4 54 65 06 FE */ clrlwi r5, r3, 0x1b
/* 8033B5B8 003384F8 7C 84 2A 14 */ add r4, r4, r5
/* 8033B5BC 003384FC 38 84 00 1F */ addi r4, r4, 0x1f
/* 8033B5C0 00338500 54 84 D9 7E */ srwi r4, r4, 5
/* 8033B5C4 00338504 7C 89 03 A6 */ mtctr r4
lbl_8033B5C8:
/* 8033B5C8 00338508 7C 00 18 AC */ dcbf 0, r3
/* 8033B5CC 0033850C 38 63 00 20 */ addi r3, r3, 0x20
/* 8033B5D0 00338510 42 00 FF F8 */ bdnz lbl_8033B5C8
/* 8033B5D4 00338514 44 00 00 02 */ sc
/* 8033B5D8 00338518 4E 80 00 20 */ blr
.global DCStoreRange
DCStoreRange:
/* 8033B5DC 0033851C 28 04 00 00 */ cmplwi r4, 0
/* 8033B5E0 00338520 4C 81 00 20 */ blelr
/* 8033B5E4 00338524 54 65 06 FE */ clrlwi r5, r3, 0x1b
/* 8033B5E8 00338528 7C 84 2A 14 */ add r4, r4, r5
/* 8033B5EC 0033852C 38 84 00 1F */ addi r4, r4, 0x1f
/* 8033B5F0 00338530 54 84 D9 7E */ srwi r4, r4, 5
/* 8033B5F4 00338534 7C 89 03 A6 */ mtctr r4
lbl_8033B5F8:
/* 8033B5F8 00338538 7C 00 18 6C */ dcbst 0, r3
/* 8033B5FC 0033853C 38 63 00 20 */ addi r3, r3, 0x20
/* 8033B600 00338540 42 00 FF F8 */ bdnz lbl_8033B5F8
/* 8033B604 00338544 44 00 00 02 */ sc
/* 8033B608 00338548 4E 80 00 20 */ blr
.global DCFlushRangeNoSync
DCFlushRangeNoSync:
/* 8033B60C 0033854C 28 04 00 00 */ cmplwi r4, 0
/* 8033B610 00338550 4C 81 00 20 */ blelr
/* 8033B614 00338554 54 65 06 FE */ clrlwi r5, r3, 0x1b
/* 8033B618 00338558 7C 84 2A 14 */ add r4, r4, r5
/* 8033B61C 0033855C 38 84 00 1F */ addi r4, r4, 0x1f
/* 8033B620 00338560 54 84 D9 7E */ srwi r4, r4, 5
/* 8033B624 00338564 7C 89 03 A6 */ mtctr r4
lbl_8033B628:
/* 8033B628 00338568 7C 00 18 AC */ dcbf 0, r3
/* 8033B62C 0033856C 38 63 00 20 */ addi r3, r3, 0x20
/* 8033B630 00338570 42 00 FF F8 */ bdnz lbl_8033B628
/* 8033B634 00338574 4E 80 00 20 */ blr
.global DCStoreRangeNoSync
DCStoreRangeNoSync:
/* 8033B638 00338578 28 04 00 00 */ cmplwi r4, 0
/* 8033B63C 0033857C 4C 81 00 20 */ blelr
/* 8033B640 00338580 54 65 06 FE */ clrlwi r5, r3, 0x1b
/* 8033B644 00338584 7C 84 2A 14 */ add r4, r4, r5
/* 8033B648 00338588 38 84 00 1F */ addi r4, r4, 0x1f
/* 8033B64C 0033858C 54 84 D9 7E */ srwi r4, r4, 5
/* 8033B650 00338590 7C 89 03 A6 */ mtctr r4
lbl_8033B654:
/* 8033B654 00338594 7C 00 18 6C */ dcbst 0, r3
/* 8033B658 00338598 38 63 00 20 */ addi r3, r3, 0x20
/* 8033B65C 0033859C 42 00 FF F8 */ bdnz lbl_8033B654
/* 8033B660 003385A0 4E 80 00 20 */ blr
.global DCZeroRange
DCZeroRange:
/* 8033B664 003385A4 28 04 00 00 */ cmplwi r4, 0
/* 8033B668 003385A8 4C 81 00 20 */ blelr
/* 8033B66C 003385AC 54 65 06 FE */ clrlwi r5, r3, 0x1b
/* 8033B670 003385B0 7C 84 2A 14 */ add r4, r4, r5
/* 8033B674 003385B4 38 84 00 1F */ addi r4, r4, 0x1f
/* 8033B678 003385B8 54 84 D9 7E */ srwi r4, r4, 5
/* 8033B67C 003385BC 7C 89 03 A6 */ mtctr r4
lbl_8033B680:
/* 8033B680 003385C0 7C 00 1F EC */ dcbz 0, r3
/* 8033B684 003385C4 38 63 00 20 */ addi r3, r3, 0x20
/* 8033B688 003385C8 42 00 FF F8 */ bdnz lbl_8033B680
/* 8033B68C 003385CC 4E 80 00 20 */ blr
.global ICInvalidateRange
ICInvalidateRange:
/* 8033B690 003385D0 28 04 00 00 */ cmplwi r4, 0
/* 8033B694 003385D4 4C 81 00 20 */ blelr
/* 8033B698 003385D8 54 65 06 FE */ clrlwi r5, r3, 0x1b
/* 8033B69C 003385DC 7C 84 2A 14 */ add r4, r4, r5
/* 8033B6A0 003385E0 38 84 00 1F */ addi r4, r4, 0x1f
/* 8033B6A4 003385E4 54 84 D9 7E */ srwi r4, r4, 5
/* 8033B6A8 003385E8 7C 89 03 A6 */ mtctr r4
lbl_8033B6AC:
/* 8033B6AC 003385EC 7C 00 1F AC */ icbi 0, r3
/* 8033B6B0 003385F0 38 63 00 20 */ addi r3, r3, 0x20
/* 8033B6B4 003385F4 42 00 FF F8 */ bdnz lbl_8033B6AC
/* 8033B6B8 003385F8 7C 00 04 AC */ sync 0
/* 8033B6BC 003385FC 4C 00 01 2C */ isync
/* 8033B6C0 00338600 4E 80 00 20 */ blr
.global ICFlashInvalidate
ICFlashInvalidate:
/* 8033B6C4 00338604 7C 70 FA A6 */ mfspr r3, 0x3f0
/* 8033B6C8 00338608 60 63 08 00 */ ori r3, r3, 0x800
/* 8033B6CC 0033860C 7C 70 FB A6 */ mtspr 0x3f0, r3
/* 8033B6D0 00338610 4E 80 00 20 */ blr
.global ICEnable
ICEnable:
/* 8033B6D4 00338614 4C 00 01 2C */ isync
/* 8033B6D8 00338618 7C 70 FA A6 */ mfspr r3, 0x3f0
/* 8033B6DC 0033861C 60 63 80 00 */ ori r3, r3, 0x8000
/* 8033B6E0 00338620 7C 70 FB A6 */ mtspr 0x3f0, r3
/* 8033B6E4 00338624 4E 80 00 20 */ blr
.global __LCEnable
__LCEnable:
/* 8033B6E8 00338628 7C A0 00 A6 */ mfmsr r5
/* 8033B6EC 0033862C 60 A5 10 00 */ ori r5, r5, 0x1000
/* 8033B6F0 00338630 7C A0 01 24 */ mtmsr r5
/* 8033B6F4 00338634 3C 60 80 00 */ lis r3, 0x80000020@ha
/* 8033B6F8 00338638 38 80 04 00 */ li r4, 0x400
/* 8033B6FC 0033863C 7C 89 03 A6 */ mtctr r4
lbl_8033B700:
/* 8033B700 00338640 7C 00 1A 2C */ dcbt 0, r3
/* 8033B704 00338644 7C 00 18 6C */ dcbst 0, r3
/* 8033B708 00338648 38 63 00 20 */ addi r3, r3, 0x80000020@l
/* 8033B70C 0033864C 42 00 FF F4 */ bdnz lbl_8033B700
/* 8033B710 00338650 7C 98 E2 A6 */ mfspr r4, 0x398
/* 8033B714 00338654 64 84 10 0F */ oris r4, r4, 0x100f
/* 8033B718 00338658 7C 98 E3 A6 */ mtspr 0x398, r4
/* 8033B71C 0033865C 60 00 00 00 */ nop
/* 8033B720 00338660 60 00 00 00 */ nop
/* 8033B724 00338664 60 00 00 00 */ nop
/* 8033B728 00338668 60 00 00 00 */ nop
/* 8033B72C 0033866C 60 00 00 00 */ nop
/* 8033B730 00338670 60 00 00 00 */ nop
/* 8033B734 00338674 60 00 00 00 */ nop
/* 8033B738 00338678 60 00 00 00 */ nop
/* 8033B73C 0033867C 60 00 00 00 */ nop
/* 8033B740 00338680 60 00 00 00 */ nop
/* 8033B744 00338684 60 00 00 00 */ nop
/* 8033B748 00338688 60 00 00 00 */ nop
/* 8033B74C 0033868C 3C 60 E0 00 */ lis r3, 0xE0000002@h
/* 8033B750 00338690 60 63 00 02 */ ori r3, r3, 0xE0000002@l
/* 8033B754 00338694 7C 7F 83 A6 */ mtdbatl 3, r3
/* 8033B758 00338698 60 63 01 FE */ ori r3, r3, 0x1fe
/* 8033B75C 0033869C 7C 7E 83 A6 */ mtdbatu 3, r3
/* 8033B760 003386A0 4C 00 01 2C */ isync
/* 8033B764 003386A4 3C 60 E0 00 */ lis r3, 0xE0000020@ha
/* 8033B768 003386A8 38 C0 02 00 */ li r6, 0x200
/* 8033B76C 003386AC 7C C9 03 A6 */ mtctr r6
/* 8033B770 003386B0 38 C0 00 00 */ li r6, 0
lbl_8033B774:
/* 8033B774 003386B4 10 06 1F EC */ dcbz_l r6, r3
/* 8033B778 003386B8 38 63 00 20 */ addi r3, r3, 0xE0000020@l
/* 8033B77C 003386BC 42 00 FF F8 */ bdnz lbl_8033B774
/* 8033B780 003386C0 60 00 00 00 */ nop
/* 8033B784 003386C4 60 00 00 00 */ nop
/* 8033B788 003386C8 60 00 00 00 */ nop
/* 8033B78C 003386CC 60 00 00 00 */ nop
/* 8033B790 003386D0 60 00 00 00 */ nop
/* 8033B794 003386D4 60 00 00 00 */ nop
/* 8033B798 003386D8 60 00 00 00 */ nop
/* 8033B79C 003386DC 60 00 00 00 */ nop
/* 8033B7A0 003386E0 60 00 00 00 */ nop
/* 8033B7A4 003386E4 60 00 00 00 */ nop
/* 8033B7A8 003386E8 60 00 00 00 */ nop
/* 8033B7AC 003386EC 60 00 00 00 */ nop
/* 8033B7B0 003386F0 4E 80 00 20 */ blr
/* 8033B7B4 003386F4 7C 08 02 A6 */ mflr r0
/* 8033B7B8 003386F8 90 01 00 04 */ stw r0, 4(r1)
/* 8033B7BC 003386FC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8033B7C0 00338700 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8033B7C4 00338704 48 00 1F 31 */ bl __RAS_OSDisableInterrupts_begin
/* 8033B7C8 00338708 7C 7F 1B 78 */ mr r31, r3
/* 8033B7CC 0033870C 4B FF FF 1D */ bl __LCEnable
/* 8033B7D0 00338710 7F E3 FB 78 */ mr r3, r31
/* 8033B7D4 00338714 48 00 1F 49 */ bl OSRestoreInterrupts
/* 8033B7D8 00338718 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8033B7DC 0033871C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8033B7E0 00338720 38 21 00 10 */ addi r1, r1, 0x10
/* 8033B7E4 00338724 7C 08 03 A6 */ mtlr r0
/* 8033B7E8 00338728 4E 80 00 20 */ blr
.global LCDisable
LCDisable:
/* 8033B7EC 0033872C 3C 60 E0 00 */ lis r3, 0xE0000020@ha
/* 8033B7F0 00338730 38 80 02 00 */ li r4, 0x200
/* 8033B7F4 00338734 7C 89 03 A6 */ mtctr r4
lbl_8033B7F8:
/* 8033B7F8 00338738 7C 00 1B AC */ dcbi 0, r3
/* 8033B7FC 0033873C 38 63 00 20 */ addi r3, r3, 0xE0000020@l
/* 8033B800 00338740 42 00 FF F8 */ bdnz lbl_8033B7F8
/* 8033B804 00338744 7C 98 E2 A6 */ mfspr r4, 0x398
/* 8033B808 00338748 54 84 01 04 */ rlwinm r4, r4, 0, 4, 2
/* 8033B80C 0033874C 7C 98 E3 A6 */ mtspr 0x398, r4
/* 8033B810 00338750 4E 80 00 20 */ blr
.global LCStoreBlocks
LCStoreBlocks:
/* 8033B814 00338754 54 A6 F6 FE */ rlwinm r6, r5, 0x1e, 0x1b, 0x1f
/* 8033B818 00338758 54 63 01 3E */ clrlwi r3, r3, 4
/* 8033B81C 0033875C 7C C6 1B 78 */ or r6, r6, r3
/* 8033B820 00338760 7C DA E3 A6 */ mtspr 0x39a, r6
/* 8033B824 00338764 54 A6 17 3A */ rlwinm r6, r5, 2, 0x1c, 0x1d
/* 8033B828 00338768 7C C6 23 78 */ or r6, r6, r4
/* 8033B82C 0033876C 60 C6 00 02 */ ori r6, r6, 2
/* 8033B830 00338770 7C DB E3 A6 */ mtspr 0x39b, r6
/* 8033B834 00338774 4E 80 00 20 */ blr
/* 8033B838 00338778 7C 08 02 A6 */ mflr r0
/* 8033B83C 0033877C 90 01 00 04 */ stw r0, 4(r1)
/* 8033B840 00338780 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8033B844 00338784 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8033B848 00338788 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8033B84C 0033878C 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 8033B850 00338790 93 81 00 18 */ stw r28, 0x18(r1)
/* 8033B854 00338794 7C 7C 1B 78 */ mr r28, r3
/* 8033B858 00338798 7C 9D 23 78 */ mr r29, r4
/* 8033B85C 0033879C 38 05 00 1F */ addi r0, r5, 0x1f
/* 8033B860 003387A0 54 03 D9 7E */ srwi r3, r0, 5
/* 8033B864 003387A4 38 03 00 7F */ addi r0, r3, 0x7f
/* 8033B868 003387A8 7C 7F 1B 78 */ mr r31, r3
/* 8033B86C 003387AC 54 1E C9 FE */ srwi r30, r0, 7
/* 8033B870 003387B0 48 00 00 04 */ b lbl_8033B874
lbl_8033B874:
/* 8033B874 003387B4 48 00 00 04 */ b lbl_8033B878
lbl_8033B878:
/* 8033B878 003387B8 48 00 00 40 */ b lbl_8033B8B8
lbl_8033B87C:
/* 8033B87C 003387BC 28 1F 00 80 */ cmplwi r31, 0x80
/* 8033B880 003387C0 40 80 00 1C */ bge lbl_8033B89C
/* 8033B884 003387C4 7F 83 E3 78 */ mr r3, r28
/* 8033B888 003387C8 7F A4 EB 78 */ mr r4, r29
/* 8033B88C 003387CC 7F E5 FB 78 */ mr r5, r31
/* 8033B890 003387D0 4B FF FF 85 */ bl LCStoreBlocks
/* 8033B894 003387D4 3B E0 00 00 */ li r31, 0
/* 8033B898 003387D8 48 00 00 20 */ b lbl_8033B8B8
lbl_8033B89C:
/* 8033B89C 003387DC 7F 83 E3 78 */ mr r3, r28
/* 8033B8A0 003387E0 7F A4 EB 78 */ mr r4, r29
/* 8033B8A4 003387E4 38 A0 00 00 */ li r5, 0
/* 8033B8A8 003387E8 4B FF FF 6D */ bl LCStoreBlocks
/* 8033B8AC 003387EC 3B FF FF 80 */ addi r31, r31, -128
/* 8033B8B0 003387F0 3B 9C 10 00 */ addi r28, r28, 0x1000
/* 8033B8B4 003387F4 3B BD 10 00 */ addi r29, r29, 0x1000
lbl_8033B8B8:
/* 8033B8B8 003387F8 28 1F 00 00 */ cmplwi r31, 0
/* 8033B8BC 003387FC 40 82 FF C0 */ bne lbl_8033B87C
/* 8033B8C0 00338800 7F C3 F3 78 */ mr r3, r30
/* 8033B8C4 00338804 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8033B8C8 00338808 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8033B8CC 0033880C 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 8033B8D0 00338810 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 8033B8D4 00338814 83 81 00 18 */ lwz r28, 0x18(r1)
/* 8033B8D8 00338818 38 21 00 28 */ addi r1, r1, 0x28
/* 8033B8DC 0033881C 7C 08 03 A6 */ mtlr r0
/* 8033B8E0 00338820 4E 80 00 20 */ blr
.global LCQueueWait
LCQueueWait:
/* 8033B8E4 00338824 7C 98 E2 A6 */ mfspr r4, 0x398
/* 8033B8E8 00338828 54 84 47 3E */ rlwinm r4, r4, 8, 0x1c, 0x1f
/* 8033B8EC 0033882C 7C 04 18 00 */ cmpw r4, r3
.global LCQueueWait
/* 8033B8F0 00338830 41 81 FF F4 */ bgt LCQueueWait
/* 8033B8F4 00338834 4E 80 00 20 */ blr
.global L2GlobalInvalidate
L2GlobalInvalidate:
/* 8033B8F8 00338838 7C 08 02 A6 */ mflr r0
/* 8033B8FC 0033883C 90 01 00 04 */ stw r0, 4(r1)
/* 8033B900 00338840 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8033B904 00338844 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8033B908 00338848 7C 00 04 AC */ sync 0
/* 8033B90C 0033884C 4B FF E3 D5 */ bl PPCMfl2cr
/* 8033B910 00338850 54 63 00 7E */ clrlwi r3, r3, 1
/* 8033B914 00338854 4B FF E3 D5 */ bl PPCMtl2cr
/* 8033B918 00338858 7C 00 04 AC */ sync 0
/* 8033B91C 0033885C 4B FF E3 C5 */ bl PPCMfl2cr
/* 8033B920 00338860 64 63 00 20 */ oris r3, r3, 0x20
/* 8033B924 00338864 4B FF E3 C5 */ bl PPCMtl2cr
/* 8033B928 00338868 48 00 00 04 */ b lbl_8033B92C
lbl_8033B92C:
/* 8033B92C 0033886C 48 00 00 04 */ b lbl_8033B930
lbl_8033B930:
/* 8033B930 00338870 4B FF E3 B1 */ bl PPCMfl2cr
/* 8033B934 00338874 54 60 07 FE */ clrlwi r0, r3, 0x1f
/* 8033B938 00338878 28 00 00 00 */ cmplwi r0, 0
/* 8033B93C 0033887C 40 82 FF F4 */ bne lbl_8033B930
/* 8033B940 00338880 4B FF E3 A1 */ bl PPCMfl2cr
/* 8033B944 00338884 54 63 02 D2 */ rlwinm r3, r3, 0, 0xb, 9
/* 8033B948 00338888 4B FF E3 A1 */ bl PPCMtl2cr
/* 8033B94C 0033888C 48 00 00 04 */ b lbl_8033B950
lbl_8033B950:
/* 8033B950 00338890 3C 60 80 3D */ lis r3, lbl_803CF510@ha
/* 8033B954 00338894 3B E3 F5 10 */ addi r31, r3, lbl_803CF510@l
/* 8033B958 00338898 48 00 00 04 */ b lbl_8033B95C
lbl_8033B95C:
/* 8033B95C 0033889C 48 00 00 10 */ b lbl_8033B96C
lbl_8033B960:
/* 8033B960 003388A0 7F E3 FB 78 */ mr r3, r31
/* 8033B964 003388A4 4C C6 31 82 */ crclr 6
/* 8033B968 003388A8 48 00 AA CD */ bl DBPrintf
lbl_8033B96C:
/* 8033B96C 003388AC 4B FF E3 75 */ bl PPCMfl2cr
/* 8033B970 003388B0 54 60 07 FE */ clrlwi r0, r3, 0x1f
/* 8033B974 003388B4 28 00 00 00 */ cmplwi r0, 0
/* 8033B978 003388B8 40 82 FF E8 */ bne lbl_8033B960
/* 8033B97C 003388BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8033B980 003388C0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8033B984 003388C4 38 21 00 10 */ addi r1, r1, 0x10
/* 8033B988 003388C8 7C 08 03 A6 */ mtlr r0
/* 8033B98C 003388CC 4E 80 00 20 */ blr
.global DMAErrorHandler
DMAErrorHandler:
/* 8033B990 003388D0 7C 08 02 A6 */ mflr r0
/* 8033B994 003388D4 90 01 00 04 */ stw r0, 4(r1)
/* 8033B998 003388D8 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8033B99C 003388DC 93 E1 00 7C */ stw r31, 0x7c(r1)
/* 8033B9A0 003388E0 93 C1 00 78 */ stw r30, 0x78(r1)
/* 8033B9A4 003388E4 93 A1 00 74 */ stw r29, 0x74(r1)
/* 8033B9A8 003388E8 40 86 00 24 */ bne cr1, lbl_8033B9CC
/* 8033B9AC 003388EC D8 21 00 28 */ stfd f1, 0x28(r1)
/* 8033B9B0 003388F0 D8 41 00 30 */ stfd f2, 0x30(r1)
/* 8033B9B4 003388F4 D8 61 00 38 */ stfd f3, 0x38(r1)
/* 8033B9B8 003388F8 D8 81 00 40 */ stfd f4, 0x40(r1)
/* 8033B9BC 003388FC D8 A1 00 48 */ stfd f5, 0x48(r1)
/* 8033B9C0 00338900 D8 C1 00 50 */ stfd f6, 0x50(r1)
/* 8033B9C4 00338904 D8 E1 00 58 */ stfd f7, 0x58(r1)
/* 8033B9C8 00338908 D9 01 00 60 */ stfd f8, 0x60(r1)
lbl_8033B9CC:
/* 8033B9CC 0033890C 90 61 00 08 */ stw r3, 8(r1)
/* 8033B9D0 00338910 90 81 00 0C */ stw r4, 0xc(r1)
/* 8033B9D4 00338914 90 A1 00 10 */ stw r5, 0x10(r1)
/* 8033B9D8 00338918 90 C1 00 14 */ stw r6, 0x14(r1)
/* 8033B9DC 0033891C 90 E1 00 18 */ stw r7, 0x18(r1)
/* 8033B9E0 00338920 91 01 00 1C */ stw r8, 0x1c(r1)
/* 8033B9E4 00338924 91 21 00 20 */ stw r9, 0x20(r1)
/* 8033B9E8 00338928 91 41 00 24 */ stw r10, 0x24(r1)
/* 8033B9EC 0033892C 7C 9D 23 78 */ mr r29, r4
/* 8033B9F0 00338930 3C 60 80 3D */ lis r3, lbl_803CF510@ha
/* 8033B9F4 00338934 3B E3 F5 10 */ addi r31, r3, lbl_803CF510@l
/* 8033B9F8 00338938 4B FF E3 95 */ bl PPCMfhid2
/* 8033B9FC 0033893C 7C 7E 1B 78 */ mr r30, r3
/* 8033BA00 00338940 4C C6 31 82 */ crclr 6
/* 8033BA04 00338944 38 7F 00 2C */ addi r3, r31, 0x2c
/* 8033BA08 00338948 4B CC B0 B5 */ bl OSReport
/* 8033BA0C 0033894C 80 BD 01 9C */ lwz r5, 0x19c(r29)
/* 8033BA10 00338950 7F C4 F3 78 */ mr r4, r30
/* 8033BA14 00338954 38 7F 00 44 */ addi r3, r31, 0x44
/* 8033BA18 00338958 4C C6 31 82 */ crclr 6
/* 8033BA1C 0033895C 4B CC B0 A1 */ bl OSReport
/* 8033BA20 00338960 57 C0 02 16 */ rlwinm r0, r30, 0, 8, 0xb
/* 8033BA24 00338964 28 00 00 00 */ cmplwi r0, 0
/* 8033BA28 00338968 41 82 00 14 */ beq lbl_8033BA3C
/* 8033BA2C 0033896C 80 1D 01 9C */ lwz r0, 0x19c(r29)
/* 8033BA30 00338970 54 00 02 94 */ rlwinm r0, r0, 0, 0xa, 0xa
/* 8033BA34 00338974 28 00 00 00 */ cmplwi r0, 0
/* 8033BA38 00338978 40 82 00 1C */ bne lbl_8033BA54
lbl_8033BA3C:
/* 8033BA3C 0033897C 38 7F 00 60 */ addi r3, r31, 0x60
/* 8033BA40 00338980 4C C6 31 82 */ crclr 6
/* 8033BA44 00338984 4B CC B0 79 */ bl OSReport
/* 8033BA48 00338988 7F A3 EB 78 */ mr r3, r29
/* 8033BA4C 0033898C 48 00 06 95 */ bl OSDumpContext
/* 8033BA50 00338990 4B FF E2 B1 */ bl PPCHalt
lbl_8033BA54:
/* 8033BA54 00338994 38 7F 00 90 */ addi r3, r31, 0x90
/* 8033BA58 00338998 4C C6 31 82 */ crclr 6
/* 8033BA5C 0033899C 4B CC B0 61 */ bl OSReport
/* 8033BA60 003389A0 38 7F 00 CC */ addi r3, r31, 0xcc
/* 8033BA64 003389A4 4C C6 31 82 */ crclr 6
/* 8033BA68 003389A8 4B CC B0 55 */ bl OSReport
/* 8033BA6C 003389AC 57 C0 02 10 */ rlwinm r0, r30, 0, 8, 8
/* 8033BA70 003389B0 28 00 00 00 */ cmplwi r0, 0
/* 8033BA74 003389B4 41 82 00 10 */ beq lbl_8033BA84
/* 8033BA78 003389B8 38 7F 01 04 */ addi r3, r31, 0x104
/* 8033BA7C 003389BC 4C C6 31 82 */ crclr 6
/* 8033BA80 003389C0 4B CC B0 3D */ bl OSReport
lbl_8033BA84:
/* 8033BA84 003389C4 57 C0 02 52 */ rlwinm r0, r30, 0, 9, 9
/* 8033BA88 003389C8 28 00 00 00 */ cmplwi r0, 0
/* 8033BA8C 003389CC 41 82 00 10 */ beq lbl_8033BA9C
/* 8033BA90 003389D0 38 7F 01 44 */ addi r3, r31, 0x144
/* 8033BA94 003389D4 4C C6 31 82 */ crclr 6
/* 8033BA98 003389D8 4B CC B0 25 */ bl OSReport
lbl_8033BA9C:
/* 8033BA9C 003389DC 57 C0 02 94 */ rlwinm r0, r30, 0, 0xa, 0xa
/* 8033BAA0 003389E0 28 00 00 00 */ cmplwi r0, 0
/* 8033BAA4 003389E4 41 82 00 10 */ beq lbl_8033BAB4
/* 8033BAA8 003389E8 38 7F 01 70 */ addi r3, r31, 0x170
/* 8033BAAC 003389EC 4C C6 31 82 */ crclr 6
/* 8033BAB0 003389F0 4B CC B0 0D */ bl OSReport
lbl_8033BAB4:
/* 8033BAB4 003389F4 57 C0 02 D6 */ rlwinm r0, r30, 0, 0xb, 0xb
/* 8033BAB8 003389F8 28 00 00 00 */ cmplwi r0, 0
/* 8033BABC 003389FC 41 82 00 10 */ beq lbl_8033BACC
/* 8033BAC0 00338A00 38 7F 01 90 */ addi r3, r31, 0x190
/* 8033BAC4 00338A04 4C C6 31 82 */ crclr 6
/* 8033BAC8 00338A08 4B CC AF F5 */ bl OSReport
lbl_8033BACC:
/* 8033BACC 00338A0C 7F C3 F3 78 */ mr r3, r30
/* 8033BAD0 00338A10 4B FF E2 C5 */ bl PPCMthid2
/* 8033BAD4 00338A14 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8033BAD8 00338A18 83 E1 00 7C */ lwz r31, 0x7c(r1)
/* 8033BADC 00338A1C 83 C1 00 78 */ lwz r30, 0x78(r1)
/* 8033BAE0 00338A20 83 A1 00 74 */ lwz r29, 0x74(r1)
/* 8033BAE4 00338A24 38 21 00 80 */ addi r1, r1, 0x80
/* 8033BAE8 00338A28 7C 08 03 A6 */ mtlr r0
/* 8033BAEC 00338A2C 4E 80 00 20 */ blr
.global __OSCacheInit
__OSCacheInit:
/* 8033BAF0 00338A30 7C 08 02 A6 */ mflr r0
/* 8033BAF4 00338A34 90 01 00 04 */ stw r0, 4(r1)
/* 8033BAF8 00338A38 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8033BAFC 00338A3C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8033BB00 00338A40 93 C1 00 08 */ stw r30, 8(r1)
/* 8033BB04 00338A44 3C 60 80 3D */ lis r3, lbl_803CF510@ha
/* 8033BB08 00338A48 3B E3 F5 10 */ addi r31, r3, lbl_803CF510@l
/* 8033BB0C 00338A4C 4B FF E1 C5 */ bl PPCMfhid0
/* 8033BB10 00338A50 54 60 04 20 */ rlwinm r0, r3, 0, 0x10, 0x10
/* 8033BB14 00338A54 28 00 00 00 */ cmplwi r0, 0
/* 8033BB18 00338A58 40 82 00 14 */ bne lbl_8033BB2C
/* 8033BB1C 00338A5C 4B FF FB B9 */ bl ICEnable
/* 8033BB20 00338A60 38 7F 01 AC */ addi r3, r31, 0x1ac
/* 8033BB24 00338A64 4C C6 31 82 */ crclr 6
/* 8033BB28 00338A68 48 00 A9 0D */ bl DBPrintf
lbl_8033BB2C:
/* 8033BB2C 00338A6C 4B FF E1 A5 */ bl PPCMfhid0
/* 8033BB30 00338A70 54 60 04 62 */ rlwinm r0, r3, 0, 0x11, 0x11
/* 8033BB34 00338A74 28 00 00 00 */ cmplwi r0, 0
/* 8033BB38 00338A78 40 82 00 14 */ bne lbl_8033BB4C
/* 8033BB3C 00338A7C 4B FF FA 31 */ bl DCEnable
/* 8033BB40 00338A80 38 7F 01 C8 */ addi r3, r31, 0x1c8
/* 8033BB44 00338A84 4C C6 31 82 */ crclr 6
/* 8033BB48 00338A88 48 00 A8 ED */ bl DBPrintf
lbl_8033BB4C:
/* 8033BB4C 00338A8C 4B FF E1 95 */ bl PPCMfl2cr
/* 8033BB50 00338A90 54 60 00 00 */ rlwinm r0, r3, 0, 0, 0
/* 8033BB54 00338A94 28 00 00 00 */ cmplwi r0, 0
/* 8033BB58 00338A98 40 82 00 58 */ bne lbl_8033BBB0
/* 8033BB5C 00338A9C 4B FF E1 65 */ bl PPCMfmsr
/* 8033BB60 00338AA0 7C 7E 1B 78 */ mr r30, r3
/* 8033BB64 00338AA4 7C 00 04 AC */ sync 0
/* 8033BB68 00338AA8 38 60 00 30 */ li r3, 0x30
/* 8033BB6C 00338AAC 4B FF E1 5D */ bl PPCMtmsr
/* 8033BB70 00338AB0 7C 00 04 AC */ sync 0
/* 8033BB74 00338AB4 7C 00 04 AC */ sync 0
/* 8033BB78 00338AB8 4B FF E1 69 */ bl PPCMfl2cr
/* 8033BB7C 00338ABC 54 63 00 7E */ clrlwi r3, r3, 1
/* 8033BB80 00338AC0 4B FF E1 69 */ bl PPCMtl2cr
/* 8033BB84 00338AC4 7C 00 04 AC */ sync 0
/* 8033BB88 00338AC8 4B FF FD 71 */ bl L2GlobalInvalidate
/* 8033BB8C 00338ACC 7F C3 F3 78 */ mr r3, r30
/* 8033BB90 00338AD0 4B FF E1 39 */ bl PPCMtmsr
/* 8033BB94 00338AD4 4B FF E1 4D */ bl PPCMfl2cr
/* 8033BB98 00338AD8 64 60 80 00 */ oris r0, r3, 0x8000
/* 8033BB9C 00338ADC 54 03 02 D2 */ rlwinm r3, r0, 0, 0xb, 9
/* 8033BBA0 00338AE0 4B FF E1 49 */ bl PPCMtl2cr
/* 8033BBA4 00338AE4 38 7F 01 E4 */ addi r3, r31, 0x1e4
/* 8033BBA8 00338AE8 4C C6 31 82 */ crclr 6
/* 8033BBAC 00338AEC 48 00 A8 89 */ bl DBPrintf
lbl_8033BBB0:
.global DMAErrorHandler
/* 8033BBB0 00338AF0 3C 60 80 34 */ lis r3, DMAErrorHandler@ha
.global DMAErrorHandler
/* 8033BBB4 00338AF4 38 83 B9 90 */ addi r4, r3, DMAErrorHandler@l
/* 8033BBB8 00338AF8 38 60 00 01 */ li r3, 1
/* 8033BBBC 00338AFC 48 00 09 C5 */ bl OSSetErrorHandler
/* 8033BBC0 00338B00 38 7F 01 FC */ addi r3, r31, 0x1fc
/* 8033BBC4 00338B04 4C C6 31 82 */ crclr 6
/* 8033BBC8 00338B08 48 00 A8 6D */ bl DBPrintf
/* 8033BBCC 00338B0C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8033BBD0 00338B10 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8033BBD4 00338B14 83 C1 00 08 */ lwz r30, 8(r1)
/* 8033BBD8 00338B18 38 21 00 10 */ addi r1, r1, 0x10
/* 8033BBDC 00338B1C 7C 08 03 A6 */ mtlr r0
/* 8033BBE0 00338B20 4E 80 00 20 */ blr