From 67effb9191423d8e5d9e386eaa0f389267c775ce Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Tue, 31 Jan 2023 18:52:49 -0400 Subject: asm: Start work on importing the Dolphin SDK It's a start, but need to import more. --- asm/Dolphin/os/OSMutex.s | 190 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 asm/Dolphin/os/OSMutex.s (limited to 'asm/Dolphin/os/OSMutex.s') 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 + -- cgit v1.2.3-13-gbd6f