donut-decomp/asm/libnw4r_snd/snd_StrmChannel.s

171 lines
8.1 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global Setup__Q44nw4r3snd6detail14StrmBufferPoolFPvUli
Setup__Q44nw4r3snd6detail14StrmBufferPoolFPvUli:
/* 801153E0 00111220 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801153E4 00111224 7C 08 02 A6 */ mflr r0
/* 801153E8 00111228 90 01 00 24 */ stw r0, 0x24(r1)
/* 801153EC 0011122C 39 61 00 20 */ addi r11, r1, 0x20
/* 801153F0 00111230 4B EF 1F 4D */ bl lbl_8000733C
/* 801153F4 00111234 2C 06 00 00 */ cmpwi r6, 0x0
/* 801153F8 00111238 7C 7B 1B 78 */ mr r27, r3
/* 801153FC 0011123C 7C 9C 23 78 */ mr r28, r4
/* 80115400 00111240 7C BD 2B 78 */ mr r29, r5
/* 80115404 00111244 7C DE 33 78 */ mr r30, r6
/* 80115408 00111248 41 82 00 40 */ beq lbl_80115448
/* 8011540C 0011124C 4B F0 C4 15 */ bl OSDisableInterrupts
/* 80115410 00111250 7C 9D F3 96 */ divwu r4, r29, r30
/* 80115414 00111254 38 00 00 00 */ li r0, 0x0
/* 80115418 00111258 7C 7F 1B 78 */ mr r31, r3
/* 8011541C 0011125C 93 9B 00 00 */ stw r28, 0x0(r27)
/* 80115420 00111260 38 7B 00 14 */ addi r3, r27, 0x14
/* 80115424 00111264 93 BB 00 04 */ stw r29, 0x4(r27)
/* 80115428 00111268 90 9B 00 08 */ stw r4, 0x8(r27)
/* 8011542C 0011126C 38 80 00 00 */ li r4, 0x0
/* 80115430 00111270 38 A0 00 04 */ li r5, 0x4
/* 80115434 00111274 93 DB 00 0C */ stw r30, 0xc(r27)
/* 80115438 00111278 90 1B 00 10 */ stw r0, 0x10(r27)
/* 8011543C 0011127C 4B EE EF 15 */ bl memset
/* 80115440 00111280 7F E3 FB 78 */ mr r3, r31
/* 80115444 00111284 4B F0 C4 1D */ bl OSRestoreInterrupts
.global lbl_80115448
lbl_80115448:
/* 80115448 00111288 39 61 00 20 */ addi r11, r1, 0x20
/* 8011544C 0011128C 4B EF 1F 3D */ bl lbl_80007388
/* 80115450 00111290 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80115454 00111294 7C 08 03 A6 */ mtlr r0
/* 80115458 00111298 38 21 00 20 */ addi r1, r1, 0x20
/* 8011545C 0011129C 4E 80 00 20 */ blr
.global Shutdown__Q44nw4r3snd6detail14StrmBufferPoolFv
Shutdown__Q44nw4r3snd6detail14StrmBufferPoolFv:
/* 80115460 001112A0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80115464 001112A4 7C 08 02 A6 */ mflr r0
/* 80115468 001112A8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8011546C 001112AC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80115470 001112B0 7C 7F 1B 78 */ mr r31, r3
/* 80115474 001112B4 4B F0 C3 AD */ bl OSDisableInterrupts
/* 80115478 001112B8 38 00 00 00 */ li r0, 0x0
/* 8011547C 001112BC 90 1F 00 00 */ stw r0, 0x0(r31)
/* 80115480 001112C0 90 1F 00 04 */ stw r0, 0x4(r31)
/* 80115484 001112C4 90 1F 00 08 */ stw r0, 0x8(r31)
/* 80115488 001112C8 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8011548C 001112CC 4B F0 C3 D5 */ bl OSRestoreInterrupts
/* 80115490 001112D0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80115494 001112D4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80115498 001112D8 7C 08 03 A6 */ mtlr r0
/* 8011549C 001112DC 38 21 00 10 */ addi r1, r1, 0x10
/* 801154A0 001112E0 4E 80 00 20 */ blr
/* 801154A4 001112E4 00 00 00 00 */ .4byte 0x00000000
/* 801154A8 001112E8 00 00 00 00 */ .4byte 0x00000000
/* 801154AC 001112EC 00 00 00 00 */ .4byte 0x00000000
.global Alloc__Q44nw4r3snd6detail14StrmBufferPoolFv
Alloc__Q44nw4r3snd6detail14StrmBufferPoolFv:
/* 801154B0 001112F0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801154B4 001112F4 7C 08 02 A6 */ mflr r0
/* 801154B8 001112F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 801154BC 001112FC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801154C0 00111300 7C 7F 1B 78 */ mr r31, r3
/* 801154C4 00111304 4B F0 C3 5D */ bl OSDisableInterrupts
/* 801154C8 00111308 80 9F 00 0C */ lwz r4, 0xc(r31)
/* 801154CC 0011130C 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 801154D0 00111310 7C 00 20 00 */ cmpw r0, r4
/* 801154D4 00111314 41 80 00 10 */ blt lbl_801154E4
/* 801154D8 00111318 4B F0 C3 89 */ bl OSRestoreInterrupts
/* 801154DC 0011131C 38 60 00 00 */ li r3, 0x0
/* 801154E0 00111320 48 00 00 A4 */ b lbl_80115584
.global lbl_801154E4
lbl_801154E4:
/* 801154E4 00111324 38 04 00 07 */ addi r0, r4, 0x7
/* 801154E8 00111328 39 00 00 00 */ li r8, 0x0
/* 801154EC 0011132C 54 04 00 38 */ clrrwi r4, r0, 3
/* 801154F0 00111330 7C 84 1E 70 */ srawi r4, r4, 3
/* 801154F4 00111334 38 00 00 08 */ li r0, 0x8
/* 801154F8 00111338 7C E4 01 94 */ addze r7, r4
/* 801154FC 0011133C 48 00 00 78 */ b lbl_80115574
.global lbl_80115500
lbl_80115500:
/* 80115500 00111340 7C DF 42 14 */ add r6, r31, r8
/* 80115504 00111344 88 A6 00 14 */ lbz r5, 0x14(r6)
/* 80115508 00111348 28 05 00 FF */ cmplwi r5, 0xff
/* 8011550C 0011134C 41 82 00 64 */ beq lbl_80115570
/* 80115510 00111350 39 20 00 01 */ li r9, 0x1
/* 80115514 00111354 39 40 00 00 */ li r10, 0x0
/* 80115518 00111358 7C 09 03 A6 */ mtctr r0
/* 8011551C 0011135C 60 00 00 00 */ nop
.global lbl_80115520
lbl_80115520:
/* 80115520 00111360 7C A4 48 39 */ and. r4, r5, r9
/* 80115524 00111364 40 82 00 40 */ bne lbl_80115564
/* 80115528 00111368 88 86 00 14 */ lbz r4, 0x14(r6)
/* 8011552C 0011136C 55 00 18 38 */ slwi r0, r8, 3
/* 80115530 00111370 7C 0A 02 14 */ add r0, r10, r0
/* 80115534 00111374 7C 84 4B 78 */ or r4, r4, r9
/* 80115538 00111378 98 86 00 14 */ stb r4, 0x14(r6)
/* 8011553C 0011137C 80 9F 00 08 */ lwz r4, 0x8(r31)
/* 80115540 00111380 80 BF 00 10 */ lwz r5, 0x10(r31)
/* 80115544 00111384 7C 84 01 D6 */ mullw r4, r4, r0
/* 80115548 00111388 80 1F 00 00 */ lwz r0, 0x0(r31)
/* 8011554C 0011138C 38 A5 00 01 */ addi r5, r5, 0x1
/* 80115550 00111390 90 BF 00 10 */ stw r5, 0x10(r31)
/* 80115554 00111394 7F E4 02 14 */ add r31, r4, r0
/* 80115558 00111398 4B F0 C3 09 */ bl OSRestoreInterrupts
/* 8011555C 0011139C 7F E3 FB 78 */ mr r3, r31
/* 80115560 001113A0 48 00 00 24 */ b lbl_80115584
.global lbl_80115564
lbl_80115564:
/* 80115564 001113A4 55 29 0E 3C */ rlwinm r9, r9, 1, 24, 30
/* 80115568 001113A8 39 4A 00 01 */ addi r10, r10, 0x1
/* 8011556C 001113AC 42 00 FF B4 */ bdnz lbl_80115520
.global lbl_80115570
lbl_80115570:
/* 80115570 001113B0 39 08 00 01 */ addi r8, r8, 0x1
.global lbl_80115574
lbl_80115574:
/* 80115574 001113B4 7C 08 38 00 */ cmpw r8, r7
/* 80115578 001113B8 41 80 FF 88 */ blt lbl_80115500
/* 8011557C 001113BC 4B F0 C2 E5 */ bl OSRestoreInterrupts
/* 80115580 001113C0 38 60 00 00 */ li r3, 0x0
.global lbl_80115584
lbl_80115584:
/* 80115584 001113C4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80115588 001113C8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8011558C 001113CC 7C 08 03 A6 */ mtlr r0
/* 80115590 001113D0 38 21 00 10 */ addi r1, r1, 0x10
/* 80115594 001113D4 4E 80 00 20 */ blr
/* 80115598 001113D8 00 00 00 00 */ .4byte 0x00000000
/* 8011559C 001113DC 00 00 00 00 */ .4byte 0x00000000
.global Free__Q44nw4r3snd6detail14StrmBufferPoolFPv
Free__Q44nw4r3snd6detail14StrmBufferPoolFPv:
/* 801155A0 001113E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801155A4 001113E4 7C 08 02 A6 */ mflr r0
/* 801155A8 001113E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 801155AC 001113EC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801155B0 001113F0 7C 9F 23 78 */ mr r31, r4
/* 801155B4 001113F4 93 C1 00 08 */ stw r30, 0x8(r1)
/* 801155B8 001113F8 7C 7E 1B 78 */ mr r30, r3
/* 801155BC 001113FC 4B F0 C2 65 */ bl OSDisableInterrupts
/* 801155C0 00111400 80 BE 00 00 */ lwz r5, 0x0(r30)
/* 801155C4 00111404 38 80 00 01 */ li r4, 0x1
/* 801155C8 00111408 80 1E 00 08 */ lwz r0, 0x8(r30)
/* 801155CC 0011140C 7C A5 F8 50 */ subf r5, r5, r31
/* 801155D0 00111410 7C 05 03 96 */ divwu r0, r5, r0
/* 801155D4 00111414 54 05 E8 FE */ srwi r5, r0, 3
/* 801155D8 00111418 54 00 07 7E */ clrlwi r0, r0, 29
/* 801155DC 0011141C 7C 80 00 30 */ slw r0, r4, r0
/* 801155E0 00111420 7C BE 2A 14 */ add r5, r30, r5
/* 801155E4 00111424 7C 00 00 F8 */ nor r0, r0, r0
/* 801155E8 00111428 88 85 00 14 */ lbz r4, 0x14(r5)
/* 801155EC 0011142C 54 00 06 3E */ clrlwi r0, r0, 24
/* 801155F0 00111430 7C 80 00 38 */ and r0, r4, r0
/* 801155F4 00111434 98 05 00 14 */ stb r0, 0x14(r5)
/* 801155F8 00111438 80 9E 00 10 */ lwz r4, 0x10(r30)
/* 801155FC 0011143C 38 04 FF FF */ addi r0, r4, -0x1
/* 80115600 00111440 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80115604 00111444 4B F0 C2 5D */ bl OSRestoreInterrupts
/* 80115608 00111448 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8011560C 0011144C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80115610 00111450 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 80115614 00111454 7C 08 03 A6 */ mtlr r0
/* 80115618 00111458 38 21 00 10 */ addi r1, r1, 0x10
/* 8011561C 0011145C 4E 80 00 20 */ blr