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
217
218
219
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global __copy_longs_aligned
__copy_longs_aligned:
/* 801CA3E4 001C6044 7C 03 00 D0 */ neg r0, r3
/* 801CA3E8 001C6048 38 84 FF FF */ addi r4, r4, -1
/* 801CA3EC 001C604C 54 06 07 BF */ clrlwi. r6, r0, 0x1e
/* 801CA3F0 001C6050 38 63 FF FF */ addi r3, r3, -1
/* 801CA3F4 001C6054 41 82 00 18 */ beq lbl_801CA40C
/* 801CA3F8 001C6058 7C A6 28 50 */ subf r5, r6, r5
lbl_801CA3FC:
/* 801CA3FC 001C605C 8C 04 00 01 */ lbzu r0, 1(r4)
/* 801CA400 001C6060 34 C6 FF FF */ addic. r6, r6, -1
/* 801CA404 001C6064 9C 03 00 01 */ stbu r0, 1(r3)
/* 801CA408 001C6068 40 82 FF F4 */ bne lbl_801CA3FC
lbl_801CA40C:
/* 801CA40C 001C606C 54 A6 D9 7F */ rlwinm. r6, r5, 0x1b, 5, 0x1f
/* 801CA410 001C6070 38 E4 FF FD */ addi r7, r4, -3
/* 801CA414 001C6074 38 83 FF FD */ addi r4, r3, -3
/* 801CA418 001C6078 41 82 00 4C */ beq lbl_801CA464
lbl_801CA41C:
/* 801CA41C 001C607C 80 67 00 04 */ lwz r3, 4(r7)
/* 801CA420 001C6080 34 C6 FF FF */ addic. r6, r6, -1
/* 801CA424 001C6084 80 07 00 08 */ lwz r0, 8(r7)
/* 801CA428 001C6088 90 64 00 04 */ stw r3, 4(r4)
/* 801CA42C 001C608C 80 67 00 0C */ lwz r3, 0xc(r7)
/* 801CA430 001C6090 90 04 00 08 */ stw r0, 8(r4)
/* 801CA434 001C6094 80 07 00 10 */ lwz r0, 0x10(r7)
/* 801CA438 001C6098 90 64 00 0C */ stw r3, 0xc(r4)
/* 801CA43C 001C609C 80 67 00 14 */ lwz r3, 0x14(r7)
/* 801CA440 001C60A0 90 04 00 10 */ stw r0, 0x10(r4)
/* 801CA444 001C60A4 80 07 00 18 */ lwz r0, 0x18(r7)
/* 801CA448 001C60A8 90 64 00 14 */ stw r3, 0x14(r4)
/* 801CA44C 001C60AC 80 67 00 1C */ lwz r3, 0x1c(r7)
/* 801CA450 001C60B0 90 04 00 18 */ stw r0, 0x18(r4)
/* 801CA454 001C60B4 84 07 00 20 */ lwzu r0, 0x20(r7)
/* 801CA458 001C60B8 90 64 00 1C */ stw r3, 0x1c(r4)
/* 801CA45C 001C60BC 94 04 00 20 */ stwu r0, 0x20(r4)
/* 801CA460 001C60C0 40 82 FF BC */ bne lbl_801CA41C
lbl_801CA464:
/* 801CA464 001C60C4 54 A3 F7 7F */ rlwinm. r3, r5, 0x1e, 0x1d, 0x1f
/* 801CA468 001C60C8 41 82 00 14 */ beq lbl_801CA47C
lbl_801CA46C:
/* 801CA46C 001C60CC 84 07 00 04 */ lwzu r0, 4(r7)
/* 801CA470 001C60D0 34 63 FF FF */ addic. r3, r3, -1
/* 801CA474 001C60D4 94 04 00 04 */ stwu r0, 4(r4)
/* 801CA478 001C60D8 40 82 FF F4 */ bne lbl_801CA46C
lbl_801CA47C:
/* 801CA47C 001C60DC 54 A5 07 BF */ clrlwi. r5, r5, 0x1e
/* 801CA480 001C60E0 38 C7 00 03 */ addi r6, r7, 3
/* 801CA484 001C60E4 38 64 00 03 */ addi r3, r4, 3
/* 801CA488 001C60E8 4D 82 00 20 */ beqlr
lbl_801CA48C:
/* 801CA48C 001C60EC 8C 06 00 01 */ lbzu r0, 1(r6)
/* 801CA490 001C60F0 34 A5 FF FF */ addic. r5, r5, -1
/* 801CA494 001C60F4 9C 03 00 01 */ stbu r0, 1(r3)
/* 801CA498 001C60F8 40 82 FF F4 */ bne lbl_801CA48C
/* 801CA49C 001C60FC 4E 80 00 20 */ blr
.global __copy_longs_rev_aligned
__copy_longs_rev_aligned:
/* 801CA4A0 001C6100 7C E3 2A 14 */ add r7, r3, r5
/* 801CA4A4 001C6104 7C C4 2A 14 */ add r6, r4, r5
/* 801CA4A8 001C6108 54 E3 07 BF */ clrlwi. r3, r7, 0x1e
/* 801CA4AC 001C610C 41 82 00 18 */ beq lbl_801CA4C4
/* 801CA4B0 001C6110 7C A3 28 50 */ subf r5, r3, r5
lbl_801CA4B4:
/* 801CA4B4 001C6114 8C 06 FF FF */ lbzu r0, -1(r6)
/* 801CA4B8 001C6118 34 63 FF FF */ addic. r3, r3, -1
/* 801CA4BC 001C611C 9C 07 FF FF */ stbu r0, -1(r7)
/* 801CA4C0 001C6120 40 82 FF F4 */ bne lbl_801CA4B4
lbl_801CA4C4:
/* 801CA4C4 001C6124 54 A4 D9 7F */ rlwinm. r4, r5, 0x1b, 5, 0x1f
/* 801CA4C8 001C6128 41 82 00 4C */ beq lbl_801CA514
lbl_801CA4CC:
/* 801CA4CC 001C612C 80 66 FF FC */ lwz r3, -4(r6)
/* 801CA4D0 001C6130 34 84 FF FF */ addic. r4, r4, -1
/* 801CA4D4 001C6134 80 06 FF F8 */ lwz r0, -8(r6)
/* 801CA4D8 001C6138 90 67 FF FC */ stw r3, -4(r7)
/* 801CA4DC 001C613C 80 66 FF F4 */ lwz r3, -0xc(r6)
/* 801CA4E0 001C6140 90 07 FF F8 */ stw r0, -8(r7)
/* 801CA4E4 001C6144 80 06 FF F0 */ lwz r0, -0x10(r6)
/* 801CA4E8 001C6148 90 67 FF F4 */ stw r3, -0xc(r7)
/* 801CA4EC 001C614C 80 66 FF EC */ lwz r3, -0x14(r6)
/* 801CA4F0 001C6150 90 07 FF F0 */ stw r0, -0x10(r7)
/* 801CA4F4 001C6154 80 06 FF E8 */ lwz r0, -0x18(r6)
/* 801CA4F8 001C6158 90 67 FF EC */ stw r3, -0x14(r7)
/* 801CA4FC 001C615C 80 66 FF E4 */ lwz r3, -0x1c(r6)
/* 801CA500 001C6160 90 07 FF E8 */ stw r0, -0x18(r7)
/* 801CA504 001C6164 84 06 FF E0 */ lwzu r0, -0x20(r6)
/* 801CA508 001C6168 90 67 FF E4 */ stw r3, -0x1c(r7)
/* 801CA50C 001C616C 94 07 FF E0 */ stwu r0, -0x20(r7)
/* 801CA510 001C6170 40 82 FF BC */ bne lbl_801CA4CC
lbl_801CA514:
/* 801CA514 001C6174 54 A3 F7 7F */ rlwinm. r3, r5, 0x1e, 0x1d, 0x1f
/* 801CA518 001C6178 41 82 00 14 */ beq lbl_801CA52C
lbl_801CA51C:
/* 801CA51C 001C617C 84 06 FF FC */ lwzu r0, -4(r6)
/* 801CA520 001C6180 34 63 FF FF */ addic. r3, r3, -1
/* 801CA524 001C6184 94 07 FF FC */ stwu r0, -4(r7)
/* 801CA528 001C6188 40 82 FF F4 */ bne lbl_801CA51C
lbl_801CA52C:
/* 801CA52C 001C618C 54 A5 07 BF */ clrlwi. r5, r5, 0x1e
/* 801CA530 001C6190 4D 82 00 20 */ beqlr
lbl_801CA534:
/* 801CA534 001C6194 8C 06 FF FF */ lbzu r0, -1(r6)
/* 801CA538 001C6198 34 A5 FF FF */ addic. r5, r5, -1
/* 801CA53C 001C619C 9C 07 FF FF */ stbu r0, -1(r7)
/* 801CA540 001C61A0 40 82 FF F4 */ bne lbl_801CA534
/* 801CA544 001C61A4 4E 80 00 20 */ blr
.global __copy_longs_unaligned
__copy_longs_unaligned:
/* 801CA548 001C61A8 7C 03 00 D0 */ neg r0, r3
/* 801CA54C 001C61AC 39 04 FF FF */ addi r8, r4, -1
/* 801CA550 001C61B0 54 06 07 BF */ clrlwi. r6, r0, 0x1e
/* 801CA554 001C61B4 38 63 FF FF */ addi r3, r3, -1
/* 801CA558 001C61B8 41 82 00 18 */ beq lbl_801CA570
/* 801CA55C 001C61BC 7C A6 28 50 */ subf r5, r6, r5
lbl_801CA560:
/* 801CA560 001C61C0 8C 08 00 01 */ lbzu r0, 1(r8)
/* 801CA564 001C61C4 34 C6 FF FF */ addic. r6, r6, -1
/* 801CA568 001C61C8 9C 03 00 01 */ stbu r0, 1(r3)
/* 801CA56C 001C61CC 40 82 FF F4 */ bne lbl_801CA560
lbl_801CA570:
/* 801CA570 001C61D0 38 08 00 01 */ addi r0, r8, 1
/* 801CA574 001C61D4 38 C3 FF FD */ addi r6, r3, -3
/* 801CA578 001C61D8 54 09 07 BE */ clrlwi r9, r0, 0x1e
/* 801CA57C 001C61DC 54 A7 E8 FE */ srwi r7, r5, 3
/* 801CA580 001C61E0 7D 09 40 50 */ subf r8, r9, r8
/* 801CA584 001C61E4 54 0A 1E F8 */ rlwinm r10, r0, 3, 0x1b, 0x1c
/* 801CA588 001C61E8 84 88 00 01 */ lwzu r4, 1(r8)
/* 801CA58C 001C61EC 21 6A 00 20 */ subfic r11, r10, 0x20
lbl_801CA590:
/* 801CA590 001C61F0 80 68 00 04 */ lwz r3, 4(r8)
/* 801CA594 001C61F4 7C 84 50 30 */ slw r4, r4, r10
/* 801CA598 001C61F8 34 E7 FF FF */ addic. r7, r7, -1
/* 801CA59C 001C61FC 7C 60 5C 30 */ srw r0, r3, r11
/* 801CA5A0 001C6200 7C 63 50 30 */ slw r3, r3, r10
/* 801CA5A4 001C6204 7C 80 03 78 */ or r0, r4, r0
/* 801CA5A8 001C6208 90 06 00 04 */ stw r0, 4(r6)
/* 801CA5AC 001C620C 84 88 00 08 */ lwzu r4, 8(r8)
/* 801CA5B0 001C6210 7C 80 5C 30 */ srw r0, r4, r11
/* 801CA5B4 001C6214 7C 60 03 78 */ or r0, r3, r0
/* 801CA5B8 001C6218 94 06 00 08 */ stwu r0, 8(r6)
/* 801CA5BC 001C621C 40 82 FF D4 */ bne lbl_801CA590
/* 801CA5C0 001C6220 54 A0 07 7B */ rlwinm. r0, r5, 0, 0x1d, 0x1d
/* 801CA5C4 001C6224 41 82 00 18 */ beq lbl_801CA5DC
/* 801CA5C8 001C6228 84 08 00 04 */ lwzu r0, 4(r8)
/* 801CA5CC 001C622C 7C 83 50 30 */ slw r3, r4, r10
/* 801CA5D0 001C6230 7C 00 5C 30 */ srw r0, r0, r11
/* 801CA5D4 001C6234 7C 60 03 78 */ or r0, r3, r0
/* 801CA5D8 001C6238 94 06 00 04 */ stwu r0, 4(r6)
lbl_801CA5DC:
/* 801CA5DC 001C623C 54 A5 07 BF */ clrlwi. r5, r5, 0x1e
/* 801CA5E0 001C6240 38 88 00 03 */ addi r4, r8, 3
/* 801CA5E4 001C6244 38 66 00 03 */ addi r3, r6, 3
/* 801CA5E8 001C6248 4D 82 00 20 */ beqlr
/* 801CA5EC 001C624C 20 09 00 04 */ subfic r0, r9, 4
/* 801CA5F0 001C6250 7C 80 20 50 */ subf r4, r0, r4
lbl_801CA5F4:
/* 801CA5F4 001C6254 8C 04 00 01 */ lbzu r0, 1(r4)
/* 801CA5F8 001C6258 34 A5 FF FF */ addic. r5, r5, -1
/* 801CA5FC 001C625C 9C 03 00 01 */ stbu r0, 1(r3)
/* 801CA600 001C6260 40 82 FF F4 */ bne lbl_801CA5F4
/* 801CA604 001C6264 4E 80 00 20 */ blr
.global __copy_longs_rev_unaligned
__copy_longs_rev_unaligned:
/* 801CA608 001C6268 7D 63 2A 14 */ add r11, r3, r5
/* 801CA60C 001C626C 7D 44 2A 14 */ add r10, r4, r5
/* 801CA610 001C6270 55 63 07 BF */ clrlwi. r3, r11, 0x1e
/* 801CA614 001C6274 41 82 00 18 */ beq lbl_801CA62C
/* 801CA618 001C6278 7C A3 28 50 */ subf r5, r3, r5
lbl_801CA61C:
/* 801CA61C 001C627C 8C 0A FF FF */ lbzu r0, -1(r10)
/* 801CA620 001C6280 34 63 FF FF */ addic. r3, r3, -1
/* 801CA624 001C6284 9C 0B FF FF */ stbu r0, -1(r11)
/* 801CA628 001C6288 40 82 FF F4 */ bne lbl_801CA61C
lbl_801CA62C:
/* 801CA62C 001C628C 55 48 1E F8 */ rlwinm r8, r10, 3, 0x1b, 0x1c
/* 801CA630 001C6290 55 47 07 BE */ clrlwi r7, r10, 0x1e
/* 801CA634 001C6294 21 28 00 20 */ subfic r9, r8, 0x20
/* 801CA638 001C6298 54 A6 E8 FE */ srwi r6, r5, 3
/* 801CA63C 001C629C 20 07 00 04 */ subfic r0, r7, 4
/* 801CA640 001C62A0 7D 4A 02 14 */ add r10, r10, r0
/* 801CA644 001C62A4 84 8A FF FC */ lwzu r4, -4(r10)
lbl_801CA648:
/* 801CA648 001C62A8 80 0A FF FC */ lwz r0, -4(r10)
/* 801CA64C 001C62AC 7C 83 4C 30 */ srw r3, r4, r9
/* 801CA650 001C62B0 34 C6 FF FF */ addic. r6, r6, -1
/* 801CA654 001C62B4 7C 04 40 30 */ slw r4, r0, r8
/* 801CA658 001C62B8 7C 00 4C 30 */ srw r0, r0, r9
/* 801CA65C 001C62BC 7C 83 1B 78 */ or r3, r4, r3
/* 801CA660 001C62C0 90 6B FF FC */ stw r3, -4(r11)
/* 801CA664 001C62C4 84 8A FF F8 */ lwzu r4, -8(r10)
/* 801CA668 001C62C8 7C 83 40 30 */ slw r3, r4, r8
/* 801CA66C 001C62CC 7C 60 03 78 */ or r0, r3, r0
/* 801CA670 001C62D0 94 0B FF F8 */ stwu r0, -8(r11)
/* 801CA674 001C62D4 40 82 FF D4 */ bne lbl_801CA648
/* 801CA678 001C62D8 54 A0 07 7B */ rlwinm. r0, r5, 0, 0x1d, 0x1d
/* 801CA67C 001C62DC 41 82 00 18 */ beq lbl_801CA694
/* 801CA680 001C62E0 84 6A FF FC */ lwzu r3, -4(r10)
/* 801CA684 001C62E4 7C 80 4C 30 */ srw r0, r4, r9
/* 801CA688 001C62E8 7C 63 40 30 */ slw r3, r3, r8
/* 801CA68C 001C62EC 7C 60 03 78 */ or r0, r3, r0
/* 801CA690 001C62F0 94 0B FF FC */ stwu r0, -4(r11)
lbl_801CA694:
/* 801CA694 001C62F4 54 A5 07 BF */ clrlwi. r5, r5, 0x1e
/* 801CA698 001C62F8 4D 82 00 20 */ beqlr
/* 801CA69C 001C62FC 7D 4A 3A 14 */ add r10, r10, r7
lbl_801CA6A0:
/* 801CA6A0 001C6300 8C 0A FF FF */ lbzu r0, -1(r10)
/* 801CA6A4 001C6304 34 A5 FF FF */ addic. r5, r5, -1
/* 801CA6A8 001C6308 9C 0B FF FF */ stbu r0, -1(r11)
/* 801CA6AC 001C630C 40 82 FF F4 */ bne lbl_801CA6A0
/* 801CA6B0 001C6310 4E 80 00 20 */ blr
|