summaryrefslogtreecommitdiff
path: root/asm/nw4r/ut/ut_list.s
blob: 9216661a060b23b138e7f69f3bb607e4b43243c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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