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

.section .text

.global func_8036ffa8
.type func_8036ffa8, @function
func_8036ffa8:
/* 8036FFA8 7C0802A6 */ mflr        r0
/* 8036FFAC 90010004 */ stw         r0, 4(r1)
/* 8036FFB0 9421FFE8 */ stwu        r1, -0x18(r1)
/* 8036FFB4 93E10014 */ stw         r31, 0x14(r1)
/* 8036FFB8 7C7F1B78 */ mr          r31, r3
/* 8036FFBC 4800178D */ bl          func_80371748
/* 8036FFC0 38000000 */ li          r0, 0x0
/* 8036FFC4 901F0008 */ stw         r0, 8(r31)
/* 8036FFC8 901F000C */ stw         r0, 0xc(r31)
/* 8036FFCC 8001001C */ lwz         r0, 0x1c(r1)
/* 8036FFD0 83E10014 */ lwz         r31, 0x14(r1)
/* 8036FFD4 38210018 */ addi        r1, r1, 0x18
/* 8036FFD8 7C0803A6 */ mtlr        r0
/* 8036FFDC 4E800020 */ blr         
.size func_8036ffa8, . - func_8036ffa8


.global func_8036ffe0
.type func_8036ffe0, @function
func_8036ffe0:
/* 8036FFE0 7C0802A6 */ mflr        r0
/* 8036FFE4 90010004 */ stw         r0, 4(r1)
/* 8036FFE8 9421FFE0 */ stwu        r1, -0x20(r1)
/* 8036FFEC 93E1001C */ stw         r31, 0x1c(r1)
/* 8036FFF0 93C10018 */ stw         r30, 0x18(r1)
/* 8036FFF4 93A10014 */ stw         r29, 0x14(r1)
/* 8036FFF8 93810010 */ stw         r28, 0x10(r1)
/* 8036FFFC 7C7C1B78 */ mr          r28, r3
/* 80370000 4BFFEAD5 */ bl          func_8036ead4
/* 80370004 7C7D1B78 */ mr          r29, r3
/* 80370008 48001751 */ bl          func_80371758
/* 8037000C 3BC30000 */ addi        r30, r3, 0x0
/* 80370010 3BE00000 */ li          r31, 0x0
lbl_80370014:
/* 80370014 801C0008 */ lwz         r0, 8(r28)
/* 80370018 28000000 */ cmplwi      r0, 0
/* 8037001C 40820040 */ bne-        lbl_8037005c
/* 80370020 93DC0008 */ stw         r30, 8(r28)
/* 80370024 807C000C */ lwz         r3, 0xc(r28)
/* 80370028 38030001 */ addi        r0, r3, 0x1
/* 8037002C 901C000C */ stw         r0, 0xc(r28)
/* 80370030 807E02F8 */ lwz         r3, 0x2f8(r30)
/* 80370034 28030000 */ cmplwi      r3, 0
/* 80370038 4082000C */ bne-        lbl_80370044
/* 8037003C 939E02F4 */ stw         r28, 0x2f4(r30)
/* 80370040 48000008 */ b           lbl_80370048
lbl_80370044:
/* 80370044 93830010 */ stw         r28, 0x10(r3)
lbl_80370048:
/* 80370048 907C0014 */ stw         r3, 0x14(r28)
/* 8037004C 38000000 */ li          r0, 0x0
/* 80370050 901C0010 */ stw         r0, 0x10(r28)
/* 80370054 939E02F8 */ stw         r28, 0x2f8(r30)
/* 80370058 4800003C */ b           lbl_80370094
lbl_8037005c:
/* 8037005C 7C00F040 */ cmplw       r0, r30
/* 80370060 40820014 */ bne-        lbl_80370074
/* 80370064 807C000C */ lwz         r3, 0xc(r28)
/* 80370068 38030001 */ addi        r0, r3, 0x1
/* 8037006C 901C000C */ stw         r0, 0xc(r28)
/* 80370070 48000024 */ b           lbl_80370094
lbl_80370074:
/* 80370074 939E02F0 */ stw         r28, 0x2f0(r30)
/* 80370078 807C0008 */ lwz         r3, 8(r28)
/* 8037007C 809E02D0 */ lwz         r4, 0x2d0(r30)
/* 80370080 48001A19 */ bl          func_80371a98
/* 80370084 7F83E378 */ mr          r3, r28
/* 80370088 48002485 */ bl          func_8037250c
/* 8037008C 93FE02F0 */ stw         r31, 0x2f0(r30)
/* 80370090 4BFFFF84 */ b           lbl_80370014
lbl_80370094:
/* 80370094 7FA3EB78 */ mr          r3, r29
/* 80370098 4BFFEA65 */ bl          func_8036eafc
/* 8037009C 80010024 */ lwz         r0, 0x24(r1)
/* 803700A0 83E1001C */ lwz         r31, 0x1c(r1)
/* 803700A4 83C10018 */ lwz         r30, 0x18(r1)
/* 803700A8 83A10014 */ lwz         r29, 0x14(r1)
/* 803700AC 83810010 */ lwz         r28, 0x10(r1)
/* 803700B0 38210020 */ addi        r1, r1, 0x20
/* 803700B4 7C0803A6 */ mtlr        r0
/* 803700B8 4E800020 */ blr         
.size func_8036ffe0, . - func_8036ffe0


