summaryrefslogtreecommitdiff
path: root/asm/gt2Buffer.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/gt2Buffer.s')
-rw-r--r--asm/gt2Buffer.s132
1 files changed, 132 insertions, 0 deletions
diff --git a/asm/gt2Buffer.s b/asm/gt2Buffer.s
new file mode 100644
index 0000000..ab6397e
--- /dev/null
+++ b/asm/gt2Buffer.s
@@ -0,0 +1,132 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gti2AllocateBuffer
+gti2AllocateBuffer:
+/* 803488F8 00344558 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803488FC 0034455C 7C 08 02 A6 */ mflr r0
+/* 80348900 00344560 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80348904 00344564 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80348908 00344568 7C 9F 23 78 */ mr r31, r4
+/* 8034890C 0034456C 93 C1 00 08 */ stw r30, 8(r1)
+/* 80348910 00344570 7C 7E 1B 78 */ mr r30, r3
+/* 80348914 00344574 7F E3 FB 78 */ mr r3, r31
+/* 80348918 00344578 4B FF 09 FD */ bl gsimalloc
+/* 8034891C 0034457C 2C 03 00 00 */ cmpwi r3, 0
+/* 80348920 00344580 90 7E 00 00 */ stw r3, 0(r30)
+/* 80348924 00344584 40 82 00 0C */ bne lbl_80348930
+/* 80348928 00344588 38 60 00 00 */ li r3, 0
+/* 8034892C 0034458C 48 00 00 0C */ b lbl_80348938
+lbl_80348930:
+/* 80348930 00344590 93 FE 00 04 */ stw r31, 4(r30)
+/* 80348934 00344594 38 60 00 01 */ li r3, 1
+lbl_80348938:
+/* 80348938 00344598 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034893C 0034459C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80348940 003445A0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80348944 003445A4 7C 08 03 A6 */ mtlr r0
+/* 80348948 003445A8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8034894C 003445AC 4E 80 00 20 */ blr
+
+.global gti2GetBufferFreeSpace
+gti2GetBufferFreeSpace:
+/* 80348950 003445B0 80 83 00 08 */ lwz r4, 8(r3)
+/* 80348954 003445B4 80 03 00 04 */ lwz r0, 4(r3)
+/* 80348958 003445B8 7C 64 00 50 */ subf r3, r4, r0
+/* 8034895C 003445BC 4E 80 00 20 */ blr
+
+.global gti2BufferWriteByte
+gti2BufferWriteByte:
+/* 80348960 003445C0 80 A3 00 08 */ lwz r5, 8(r3)
+/* 80348964 003445C4 80 C3 00 00 */ lwz r6, 0(r3)
+/* 80348968 003445C8 38 05 00 01 */ addi r0, r5, 1
+/* 8034896C 003445CC 7C 86 29 AE */ stbx r4, r6, r5
+/* 80348970 003445D0 90 03 00 08 */ stw r0, 8(r3)
+/* 80348974 003445D4 4E 80 00 20 */ blr
+
+.global gti2BufferWriteUShort
+gti2BufferWriteUShort:
+/* 80348978 003445D8 80 A3 00 08 */ lwz r5, 8(r3)
+/* 8034897C 003445DC 54 80 C6 3E */ rlwinm r0, r4, 0x18, 0x18, 0x1f
+/* 80348980 003445E0 80 E3 00 00 */ lwz r7, 0(r3)
+/* 80348984 003445E4 38 C5 00 01 */ addi r6, r5, 1
+/* 80348988 003445E8 7C 07 29 AE */ stbx r0, r7, r5
+/* 8034898C 003445EC 38 06 00 01 */ addi r0, r6, 1
+/* 80348990 003445F0 90 C3 00 08 */ stw r6, 8(r3)
+/* 80348994 003445F4 80 A3 00 00 */ lwz r5, 0(r3)
+/* 80348998 003445F8 7C 85 31 AE */ stbx r4, r5, r6
+/* 8034899C 003445FC 90 03 00 08 */ stw r0, 8(r3)
+/* 803489A0 00344600 4E 80 00 20 */ blr
+
+.global gti2BufferWriteData
+gti2BufferWriteData:
+/* 803489A4 00344604 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803489A8 00344608 7C 08 02 A6 */ mflr r0
+/* 803489AC 0034460C 2C 04 00 00 */ cmpwi r4, 0
+/* 803489B0 00344610 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803489B4 00344614 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 803489B8 00344618 7C BF 2B 78 */ mr r31, r5
+/* 803489BC 0034461C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 803489C0 00344620 7C 9E 23 78 */ mr r30, r4
+/* 803489C4 00344624 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 803489C8 00344628 7C 7D 1B 78 */ mr r29, r3
+/* 803489CC 0034462C 41 82 00 48 */ beq lbl_80348A14
+/* 803489D0 00344630 2C 05 00 00 */ cmpwi r5, 0
+/* 803489D4 00344634 40 82 00 08 */ bne lbl_803489DC
+/* 803489D8 00344638 48 00 00 3C */ b lbl_80348A14
+lbl_803489DC:
+/* 803489DC 0034463C 2C 05 FF FF */ cmpwi r5, -1
+/* 803489E0 00344640 40 82 00 10 */ bne lbl_803489F0
+/* 803489E4 00344644 7F C3 F3 78 */ mr r3, r30
+/* 803489E8 00344648 4B E7 E1 7D */ bl strlen
+/* 803489EC 0034464C 7C 7F 1B 78 */ mr r31, r3
+lbl_803489F0:
+/* 803489F0 00344650 80 7D 00 00 */ lwz r3, 0(r29)
+/* 803489F4 00344654 7F C4 F3 78 */ mr r4, r30
+/* 803489F8 00344658 80 1D 00 08 */ lwz r0, 8(r29)
+/* 803489FC 0034465C 7F E5 FB 78 */ mr r5, r31
+/* 80348A00 00344660 7C 63 02 14 */ add r3, r3, r0
+/* 80348A04 00344664 4B CB B5 FD */ bl memcpy
+/* 80348A08 00344668 80 1D 00 08 */ lwz r0, 8(r29)
+/* 80348A0C 0034466C 7C 00 FA 14 */ add r0, r0, r31
+/* 80348A10 00344670 90 1D 00 08 */ stw r0, 8(r29)
+lbl_80348A14:
+/* 80348A14 00344674 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80348A18 00344678 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80348A1C 0034467C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80348A20 00344680 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80348A24 00344684 7C 08 03 A6 */ mtlr r0
+/* 80348A28 00344688 38 21 00 20 */ addi r1, r1, 0x20
+/* 80348A2C 0034468C 4E 80 00 20 */ blr
+
+.global gti2BufferShorten
+gti2BufferShorten:
+/* 80348A30 00344690 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80348A34 00344694 7C 08 02 A6 */ mflr r0
+/* 80348A38 00344698 2C 04 FF FF */ cmpwi r4, -1
+/* 80348A3C 0034469C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80348A40 003446A0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80348A44 003446A4 7C BF 2B 78 */ mr r31, r5
+/* 80348A48 003446A8 93 C1 00 08 */ stw r30, 8(r1)
+/* 80348A4C 003446AC 7C 7E 1B 78 */ mr r30, r3
+/* 80348A50 003446B0 40 82 00 0C */ bne lbl_80348A5C
+/* 80348A54 003446B4 80 03 00 08 */ lwz r0, 8(r3)
+/* 80348A58 003446B8 7C 85 00 50 */ subf r4, r5, r0
+lbl_80348A5C:
+/* 80348A5C 003446BC 80 63 00 00 */ lwz r3, 0(r3)
+/* 80348A60 003446C0 80 1E 00 08 */ lwz r0, 8(r30)
+/* 80348A64 003446C4 7C 63 22 14 */ add r3, r3, r4
+/* 80348A68 003446C8 7C 04 00 50 */ subf r0, r4, r0
+/* 80348A6C 003446CC 7C 83 2A 14 */ add r4, r3, r5
+/* 80348A70 003446D0 7C A5 00 50 */ subf r5, r5, r0
+/* 80348A74 003446D4 4B E8 18 01 */ bl memmove
+/* 80348A78 003446D8 80 1E 00 08 */ lwz r0, 8(r30)
+/* 80348A7C 003446DC 7C 1F 00 50 */ subf r0, r31, r0
+/* 80348A80 003446E0 90 1E 00 08 */ stw r0, 8(r30)
+/* 80348A84 003446E4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80348A88 003446E8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80348A8C 003446EC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80348A90 003446F0 7C 08 03 A6 */ mtlr r0
+/* 80348A94 003446F4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80348A98 003446F8 4E 80 00 20 */ blr