summaryrefslogtreecommitdiff
path: root/asm/Dolphin/os/OSError.s
blob: 49c659ed310a1a409ed6939bef9209ab4e28245f (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
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
.include "macros.inc"

.section .text

.global func_8036e6b4
.type func_8036e6b4, @function
func_8036e6b4:
/* 8036E6B4 7C0802A6 */ mflr        r0
/* 8036E6B8 90010004 */ stw         r0, 4(r1)
/* 8036E6BC 9421FF88 */ stwu        r1, -0x78(r1)
/* 8036E6C0 40860024 */ bne-        cr1, lbl_8036e6e4
/* 8036E6C4 D8210028 */ stfd        f1, 0x28(r1)
/* 8036E6C8 D8410030 */ stfd        f2, 0x30(r1)
/* 8036E6CC D8610038 */ stfd        f3, 0x38(r1)
/* 8036E6D0 D8810040 */ stfd        f4, 0x40(r1)
/* 8036E6D4 D8A10048 */ stfd        f5, 0x48(r1)
/* 8036E6D8 D8C10050 */ stfd        f6, 0x50(r1)
/* 8036E6DC D8E10058 */ stfd        f7, 0x58(r1)
/* 8036E6E0 D9010060 */ stfd        f8, 0x60(r1)
lbl_8036e6e4:
/* 8036E6E4 90610008 */ stw         r3, 8(r1)
/* 8036E6E8 3C000100 */ lis         r0, 0x100
/* 8036E6EC 9081000C */ stw         r4, 0xc(r1)
/* 8036E6F0 3881006C */ addi        r4, r1, 0x6c
/* 8036E6F4 90A10010 */ stw         r5, 0x10(r1)
/* 8036E6F8 90C10014 */ stw         r6, 0x14(r1)
/* 8036E6FC 90E10018 */ stw         r7, 0x18(r1)
/* 8036E700 9101001C */ stw         r8, 0x1c(r1)
/* 8036E704 91210020 */ stw         r9, 0x20(r1)
/* 8036E708 91410024 */ stw         r10, 0x24(r1)
/* 8036E70C 9001006C */ stw         r0, 0x6c(r1)
/* 8036E710 38010080 */ addi        r0, r1, 0x80
/* 8036E714 90010070 */ stw         r0, 0x70(r1)
/* 8036E718 38010008 */ addi        r0, r1, 0x8
/* 8036E71C 90010074 */ stw         r0, 0x74(r1)
/* 8036E720 48028C05 */ bl          func_80397324
/* 8036E724 8001007C */ lwz         r0, 0x7c(r1)
/* 8036E728 38210078 */ addi        r1, r1, 0x78
/* 8036E72C 7C0803A6 */ mtlr        r0
/* 8036E730 4E800020 */ blr         
.size func_8036e6b4, . - func_8036e6b4


.global func_8036e734
.type func_8036e734, @function
func_8036e734:
/* 8036E734 7C0802A6 */ mflr        r0
/* 8036E738 90010004 */ stw         r0, 4(r1)
/* 8036E73C 9421FF70 */ stwu        r1, -0x90(r1)
/* 8036E740 93E1008C */ stw         r31, 0x8c(r1)
/* 8036E744 93C10088 */ stw         r30, 0x88(r1)
/* 8036E748 93A10084 */ stw         r29, 0x84(r1)
/* 8036E74C 93810080 */ stw         r28, 0x80(r1)
/* 8036E750 40860024 */ bne-        cr1, lbl_8036e774
/* 8036E754 D8210028 */ stfd        f1, 0x28(r1)
/* 8036E758 D8410030 */ stfd        f2, 0x30(r1)
/* 8036E75C D8610038 */ stfd        f3, 0x38(r1)
/* 8036E760 D8810040 */ stfd        f4, 0x40(r1)
/* 8036E764 D8A10048 */ stfd        f5, 0x48(r1)
/* 8036E768 D8C10050 */ stfd        f6, 0x50(r1)
/* 8036E76C D8E10058 */ stfd        f7, 0x58(r1)
/* 8036E770 D9010060 */ stfd        f8, 0x60(r1)
lbl_8036e774:
/* 8036E774 90610008 */ stw         r3, 8(r1)
/* 8036E778 3B830000 */ addi        r28, r3, 0x0
/* 8036E77C 3BC40000 */ addi        r30, r4, 0x0
/* 8036E780 9081000C */ stw         r4, 0xc(r1)
/* 8036E784 3BA50000 */ addi        r29, r5, 0x0
/* 8036E788 90A10010 */ stw         r5, 0x10(r1)
/* 8036E78C 90C10014 */ stw         r6, 0x14(r1)
/* 8036E790 3CC0804F */ lis         r6, lbl_804ef1f8@ha
/* 8036E794 3BE6F1F8 */ addi        r31, r6, lbl_804ef1f8@l
/* 8036E798 90E10018 */ stw         r7, 0x18(r1)
/* 8036E79C 9101001C */ stw         r8, 0x1c(r1)
/* 8036E7A0 91210020 */ stw         r9, 0x20(r1)
/* 8036E7A4 91410024 */ stw         r10, 0x24(r1)
/* 8036E7A8 4800032D */ bl          func_8036ead4
/* 8036E7AC 3C000300 */ lis         r0, 0x300
/* 8036E7B0 90010074 */ stw         r0, 0x74(r1)
/* 8036E7B4 38010098 */ addi        r0, r1, 0x98
/* 8036E7B8 38810074 */ addi        r4, r1, 0x74
/* 8036E7BC 90010078 */ stw         r0, 0x78(r1)
/* 8036E7C0 38010008 */ addi        r0, r1, 0x8
/* 8036E7C4 387D0000 */ addi        r3, r29, 0x0
/* 8036E7C8 9001007C */ stw         r0, 0x7c(r1)
/* 8036E7CC 48028B59 */ bl          func_80397324
/* 8036E7D0 387F0000 */ addi        r3, r31, 0x0
/* 8036E7D4 4CC63182 */ crclr       6
/* 8036E7D8 389C0000 */ addi        r4, r28, 0x0
/* 8036E7DC 38BE0000 */ addi        r5, r30, 0x0
/* 8036E7E0 4BFFFED5 */ bl          func_8036e6b4
/* 8036E7E4 387F0018 */ addi        r3, r31, 0x18
/* 8036E7E8 4CC63182 */ crclr       6
/* 8036E7EC 4BFFFEC9 */ bl          func_8036e6b4
/* 8036E7F0 3BC00000 */ li          r30, 0x0
/* 8036E7F4 4BFFFA65 */ bl          func_8036e258
/* 8036E7F8 7C7D1B78 */ mr          r29, r3
/* 8036E7FC 48000020 */ b           lbl_8036e81c
lbl_8036e800:
/* 8036E800 80BD0000 */ lwz         r5, 0(r29)
/* 8036E804 7FA4EB78 */ mr          r4, r29
/* 8036E808 80DD0004 */ lwz         r6, 4(r29)
/* 8036E80C 387F0040 */ addi        r3, r31, 0x40
/* 8036E810 4CC63182 */ crclr       6
/* 8036E814 4BFFFEA1 */ bl          func_8036e6b4
/* 8036E818 83BD0000 */ lwz         r29, 0(r29)
lbl_8036e81c:
/* 8036E81C 281D0000 */ cmplwi      r29, 0
/* 8036E820 4182001C */ beq-        lbl_8036e83c
/* 8036E824 3C1D0001 */ addis       r0, r29, 1
/* 8036E828 2800FFFF */ cmplwi      r0, 0xffff
/* 8036E82C 41820010 */ beq-        lbl_8036e83c
/* 8036E830 281E0010 */ cmplwi      r30, 0x10
/* 8036E834 3BDE0001 */ addi        r30, r30, 0x1
/* 8036E838 4180FFC8 */ blt+        lbl_8036e800
lbl_8036e83c:
/* 8036E83C 4BFFD97D */ bl          func_8036c1b8
/* 8036E840 80010094 */ lwz         r0, 0x94(r1)
/* 8036E844 83E1008C */ lwz         r31, 0x8c(r1)
/* 8036E848 83C10088 */ lwz         r30, 0x88(r1)
/* 8036E84C 83A10084 */ lwz         r29, 0x84(r1)
/* 8036E850 83810080 */ lwz         r28, 0x80(r1)
/* 8036E854 38210090 */ addi        r1, r1, 0x90
/* 8036E858 7C0803A6 */ mtlr        r0
/* 8036E85C 4E800020 */ blr         
.size func_8036e734, . - func_8036e734


.global func_8036e860
.type func_8036e860, @function
func_8036e860:
/* 8036E860 3CA08054 */ lis         r5, lbl_8053ec30@ha
/* 8036E864 546313BA */ rlwinm      r3, r3, 2, 0xe, 0x1d
/* 8036E868 3805EC30 */ addi        r0, r5, lbl_8053ec30@l
/* 8036E86C 7CA01A14 */ add         r5, r0, r3
/* 8036E870 80650000 */ lwz         r3, 0(r5)
/* 8036E874 90850000 */ stw         r4, 0(r5)
/* 8036E878 4E800020 */ blr         
.size func_8036e860, . - func_8036e860


.global func_8036e87c
.type func_8036e87c, @function
func_8036e87c:
/* 8036E87C 7C0802A6 */ mflr        r0
/* 8036E880 90010004 */ stw         r0, 4(r1)
/* 8036E884 9421FFC8 */ stwu        r1, -0x38(r1)
/* 8036E888 BF21001C */ stmw        r25, 0x1c(r1)
/* 8036E88C 7C9F2378 */ mr          r31, r4
/* 8036E890 3B230000 */ addi        r25, r3, 0x0
/* 8036E894 3B450000 */ addi        r26, r5, 0x0
/* 8036E898 3B660000 */ addi        r27, r6, 0x0
/* 8036E89C 8004019C */ lwz         r0, 0x19c(r4)
/* 8036E8A0 3C80804F */ lis         r4, lbl_804ef1f8@ha
/* 8036E8A4 3BA4F1F8 */ addi        r29, r4, lbl_804ef1f8@l
/* 8036E8A8 540007BD */ rlwinm.     r0, r0, 0, 0x1e, 0x1e
/* 8036E8AC 40820018 */ bne-        lbl_8036e8c4
/* 8036E8B0 387D005C */ addi        r3, r29, 0x5c
/* 8036E8B4 4CC63182 */ crclr       6
/* 8036E8B8 5724063E */ clrlwi      r4, r25, 0x18
/* 8036E8BC 4BFFFDF9 */ bl          func_8036e6b4
/* 8036E8C0 4800007C */ b           lbl_8036e93c
lbl_8036e8c4:
/* 8036E8C4 573E063E */ clrlwi      r30, r25, 0x18
/* 8036E8C8 3C608054 */ lis         r3, lbl_8053ec30@ha
/* 8036E8CC 572415BA */ rlwinm      r4, r25, 2, 0x16, 0x1d
/* 8036E8D0 3803EC30 */ addi        r0, r3, lbl_8053ec30@l
/* 8036E8D4 7F802214 */ add         r28, r0, r4
/* 8036E8D8 801C0000 */ lwz         r0, 0(r28)
/* 8036E8DC 28000000 */ cmplwi      r0, 0
/* 8036E8E0 41820038 */ beq-        lbl_8036e918
/* 8036E8E4 48002ED1 */ bl          func_803717b4
/* 8036E8E8 819C0000 */ lwz         r12, 0(r28)
/* 8036E8EC 387E0000 */ addi        r3, r30, 0x0
/* 8036E8F0 389F0000 */ addi        r4, r31, 0x0
/* 8036E8F4 4CC63182 */ crclr       6
/* 8036E8F8 7D8803A6 */ mtlr        r12
/* 8036E8FC 38BA0000 */ addi        r5, r26, 0x0
/* 8036E900 38DB0000 */ addi        r6, r27, 0x0
/* 8036E904 4E800021 */ blrl        
/* 8036E908 48002EED */ bl          func_803717f4
/* 8036E90C 480033DD */ bl          func_80371ce8
/* 8036E910 7FE3FB78 */ mr          r3, r31
/* 8036E914 4BFFF86D */ bl          func_8036e180
lbl_8036e918:
/* 8036E918 5720063E */ clrlwi      r0, r25, 0x18
/* 8036E91C 28000008 */ cmplwi      r0, 8
/* 8036E920 4082000C */ bne-        lbl_8036e92c
/* 8036E924 7FE3FB78 */ mr          r3, r31
/* 8036E928 4BFFF859 */ bl          func_8036e180
lbl_8036e92c:
/* 8036E92C 387D007C */ addi        r3, r29, 0x7c
/* 8036E930 4CC63182 */ crclr       6
/* 8036E934 5724063E */ clrlwi      r4, r25, 0x18
/* 8036E938 4BFFFD7D */ bl          func_8036e6b4
lbl_8036e93c:
/* 8036E93C 386D9F08 */ addi        r3, 0, lbl_805c3d28@sda21
/* 8036E940 4CC63182 */ crclr       6
/* 8036E944 4BFFFD71 */ bl          func_8036e6b4
/* 8036E948 7FE3FB78 */ mr          r3, r31
/* 8036E94C 4BFFF9F5 */ bl          func_8036e340
/* 8036E950 389A0000 */ addi        r4, r26, 0x0
/* 8036E954 4CC63182 */ crclr       6
/* 8036E958 38BB0000 */ addi        r5, r27, 0x0
/* 8036E95C 387D0094 */ addi        r3, r29, 0x94
/* 8036E960 4BFFFD55 */ bl          func_8036e6b4
/* 8036E964 48003E61 */ bl          func_803727c4
/* 8036E968 38A30000 */ addi        r5, r3, 0x0
/* 8036E96C 4CC63182 */ crclr       6
/* 8036E970 38C40000 */ addi        r6, r4, 0x0
/* 8036E974 387D00C8 */ addi        r3, r29, 0xc8
/* 8036E978 4BFFFD3D */ bl          func_8036e6b4
/* 8036E97C 5720063E */ clrlwi      r0, r25, 0x18
/* 8036E980 2800000F */ cmplwi      r0, 0xf
/* 8036E984 418100C4 */ bgt-        lbl_8036ea48
/* 8036E988 3C60804F */ lis         r3, jtbl_804ef4d4@ha
/* 8036E98C 3863F4D4 */ addi        r3, r3, jtbl_804ef4d4@l
/* 8036E990 5400103A */ slwi        r0, r0, 2
/* 8036E994 7C03002E */ lwzx        r0, r3, r0
/* 8036E998 7C0903A6 */ mtctr       r0
/* 8036E99C 4E800420 */ bctr        
lbl_8036e9a0:
.global jump_8036e9a0
jump_8036e9a0:
/* 8036E9A0 809F0198 */ lwz         r4, 0x198(r31)
/* 8036E9A4 38BB0000 */ addi        r5, r27, 0x0
/* 8036E9A8 387D00D8 */ addi        r3, r29, 0xd8
/* 8036E9AC 4CC63182 */ crclr       6
/* 8036E9B0 4BFFFD05 */ bl          func_8036e6b4
/* 8036E9B4 48000094 */ b           lbl_8036ea48
lbl_8036e9b8:
.global jump_8036e9b8
jump_8036e9b8:
/* 8036E9B8 809F0198 */ lwz         r4, 0x198(r31)
/* 8036E9BC 387D0138 */ addi        r3, r29, 0x138
/* 8036E9C0 4CC63182 */ crclr       6
/* 8036E9C4 4BFFFCF1 */ bl          func_8036e6b4
/* 8036E9C8 48000080 */ b           lbl_8036ea48
lbl_8036e9cc:
.global jump_8036e9cc
jump_8036e9cc:
/* 8036E9CC 809F0198 */ lwz         r4, 0x198(r31)
/* 8036E9D0 38BB0000 */ addi        r5, r27, 0x0
/* 8036E9D4 387D0184 */ addi        r3, r29, 0x184
/* 8036E9D8 4CC63182 */ crclr       6
/* 8036E9DC 4BFFFCD9 */ bl          func_8036e6b4
/* 8036E9E0 48000068 */ b           lbl_8036ea48
lbl_8036e9e4:
.global jump_8036e9e4
jump_8036e9e4:
/* 8036E9E4 809F0198 */ lwz         r4, 0x198(r31)
/* 8036E9E8 38BB0000 */ addi        r5, r27, 0x0
/* 8036E9EC 387D01E8 */ addi        r3, r29, 0x1e8
/* 8036E9F0 4CC63182 */ crclr       6
/* 8036E9F4 4BFFFCC1 */ bl          func_8036e6b4
/* 8036E9F8 48000050 */ b           lbl_8036ea48
lbl_8036e9fc:
.global jump_8036e9fc
jump_8036e9fc:
/* 8036E9FC 386D9F08 */ addi        r3, 0, lbl_805c3d28@sda21
/* 8036EA00 4CC63182 */ crclr       6
/* 8036EA04 4BFFFCB1 */ bl          func_8036e6b4
/* 8036EA08 3FC0CC00 */ lis         r30, 0xcc00
/* 8036EA0C 4CC63182 */ crclr       6
/* 8036EA10 3BFE5000 */ addi        r31, r30, 0x5000
/* 8036EA14 A09E5030 */ lhz         r4, 0x5030(r30)
/* 8036EA18 387D0248 */ addi        r3, r29, 0x248
/* 8036EA1C A0BE5032 */ lhz         r5, 0x5032(r30)
/* 8036EA20 4BFFFC95 */ bl          func_8036e6b4
/* 8036EA24 A09F0020 */ lhz         r4, 0x20(r31)
/* 8036EA28 387D0268 */ addi        r3, r29, 0x268
/* 8036EA2C A0BF0022 */ lhz         r5, 0x22(r31)
/* 8036EA30 4CC63182 */ crclr       6
/* 8036EA34 4BFFFC81 */ bl          func_8036e6b4
/* 8036EA38 809E6014 */ lwz         r4, 0x6014(r30)
/* 8036EA3C 4CC63182 */ crclr       6
/* 8036EA40 387D0288 */ addi        r3, r29, 0x288
/* 8036EA44 4BFFFC71 */ bl          func_8036e6b4
lbl_8036ea48:
.global jump_8036ea48
jump_8036ea48:
/* 8036EA48 A88DCA50 */ lha         r4, lbl_805c6870@sda21(0)
/* 8036EA4C 387D02A4 */ addi        r3, r29, 0x2a4
/* 8036EA50 4CC63182 */ crclr       6
/* 8036EA54 80ADCA4C */ lwz         r5, lbl_805c686c@sda21(0)
/* 8036EA58 80EDCA58 */ lwz         r7, lbl_805c6878@sda21(0)
/* 8036EA5C 810DCA5C */ lwz         r8, lbl_805c687c@sda21(0)
/* 8036EA60 4BFFFC55 */ bl          func_8036e6b4
/* 8036EA64 4BFFD755 */ bl          func_8036c1b8
/* 8036EA68 BB21001C */ lmw         r25, 0x1c(r1)
/* 8036EA6C 8001003C */ lwz         r0, 0x3c(r1)
/* 8036EA70 38210038 */ addi        r1, r1, 0x38
/* 8036EA74 7C0803A6 */ mtlr        r0
/* 8036EA78 4E800020 */ blr         
.size func_8036e87c, . - func_8036e87c


.global func_8036ea7c
.type func_8036ea7c, @function
func_8036ea7c:
/* 8036EA7C A06D9F10 */ lhz         r3, lbl_805c3d30@sda21(0)
/* 8036EA80 28030001 */ cmplwi      r3, 1
/* 8036EA84 4C810020 */ blelr-      
/* 8036EA88 3C608000 */ lis         r3, 0x8000
/* 8036EA8C 800300CC */ lwz         r0, 0xcc(r3)
/* 8036EA90 2C000000 */ cmpwi       r0, 0x0
/* 8036EA94 4182000C */ beq-        lbl_8036eaa0
/* 8036EA98 4180002C */ blt-        lbl_8036eac4
/* 8036EA9C 48000028 */ b           lbl_8036eac4
lbl_8036eaa0:
/* 8036EAA0 3C60CC00 */ lis         r3, 0xcc00
/* 8036EAA4 A003206E */ lhz         r0, 0x206e(r3)
/* 8036EAA8 540007BD */ rlwinm.     r0, r0, 0, 0x1e, 0x1e
/* 8036EAAC 4182000C */ beq-        lbl_8036eab8
/* 8036EAB0 38000001 */ li          r0, 0x1
/* 8036EAB4 48000008 */ b           lbl_8036eabc
lbl_8036eab8:
/* 8036EAB8 38000000 */ li          r0, 0x0
lbl_8036eabc:
/* 8036EABC B00D9F10 */ sth         r0, lbl_805c3d30@sda21(0)
/* 8036EAC0 4800000C */ b           lbl_8036eacc
lbl_8036eac4:
/* 8036EAC4 38000000 */ li          r0, 0x0
/* 8036EAC8 B00D9F10 */ sth         r0, lbl_805c3d30@sda21(0)
lbl_8036eacc:
/* 8036EACC A06D9F10 */ lhz         r3, lbl_805c3d30@sda21(0)
/* 8036EAD0 4E800020 */ blr         
.size func_8036ea7c, . - func_8036ea7c