summaryrefslogtreecommitdiff
path: root/asm/NW4R
diff options
context:
space:
mode:
Diffstat (limited to 'asm/NW4R')
-rw-r--r--asm/NW4R/ut_LinkList.s116
-rw-r--r--asm/NW4R/ut_binaryFileFormat.s39
-rw-r--r--asm/NW4R/ut_list.s117
3 files changed, 272 insertions, 0 deletions
diff --git a/asm/NW4R/ut_LinkList.s b/asm/NW4R/ut_LinkList.s
new file mode 100644
index 0000000..28d9fab
--- /dev/null
+++ b/asm/NW4R/ut_LinkList.s
@@ -0,0 +1,116 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __dt__Q44nw4r2ut6detail12LinkListImplFv
+__dt__Q44nw4r2ut6detail12LinkListImplFv:
+/* 80362B38 0035E798 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80362B3C 0035E79C 7C 08 02 A6 */ mflr r0
+/* 80362B40 0035E7A0 2C 03 00 00 */ cmpwi r3, 0
+/* 80362B44 0035E7A4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80362B48 0035E7A8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80362B4C 0035E7AC 7C 7F 1B 78 */ mr r31, r3
+/* 80362B50 0035E7B0 41 82 00 54 */ beq lbl_80362BA4
+/* 80362B54 0035E7B4 80 E3 00 04 */ lwz r7, 4(r3)
+/* 80362B58 0035E7B8 38 C3 00 04 */ addi r6, r3, 4
+/* 80362B5C 0035E7BC 38 00 00 00 */ li r0, 0
+/* 80362B60 0035E7C0 48 00 00 2C */ b lbl_80362B8C
+lbl_80362B64:
+/* 80362B64 0035E7C4 81 07 00 00 */ lwz r8, 0(r7)
+/* 80362B68 0035E7C8 80 A7 00 04 */ lwz r5, 4(r7)
+/* 80362B6C 0035E7CC 90 A8 00 04 */ stw r5, 4(r8)
+/* 80362B70 0035E7D0 91 05 00 00 */ stw r8, 0(r5)
+/* 80362B74 0035E7D4 80 A3 00 00 */ lwz r5, 0(r3)
+/* 80362B78 0035E7D8 38 A5 FF FF */ addi r5, r5, -1
+/* 80362B7C 0035E7DC 90 A3 00 00 */ stw r5, 0(r3)
+/* 80362B80 0035E7E0 90 07 00 00 */ stw r0, 0(r7)
+/* 80362B84 0035E7E4 90 07 00 04 */ stw r0, 4(r7)
+/* 80362B88 0035E7E8 7D 07 43 78 */ mr r7, r8
+lbl_80362B8C:
+/* 80362B8C 0035E7EC 7C 07 30 40 */ cmplw r7, r6
+/* 80362B90 0035E7F0 40 82 FF D4 */ bne lbl_80362B64
+/* 80362B94 0035E7F4 2C 04 00 00 */ cmpwi r4, 0
+/* 80362B98 0035E7F8 40 81 00 0C */ ble lbl_80362BA4
+/* 80362B9C 0035E7FC 7F E3 FB 78 */ mr r3, r31
+/* 80362BA0 0035E800 4B E7 7F 19 */ bl func_801DAAB8
+lbl_80362BA4:
+/* 80362BA4 0035E804 7F E3 FB 78 */ mr r3, r31
+/* 80362BA8 0035E808 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80362BAC 0035E80C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80362BB0 0035E810 7C 08 03 A6 */ mtlr r0
+/* 80362BB4 0035E814 38 21 00 10 */ addi r1, r1, 0x10
+/* 80362BB8 0035E818 4E 80 00 20 */ blr
+
+.global Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
+Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator:
+/* 80362BBC 0035E81C 80 C4 00 00 */ lwz r6, 0(r4)
+/* 80362BC0 0035E820 38 00 00 00 */ li r0, 0
+/* 80362BC4 0035E824 80 A6 00 00 */ lwz r5, 0(r6)
+/* 80362BC8 0035E828 48 00 00 2C */ b lbl_80362BF4
+lbl_80362BCC:
+/* 80362BCC 0035E82C 80 E6 00 00 */ lwz r7, 0(r6)
+/* 80362BD0 0035E830 80 86 00 04 */ lwz r4, 4(r6)
+/* 80362BD4 0035E834 90 87 00 04 */ stw r4, 4(r7)
+/* 80362BD8 0035E838 90 E4 00 00 */ stw r7, 0(r4)
+/* 80362BDC 0035E83C 80 83 00 00 */ lwz r4, 0(r3)
+/* 80362BE0 0035E840 38 84 FF FF */ addi r4, r4, -1
+/* 80362BE4 0035E844 90 83 00 00 */ stw r4, 0(r3)
+/* 80362BE8 0035E848 90 06 00 00 */ stw r0, 0(r6)
+/* 80362BEC 0035E84C 90 06 00 04 */ stw r0, 4(r6)
+/* 80362BF0 0035E850 7C E6 3B 78 */ mr r6, r7
+lbl_80362BF4:
+/* 80362BF4 0035E854 7C 06 28 40 */ cmplw r6, r5
+/* 80362BF8 0035E858 40 82 FF D4 */ bne lbl_80362BCC
+/* 80362BFC 0035E85C 7C A3 2B 78 */ mr r3, r5
+/* 80362C00 0035E860 4E 80 00 20 */ blr
+
+.global Clear__Q44nw4r2ut6detail12LinkListImplFv
+Clear__Q44nw4r2ut6detail12LinkListImplFv:
+/* 80362C04 0035E864 80 C3 00 04 */ lwz r6, 4(r3)
+/* 80362C08 0035E868 38 A3 00 04 */ addi r5, r3, 4
+/* 80362C0C 0035E86C 38 00 00 00 */ li r0, 0
+/* 80362C10 0035E870 48 00 00 2C */ b lbl_80362C3C
+lbl_80362C14:
+/* 80362C14 0035E874 80 E6 00 00 */ lwz r7, 0(r6)
+/* 80362C18 0035E878 80 86 00 04 */ lwz r4, 4(r6)
+/* 80362C1C 0035E87C 90 87 00 04 */ stw r4, 4(r7)
+/* 80362C20 0035E880 90 E4 00 00 */ stw r7, 0(r4)
+/* 80362C24 0035E884 80 83 00 00 */ lwz r4, 0(r3)
+/* 80362C28 0035E888 38 84 FF FF */ addi r4, r4, -1
+/* 80362C2C 0035E88C 90 83 00 00 */ stw r4, 0(r3)
+/* 80362C30 0035E890 90 06 00 00 */ stw r0, 0(r6)
+/* 80362C34 0035E894 90 06 00 04 */ stw r0, 4(r6)
+/* 80362C38 0035E898 7C E6 3B 78 */ mr r6, r7
+lbl_80362C3C:
+/* 80362C3C 0035E89C 7C 06 28 40 */ cmplw r6, r5
+/* 80362C40 0035E8A0 40 82 FF D4 */ bne lbl_80362C14
+/* 80362C44 0035E8A4 4E 80 00 20 */ blr
+
+.global Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
+Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode:
+/* 80362C48 0035E8A8 80 84 00 00 */ lwz r4, 0(r4)
+/* 80362C4C 0035E8AC 80 C4 00 04 */ lwz r6, 4(r4)
+/* 80362C50 0035E8B0 90 85 00 00 */ stw r4, 0(r5)
+/* 80362C54 0035E8B4 90 C5 00 04 */ stw r6, 4(r5)
+/* 80362C58 0035E8B8 90 A4 00 04 */ stw r5, 4(r4)
+/* 80362C5C 0035E8BC 90 A6 00 00 */ stw r5, 0(r6)
+/* 80362C60 0035E8C0 80 83 00 00 */ lwz r4, 0(r3)
+/* 80362C64 0035E8C4 38 04 00 01 */ addi r0, r4, 1
+/* 80362C68 0035E8C8 90 03 00 00 */ stw r0, 0(r3)
+/* 80362C6C 0035E8CC 7C A3 2B 78 */ mr r3, r5
+/* 80362C70 0035E8D0 4E 80 00 20 */ blr
+
+.global Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode
+Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode:
+/* 80362C74 0035E8D4 80 C4 00 00 */ lwz r6, 0(r4)
+/* 80362C78 0035E8D8 38 00 00 00 */ li r0, 0
+/* 80362C7C 0035E8DC 80 A4 00 04 */ lwz r5, 4(r4)
+/* 80362C80 0035E8E0 90 A6 00 04 */ stw r5, 4(r6)
+/* 80362C84 0035E8E4 90 C5 00 00 */ stw r6, 0(r5)
+/* 80362C88 0035E8E8 80 A3 00 00 */ lwz r5, 0(r3)
+/* 80362C8C 0035E8EC 38 A5 FF FF */ addi r5, r5, -1
+/* 80362C90 0035E8F0 90 A3 00 00 */ stw r5, 0(r3)
+/* 80362C94 0035E8F4 7C C3 33 78 */ mr r3, r6
+/* 80362C98 0035E8F8 90 04 00 00 */ stw r0, 0(r4)
+/* 80362C9C 0035E8FC 90 04 00 04 */ stw r0, 4(r4)
+/* 80362CA0 0035E900 4E 80 00 20 */ blr
diff --git a/asm/NW4R/ut_binaryFileFormat.s b/asm/NW4R/ut_binaryFileFormat.s
new file mode 100644
index 0000000..092a5cf
--- /dev/null
+++ b/asm/NW4R/ut_binaryFileFormat.s
@@ -0,0 +1,39 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global IsValidBinaryFile__Q24nw4r2utFPCQ34nw4r2ut16BinaryFileHeaderUlUsUs
+IsValidBinaryFile__Q24nw4r2utFPCQ34nw4r2ut16BinaryFileHeaderUlUsUs:
+/* 80362CA4 0035E904 80 03 00 00 */ lwz r0, 0(r3)
+/* 80362CA8 0035E908 7C 00 20 40 */ cmplw r0, r4
+/* 80362CAC 0035E90C 41 82 00 0C */ beq lbl_80362CB8
+/* 80362CB0 0035E910 38 60 00 00 */ li r3, 0
+/* 80362CB4 0035E914 4E 80 00 20 */ blr
+lbl_80362CB8:
+/* 80362CB8 0035E918 A0 03 00 04 */ lhz r0, 4(r3)
+/* 80362CBC 0035E91C 28 00 FE FF */ cmplwi r0, 0xfeff
+/* 80362CC0 0035E920 41 82 00 0C */ beq lbl_80362CCC
+/* 80362CC4 0035E924 38 60 00 00 */ li r3, 0
+/* 80362CC8 0035E928 4E 80 00 20 */ blr
+lbl_80362CCC:
+/* 80362CCC 0035E92C A0 03 00 06 */ lhz r0, 6(r3)
+/* 80362CD0 0035E930 7C 00 28 40 */ cmplw r0, r5
+/* 80362CD4 0035E934 41 82 00 0C */ beq lbl_80362CE0
+/* 80362CD8 0035E938 38 60 00 00 */ li r3, 0
+/* 80362CDC 0035E93C 4E 80 00 20 */ blr
+lbl_80362CE0:
+/* 80362CE0 0035E940 54 C4 1B 78 */ rlwinm r4, r6, 3, 0xd, 0x1c
+/* 80362CE4 0035E944 80 A3 00 08 */ lwz r5, 8(r3)
+/* 80362CE8 0035E948 38 04 00 10 */ addi r0, r4, 0x10
+/* 80362CEC 0035E94C 7C 05 00 40 */ cmplw r5, r0
+/* 80362CF0 0035E950 40 80 00 0C */ bge lbl_80362CFC
+/* 80362CF4 0035E954 38 60 00 00 */ li r3, 0
+/* 80362CF8 0035E958 4E 80 00 20 */ blr
+lbl_80362CFC:
+/* 80362CFC 0035E95C A0 63 00 0E */ lhz r3, 0xe(r3)
+/* 80362D00 0035E960 7C 06 18 50 */ subf r0, r6, r3
+/* 80362D04 0035E964 7C 63 33 38 */ orc r3, r3, r6
+/* 80362D08 0035E968 54 00 F8 7E */ srwi r0, r0, 1
+/* 80362D0C 0035E96C 7C 00 18 50 */ subf r0, r0, r3
+/* 80362D10 0035E970 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80362D14 0035E974 4E 80 00 20 */ blr
diff --git a/asm/NW4R/ut_list.s b/asm/NW4R/ut_list.s
new file mode 100644
index 0000000..9216661
--- /dev/null
+++ b/asm/NW4R/ut_list.s
@@ -0,0 +1,117 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global List_Init__Q24nw4r2utFPQ34nw4r2ut4ListUs
+List_Init__Q24nw4r2utFPQ34nw4r2ut4ListUs:
+/* 803629D8 0035E638 38 00 00 00 */ li r0, 0
+/* 803629DC 0035E63C B0 83 00 0A */ sth r4, 0xa(r3)
+/* 803629E0 0035E640 90 03 00 00 */ stw r0, 0(r3)
+/* 803629E4 0035E644 90 03 00 04 */ stw r0, 4(r3)
+/* 803629E8 0035E648 B0 03 00 08 */ sth r0, 8(r3)
+/* 803629EC 0035E64C 4E 80 00 20 */ blr
+
+.global List_Append__Q24nw4r2utFPQ34nw4r2ut4ListPv
+List_Append__Q24nw4r2utFPQ34nw4r2ut4ListPv:
+/* 803629F0 0035E650 80 03 00 00 */ lwz r0, 0(r3)
+/* 803629F4 0035E654 2C 00 00 00 */ cmpwi r0, 0
+/* 803629F8 0035E658 40 82 00 30 */ bne lbl_80362A28
+/* 803629FC 0035E65C A0 A3 00 0A */ lhz r5, 0xa(r3)
+/* 80362A00 0035E660 38 00 00 00 */ li r0, 0
+/* 80362A04 0035E664 7C A4 2A 14 */ add r5, r4, r5
+/* 80362A08 0035E668 90 05 00 04 */ stw r0, 4(r5)
+/* 80362A0C 0035E66C 90 05 00 00 */ stw r0, 0(r5)
+/* 80362A10 0035E670 A0 A3 00 08 */ lhz r5, 8(r3)
+/* 80362A14 0035E674 90 83 00 00 */ stw r4, 0(r3)
+/* 80362A18 0035E678 38 05 00 01 */ addi r0, r5, 1
+/* 80362A1C 0035E67C 90 83 00 04 */ stw r4, 4(r3)
+/* 80362A20 0035E680 B0 03 00 08 */ sth r0, 8(r3)
+/* 80362A24 0035E684 4E 80 00 20 */ blr
+lbl_80362A28:
+/* 80362A28 0035E688 A0 C3 00 0A */ lhz r6, 0xa(r3)
+/* 80362A2C 0035E68C 38 00 00 00 */ li r0, 0
+/* 80362A30 0035E690 80 A3 00 04 */ lwz r5, 4(r3)
+/* 80362A34 0035E694 7C A6 21 6E */ stwux r5, r6, r4
+/* 80362A38 0035E698 90 06 00 04 */ stw r0, 4(r6)
+/* 80362A3C 0035E69C 80 A3 00 04 */ lwz r5, 4(r3)
+/* 80362A40 0035E6A0 A0 03 00 0A */ lhz r0, 0xa(r3)
+/* 80362A44 0035E6A4 7C A5 02 14 */ add r5, r5, r0
+/* 80362A48 0035E6A8 90 85 00 04 */ stw r4, 4(r5)
+/* 80362A4C 0035E6AC A0 A3 00 08 */ lhz r5, 8(r3)
+/* 80362A50 0035E6B0 90 83 00 04 */ stw r4, 4(r3)
+/* 80362A54 0035E6B4 38 05 00 01 */ addi r0, r5, 1
+/* 80362A58 0035E6B8 B0 03 00 08 */ sth r0, 8(r3)
+/* 80362A5C 0035E6BC 4E 80 00 20 */ blr
+
+.global List_Remove__Q24nw4r2utFPQ34nw4r2ut4ListPv
+List_Remove__Q24nw4r2utFPQ34nw4r2ut4ListPv:
+/* 80362A60 0035E6C0 A0 A3 00 0A */ lhz r5, 0xa(r3)
+/* 80362A64 0035E6C4 7C C4 2A 14 */ add r6, r4, r5
+/* 80362A68 0035E6C8 7C 84 28 2E */ lwzx r4, r4, r5
+/* 80362A6C 0035E6CC 2C 04 00 00 */ cmpwi r4, 0
+/* 80362A70 0035E6D0 40 82 00 10 */ bne lbl_80362A80
+/* 80362A74 0035E6D4 80 06 00 04 */ lwz r0, 4(r6)
+/* 80362A78 0035E6D8 90 03 00 00 */ stw r0, 0(r3)
+/* 80362A7C 0035E6DC 48 00 00 10 */ b lbl_80362A8C
+lbl_80362A80:
+/* 80362A80 0035E6E0 80 06 00 04 */ lwz r0, 4(r6)
+/* 80362A84 0035E6E4 7C 84 2A 14 */ add r4, r4, r5
+/* 80362A88 0035E6E8 90 04 00 04 */ stw r0, 4(r4)
+lbl_80362A8C:
+/* 80362A8C 0035E6EC 80 A6 00 04 */ lwz r5, 4(r6)
+/* 80362A90 0035E6F0 2C 05 00 00 */ cmpwi r5, 0
+/* 80362A94 0035E6F4 40 82 00 10 */ bne lbl_80362AA4
+/* 80362A98 0035E6F8 80 06 00 00 */ lwz r0, 0(r6)
+/* 80362A9C 0035E6FC 90 03 00 04 */ stw r0, 4(r3)
+/* 80362AA0 0035E700 48 00 00 10 */ b lbl_80362AB0
+lbl_80362AA4:
+/* 80362AA4 0035E704 80 86 00 00 */ lwz r4, 0(r6)
+/* 80362AA8 0035E708 A0 03 00 0A */ lhz r0, 0xa(r3)
+/* 80362AAC 0035E70C 7C 85 01 2E */ stwx r4, r5, r0
+lbl_80362AB0:
+/* 80362AB0 0035E710 38 00 00 00 */ li r0, 0
+/* 80362AB4 0035E714 90 06 00 00 */ stw r0, 0(r6)
+/* 80362AB8 0035E718 90 06 00 04 */ stw r0, 4(r6)
+/* 80362ABC 0035E71C A0 83 00 08 */ lhz r4, 8(r3)
+/* 80362AC0 0035E720 38 04 FF FF */ addi r0, r4, -1
+/* 80362AC4 0035E724 B0 03 00 08 */ sth r0, 8(r3)
+/* 80362AC8 0035E728 4E 80 00 20 */ blr
+
+.global List_GetNext__Q24nw4r2utFPCQ34nw4r2ut4ListPCv
+List_GetNext__Q24nw4r2utFPCQ34nw4r2ut4ListPCv:
+/* 80362ACC 0035E72C 2C 04 00 00 */ cmpwi r4, 0
+/* 80362AD0 0035E730 40 82 00 0C */ bne lbl_80362ADC
+/* 80362AD4 0035E734 80 63 00 00 */ lwz r3, 0(r3)
+/* 80362AD8 0035E738 4E 80 00 20 */ blr
+lbl_80362ADC:
+/* 80362ADC 0035E73C A0 03 00 0A */ lhz r0, 0xa(r3)
+/* 80362AE0 0035E740 7C 64 02 14 */ add r3, r4, r0
+/* 80362AE4 0035E744 80 63 00 04 */ lwz r3, 4(r3)
+/* 80362AE8 0035E748 4E 80 00 20 */ blr
+
+.global List_GetNth__Q24nw4r2utFPCQ34nw4r2ut4ListUs
+List_GetNth__Q24nw4r2utFPCQ34nw4r2ut4ListUs:
+/* 80362AEC 0035E74C 38 C0 00 00 */ li r6, 0
+/* 80362AF0 0035E750 38 A0 00 00 */ li r5, 0
+/* 80362AF4 0035E754 48 00 00 18 */ b lbl_80362B0C
+lbl_80362AF8:
+/* 80362AF8 0035E758 7C 04 30 00 */ cmpw r4, r6
+/* 80362AFC 0035E75C 40 82 00 0C */ bne lbl_80362B08
+/* 80362B00 0035E760 7C A3 2B 78 */ mr r3, r5
+/* 80362B04 0035E764 4E 80 00 20 */ blr
+lbl_80362B08:
+/* 80362B08 0035E768 38 C6 00 01 */ addi r6, r6, 1
+lbl_80362B0C:
+/* 80362B0C 0035E76C 2C 05 00 00 */ cmpwi r5, 0
+/* 80362B10 0035E770 41 82 00 14 */ beq lbl_80362B24
+/* 80362B14 0035E774 A0 03 00 0A */ lhz r0, 0xa(r3)
+/* 80362B18 0035E778 7C A5 02 14 */ add r5, r5, r0
+/* 80362B1C 0035E77C 80 A5 00 04 */ lwz r5, 4(r5)
+/* 80362B20 0035E780 48 00 00 08 */ b lbl_80362B28
+lbl_80362B24:
+/* 80362B24 0035E784 80 A3 00 00 */ lwz r5, 0(r3)
+lbl_80362B28:
+/* 80362B28 0035E788 2C 05 00 00 */ cmpwi r5, 0
+/* 80362B2C 0035E78C 40 82 FF CC */ bne lbl_80362AF8
+/* 80362B30 0035E790 38 60 00 00 */ li r3, 0
+/* 80362B34 0035E794 4E 80 00 20 */ blr