summaryrefslogtreecommitdiff
path: root/asm/Dolphin/os/OSMemory.s
blob: d7c9a45f1db74d445814c77ab3d7b84796603204 (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
.include "macros.inc"

.section .text

.global func_8036fcc8
.type func_8036fcc8, @function
func_8036fcc8:
/* 8036FCC8 7C0802A6 */ mflr        r0
/* 8036FCCC 2C030000 */ cmpwi       r3, 0x0
/* 8036FCD0 90010004 */ stw         r0, 4(r1)
/* 8036FCD4 9421FFF8 */ stwu        r1, -8(r1)
/* 8036FCD8 41820018 */ beq-        lbl_8036fcf0
/* 8036FCDC 3C60CC00 */ lis         r3, 0xcc00
/* 8036FCE0 380000FF */ li          r0, 0xff
/* 8036FCE4 B0034010 */ sth         r0, 0x4010(r3)
/* 8036FCE8 3C60F000 */ lis         r3, 0xf000
/* 8036FCEC 4BFFF1B1 */ bl          func_8036ee9c
lbl_8036fcf0:
/* 8036FCF0 38600001 */ li          r3, 0x1
/* 8036FCF4 8001000C */ lwz         r0, 0xc(r1)
/* 8036FCF8 38210008 */ addi        r1, r1, 0x8
/* 8036FCFC 7C0803A6 */ mtlr        r0
/* 8036FD00 4E800020 */ blr         
.size func_8036fcc8, . - func_8036fcc8


.global func_8036fd04
.type func_8036fd04, @function
func_8036fd04:
/* 8036FD04 7C0802A6 */ mflr        r0
/* 8036FD08 3C60CC00 */ lis         r3, 0xcc00
/* 8036FD0C 90010004 */ stw         r0, 4(r1)
/* 8036FD10 39034000 */ addi        r8, r3, 0x4000
/* 8036FD14 38000000 */ li          r0, 0x0
/* 8036FD18 9421FFF8 */ stwu        r1, -8(r1)
/* 8036FD1C A0E34024 */ lhz         r7, 0x4024(r3)
/* 8036FD20 3C608054 */ lis         r3, lbl_8053ec30@ha
/* 8036FD24 A0C80022 */ lhz         r6, 0x22(r8)
/* 8036FD28 3863EC30 */ addi        r3, r3, lbl_8053ec30@l
/* 8036FD2C A0A8001E */ lhz         r5, 0x1e(r8)
/* 8036FD30 50E6819E */ rlwimi      r6, r7, 0x10, 6, 0xf
/* 8036FD34 B0080020 */ sth         r0, 0x20(r8)
/* 8036FD38 8183003C */ lwz         r12, 0x3c(r3)
/* 8036FD3C 280C0000 */ cmplwi      r12, 0
/* 8036FD40 41820018 */ beq-        lbl_8036fd58
/* 8036FD44 7D8803A6 */ mtlr        r12
/* 8036FD48 3860000F */ li          r3, 0xf
/* 8036FD4C 4CC63182 */ crclr       6
/* 8036FD50 4E800021 */ blrl        
/* 8036FD54 4800000C */ b           lbl_8036fd60
lbl_8036fd58:
/* 8036FD58 3860000F */ li          r3, 0xf
/* 8036FD5C 4BFFEB21 */ bl          func_8036e87c
lbl_8036fd60:
/* 8036FD60 8001000C */ lwz         r0, 0xc(r1)
/* 8036FD64 38210008 */ addi        r1, r1, 0x8
/* 8036FD68 7C0803A6 */ mtlr        r0
/* 8036FD6C 4E800020 */ blr         
.size func_8036fd04, . - func_8036fd04


.global func_8036fd70
.type func_8036fd70, @function
func_8036fd70:
/* 8036FD70 38E00000 */ li          r7, 0x0
/* 8036FD74 3C800000 */ lis         r4, 0
/* 8036FD78 38840002 */ addi        r4, r4, 0x2
/* 8036FD7C 3C608000 */ lis         r3, 0x8000
/* 8036FD80 386301FF */ addi        r3, r3, 0x1ff
/* 8036FD84 3CC00100 */ lis         r6, 0x100
/* 8036FD88 38C60002 */ addi        r6, r6, 0x2
/* 8036FD8C 3CA08100 */ lis         r5, 0x8100
/* 8036FD90 38A500FF */ addi        r5, r5, 0xff
/* 8036FD94 4C00012C */ isync       
/* 8036FD98 7CF883A6 */ mtdbatu     0, r7
/* 8036FD9C 7C9983A6 */ mtdbatl     0, r4
/* 8036FDA0 7C7883A6 */ mtdbatu     0, r3
/* 8036FDA4 4C00012C */ isync       
/* 8036FDA8 7CF083A6 */ mtibatu     0, r7
/* 8036FDAC 7C9183A6 */ mtibatl     0, r4
/* 8036FDB0 7C7083A6 */ mtibatu     0, r3
/* 8036FDB4 4C00012C */ isync       
/* 8036FDB8 7CFC83A6 */ mtdbatu     2, r7
/* 8036FDBC 7CDD83A6 */ mtdbatl     2, r6
/* 8036FDC0 7CBC83A6 */ mtdbatu     2, r5
/* 8036FDC4 4C00012C */ isync       
/* 8036FDC8 7CF483A6 */ mtibatu     2, r7
/* 8036FDCC 7CD583A6 */ mtibatl     2, r6
/* 8036FDD0 7CB483A6 */ mtibatu     2, r5
/* 8036FDD4 4C00012C */ isync       
/* 8036FDD8 7C6000A6 */ mfmsr       r3
/* 8036FDDC 60630030 */ ori         r3, r3, 0x30
/* 8036FDE0 7C7B03A6 */ mtspr       0x1b, r3
/* 8036FDE4 7C6802A6 */ mflr        r3
/* 8036FDE8 7C7A03A6 */ mtspr       0x1a, r3
/* 8036FDEC 4C000064 */ rfi         
.size func_8036fd70, . - func_8036fd70


.global func_8036fdf0
.type func_8036fdf0, @function
func_8036fdf0:
/* 8036FDF0 38E00000 */ li          r7, 0x0
/* 8036FDF4 3C800000 */ lis         r4, 0
/* 8036FDF8 38840002 */ addi        r4, r4, 0x2
/* 8036FDFC 3C608000 */ lis         r3, 0x8000
/* 8036FE00 386303FF */ addi        r3, r3, 0x3ff
/* 8036FE04 3CC00200 */ lis         r6, 0x200
/* 8036FE08 38C60002 */ addi        r6, r6, 0x2
/* 8036FE0C 3CA08200 */ lis         r5, 0x8200
/* 8036FE10 38A501FF */ addi        r5, r5, 0x1ff
/* 8036FE14 4C00012C */ isync       
/* 8036FE18 7CF883A6 */ mtdbatu     0, r7
/* 8036FE1C 7C9983A6 */ mtdbatl     0, r4
/* 8036FE20 7C7883A6 */ mtdbatu     0, r3
/* 8036FE24 4C00012C */ isync       
/* 8036FE28 7CF083A6 */ mtibatu     0, r7
/* 8036FE2C 7C9183A6 */ mtibatl     0, r4
/* 8036FE30 7C7083A6 */ mtibatu     0, r3
/* 8036FE34 4C00012C */ isync       
/* 8036FE38 7CFC83A6 */ mtdbatu     2, r7
/* 8036FE3C 7CDD83A6 */ mtdbatl     2, r6
/* 8036FE40 7CBC83A6 */ mtdbatu     2, r5
/* 8036FE44 4C00012C */ isync       
/* 8036FE48 7CF483A6 */ mtibatu     2, r7
/* 8036FE4C 7CD583A6 */ mtibatl     2, r6
/* 8036FE50 7CB483A6 */ mtibatu     2, r5
/* 8036FE54 4C00012C */ isync       
/* 8036FE58 7C6000A6 */ mfmsr       r3
/* 8036FE5C 60630030 */ ori         r3, r3, 0x30
/* 8036FE60 7C7B03A6 */ mtspr       0x1b, r3
/* 8036FE64 7C6802A6 */ mflr        r3
/* 8036FE68 7C7A03A6 */ mtspr       0x1a, r3
/* 8036FE6C 4C000064 */ rfi         
.size func_8036fdf0, . - func_8036fdf0


.global func_8036fe70
.type func_8036fe70, @function
func_8036fe70:
/* 8036FE70 546300BE */ clrlwi      r3, r3, 2
/* 8036FE74 7C7A03A6 */ mtspr       0x1a, r3
/* 8036FE78 7C6000A6 */ mfmsr       r3
/* 8036FE7C 54630732 */ rlwinm      r3, r3, 0, 0x1c, 0x19
/* 8036FE80 7C7B03A6 */ mtspr       0x1b, r3
/* 8036FE84 4C000064 */ rfi         
.size func_8036fe70, . - func_8036fe70


.global func_8036fe88
.type func_8036fe88, @function
func_8036fe88:
/* 8036FE88 7C0802A6 */ mflr        r0
/* 8036FE8C 90010004 */ stw         r0, 4(r1)
/* 8036FE90 9421FFB8 */ stwu        r1, -0x48(r1)
/* 8036FE94 93E10044 */ stw         r31, 0x44(r1)
/* 8036FE98 93C10040 */ stw         r30, 0x40(r1)
/* 8036FE9C 93A1003C */ stw         r29, 0x3c(r1)
/* 8036FEA0 3C608000 */ lis         r3, 0x8000
/* 8036FEA4 83A300F0 */ lwz         r29, 0xf0(r3)
/* 8036FEA8 4BFFEC2D */ bl          func_8036ead4
/* 8036FEAC 3C000180 */ lis         r0, 0x180
/* 8036FEB0 7C1D0040 */ cmplw       r29, r0
/* 8036FEB4 7C7F1B78 */ mr          r31, r3
/* 8036FEB8 41810014 */ bgt-        lbl_8036fecc
/* 8036FEBC 3C608037 */ lis         r3, func_8036fd70@ha
/* 8036FEC0 3863FD70 */ addi        r3, r3, func_8036fd70@l
/* 8036FEC4 4BFFFFAD */ bl          func_8036fe70
/* 8036FEC8 4800001C */ b           lbl_8036fee4
lbl_8036fecc:
/* 8036FECC 3C000300 */ lis         r0, 0x300
/* 8036FED0 7C1D0040 */ cmplw       r29, r0
/* 8036FED4 41810010 */ bgt-        lbl_8036fee4
/* 8036FED8 3C608037 */ lis         r3, func_8036fdf0@ha
/* 8036FEDC 3863FDF0 */ addi        r3, r3, func_8036fdf0@l
/* 8036FEE0 4BFFFF91 */ bl          func_8036fe70
lbl_8036fee4:
/* 8036FEE4 3C60CC00 */ lis         r3, 0xcc00
/* 8036FEE8 3BA34000 */ addi        r29, r3, 0x4000
/* 8036FEEC 38000000 */ li          r0, 0x0
/* 8036FEF0 B01D0020 */ sth         r0, 0x20(r29)
/* 8036FEF4 380000FF */ li          r0, 0xff
/* 8036FEF8 3C60F000 */ lis         r3, 0xf000
/* 8036FEFC B01D0010 */ sth         r0, 0x10(r29)
/* 8036FF00 4BFFEF9D */ bl          func_8036ee9c
/* 8036FF04 3C608037 */ lis         r3, func_8036fd04@ha
/* 8036FF08 3BC3FD04 */ addi        r30, r3, func_8036fd04@l
/* 8036FF0C 7FC4F378 */ mr          r4, r30
/* 8036FF10 38600000 */ li          r3, 0x0
/* 8036FF14 4BFFEC0D */ bl          func_8036eb20
/* 8036FF18 7FC4F378 */ mr          r4, r30
/* 8036FF1C 38600001 */ li          r3, 0x1
/* 8036FF20 4BFFEC01 */ bl          func_8036eb20
/* 8036FF24 7FC4F378 */ mr          r4, r30
/* 8036FF28 38600002 */ li          r3, 0x2
/* 8036FF2C 4BFFEBF5 */ bl          func_8036eb20
/* 8036FF30 7FC4F378 */ mr          r4, r30
/* 8036FF34 38600003 */ li          r3, 0x3
/* 8036FF38 4BFFEBE9 */ bl          func_8036eb20
/* 8036FF3C 7FC4F378 */ mr          r4, r30
/* 8036FF40 38600004 */ li          r3, 0x4
/* 8036FF44 4BFFEBDD */ bl          func_8036eb20
/* 8036FF48 3C60804F */ lis         r3, lbl_804ef598@ha
/* 8036FF4C 3863F598 */ addi        r3, r3, lbl_804ef598@l
/* 8036FF50 480004B1 */ bl          func_80370400
/* 8036FF54 3C608000 */ lis         r3, 0x8000
/* 8036FF58 808300F0 */ lwz         r4, 0xf0(r3)
/* 8036FF5C 80030028 */ lwz         r0, 0x28(r3)
/* 8036FF60 7C040040 */ cmplw       r4, r0
/* 8036FF64 40800018 */ bge-        lbl_8036ff7c
/* 8036FF68 3C04FE80 */ addis       r0, r4, 0xfe80
/* 8036FF6C 28000000 */ cmplwi      r0, 0
/* 8036FF70 4082000C */ bne-        lbl_8036ff7c
/* 8036FF74 38000002 */ li          r0, 0x2
/* 8036FF78 B01D0028 */ sth         r0, 0x28(r29)
lbl_8036ff7c:
/* 8036FF7C 3C600800 */ lis         r3, 0x800
/* 8036FF80 4BFFEFA5 */ bl          func_8036ef24
/* 8036FF84 7FE3FB78 */ mr          r3, r31
/* 8036FF88 4BFFEB75 */ bl          func_8036eafc
/* 8036FF8C 8001004C */ lwz         r0, 0x4c(r1)
/* 8036FF90 83E10044 */ lwz         r31, 0x44(r1)
/* 8036FF94 83C10040 */ lwz         r30, 0x40(r1)
/* 8036FF98 83A1003C */ lwz         r29, 0x3c(r1)
/* 8036FF9C 38210048 */ addi        r1, r1, 0x48
/* 8036FFA0 7C0803A6 */ mtlr        r0
/* 8036FFA4 4E800020 */ blr         
.size func_8036fe88, . - func_8036fe88