.global func_803700bc
.type func_803700bc, @function
func_803700bc:
/* 803700BC 7C0802A6 */ mflr        r0
/* 803700C0 90010004 */ stw         r0, 4(r1)
/* 803700C4 9421FFE0 */ stwu        r1, -0x20(r1)
/* 803700C8 93E1001C */ stw         r31, 0x1c(r1)
/* 803700CC 93C10018 */ stw         r30, 0x18(r1)
/* 803700D0 93A10014 */ stw         r29, 0x14(r1)
/* 803700D4 7C7D1B78 */ mr          r29, r3
/* 803700D8 4BFFE9FD */ bl          func_8036ead4
/* 803700DC 7C7F1B78 */ mr          r31, r3
/* 803700E0 48001679 */ bl          func_80371758
/* 803700E4 801D0008 */ lwz         r0, 8(r29)
/* 803700E8 3BC30000 */ addi        r30, r3, 0x0
/* 803700EC 7C00F040 */ cmplw       r0, r30
/* 803700F0 40820070 */ bne-        lbl_80370160
/* 803700F4 807D000C */ lwz         r3, 0xc(r29)
/* 803700F8 3403FFFF */ addic.      r0, r3, -0x1
/* 803700FC 901D000C */ stw         r0, 0xc(r29)
/* 80370100 40820060 */ bne-        lbl_80370160
/* 80370104 807D0010 */ lwz         r3, 0x10(r29)
/* 80370108 809D0014 */ lwz         r4, 0x14(r29)
/* 8037010C 28030000 */ cmplwi      r3, 0
/* 80370110 4082000C */ bne-        lbl_8037011c
/* 80370114 909E02F8 */ stw         r4, 0x2f8(r30)
/* 80370118 48000008 */ b           lbl_80370120
lbl_8037011c:
/* 8037011C 90830014 */ stw         r4, 0x14(r3)
lbl_80370120:
/* 80370120 28040000 */ cmplwi      r4, 0
/* 80370124 4082000C */ bne-        lbl_80370130
/* 80370128 907E02F4 */ stw         r3, 0x2f4(r30)
/* 8037012C 48000008 */ b           lbl_80370134
lbl_80370130:
/* 80370130 90640010 */ stw         r3, 0x10(r4)
lbl_80370134:
/* 80370134 38000000 */ li          r0, 0x0
/* 80370138 901D0008 */ stw         r0, 8(r29)
/* 8037013C 807E02D0 */ lwz         r3, 0x2d0(r30)
/* 80370140 801E02D4 */ lwz         r0, 0x2d4(r30)
/* 80370144 7C030000 */ cmpw        r3, r0
/* 80370148 40800010 */ bge-        lbl_80370158
/* 8037014C 7FC3F378 */ mr          r3, r30
/* 80370150 4800174D */ bl          func_8037189c
/* 80370154 907E02D0 */ stw         r3, 0x2d0(r30)
lbl_80370158:
/* 80370158 7FA3EB78 */ mr          r3, r29
/* 8037015C 4800249D */ bl          func_803725f8
lbl_80370160:
/* 80370160 7FE3FB78 */ mr          r3, r31
/* 80370164 4BFFE999 */ bl          func_8036eafc
/* 80370168 80010024 */ lwz         r0, 0x24(r1)
/* 8037016C 83E1001C */ lwz         r31, 0x1c(r1)
/* 80370170 83C10018 */ lwz         r30, 0x18(r1)
/* 80370174 83A10014 */ lwz         r29, 0x14(r1)
/* 80370178 38210020 */ addi        r1, r1, 0x20
/* 8037017C 7C0803A6 */ mtlr        r0
/* 80370180 4E800020 */ blr         
.size func_803700bc, . - func_803700bc


.global func_80370184
.type func_80370184, @function
func_80370184:
/* 80370184 7C0802A6 */ mflr        r0
/* 80370188 90010004 */ stw         r0, 4(r1)
/* 8037018C 9421FFE8 */ stwu        r1, -0x18(r1)
/* 80370190 93E10014 */ stw         r31, 0x14(r1)
/* 80370194 3BE00000 */ li          r31, 0x0
/* 80370198 93C10010 */ stw         r30, 0x10(r1)
/* 8037019C 3BC30000 */ addi        r30, r3, 0x0
/* 803701A0 48000030 */ b           lbl_803701d0
lbl_803701a4:
/* 803701A4 80A40010 */ lwz         r5, 0x10(r4)
/* 803701A8 38640000 */ addi        r3, r4, 0x0
/* 803701AC 28050000 */ cmplwi      r5, 0
/* 803701B0 4082000C */ bne-        lbl_803701bc
/* 803701B4 93FE02F8 */ stw         r31, 0x2f8(r30)
/* 803701B8 48000008 */ b           lbl_803701c0
lbl_803701bc:
/* 803701BC 93E50014 */ stw         r31, 0x14(r5)
lbl_803701c0:
/* 803701C0 90BE02F4 */ stw         r5, 0x2f4(r30)
/* 803701C4 93E4000C */ stw         r31, 0xc(r4)
/* 803701C8 93E40008 */ stw         r31, 8(r4)
/* 803701CC 4800242D */ bl          func_803725f8
lbl_803701d0:
/* 803701D0 809E02F4 */ lwz         r4, 0x2f4(r30)
/* 803701D4 28040000 */ cmplwi      r4, 0
/* 803701D8 4082FFCC */ bne+        lbl_803701a4
/* 803701DC 8001001C */ lwz         r0, 0x1c(r1)
/* 803701E0 83E10014 */ lwz         r31, 0x14(r1)
/* 803701E4 83C10010 */ lwz         r30, 0x10(r1)
/* 803701E8 38210018 */ addi        r1, r1, 0x18
/* 803701EC 7C0803A6 */ mtlr        r0
/* 803701F0 4E800020 */ blr         
.size func_80370184, . - func_80370184