.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global DWCi_SetMemFunc DWCi_SetMemFunc: /* 8031C8E0 00318540 90 6D B0 24 */ stw r3, lbl_806402E4-_SDA_BASE_(r13) /* 8031C8E4 00318544 90 8D B0 20 */ stw r4, lbl_806402E0-_SDA_BASE_(r13) /* 8031C8E8 00318548 4E 80 00 20 */ blr .global DWC_Alloc DWC_Alloc: /* 8031C8EC 0031854C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8031C8F0 00318550 7C 08 02 A6 */ mflr r0 /* 8031C8F4 00318554 38 A0 00 20 */ li r5, 0x20 /* 8031C8F8 00318558 90 01 00 14 */ stw r0, 0x14(r1) /* 8031C8FC 0031855C 93 E1 00 0C */ stw r31, 0xc(r1) /* 8031C900 00318560 7C 9F 23 78 */ mr r31, r4 /* 8031C904 00318564 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13) /* 8031C908 00318568 7D 89 03 A6 */ mtctr r12 /* 8031C90C 0031856C 38 84 00 20 */ addi r4, r4, 0x20 /* 8031C910 00318570 4E 80 04 21 */ bctrl /* 8031C914 00318574 3C 80 44 57 */ lis r4, 0x4457434D@ha /* 8031C918 00318578 38 04 43 4D */ addi r0, r4, 0x4457434D@l /* 8031C91C 0031857C 90 03 00 00 */ stw r0, 0(r3) /* 8031C920 00318580 93 E3 00 04 */ stw r31, 4(r3) /* 8031C924 00318584 38 63 00 20 */ addi r3, r3, 0x20 /* 8031C928 00318588 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8031C92C 0031858C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8031C930 00318590 7C 08 03 A6 */ mtlr r0 /* 8031C934 00318594 38 21 00 10 */ addi r1, r1, 0x10 /* 8031C938 00318598 4E 80 00 20 */ blr .global DWC_AllocEx DWC_AllocEx: /* 8031C93C 0031859C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8031C940 003185A0 7C 08 02 A6 */ mflr r0 /* 8031C944 003185A4 90 01 00 14 */ stw r0, 0x14(r1) /* 8031C948 003185A8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8031C94C 003185AC 7C 9F 23 78 */ mr r31, r4 /* 8031C950 003185B0 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13) /* 8031C954 003185B4 7D 89 03 A6 */ mtctr r12 /* 8031C958 003185B8 38 84 00 20 */ addi r4, r4, 0x20 /* 8031C95C 003185BC 4E 80 04 21 */ bctrl /* 8031C960 003185C0 3C 80 44 57 */ lis r4, 0x4457434D@ha /* 8031C964 003185C4 38 04 43 4D */ addi r0, r4, 0x4457434D@l /* 8031C968 003185C8 90 03 00 00 */ stw r0, 0(r3) /* 8031C96C 003185CC 93 E3 00 04 */ stw r31, 4(r3) /* 8031C970 003185D0 38 63 00 20 */ addi r3, r3, 0x20 /* 8031C974 003185D4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8031C978 003185D8 80 01 00 14 */ lwz r0, 0x14(r1) /* 8031C97C 003185DC 7C 08 03 A6 */ mtlr r0 /* 8031C980 003185E0 38 21 00 10 */ addi r1, r1, 0x10 /* 8031C984 003185E4 4E 80 00 20 */ blr .global DWC_Free DWC_Free: /* 8031C988 003185E8 2C 04 00 00 */ cmpwi r4, 0 /* 8031C98C 003185EC 4D 82 00 20 */ beqlr /* 8031C990 003185F0 81 8D B0 20 */ lwz r12, lbl_806402E0-_SDA_BASE_(r13) /* 8031C994 003185F4 7D 89 03 A6 */ mtctr r12 /* 8031C998 003185F8 38 84 FF E0 */ addi r4, r4, -32 /* 8031C99C 003185FC 4E 80 04 20 */ bctr /* 8031C9A0 00318600 4E 80 00 20 */ blr .global DWCi_GsMalloc DWCi_GsMalloc: /* 8031C9A4 00318604 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8031C9A8 00318608 7C 08 02 A6 */ mflr r0 /* 8031C9AC 0031860C 38 A0 00 20 */ li r5, 0x20 /* 8031C9B0 00318610 90 01 00 14 */ stw r0, 0x14(r1) /* 8031C9B4 00318614 93 E1 00 0C */ stw r31, 0xc(r1) /* 8031C9B8 00318618 7C 7F 1B 78 */ mr r31, r3 /* 8031C9BC 0031861C 38 9F 00 20 */ addi r4, r31, 0x20 /* 8031C9C0 00318620 38 60 00 09 */ li r3, 9 /* 8031C9C4 00318624 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13) /* 8031C9C8 00318628 7D 89 03 A6 */ mtctr r12 /* 8031C9CC 0031862C 4E 80 04 21 */ bctrl /* 8031C9D0 00318630 3C 80 44 57 */ lis r4, 0x4457434D@ha /* 8031C9D4 00318634 38 04 43 4D */ addi r0, r4, 0x4457434D@l /* 8031C9D8 00318638 90 03 00 00 */ stw r0, 0(r3) /* 8031C9DC 0031863C 93 E3 00 04 */ stw r31, 4(r3) /* 8031C9E0 00318640 38 63 00 20 */ addi r3, r3, 0x20 /* 8031C9E4 00318644 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8031C9E8 00318648 80 01 00 14 */ lwz r0, 0x14(r1) /* 8031C9EC 0031864C 7C 08 03 A6 */ mtlr r0 /* 8031C9F0 00318650 38 21 00 10 */ addi r1, r1, 0x10 /* 8031C9F4 00318654 4E 80 00 20 */ blr .global DWCi_GsRealloc DWCi_GsRealloc: /* 8031C9F8 00318658 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8031C9FC 0031865C 7C 08 02 A6 */ mflr r0 /* 8031CA00 00318660 38 A0 00 20 */ li r5, 0x20 /* 8031CA04 00318664 90 01 00 24 */ stw r0, 0x24(r1) /* 8031CA08 00318668 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8031CA0C 0031866C 93 C1 00 18 */ stw r30, 0x18(r1) /* 8031CA10 00318670 93 A1 00 14 */ stw r29, 0x14(r1) /* 8031CA14 00318674 7C 9D 23 78 */ mr r29, r4 /* 8031CA18 00318678 93 81 00 10 */ stw r28, 0x10(r1) /* 8031CA1C 0031867C 7C 7C 1B 78 */ mr r28, r3 /* 8031CA20 00318680 38 60 00 09 */ li r3, 9 /* 8031CA24 00318684 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13) /* 8031CA28 00318688 7D 89 03 A6 */ mtctr r12 /* 8031CA2C 0031868C 38 84 00 20 */ addi r4, r4, 0x20 /* 8031CA30 00318690 4E 80 04 21 */ bctrl /* 8031CA34 00318694 3C 80 44 57 */ lis r4, 0x4457434D@ha /* 8031CA38 00318698 37 E3 00 20 */ addic. r31, r3, 0x20 /* 8031CA3C 0031869C 38 04 43 4D */ addi r0, r4, 0x4457434D@l /* 8031CA40 003186A0 90 03 00 00 */ stw r0, 0(r3) /* 8031CA44 003186A4 93 A3 00 04 */ stw r29, 4(r3) /* 8031CA48 003186A8 40 82 00 0C */ bne lbl_8031CA54 /* 8031CA4C 003186AC 3B E0 00 00 */ li r31, 0 /* 8031CA50 003186B0 48 00 00 40 */ b lbl_8031CA90 lbl_8031CA54: /* 8031CA54 003186B4 2C 1C 00 00 */ cmpwi r28, 0 /* 8031CA58 003186B8 41 82 00 38 */ beq lbl_8031CA90 /* 8031CA5C 003186BC 80 BC FF E4 */ lwz r5, -0x1c(r28) /* 8031CA60 003186C0 3B DC FF E0 */ addi r30, r28, -32 /* 8031CA64 003186C4 7F E3 FB 78 */ mr r3, r31 /* 8031CA68 003186C8 7F 84 E3 78 */ mr r4, r28 /* 8031CA6C 003186CC 4B CE 75 95 */ bl memcpy /* 8031CA70 003186D0 2C 1C 00 00 */ cmpwi r28, 0 /* 8031CA74 003186D4 41 82 00 1C */ beq lbl_8031CA90 /* 8031CA78 003186D8 81 8D B0 20 */ lwz r12, lbl_806402E0-_SDA_BASE_(r13) /* 8031CA7C 003186DC 7F C4 F3 78 */ mr r4, r30 /* 8031CA80 003186E0 7F A5 EB 78 */ mr r5, r29 /* 8031CA84 003186E4 38 60 00 09 */ li r3, 9 /* 8031CA88 003186E8 7D 89 03 A6 */ mtctr r12 /* 8031CA8C 003186EC 4E 80 04 21 */ bctrl lbl_8031CA90: /* 8031CA90 003186F0 7F E3 FB 78 */ mr r3, r31 /* 8031CA94 003186F4 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8031CA98 003186F8 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8031CA9C 003186FC 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8031CAA0 00318700 83 81 00 10 */ lwz r28, 0x10(r1) /* 8031CAA4 00318704 80 01 00 24 */ lwz r0, 0x24(r1) /* 8031CAA8 00318708 7C 08 03 A6 */ mtlr r0 /* 8031CAAC 0031870C 38 21 00 20 */ addi r1, r1, 0x20 /* 8031CAB0 00318710 4E 80 00 20 */ blr .global DWCi_GsFree DWCi_GsFree: /* 8031CAB4 00318714 2C 03 00 00 */ cmpwi r3, 0 /* 8031CAB8 00318718 4D 82 00 20 */ beqlr /* 8031CABC 0031871C 81 8D B0 20 */ lwz r12, lbl_806402E0-_SDA_BASE_(r13) /* 8031CAC0 00318720 38 83 FF E0 */ addi r4, r3, -32 /* 8031CAC4 00318724 38 60 00 09 */ li r3, 9 /* 8031CAC8 00318728 38 A0 00 00 */ li r5, 0 /* 8031CACC 0031872C 7D 89 03 A6 */ mtctr r12 /* 8031CAD0 00318730 4E 80 04 20 */ bctr /* 8031CAD4 00318734 4E 80 00 20 */ blr .global DWCi_GsMemalign DWCi_GsMemalign: /* 8031CAD8 00318738 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8031CADC 0031873C 7C 08 02 A6 */ mflr r0 /* 8031CAE0 00318740 7C 65 1B 78 */ mr r5, r3 /* 8031CAE4 00318744 38 60 00 09 */ li r3, 9 /* 8031CAE8 00318748 90 01 00 14 */ stw r0, 0x14(r1) /* 8031CAEC 0031874C 93 E1 00 0C */ stw r31, 0xc(r1) /* 8031CAF0 00318750 7C 9F 23 78 */ mr r31, r4 /* 8031CAF4 00318754 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13) /* 8031CAF8 00318758 7D 89 03 A6 */ mtctr r12 /* 8031CAFC 0031875C 38 84 00 20 */ addi r4, r4, 0x20 /* 8031CB00 00318760 4E 80 04 21 */ bctrl /* 8031CB04 00318764 3C 80 44 57 */ lis r4, 0x4457434D@ha /* 8031CB08 00318768 38 04 43 4D */ addi r0, r4, 0x4457434D@l /* 8031CB0C 0031876C 90 03 00 00 */ stw r0, 0(r3) /* 8031CB10 00318770 93 E3 00 04 */ stw r31, 4(r3) /* 8031CB14 00318774 38 63 00 20 */ addi r3, r3, 0x20 /* 8031CB18 00318778 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8031CB1C 0031877C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8031CB20 00318780 7C 08 03 A6 */ mtlr r0 /* 8031CB24 00318784 38 21 00 10 */ addi r1, r1, 0x10 /* 8031CB28 00318788 4E 80 00 20 */ blr