summaryrefslogtreecommitdiff
path: root/asm/nw4r/snd/snd_SoundHeap.s
blob: dd27aae813d6923658186b0d9c8d6de83d472bd2 (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
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global __ct__Q34nw4r3snd9SoundHeapFv
__ct__Q34nw4r3snd9SoundHeapFv:
/* 8037AA3C 0037669C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8037AA40 003766A0  7C 08 02 A6 */	mflr r0
/* 8037AA44 003766A4  3C 80 80 45 */	lis r4, lbl_8044CEC8@ha
/* 8037AA48 003766A8  90 01 00 14 */	stw r0, 0x14(r1)
/* 8037AA4C 003766AC  38 84 CE C8 */	addi r4, r4, lbl_8044CEC8@l
/* 8037AA50 003766B0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8037AA54 003766B4  7C 7F 1B 78 */	mr r31, r3
/* 8037AA58 003766B8  90 83 00 00 */	stw r4, 0(r3)
/* 8037AA5C 003766BC  38 63 00 1C */	addi r3, r3, 0x1c
/* 8037AA60 003766C0  4B FF 55 FD */	bl __ct__Q44nw4r3snd6detail9FrameHeapFv
/* 8037AA64 003766C4  38 7F 00 04 */	addi r3, r31, 4
/* 8037AA68 003766C8  4B EF 4E A9 */	bl OSInitMutex
/* 8037AA6C 003766CC  7F E3 FB 78 */	mr r3, r31
/* 8037AA70 003766D0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8037AA74 003766D4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8037AA78 003766D8  7C 08 03 A6 */	mtlr r0
/* 8037AA7C 003766DC  38 21 00 10 */	addi r1, r1, 0x10
/* 8037AA80 003766E0  4E 80 00 20 */	blr

.global __dt__Q34nw4r3snd9SoundHeapFv
__dt__Q34nw4r3snd9SoundHeapFv:
/* 8037AA84 003766E4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8037AA88 003766E8  7C 08 02 A6 */	mflr r0
/* 8037AA8C 003766EC  2C 03 00 00 */	cmpwi r3, 0
/* 8037AA90 003766F0  90 01 00 14 */	stw r0, 0x14(r1)
/* 8037AA94 003766F4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8037AA98 003766F8  7C 9F 23 78 */	mr r31, r4
/* 8037AA9C 003766FC  93 C1 00 08 */	stw r30, 8(r1)
/* 8037AAA0 00376700  7C 7E 1B 78 */	mr r30, r3
/* 8037AAA4 00376704  41 82 00 34 */	beq lbl_8037AAD8
/* 8037AAA8 00376708  3C 80 80 45 */	lis r4, lbl_8044CEC8@ha
/* 8037AAAC 0037670C  38 84 CE C8 */	addi r4, r4, lbl_8044CEC8@l
/* 8037AAB0 00376710  90 83 00 00 */	stw r4, 0(r3)
/* 8037AAB4 00376714  38 63 00 1C */	addi r3, r3, 0x1c
/* 8037AAB8 00376718  4B FF 58 79 */	bl Destroy__Q44nw4r3snd6detail9FrameHeapFv
/* 8037AABC 0037671C  38 7E 00 1C */	addi r3, r30, 0x1c
/* 8037AAC0 00376720  38 80 FF FF */	li r4, -1
/* 8037AAC4 00376724  4B FF 55 BD */	bl __dt__Q44nw4r3snd6detail9FrameHeapFv
/* 8037AAC8 00376728  2C 1F 00 00 */	cmpwi r31, 0
/* 8037AACC 0037672C  40 81 00 0C */	ble lbl_8037AAD8
/* 8037AAD0 00376730  7F C3 F3 78 */	mr r3, r30
/* 8037AAD4 00376734  4B E5 FF E5 */	bl __dl__FPv
lbl_8037AAD8:
/* 8037AAD8 00376738  7F C3 F3 78 */	mr r3, r30
/* 8037AADC 0037673C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8037AAE0 00376740  83 C1 00 08 */	lwz r30, 8(r1)
/* 8037AAE4 00376744  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8037AAE8 00376748  7C 08 03 A6 */	mtlr r0
/* 8037AAEC 0037674C  38 21 00 10 */	addi r1, r1, 0x10
/* 8037AAF0 00376750  4E 80 00 20 */	blr

.global Create__Q34nw4r3snd9SoundHeapFPvUl
Create__Q34nw4r3snd9SoundHeapFPvUl:
/* 8037AAF4 00376754  38 63 00 1C */	addi r3, r3, 0x1c
/* 8037AAF8 00376758  4B FF 56 9C */	b Create__Q44nw4r3snd6detail9FrameHeapFPvUl

.global Destroy__Q34nw4r3snd9SoundHeapFv
Destroy__Q34nw4r3snd9SoundHeapFv:
/* 8037AAFC 0037675C  38 63 00 1C */	addi r3, r3, 0x1c
/* 8037AB00 00376760  4B FF 58 30 */	b Destroy__Q44nw4r3snd6detail9FrameHeapFv

.global Alloc__Q34nw4r3snd9SoundHeapFUl
Alloc__Q34nw4r3snd9SoundHeapFUl:
/* 8037AB04 00376764  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037AB08 00376768  7C 08 02 A6 */	mflr r0
/* 8037AB0C 0037676C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037AB10 00376770  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8037AB14 00376774  3B E3 00 04 */	addi r31, r3, 4
/* 8037AB18 00376778  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8037AB1C 0037677C  7C 9E 23 78 */	mr r30, r4
/* 8037AB20 00376780  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8037AB24 00376784  7C 7D 1B 78 */	mr r29, r3
/* 8037AB28 00376788  7F E3 FB 78 */	mr r3, r31
/* 8037AB2C 0037678C  4B EF 4E 1D */	bl OSLockMutex
/* 8037AB30 00376790  3C A0 80 38 */	lis r5, DisposeCallbackFunc__Q34nw4r3snd9SoundHeapFPvUlPv@ha
/* 8037AB34 00376794  7F C4 F3 78 */	mr r4, r30
/* 8037AB38 00376798  38 7D 00 1C */	addi r3, r29, 0x1c
/* 8037AB3C 0037679C  38 C0 00 00 */	li r6, 0
/* 8037AB40 003767A0  38 A5 AB 74 */	addi r5, r5, DisposeCallbackFunc__Q34nw4r3snd9SoundHeapFPvUlPv@l
/* 8037AB44 003767A4  4B FF 5A 09 */	bl Alloc__Q44nw4r3snd6detail9FrameHeapFUlPFPvUlPv_vPv
/* 8037AB48 003767A8  7C 7E 1B 78 */	mr r30, r3
/* 8037AB4C 003767AC  7F E3 FB 78 */	mr r3, r31
/* 8037AB50 003767B0  4B EF 4E D5 */	bl OSUnlockMutex
/* 8037AB54 003767B4  7F C3 F3 78 */	mr r3, r30
/* 8037AB58 003767B8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8037AB5C 003767BC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8037AB60 003767C0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8037AB64 003767C4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037AB68 003767C8  7C 08 03 A6 */	mtlr r0
/* 8037AB6C 003767CC  38 21 00 20 */	addi r1, r1, 0x20
/* 8037AB70 003767D0  4E 80 00 20 */	blr

.global DisposeCallbackFunc__Q34nw4r3snd9SoundHeapFPvUlPv
DisposeCallbackFunc__Q34nw4r3snd9SoundHeapFPvUlPv:
/* 8037AB74 003767D4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8037AB78 003767D8  7C 08 02 A6 */	mflr r0
/* 8037AB7C 003767DC  90 01 00 24 */	stw r0, 0x24(r1)
/* 8037AB80 003767E0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8037AB84 003767E4  7C BF 2B 78 */	mr r31, r5
/* 8037AB88 003767E8  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8037AB8C 003767EC  7C 9E 23 78 */	mr r30, r4
/* 8037AB90 003767F0  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8037AB94 003767F4  7C 7D 1B 78 */	mr r29, r3
/* 8037AB98 003767F8  4B FF 46 C1 */	bl GetInstance__Q44nw4r3snd6detail22DisposeCallbackManagerFv
/* 8037AB9C 003767FC  7F A4 EB 78 */	mr r4, r29
/* 8037ABA0 00376800  7F C5 F3 78 */	mr r5, r30
/* 8037ABA4 00376804  7F E6 FB 78 */	mr r6, r31
/* 8037ABA8 00376808  4B FF 48 51 */	bl Dispose__Q44nw4r3snd6detail22DisposeCallbackManagerFPvUlPv
/* 8037ABAC 0037680C  4B FF 46 AD */	bl GetInstance__Q44nw4r3snd6detail22DisposeCallbackManagerFv
/* 8037ABB0 00376810  7F A4 EB 78 */	mr r4, r29
/* 8037ABB4 00376814  7F C5 F3 78 */	mr r5, r30
/* 8037ABB8 00376818  7F E6 FB 78 */	mr r6, r31
/* 8037ABBC 0037681C  4B FF 49 85 */	bl DisposeWave__Q44nw4r3snd6detail22DisposeCallbackManagerFPvUlPv
/* 8037ABC0 00376820  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037ABC4 00376824  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8037ABC8 00376828  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8037ABCC 0037682C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8037ABD0 00376830  7C 08 03 A6 */	mtlr r0
/* 8037ABD4 00376834  38 21 00 20 */	addi r1, r1, 0x20
/* 8037ABD8 00376838  4E 80 00 20 */	blr