summaryrefslogtreecommitdiff
path: root/asm/Dolphin/os/OSMutex.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/Dolphin/os/OSMutex.s')
-rw-r--r--asm/Dolphin/os/OSMutex.s190
1 files changed, 190 insertions, 0 deletions
diff --git a/asm/Dolphin/os/OSMutex.s b/asm/Dolphin/os/OSMutex.s
new file mode 100644
index 0000000..a5d8a48
--- /dev/null
+++ b/asm/Dolphin/os/OSMutex.s
@@ -0,0 +1,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
+