prime/asm/Dolphin/OS/OSMutex.s

39 lines
1.6 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax"
.global __OSUnlockAllMutex
__OSUnlockAllMutex:
/* 80382DB8 0037FD18 7C 08 02 A6 */ mflr r0
/* 80382DBC 0037FD1C 90 01 00 04 */ stw r0, 4(r1)
/* 80382DC0 0037FD20 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80382DC4 0037FD24 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80382DC8 0037FD28 3B E0 00 00 */ li r31, 0
/* 80382DCC 0037FD2C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80382DD0 0037FD30 3B C3 00 00 */ addi r30, r3, 0
/* 80382DD4 0037FD34 48 00 00 30 */ b lbl_80382E04
lbl_80382DD8:
/* 80382DD8 0037FD38 80 A4 00 10 */ lwz r5, 0x10(r4)
/* 80382DDC 0037FD3C 38 64 00 00 */ addi r3, r4, 0
/* 80382DE0 0037FD40 28 05 00 00 */ cmplwi r5, 0
/* 80382DE4 0037FD44 40 82 00 0C */ bne lbl_80382DF0
/* 80382DE8 0037FD48 93 FE 02 F8 */ stw r31, 0x2f8(r30)
/* 80382DEC 0037FD4C 48 00 00 08 */ b lbl_80382DF4
lbl_80382DF0:
/* 80382DF0 0037FD50 93 E5 00 14 */ stw r31, 0x14(r5)
lbl_80382DF4:
/* 80382DF4 0037FD54 90 BE 02 F4 */ stw r5, 0x2f4(r30)
/* 80382DF8 0037FD58 93 E4 00 0C */ stw r31, 0xc(r4)
/* 80382DFC 0037FD5C 93 E4 00 08 */ stw r31, 8(r4)
/* 80382E00 0037FD60 48 00 23 F9 */ bl OSWakeupThread
lbl_80382E04:
/* 80382E04 0037FD64 80 9E 02 F4 */ lwz r4, 0x2f4(r30)
/* 80382E08 0037FD68 28 04 00 00 */ cmplwi r4, 0
/* 80382E0C 0037FD6C 40 82 FF CC */ bne lbl_80382DD8
/* 80382E10 0037FD70 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80382E14 0037FD74 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80382E18 0037FD78 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80382E1C 0037FD7C 38 21 00 18 */ addi r1, r1, 0x18
/* 80382E20 0037FD80 7C 08 03 A6 */ mtlr r0
/* 80382E24 0037FD84 4E 80 00 20 */ blr