summaryrefslogtreecommitdiff
path: root/asm/Dolphin/os/OSMemory.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/Dolphin/os/OSMemory.s')
-rw-r--r--asm/Dolphin/os/OSMemory.s229
1 files changed, 229 insertions, 0 deletions
diff --git a/asm/Dolphin/os/OSMemory.s b/asm/Dolphin/os/OSMemory.s
new file mode 100644
index 0000000..d7c9a45
--- /dev/null
+++ b/asm/Dolphin/os/OSMemory.s
@@ -0,0 +1,229 @@
+.include "macros.inc"
+
+.section .text
+
+.global func_8036fcc8
+.type func_8036fcc8, @function
+func_8036fcc8:
+/* 8036FCC8 7C0802A6 */ mflr r0
+/* 8036FCCC 2C030000 */ cmpwi r3, 0x0
+/* 8036FCD0 90010004 */ stw r0, 4(r1)
+/* 8036FCD4 9421FFF8 */ stwu r1, -8(r1)
+/* 8036FCD8 41820018 */ beq- lbl_8036fcf0
+/* 8036FCDC 3C60CC00 */ lis r3, 0xcc00
+/* 8036FCE0 380000FF */ li r0, 0xff
+/* 8036FCE4 B0034010 */ sth r0, 0x4010(r3)
+/* 8036FCE8 3C60F000 */ lis r3, 0xf000
+/* 8036FCEC 4BFFF1B1 */ bl func_8036ee9c
+lbl_8036fcf0:
+/* 8036FCF0 38600001 */ li r3, 0x1
+/* 8036FCF4 8001000C */ lwz r0, 0xc(r1)
+/* 8036FCF8 38210008 */ addi r1, r1, 0x8
+/* 8036FCFC 7C0803A6 */ mtlr r0
+/* 8036FD00 4E800020 */ blr
+.size func_8036fcc8, . - func_8036fcc8
+
+
+.global func_8036fd04
+.type func_8036fd04, @function
+func_8036fd04:
+/* 8036FD04 7C0802A6 */ mflr r0
+/* 8036FD08 3C60CC00 */ lis r3, 0xcc00
+/* 8036FD0C 90010004 */ stw r0, 4(r1)
+/* 8036FD10 39034000 */ addi r8, r3, 0x4000
+/* 8036FD14 38000000 */ li r0, 0x0
+/* 8036FD18 9421FFF8 */ stwu r1, -8(r1)
+/* 8036FD1C A0E34024 */ lhz r7, 0x4024(r3)
+/* 8036FD20 3C608054 */ lis r3, lbl_8053ec30@ha
+/* 8036FD24 A0C80022 */ lhz r6, 0x22(r8)
+/* 8036FD28 3863EC30 */ addi r3, r3, lbl_8053ec30@l
+/* 8036FD2C A0A8001E */ lhz r5, 0x1e(r8)
+/* 8036FD30 50E6819E */ rlwimi r6, r7, 0x10, 6, 0xf
+/* 8036FD34 B0080020 */ sth r0, 0x20(r8)
+/* 8036FD38 8183003C */ lwz r12, 0x3c(r3)
+/* 8036FD3C 280C0000 */ cmplwi r12, 0
+/* 8036FD40 41820018 */ beq- lbl_8036fd58
+/* 8036FD44 7D8803A6 */ mtlr r12
+/* 8036FD48 3860000F */ li r3, 0xf
+/* 8036FD4C 4CC63182 */ crclr 6
+/* 8036FD50 4E800021 */ blrl
+/* 8036FD54 4800000C */ b lbl_8036fd60
+lbl_8036fd58:
+/* 8036FD58 3860000F */ li r3, 0xf
+/* 8036FD5C 4BFFEB21 */ bl func_8036e87c
+lbl_8036fd60:
+/* 8036FD60 8001000C */ lwz r0, 0xc(r1)
+/* 8036FD64 38210008 */ addi r1, r1, 0x8
+/* 8036FD68 7C0803A6 */ mtlr r0
+/* 8036FD6C 4E800020 */ blr
+.size func_8036fd04, . - func_8036fd04
+
+
+.global func_8036fd70
+.type func_8036fd70, @function
+func_8036fd70:
+/* 8036FD70 38E00000 */ li r7, 0x0
+/* 8036FD74 3C800000 */ lis r4, 0
+/* 8036FD78 38840002 */ addi r4, r4, 0x2
+/* 8036FD7C 3C608000 */ lis r3, 0x8000
+/* 8036FD80 386301FF */ addi r3, r3, 0x1ff
+/* 8036FD84 3CC00100 */ lis r6, 0x100
+/* 8036FD88 38C60002 */ addi r6, r6, 0x2
+/* 8036FD8C 3CA08100 */ lis r5, 0x8100
+/* 8036FD90 38A500FF */ addi r5, r5, 0xff
+/* 8036FD94 4C00012C */ isync
+/* 8036FD98 7CF883A6 */ mtdbatu 0, r7
+/* 8036FD9C 7C9983A6 */ mtdbatl 0, r4
+/* 8036FDA0 7C7883A6 */ mtdbatu 0, r3
+/* 8036FDA4 4C00012C */ isync
+/* 8036FDA8 7CF083A6 */ mtibatu 0, r7
+/* 8036FDAC 7C9183A6 */ mtibatl 0, r4
+/* 8036FDB0 7C7083A6 */ mtibatu 0, r3
+/* 8036FDB4 4C00012C */ isync
+/* 8036FDB8 7CFC83A6 */ mtdbatu 2, r7
+/* 8036FDBC 7CDD83A6 */ mtdbatl 2, r6
+/* 8036FDC0 7CBC83A6 */ mtdbatu 2, r5
+/* 8036FDC4 4C00012C */ isync
+/* 8036FDC8 7CF483A6 */ mtibatu 2, r7
+/* 8036FDCC 7CD583A6 */ mtibatl 2, r6
+/* 8036FDD0 7CB483A6 */ mtibatu 2, r5
+/* 8036FDD4 4C00012C */ isync
+/* 8036FDD8 7C6000A6 */ mfmsr r3
+/* 8036FDDC 60630030 */ ori r3, r3, 0x30
+/* 8036FDE0 7C7B03A6 */ mtspr 0x1b, r3
+/* 8036FDE4 7C6802A6 */ mflr r3
+/* 8036FDE8 7C7A03A6 */ mtspr 0x1a, r3
+/* 8036FDEC 4C000064 */ rfi
+.size func_8036fd70, . - func_8036fd70
+
+
+.global func_8036fdf0
+.type func_8036fdf0, @function
+func_8036fdf0:
+/* 8036FDF0 38E00000 */ li r7, 0x0
+/* 8036FDF4 3C800000 */ lis r4, 0
+/* 8036FDF8 38840002 */ addi r4, r4, 0x2
+/* 8036FDFC 3C608000 */ lis r3, 0x8000
+/* 8036FE00 386303FF */ addi r3, r3, 0x3ff
+/* 8036FE04 3CC00200 */ lis r6, 0x200
+/* 8036FE08 38C60002 */ addi r6, r6, 0x2
+/* 8036FE0C 3CA08200 */ lis r5, 0x8200
+/* 8036FE10 38A501FF */ addi r5, r5, 0x1ff
+/* 8036FE14 4C00012C */ isync
+/* 8036FE18 7CF883A6 */ mtdbatu 0, r7
+/* 8036FE1C 7C9983A6 */ mtdbatl 0, r4
+/* 8036FE20 7C7883A6 */ mtdbatu 0, r3
+/* 8036FE24 4C00012C */ isync
+/* 8036FE28 7CF083A6 */ mtibatu 0, r7
+/* 8036FE2C 7C9183A6 */ mtibatl 0, r4
+/* 8036FE30 7C7083A6 */ mtibatu 0, r3
+/* 8036FE34 4C00012C */ isync
+/* 8036FE38 7CFC83A6 */ mtdbatu 2, r7
+/* 8036FE3C 7CDD83A6 */ mtdbatl 2, r6
+/* 8036FE40 7CBC83A6 */ mtdbatu 2, r5
+/* 8036FE44 4C00012C */ isync
+/* 8036FE48 7CF483A6 */ mtibatu 2, r7
+/* 8036FE4C 7CD583A6 */ mtibatl 2, r6
+/* 8036FE50 7CB483A6 */ mtibatu 2, r5
+/* 8036FE54 4C00012C */ isync
+/* 8036FE58 7C6000A6 */ mfmsr r3
+/* 8036FE5C 60630030 */ ori r3, r3, 0x30
+/* 8036FE60 7C7B03A6 */ mtspr 0x1b, r3
+/* 8036FE64 7C6802A6 */ mflr r3
+/* 8036FE68 7C7A03A6 */ mtspr 0x1a, r3
+/* 8036FE6C 4C000064 */ rfi
+.size func_8036fdf0, . - func_8036fdf0
+
+
+.global func_8036fe70
+.type func_8036fe70, @function
+func_8036fe70:
+/* 8036FE70 546300BE */ clrlwi r3, r3, 2
+/* 8036FE74 7C7A03A6 */ mtspr 0x1a, r3
+/* 8036FE78 7C6000A6 */ mfmsr r3
+/* 8036FE7C 54630732 */ rlwinm r3, r3, 0, 0x1c, 0x19
+/* 8036FE80 7C7B03A6 */ mtspr 0x1b, r3
+/* 8036FE84 4C000064 */ rfi
+.size func_8036fe70, . - func_8036fe70
+
+
+.global func_8036fe88
+.type func_8036fe88, @function
+func_8036fe88:
+/* 8036FE88 7C0802A6 */ mflr r0
+/* 8036FE8C 90010004 */ stw r0, 4(r1)
+/* 8036FE90 9421FFB8 */ stwu r1, -0x48(r1)
+/* 8036FE94 93E10044 */ stw r31, 0x44(r1)
+/* 8036FE98 93C10040 */ stw r30, 0x40(r1)
+/* 8036FE9C 93A1003C */ stw r29, 0x3c(r1)
+/* 8036FEA0 3C608000 */ lis r3, 0x8000
+/* 8036FEA4 83A300F0 */ lwz r29, 0xf0(r3)
+/* 8036FEA8 4BFFEC2D */ bl func_8036ead4
+/* 8036FEAC 3C000180 */ lis r0, 0x180
+/* 8036FEB0 7C1D0040 */ cmplw r29, r0
+/* 8036FEB4 7C7F1B78 */ mr r31, r3
+/* 8036FEB8 41810014 */ bgt- lbl_8036fecc
+/* 8036FEBC 3C608037 */ lis r3, func_8036fd70@ha
+/* 8036FEC0 3863FD70 */ addi r3, r3, func_8036fd70@l
+/* 8036FEC4 4BFFFFAD */ bl func_8036fe70
+/* 8036FEC8 4800001C */ b lbl_8036fee4
+lbl_8036fecc:
+/* 8036FECC 3C000300 */ lis r0, 0x300
+/* 8036FED0 7C1D0040 */ cmplw r29, r0
+/* 8036FED4 41810010 */ bgt- lbl_8036fee4
+/* 8036FED8 3C608037 */ lis r3, func_8036fdf0@ha
+/* 8036FEDC 3863FDF0 */ addi r3, r3, func_8036fdf0@l
+/* 8036FEE0 4BFFFF91 */ bl func_8036fe70
+lbl_8036fee4:
+/* 8036FEE4 3C60CC00 */ lis r3, 0xcc00
+/* 8036FEE8 3BA34000 */ addi r29, r3, 0x4000
+/* 8036FEEC 38000000 */ li r0, 0x0
+/* 8036FEF0 B01D0020 */ sth r0, 0x20(r29)
+/* 8036FEF4 380000FF */ li r0, 0xff
+/* 8036FEF8 3C60F000 */ lis r3, 0xf000
+/* 8036FEFC B01D0010 */ sth r0, 0x10(r29)
+/* 8036FF00 4BFFEF9D */ bl func_8036ee9c
+/* 8036FF04 3C608037 */ lis r3, func_8036fd04@ha
+/* 8036FF08 3BC3FD04 */ addi r30, r3, func_8036fd04@l
+/* 8036FF0C 7FC4F378 */ mr r4, r30
+/* 8036FF10 38600000 */ li r3, 0x0
+/* 8036FF14 4BFFEC0D */ bl func_8036eb20
+/* 8036FF18 7FC4F378 */ mr r4, r30
+/* 8036FF1C 38600001 */ li r3, 0x1
+/* 8036FF20 4BFFEC01 */ bl func_8036eb20
+/* 8036FF24 7FC4F378 */ mr r4, r30
+/* 8036FF28 38600002 */ li r3, 0x2
+/* 8036FF2C 4BFFEBF5 */ bl func_8036eb20
+/* 8036FF30 7FC4F378 */ mr r4, r30
+/* 8036FF34 38600003 */ li r3, 0x3
+/* 8036FF38 4BFFEBE9 */ bl func_8036eb20
+/* 8036FF3C 7FC4F378 */ mr r4, r30
+/* 8036FF40 38600004 */ li r3, 0x4
+/* 8036FF44 4BFFEBDD */ bl func_8036eb20
+/* 8036FF48 3C60804F */ lis r3, lbl_804ef598@ha
+/* 8036FF4C 3863F598 */ addi r3, r3, lbl_804ef598@l
+/* 8036FF50 480004B1 */ bl func_80370400
+/* 8036FF54 3C608000 */ lis r3, 0x8000
+/* 8036FF58 808300F0 */ lwz r4, 0xf0(r3)
+/* 8036FF5C 80030028 */ lwz r0, 0x28(r3)
+/* 8036FF60 7C040040 */ cmplw r4, r0
+/* 8036FF64 40800018 */ bge- lbl_8036ff7c
+/* 8036FF68 3C04FE80 */ addis r0, r4, 0xfe80
+/* 8036FF6C 28000000 */ cmplwi r0, 0
+/* 8036FF70 4082000C */ bne- lbl_8036ff7c
+/* 8036FF74 38000002 */ li r0, 0x2
+/* 8036FF78 B01D0028 */ sth r0, 0x28(r29)
+lbl_8036ff7c:
+/* 8036FF7C 3C600800 */ lis r3, 0x800
+/* 8036FF80 4BFFEFA5 */ bl func_8036ef24
+/* 8036FF84 7FE3FB78 */ mr r3, r31
+/* 8036FF88 4BFFEB75 */ bl func_8036eafc
+/* 8036FF8C 8001004C */ lwz r0, 0x4c(r1)
+/* 8036FF90 83E10044 */ lwz r31, 0x44(r1)
+/* 8036FF94 83C10040 */ lwz r30, 0x40(r1)
+/* 8036FF98 83A1003C */ lwz r29, 0x3c(r1)
+/* 8036FF9C 38210048 */ addi r1, r1, 0x48
+/* 8036FFA0 7C0803A6 */ mtlr r0
+/* 8036FFA4 4E800020 */ blr
+.size func_8036fe88, . - func_8036fe88
+