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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global GKI_init
GKI_init:
/* 802BAF68 002B6BC8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BAF6C 002B6BCC 7C 08 02 A6 */ mflr r0
/* 802BAF70 002B6BD0 3C A0 00 03 */ lis r5, 0x00028AE0@ha
/* 802BAF74 002B6BD4 38 80 00 00 */ li r4, 0
/* 802BAF78 002B6BD8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BAF7C 002B6BDC 38 A5 8A E0 */ addi r5, r5, 0x00028AE0@l
/* 802BAF80 002B6BE0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BAF84 002B6BE4 93 C1 00 08 */ stw r30, 8(r1)
/* 802BAF88 002B6BE8 3F C0 80 54 */ lis r30, lbl_8053C2C0@ha
/* 802BAF8C 002B6BEC 38 7E C2 C0 */ addi r3, r30, lbl_8053C2C0@l
/* 802BAF90 002B6BF0 4B D4 91 75 */ bl memset
/* 802BAF94 002B6BF4 4B FF E8 59 */ bl gki_buffer_init
/* 802BAF98 002B6BF8 4B FF FA 79 */ bl gki_timers_init
/* 802BAF9C 002B6BFC 3B FE C2 C0 */ addi r31, r30, -15680
/* 802BAFA0 002B6C00 38 80 00 01 */ li r4, 1
/* 802BAFA4 002B6C04 3C 7F 00 03 */ addis r3, r31, 3
/* 802BAFA8 002B6C08 38 00 00 00 */ li r0, 0
/* 802BAFAC 002B6C0C 98 83 88 02 */ stb r4, -0x77fe(r3)
/* 802BAFB0 002B6C10 90 03 87 E8 */ stw r0, -0x7818(r3)
/* 802BAFB4 002B6C14 90 03 88 48 */ stw r0, -0x77b8(r3)
/* 802BAFB8 002B6C18 B0 03 88 0C */ sth r0, -0x77f4(r3)
/* 802BAFBC 002B6C1C 98 1E C2 C0 */ stb r0, -0x3d40(r30)
/* 802BAFC0 002B6C20 4B FB 37 B1 */ bl OSEnableInterrupts
/* 802BAFC4 002B6C24 88 1E C2 C0 */ lbz r0, -0x3d40(r30)
/* 802BAFC8 002B6C28 54 00 10 3A */ slwi r0, r0, 2
/* 802BAFCC 002B6C2C 7C 9F 02 14 */ add r4, r31, r0
/* 802BAFD0 002B6C30 90 64 00 04 */ stw r3, 4(r4)
/* 802BAFD4 002B6C34 88 7E C2 C0 */ lbz r3, -0x3d40(r30)
/* 802BAFD8 002B6C38 38 03 00 01 */ addi r0, r3, 1
/* 802BAFDC 002B6C3C 98 1E C2 C0 */ stb r0, -0x3d40(r30)
/* 802BAFE0 002B6C40 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802BAFE4 002B6C44 83 C1 00 08 */ lwz r30, 8(r1)
/* 802BAFE8 002B6C48 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BAFEC 002B6C4C 7C 08 03 A6 */ mtlr r0
/* 802BAFF0 002B6C50 38 21 00 10 */ addi r1, r1, 0x10
/* 802BAFF4 002B6C54 4E 80 00 20 */ blr
.global GKI_shutdown
GKI_shutdown:
/* 802BAFF8 002B6C58 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BAFFC 002B6C5C 7C 08 02 A6 */ mflr r0
/* 802BB000 002B6C60 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BB004 002B6C64 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BB008 002B6C68 93 C1 00 08 */ stw r30, 8(r1)
/* 802BB00C 002B6C6C 4B FB 37 51 */ bl OSDisableInterrupts
/* 802BB010 002B6C70 3F C0 80 54 */ lis r30, lbl_8053C2C0@ha
/* 802BB014 002B6C74 38 00 00 00 */ li r0, 0
/* 802BB018 002B6C78 88 BE C2 C0 */ lbz r5, lbl_8053C2C0@l(r30)
/* 802BB01C 002B6C7C 3B FE C2 C0 */ addi r31, r30, -15680
/* 802BB020 002B6C80 3C 9F 00 03 */ addis r4, r31, 3
/* 802BB024 002B6C84 54 A5 10 3A */ slwi r5, r5, 2
/* 802BB028 002B6C88 7C BF 2A 14 */ add r5, r31, r5
/* 802BB02C 002B6C8C 90 65 00 04 */ stw r3, 4(r5)
/* 802BB030 002B6C90 88 7E C2 C0 */ lbz r3, -0x3d40(r30)
/* 802BB034 002B6C94 38 63 00 01 */ addi r3, r3, 1
/* 802BB038 002B6C98 98 7E C2 C0 */ stb r3, -0x3d40(r30)
/* 802BB03C 002B6C9C 98 04 88 02 */ stb r0, -0x77fe(r4)
/* 802BB040 002B6CA0 88 7E C2 C0 */ lbz r3, -0x3d40(r30)
/* 802BB044 002B6CA4 38 63 FF FF */ addi r3, r3, -1
/* 802BB048 002B6CA8 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d
/* 802BB04C 002B6CAC 98 7E C2 C0 */ stb r3, -0x3d40(r30)
/* 802BB050 002B6CB0 7C 7F 02 14 */ add r3, r31, r0
/* 802BB054 002B6CB4 80 63 00 04 */ lwz r3, 4(r3)
/* 802BB058 002B6CB8 4B FB 37 2D */ bl OSRestoreInterrupts
/* 802BB05C 002B6CBC 48 00 00 20 */ b lbl_802BB07C
lbl_802BB060:
/* 802BB060 002B6CC0 88 7E C2 C0 */ lbz r3, -0x3d40(r30)
/* 802BB064 002B6CC4 38 63 FF FF */ addi r3, r3, -1
/* 802BB068 002B6CC8 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d
/* 802BB06C 002B6CCC 98 7E C2 C0 */ stb r3, -0x3d40(r30)
/* 802BB070 002B6CD0 7C 7F 02 14 */ add r3, r31, r0
/* 802BB074 002B6CD4 80 63 00 04 */ lwz r3, 4(r3)
/* 802BB078 002B6CD8 4B FB 37 0D */ bl OSRestoreInterrupts
lbl_802BB07C:
/* 802BB07C 002B6CDC 88 1E C2 C0 */ lbz r0, -0x3d40(r30)
/* 802BB080 002B6CE0 2C 00 00 00 */ cmpwi r0, 0
/* 802BB084 002B6CE4 40 82 FF DC */ bne lbl_802BB060
/* 802BB088 002B6CE8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BB08C 002B6CEC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802BB090 002B6CF0 83 C1 00 08 */ lwz r30, 8(r1)
/* 802BB094 002B6CF4 7C 08 03 A6 */ mtlr r0
/* 802BB098 002B6CF8 38 21 00 10 */ addi r1, r1, 0x10
/* 802BB09C 002B6CFC 4E 80 00 20 */ blr
.global GKI_run
GKI_run:
/* 802BB0A0 002B6D00 4E 80 00 20 */ blr
.global GKI_sched_lock
GKI_sched_lock:
/* 802BB0A4 002B6D04 4E 80 00 20 */ blr
.global GKI_sched_unlock
GKI_sched_unlock:
/* 802BB0A8 002B6D08 4E 80 00 20 */ blr
.global GKI_delay
GKI_delay:
/* 802BB0AC 002B6D0C 4E 80 00 20 */ blr
.global GKI_send_event
GKI_send_event:
/* 802BB0B0 002B6D10 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BB0B4 002B6D14 7C 08 02 A6 */ mflr r0
/* 802BB0B8 002B6D18 28 03 00 08 */ cmplwi r3, 8
/* 802BB0BC 002B6D1C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BB0C0 002B6D20 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BB0C4 002B6D24 7C 9F 23 78 */ mr r31, r4
/* 802BB0C8 002B6D28 93 C1 00 08 */ stw r30, 8(r1)
/* 802BB0CC 002B6D2C 7C 7E 1B 78 */ mr r30, r3
/* 802BB0D0 002B6D30 41 80 00 0C */ blt lbl_802BB0DC
/* 802BB0D4 002B6D34 38 60 00 01 */ li r3, 1
/* 802BB0D8 002B6D38 48 00 00 64 */ b lbl_802BB13C
lbl_802BB0DC:
/* 802BB0DC 002B6D3C 4B FB 36 81 */ bl OSDisableInterrupts
/* 802BB0E0 002B6D40 3C E0 80 54 */ lis r7, lbl_8053C2C0@ha
/* 802BB0E4 002B6D44 57 C0 0D FC */ rlwinm r0, r30, 1, 0x17, 0x1e
/* 802BB0E8 002B6D48 88 A7 C2 C0 */ lbz r5, lbl_8053C2C0@l(r7)
/* 802BB0EC 002B6D4C 38 C7 C2 C0 */ addi r6, r7, -15680
/* 802BB0F0 002B6D50 3C 86 00 03 */ addis r4, r6, 3
/* 802BB0F4 002B6D54 54 A5 10 3A */ slwi r5, r5, 2
/* 802BB0F8 002B6D58 7C A6 2A 14 */ add r5, r6, r5
/* 802BB0FC 002B6D5C 7C 84 02 14 */ add r4, r4, r0
/* 802BB100 002B6D60 90 65 00 04 */ stw r3, 4(r5)
/* 802BB104 002B6D64 88 67 C2 C0 */ lbz r3, -0x3d40(r7)
/* 802BB108 002B6D68 38 03 00 01 */ addi r0, r3, 1
/* 802BB10C 002B6D6C 98 07 C2 C0 */ stb r0, -0x3d40(r7)
/* 802BB110 002B6D70 A0 04 88 08 */ lhz r0, -0x77f8(r4)
/* 802BB114 002B6D74 7C 00 FB 78 */ or r0, r0, r31
/* 802BB118 002B6D78 B0 04 88 08 */ sth r0, -0x77f8(r4)
/* 802BB11C 002B6D7C 88 67 C2 C0 */ lbz r3, -0x3d40(r7)
/* 802BB120 002B6D80 38 63 FF FF */ addi r3, r3, -1
/* 802BB124 002B6D84 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d
/* 802BB128 002B6D88 98 67 C2 C0 */ stb r3, -0x3d40(r7)
/* 802BB12C 002B6D8C 7C 66 02 14 */ add r3, r6, r0
/* 802BB130 002B6D90 80 63 00 04 */ lwz r3, 4(r3)
/* 802BB134 002B6D94 4B FB 36 51 */ bl OSRestoreInterrupts
/* 802BB138 002B6D98 38 60 00 00 */ li r3, 0
lbl_802BB13C:
/* 802BB13C 002B6D9C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BB140 002B6DA0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802BB144 002B6DA4 83 C1 00 08 */ lwz r30, 8(r1)
/* 802BB148 002B6DA8 7C 08 03 A6 */ mtlr r0
/* 802BB14C 002B6DAC 38 21 00 10 */ addi r1, r1, 0x10
/* 802BB150 002B6DB0 4E 80 00 20 */ blr
.global GKI_get_taskid
GKI_get_taskid:
/* 802BB154 002B6DB4 38 60 00 02 */ li r3, 2
/* 802BB158 002B6DB8 4E 80 00 20 */ blr
.global GKI_enable
GKI_enable:
/* 802BB15C 002B6DBC 3C A0 80 54 */ lis r5, lbl_8053C2C0@ha
/* 802BB160 002B6DC0 88 85 C2 C0 */ lbz r4, lbl_8053C2C0@l(r5)
/* 802BB164 002B6DC4 38 65 C2 C0 */ addi r3, r5, -15680
/* 802BB168 002B6DC8 38 84 FF FF */ addi r4, r4, -1
/* 802BB16C 002B6DCC 54 80 15 BA */ rlwinm r0, r4, 2, 0x16, 0x1d
/* 802BB170 002B6DD0 98 85 C2 C0 */ stb r4, -0x3d40(r5)
/* 802BB174 002B6DD4 7C 63 02 14 */ add r3, r3, r0
/* 802BB178 002B6DD8 80 63 00 04 */ lwz r3, 4(r3)
/* 802BB17C 002B6DDC 4B FB 36 08 */ b OSRestoreInterrupts
.global GKI_disable
GKI_disable:
/* 802BB180 002B6DE0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BB184 002B6DE4 7C 08 02 A6 */ mflr r0
/* 802BB188 002B6DE8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BB18C 002B6DEC 4B FB 35 D1 */ bl OSDisableInterrupts
/* 802BB190 002B6DF0 3C A0 80 54 */ lis r5, lbl_8053C2C0@ha
/* 802BB194 002B6DF4 88 05 C2 C0 */ lbz r0, lbl_8053C2C0@l(r5)
/* 802BB198 002B6DF8 38 85 C2 C0 */ addi r4, r5, -15680
/* 802BB19C 002B6DFC 54 00 10 3A */ slwi r0, r0, 2
/* 802BB1A0 002B6E00 7C 84 02 14 */ add r4, r4, r0
/* 802BB1A4 002B6E04 90 64 00 04 */ stw r3, 4(r4)
/* 802BB1A8 002B6E08 88 65 C2 C0 */ lbz r3, -0x3d40(r5)
/* 802BB1AC 002B6E0C 38 03 00 01 */ addi r0, r3, 1
/* 802BB1B0 002B6E10 98 05 C2 C0 */ stb r0, -0x3d40(r5)
/* 802BB1B4 002B6E14 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BB1B8 002B6E18 7C 08 03 A6 */ mtlr r0
/* 802BB1BC 002B6E1C 38 21 00 10 */ addi r1, r1, 0x10
/* 802BB1C0 002B6E20 4E 80 00 20 */ blr
.global GKI_exception
GKI_exception:
/* 802BB1C4 002B6E24 4E 80 00 20 */ blr
.global GKI_os_malloc
GKI_os_malloc:
/* 802BB1C8 002B6E28 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BB1CC 002B6E2C 7C 08 02 A6 */ mflr r0
/* 802BB1D0 002B6E30 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BB1D4 002B6E34 4B FF 9A ED */ bl App_MEMalloc
/* 802BB1D8 002B6E38 2C 03 00 00 */ cmpwi r3, 0
/* 802BB1DC 002B6E3C 40 82 00 08 */ bne lbl_802BB1E4
/* 802BB1E0 002B6E40 38 60 00 00 */ li r3, 0
lbl_802BB1E4:
/* 802BB1E4 002B6E44 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BB1E8 002B6E48 7C 08 03 A6 */ mtlr r0
/* 802BB1EC 002B6E4C 38 21 00 10 */ addi r1, r1, 0x10
/* 802BB1F0 002B6E50 4E 80 00 20 */ blr
.global GKI_os_free
GKI_os_free:
/* 802BB1F4 002B6E54 4B FF 9B 1C */ b App_MEMfree
|