summaryrefslogtreecommitdiff
path: root/asm/code_800321E4.s
blob: 2525afdc0252cbcf7c55239e312c1f4053fbfee1 (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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global func_800321E4
func_800321E4:
/* 800321E4 0002DE44  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 800321E8 0002DE48  7C 08 02 A6 */	mflr r0
/* 800321EC 0002DE4C  C8 42 81 A8 */	lfd f2, lbl_806407A8-_SDA2_BASE_(r2)
/* 800321F0 0002DE50  90 01 00 14 */	stw r0, 0x14(r1)
/* 800321F4 0002DE54  3C 00 43 30 */	lis r0, 0x4330
/* 800321F8 0002DE58  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 800321FC 0002DE5C  90 01 00 08 */	stw r0, 8(r1)
/* 80032200 0002DE60  88 03 00 59 */	lbz r0, 0x59(r3)
/* 80032204 0002DE64  90 01 00 0C */	stw r0, 0xc(r1)
/* 80032208 0002DE68  C8 01 00 08 */	lfd f0, 8(r1)
/* 8003220C 0002DE6C  EC 00 10 28 */	fsubs f0, f0, f2
/* 80032210 0002DE70  EC 21 00 32 */	fmuls f1, f1, f0
/* 80032214 0002DE74  48 19 4D ED */	bl __cvt_fp2unsigned
/* 80032218 0002DE78  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003221C 0002DE7C  7C 08 03 A6 */	mtlr r0
/* 80032220 0002DE80  38 21 00 10 */	addi r1, r1, 0x10
/* 80032224 0002DE84  4E 80 00 20 */	blr

.global lbl_80032228
lbl_80032228:
/* 80032228 0002DE88  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 8003222C 0002DE8C  7C 08 02 A6 */	mflr r0
/* 80032230 0002DE90  90 01 00 44 */	stw r0, 0x44(r1)
/* 80032234 0002DE94  DB E1 00 30 */	stfd f31, 0x30(r1)
/* 80032238 0002DE98  F3 E1 00 38 */	psq_st f31, 56(r1), 0, qr0
/* 8003223C 0002DE9C  DB C1 00 20 */	stfd f30, 0x20(r1)
/* 80032240 0002DEA0  F3 C1 00 28 */	psq_st f30, 40(r1), 0, qr0
/* 80032244 0002DEA4  2C 04 00 12 */	cmpwi r4, 0x12
/* 80032248 0002DEA8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8003224C 0002DEAC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80032250 0002DEB0  7C DE 33 78 */	mr r30, r6
/* 80032254 0002DEB4  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80032258 0002DEB8  7C BD 2B 78 */	mr r29, r5
/* 8003225C 0002DEBC  41 82 01 1C */	beq lbl_80032378
/* 80032260 0002DEC0  40 80 00 10 */	bge lbl_80032270
/* 80032264 0002DEC4  2C 04 00 11 */	cmpwi r4, 0x11
/* 80032268 0002DEC8  40 80 00 14 */	bge lbl_8003227C
/* 8003226C 0002DECC  48 00 01 EC */	b lbl_80032458
lbl_80032270:
/* 80032270 0002DED0  2C 04 00 14 */	cmpwi r4, 0x14
/* 80032274 0002DED4  40 80 01 E4 */	bge lbl_80032458
/* 80032278 0002DED8  48 00 01 98 */	b lbl_80032410
lbl_8003227C:
/* 8003227C 0002DEDC  A8 05 00 08 */	lha r0, 8(r5)
/* 80032280 0002DEE0  2C 00 00 01 */	cmpwi r0, 1
/* 80032284 0002DEE4  40 82 00 0C */	bne lbl_80032290
/* 80032288 0002DEE8  83 E5 00 0C */	lwz r31, 0xc(r5)
/* 8003228C 0002DEEC  48 00 00 2C */	b lbl_800322B8
lbl_80032290:
/* 80032290 0002DEF0  2C 00 00 02 */	cmpwi r0, 2
/* 80032294 0002DEF4  40 82 00 18 */	bne lbl_800322AC
/* 80032298 0002DEF8  C0 05 00 0C */	lfs f0, 0xc(r5)
/* 8003229C 0002DEFC  FC 00 00 1E */	fctiwz f0, f0
/* 800322A0 0002DF00  D8 01 00 08 */	stfd f0, 8(r1)
/* 800322A4 0002DF04  80 61 00 0C */	lwz r3, 0xc(r1)
/* 800322A8 0002DF08  48 00 00 0C */	b lbl_800322B4
lbl_800322AC:
/* 800322AC 0002DF0C  38 65 00 08 */	addi r3, r5, 8
/* 800322B0 0002DF10  48 1F BA 85 */	bl func_8022DD34
lbl_800322B4:
/* 800322B4 0002DF14  7C 7F 1B 78 */	mr r31, r3
lbl_800322B8:
/* 800322B8 0002DF18  A8 1D 00 10 */	lha r0, 0x10(r29)
/* 800322BC 0002DF1C  2C 00 00 01 */	cmpwi r0, 1
/* 800322C0 0002DF20  40 82 00 28 */	bne lbl_800322E8
/* 800322C4 0002DF24  80 7D 00 14 */	lwz r3, 0x14(r29)
/* 800322C8 0002DF28  3C 00 43 30 */	lis r0, 0x4330
/* 800322CC 0002DF2C  90 01 00 08 */	stw r0, 8(r1)
/* 800322D0 0002DF30  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 800322D4 0002DF34  C8 22 81 B0 */	lfd f1, lbl_806407B0-_SDA2_BASE_(r2)
/* 800322D8 0002DF38  90 01 00 0C */	stw r0, 0xc(r1)
/* 800322DC 0002DF3C  C8 01 00 08 */	lfd f0, 8(r1)
/* 800322E0 0002DF40  EF E0 08 28 */	fsubs f31, f0, f1
/* 800322E4 0002DF44  48 00 00 20 */	b lbl_80032304
lbl_800322E8:
/* 800322E8 0002DF48  2C 00 00 02 */	cmpwi r0, 2
/* 800322EC 0002DF4C  40 82 00 0C */	bne lbl_800322F8
/* 800322F0 0002DF50  C0 3D 00 14 */	lfs f1, 0x14(r29)
/* 800322F4 0002DF54  48 00 00 0C */	b lbl_80032300
lbl_800322F8:
/* 800322F8 0002DF58  38 7D 00 10 */	addi r3, r29, 0x10
/* 800322FC 0002DF5C  48 1F BA 7D */	bl func_8022DD78
lbl_80032300:
/* 80032300 0002DF60  FF E0 08 90 */	fmr f31, f1
lbl_80032304:
/* 80032304 0002DF64  A8 1D 00 18 */	lha r0, 0x18(r29)
/* 80032308 0002DF68  2C 00 00 01 */	cmpwi r0, 1
/* 8003230C 0002DF6C  40 82 00 28 */	bne lbl_80032334
/* 80032310 0002DF70  80 7D 00 1C */	lwz r3, 0x1c(r29)
/* 80032314 0002DF74  3C 00 43 30 */	lis r0, 0x4330
/* 80032318 0002DF78  90 01 00 08 */	stw r0, 8(r1)
/* 8003231C 0002DF7C  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 80032320 0002DF80  C8 22 81 B0 */	lfd f1, lbl_806407B0-_SDA2_BASE_(r2)
/* 80032324 0002DF84  90 01 00 0C */	stw r0, 0xc(r1)
/* 80032328 0002DF88  C8 01 00 08 */	lfd f0, 8(r1)
/* 8003232C 0002DF8C  EF C0 08 28 */	fsubs f30, f0, f1
/* 80032330 0002DF90  48 00 00 20 */	b lbl_80032350
lbl_80032334:
/* 80032334 0002DF94  2C 00 00 02 */	cmpwi r0, 2
/* 80032338 0002DF98  40 82 00 0C */	bne lbl_80032344
/* 8003233C 0002DF9C  C0 3D 00 1C */	lfs f1, 0x1c(r29)
/* 80032340 0002DFA0  48 00 00 0C */	b lbl_8003234C
lbl_80032344:
/* 80032344 0002DFA4  38 7D 00 18 */	addi r3, r29, 0x18
/* 80032348 0002DFA8  48 1F BA 31 */	bl func_8022DD78
lbl_8003234C:
/* 8003234C 0002DFAC  FF C0 08 90 */	fmr f30, f1
lbl_80032350:
/* 80032350 0002DFB0  FC 20 F8 90 */	fmr f1, f31
/* 80032354 0002DFB4  4B FF FE 91 */	bl func_800321E4
/* 80032358 0002DFB8  FC 20 F0 90 */	fmr f1, f30
/* 8003235C 0002DFBC  7C 64 1B 78 */	mr r4, r3
/* 80032360 0002DFC0  7F E3 FB 78 */	mr r3, r31
/* 80032364 0002DFC4  4B FD 8E 0D */	bl func_8000B170
/* 80032368 0002DFC8  38 00 00 01 */	li r0, 1
/* 8003236C 0002DFCC  90 7E 00 04 */	stw r3, 4(r30)
/* 80032370 0002DFD0  B0 1E 00 00 */	sth r0, 0(r30)
/* 80032374 0002DFD4  48 00 00 E4 */	b lbl_80032458
lbl_80032378:
/* 80032378 0002DFD8  A8 05 00 08 */	lha r0, 8(r5)
/* 8003237C 0002DFDC  2C 00 00 01 */	cmpwi r0, 1
/* 80032380 0002DFE0  40 82 00 0C */	bne lbl_8003238C
/* 80032384 0002DFE4  83 E5 00 0C */	lwz r31, 0xc(r5)
/* 80032388 0002DFE8  48 00 00 2C */	b lbl_800323B4
lbl_8003238C:
/* 8003238C 0002DFEC  2C 00 00 02 */	cmpwi r0, 2
/* 80032390 0002DFF0  40 82 00 18 */	bne lbl_800323A8
/* 80032394 0002DFF4  C0 05 00 0C */	lfs f0, 0xc(r5)
/* 80032398 0002DFF8  FC 00 00 1E */	fctiwz f0, f0
/* 8003239C 0002DFFC  D8 01 00 08 */	stfd f0, 8(r1)
/* 800323A0 0002E000  80 61 00 0C */	lwz r3, 0xc(r1)
/* 800323A4 0002E004  48 00 00 0C */	b lbl_800323B0
lbl_800323A8:
/* 800323A8 0002E008  38 65 00 08 */	addi r3, r5, 8
/* 800323AC 0002E00C  48 1F B9 89 */	bl func_8022DD34
lbl_800323B0:
/* 800323B0 0002E010  7C 7F 1B 78 */	mr r31, r3
lbl_800323B4:
/* 800323B4 0002E014  A8 1D 00 10 */	lha r0, 0x10(r29)
/* 800323B8 0002E018  2C 00 00 01 */	cmpwi r0, 1
/* 800323BC 0002E01C  40 82 00 28 */	bne lbl_800323E4
/* 800323C0 0002E020  80 7D 00 14 */	lwz r3, 0x14(r29)
/* 800323C4 0002E024  3C 00 43 30 */	lis r0, 0x4330
/* 800323C8 0002E028  90 01 00 08 */	stw r0, 8(r1)
/* 800323CC 0002E02C  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 800323D0 0002E030  C8 22 81 B0 */	lfd f1, lbl_806407B0-_SDA2_BASE_(r2)
/* 800323D4 0002E034  90 01 00 0C */	stw r0, 0xc(r1)
/* 800323D8 0002E038  C8 01 00 08 */	lfd f0, 8(r1)
/* 800323DC 0002E03C  EC 20 08 28 */	fsubs f1, f0, f1
/* 800323E0 0002E040  48 00 00 1C */	b lbl_800323FC
lbl_800323E4:
/* 800323E4 0002E044  2C 00 00 02 */	cmpwi r0, 2
/* 800323E8 0002E048  40 82 00 0C */	bne lbl_800323F4
/* 800323EC 0002E04C  C0 3D 00 14 */	lfs f1, 0x14(r29)
/* 800323F0 0002E050  48 00 00 0C */	b lbl_800323FC
lbl_800323F4:
/* 800323F4 0002E054  38 7D 00 10 */	addi r3, r29, 0x10
/* 800323F8 0002E058  48 1F B9 81 */	bl func_8022DD78
lbl_800323FC:
/* 800323FC 0002E05C  4B FF FD E9 */	bl func_800321E4
/* 80032400 0002E060  7C 64 1B 78 */	mr r4, r3
/* 80032404 0002E064  7F E3 FB 78 */	mr r3, r31
/* 80032408 0002E068  4B FD 90 65 */	bl func_8000B46C
/* 8003240C 0002E06C  48 00 00 4C */	b lbl_80032458
lbl_80032410:
/* 80032410 0002E070  A8 05 00 08 */	lha r0, 8(r5)
/* 80032414 0002E074  2C 00 00 01 */	cmpwi r0, 1
/* 80032418 0002E078  40 82 00 0C */	bne lbl_80032424
/* 8003241C 0002E07C  80 65 00 0C */	lwz r3, 0xc(r5)
/* 80032420 0002E080  48 00 00 28 */	b lbl_80032448
lbl_80032424:
/* 80032424 0002E084  2C 00 00 02 */	cmpwi r0, 2
/* 80032428 0002E088  40 82 00 18 */	bne lbl_80032440
/* 8003242C 0002E08C  C0 05 00 0C */	lfs f0, 0xc(r5)
/* 80032430 0002E090  FC 00 00 1E */	fctiwz f0, f0
/* 80032434 0002E094  D8 01 00 08 */	stfd f0, 8(r1)
/* 80032438 0002E098  80 61 00 0C */	lwz r3, 0xc(r1)
/* 8003243C 0002E09C  48 00 00 0C */	b lbl_80032448
lbl_80032440:
/* 80032440 0002E0A0  38 65 00 08 */	addi r3, r5, 8
/* 80032444 0002E0A4  48 1F B8 F1 */	bl func_8022DD34
lbl_80032448:
/* 80032448 0002E0A8  4B FD 90 79 */	bl func_8000B4C0
/* 8003244C 0002E0AC  38 00 00 01 */	li r0, 1
/* 80032450 0002E0B0  90 7E 00 04 */	stw r3, 4(r30)
/* 80032454 0002E0B4  B0 1E 00 00 */	sth r0, 0(r30)
lbl_80032458:
/* 80032458 0002E0B8  38 60 00 01 */	li r3, 1
/* 8003245C 0002E0BC  E3 E1 00 38 */	psq_l f31, 56(r1), 0, qr0
/* 80032460 0002E0C0  CB E1 00 30 */	lfd f31, 0x30(r1)
/* 80032464 0002E0C4  E3 C1 00 28 */	psq_l f30, 40(r1), 0, qr0
/* 80032468 0002E0C8  CB C1 00 20 */	lfd f30, 0x20(r1)
/* 8003246C 0002E0CC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80032470 0002E0D0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80032474 0002E0D4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80032478 0002E0D8  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8003247C 0002E0DC  7C 08 03 A6 */	mtlr r0
/* 80032480 0002E0E0  38 21 00 40 */	addi r1, r1, 0x40
/* 80032484 0002E0E4  4E 80 00 20 */	blr

.global func_80032488
func_80032488:
/* 80032488 0002E0E8  38 A0 00 01 */	li r5, 1
/* 8003248C 0002E0EC  38 6D 97 70 */	addi r3, r13, lbl_8063EA30-_SDA_BASE_
/* 80032490 0002E0F0  38 80 00 04 */	li r4, 4
/* 80032494 0002E0F4  38 00 00 00 */	li r0, 0
/* 80032498 0002E0F8  98 AD 97 70 */	stb r5, lbl_8063EA30-_SDA_BASE_(r13)
/* 8003249C 0002E0FC  B0 83 00 02 */	sth r4, 2(r3)
/* 800324A0 0002E100  98 03 00 04 */	stb r0, 4(r3)
/* 800324A4 0002E104  4E 80 00 20 */	blr