diff options
Diffstat (limited to 'asm/MSL_C/MSL_Common/file_pos.s')
-rw-r--r-- | asm/MSL_C/MSL_Common/file_pos.s | 211 |
1 files changed, 211 insertions, 0 deletions
diff --git a/asm/MSL_C/MSL_Common/file_pos.s b/asm/MSL_C/MSL_Common/file_pos.s new file mode 100644 index 0000000..0aa63a2 --- /dev/null +++ b/asm/MSL_C/MSL_Common/file_pos.s @@ -0,0 +1,211 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global _ftell
+_ftell:
+/* 801C9E80 001C5AE0 80 03 00 04 */ lwz r0, 4(r3)
+/* 801C9E84 001C5AE4 38 C0 00 00 */ li r6, 0
+/* 801C9E88 001C5AE8 54 04 57 7E */ rlwinm r4, r0, 0xa, 0x1d, 0x1f
+/* 801C9E8C 001C5AEC 38 04 00 FF */ addi r0, r4, 0xff
+/* 801C9E90 001C5AF0 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 801C9E94 001C5AF4 28 00 00 01 */ cmplwi r0, 1
+/* 801C9E98 001C5AF8 41 81 00 10 */ bgt lbl_801C9EA8
+/* 801C9E9C 001C5AFC 88 03 00 0A */ lbz r0, 0xa(r3)
+/* 801C9EA0 001C5B00 2C 00 00 00 */ cmpwi r0, 0
+/* 801C9EA4 001C5B04 41 82 00 14 */ beq lbl_801C9EB8
+lbl_801C9EA8:
+/* 801C9EA8 001C5B08 38 00 00 28 */ li r0, 0x28
+/* 801C9EAC 001C5B0C 38 60 FF FF */ li r3, -1
+/* 801C9EB0 001C5B10 90 0D 9F C8 */ stw r0, lbl_8063F288-_SDA_BASE_(r13)
+/* 801C9EB4 001C5B14 4E 80 00 20 */ blr
+lbl_801C9EB8:
+/* 801C9EB8 001C5B18 80 03 00 08 */ lwz r0, 8(r3)
+/* 801C9EBC 001C5B1C 54 05 1F 7F */ rlwinm. r5, r0, 3, 0x1d, 0x1f
+/* 801C9EC0 001C5B20 40 82 00 0C */ bne lbl_801C9ECC
+/* 801C9EC4 001C5B24 80 63 00 18 */ lwz r3, 0x18(r3)
+/* 801C9EC8 001C5B28 4E 80 00 20 */ blr
+lbl_801C9ECC:
+/* 801C9ECC 001C5B2C 81 03 00 1C */ lwz r8, 0x1c(r3)
+/* 801C9ED0 001C5B30 28 05 00 03 */ cmplwi r5, 3
+/* 801C9ED4 001C5B34 80 83 00 24 */ lwz r4, 0x24(r3)
+/* 801C9ED8 001C5B38 80 03 00 34 */ lwz r0, 0x34(r3)
+/* 801C9EDC 001C5B3C 7C 88 20 50 */ subf r4, r8, r4
+/* 801C9EE0 001C5B40 7C E0 22 14 */ add r7, r0, r4
+/* 801C9EE4 001C5B44 41 80 00 0C */ blt lbl_801C9EF0
+/* 801C9EE8 001C5B48 38 C5 FF FE */ addi r6, r5, -2
+/* 801C9EEC 001C5B4C 7C E6 38 50 */ subf r7, r6, r7
+lbl_801C9EF0:
+/* 801C9EF0 001C5B50 80 03 00 04 */ lwz r0, 4(r3)
+/* 801C9EF4 001C5B54 54 00 6F FF */ rlwinm. r0, r0, 0xd, 0x1f, 0x1f
+/* 801C9EF8 001C5B58 40 82 00 28 */ bne lbl_801C9F20
+/* 801C9EFC 001C5B5C 7C 06 20 51 */ subf. r0, r6, r4
+/* 801C9F00 001C5B60 7C 09 03 A6 */ mtctr r0
+/* 801C9F04 001C5B64 41 82 00 1C */ beq lbl_801C9F20
+lbl_801C9F08:
+/* 801C9F08 001C5B68 88 08 00 00 */ lbz r0, 0(r8)
+/* 801C9F0C 001C5B6C 39 08 00 01 */ addi r8, r8, 1
+/* 801C9F10 001C5B70 28 00 00 0A */ cmplwi r0, 0xa
+/* 801C9F14 001C5B74 40 82 00 08 */ bne lbl_801C9F1C
+/* 801C9F18 001C5B78 38 E7 00 01 */ addi r7, r7, 1
+lbl_801C9F1C:
+/* 801C9F1C 001C5B7C 42 00 FF EC */ bdnz lbl_801C9F08
+lbl_801C9F20:
+/* 801C9F20 001C5B80 7C E3 3B 78 */ mr r3, r7
+/* 801C9F24 001C5B84 4E 80 00 20 */ blr
+
+.global ftell
+ftell:
+/* 801C9F28 001C5B88 4B FF FF 58 */ b _ftell
+
+.global _fseek
+_fseek:
+/* 801C9F2C 001C5B8C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 801C9F30 001C5B90 7C 08 02 A6 */ mflr r0
+/* 801C9F34 001C5B94 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801C9F38 001C5B98 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 801C9F3C 001C5B9C 7C BF 2B 78 */ mr r31, r5
+/* 801C9F40 001C5BA0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 801C9F44 001C5BA4 7C 7E 1B 78 */ mr r30, r3
+/* 801C9F48 001C5BA8 90 81 00 08 */ stw r4, 8(r1)
+/* 801C9F4C 001C5BAC 80 03 00 04 */ lwz r0, 4(r3)
+/* 801C9F50 001C5BB0 54 00 57 7E */ rlwinm r0, r0, 0xa, 0x1d, 0x1f
+/* 801C9F54 001C5BB4 28 00 00 01 */ cmplwi r0, 1
+/* 801C9F58 001C5BB8 40 82 00 10 */ bne lbl_801C9F68
+/* 801C9F5C 001C5BBC 88 03 00 0A */ lbz r0, 0xa(r3)
+/* 801C9F60 001C5BC0 2C 00 00 00 */ cmpwi r0, 0
+/* 801C9F64 001C5BC4 41 82 00 14 */ beq lbl_801C9F78
+lbl_801C9F68:
+/* 801C9F68 001C5BC8 38 00 00 28 */ li r0, 0x28
+/* 801C9F6C 001C5BCC 38 60 FF FF */ li r3, -1
+/* 801C9F70 001C5BD0 90 0D 9F C8 */ stw r0, lbl_8063F288-_SDA_BASE_(r13)
+/* 801C9F74 001C5BD4 48 00 01 64 */ b lbl_801CA0D8
+lbl_801C9F78:
+/* 801C9F78 001C5BD8 80 03 00 08 */ lwz r0, 8(r3)
+/* 801C9F7C 001C5BDC 54 00 1F 7E */ srwi r0, r0, 0x1d
+/* 801C9F80 001C5BE0 28 00 00 01 */ cmplwi r0, 1
+/* 801C9F84 001C5BE4 40 82 00 34 */ bne lbl_801C9FB8
+/* 801C9F88 001C5BE8 38 80 00 00 */ li r4, 0
+/* 801C9F8C 001C5BEC 4B FF F5 41 */ bl __flush_buffer
+/* 801C9F90 001C5BF0 2C 03 00 00 */ cmpwi r3, 0
+/* 801C9F94 001C5BF4 41 82 00 24 */ beq lbl_801C9FB8
+/* 801C9F98 001C5BF8 38 00 00 01 */ li r0, 1
+/* 801C9F9C 001C5BFC 38 80 00 00 */ li r4, 0
+/* 801C9FA0 001C5C00 98 1E 00 0A */ stb r0, 0xa(r30)
+/* 801C9FA4 001C5C04 38 00 00 28 */ li r0, 0x28
+/* 801C9FA8 001C5C08 38 60 FF FF */ li r3, -1
+/* 801C9FAC 001C5C0C 90 9E 00 28 */ stw r4, 0x28(r30)
+/* 801C9FB0 001C5C10 90 0D 9F C8 */ stw r0, lbl_8063F288-_SDA_BASE_(r13)
+/* 801C9FB4 001C5C14 48 00 01 24 */ b lbl_801CA0D8
+lbl_801C9FB8:
+/* 801C9FB8 001C5C18 2C 1F 00 01 */ cmpwi r31, 1
+/* 801C9FBC 001C5C1C 40 82 00 1C */ bne lbl_801C9FD8
+/* 801C9FC0 001C5C20 7F C3 F3 78 */ mr r3, r30
+/* 801C9FC4 001C5C24 3B E0 00 00 */ li r31, 0
+/* 801C9FC8 001C5C28 4B FF FE B9 */ bl _ftell
+/* 801C9FCC 001C5C2C 80 01 00 08 */ lwz r0, 8(r1)
+/* 801C9FD0 001C5C30 7C 00 1A 14 */ add r0, r0, r3
+/* 801C9FD4 001C5C34 90 01 00 08 */ stw r0, 8(r1)
+lbl_801C9FD8:
+/* 801C9FD8 001C5C38 2C 1F 00 02 */ cmpwi r31, 2
+/* 801C9FDC 001C5C3C 41 82 00 80 */ beq lbl_801CA05C
+/* 801C9FE0 001C5C40 80 1E 00 04 */ lwz r0, 4(r30)
+/* 801C9FE4 001C5C44 54 00 2F 7E */ rlwinm r0, r0, 5, 0x1d, 0x1f
+/* 801C9FE8 001C5C48 28 00 00 03 */ cmplwi r0, 3
+/* 801C9FEC 001C5C4C 41 82 00 70 */ beq lbl_801CA05C
+/* 801C9FF0 001C5C50 80 DE 00 08 */ lwz r6, 8(r30)
+/* 801C9FF4 001C5C54 54 C3 1F 7E */ srwi r3, r6, 0x1d
+/* 801C9FF8 001C5C58 38 03 FF FE */ addi r0, r3, -2
+/* 801C9FFC 001C5C5C 28 00 00 01 */ cmplwi r0, 1
+/* 801CA000 001C5C60 41 81 00 5C */ bgt lbl_801CA05C
+/* 801CA004 001C5C64 80 61 00 08 */ lwz r3, 8(r1)
+/* 801CA008 001C5C68 80 BE 00 18 */ lwz r5, 0x18(r30)
+/* 801CA00C 001C5C6C 7C 03 28 40 */ cmplw r3, r5
+/* 801CA010 001C5C70 40 80 00 10 */ bge lbl_801CA020
+/* 801CA014 001C5C74 80 1E 00 34 */ lwz r0, 0x34(r30)
+/* 801CA018 001C5C78 7C 03 00 40 */ cmplw r3, r0
+/* 801CA01C 001C5C7C 40 80 00 14 */ bge lbl_801CA030
+lbl_801CA020:
+/* 801CA020 001C5C80 80 1E 00 08 */ lwz r0, 8(r30)
+/* 801CA024 001C5C84 54 00 00 FE */ clrlwi r0, r0, 3
+/* 801CA028 001C5C88 90 1E 00 08 */ stw r0, 8(r30)
+/* 801CA02C 001C5C8C 48 00 00 3C */ b lbl_801CA068
+lbl_801CA030:
+/* 801CA030 001C5C90 80 9E 00 1C */ lwz r4, 0x1c(r30)
+/* 801CA034 001C5C94 7C 60 18 50 */ subf r3, r0, r3
+/* 801CA038 001C5C98 38 00 00 02 */ li r0, 2
+/* 801CA03C 001C5C9C 7C 64 1A 14 */ add r3, r4, r3
+/* 801CA040 001C5CA0 90 7E 00 24 */ stw r3, 0x24(r30)
+/* 801CA044 001C5CA4 50 06 E8 04 */ rlwimi r6, r0, 0x1d, 0, 2
+/* 801CA048 001C5CA8 80 01 00 08 */ lwz r0, 8(r1)
+/* 801CA04C 001C5CAC 7C 00 28 50 */ subf r0, r0, r5
+/* 801CA050 001C5CB0 90 DE 00 08 */ stw r6, 8(r30)
+/* 801CA054 001C5CB4 90 1E 00 28 */ stw r0, 0x28(r30)
+/* 801CA058 001C5CB8 48 00 00 10 */ b lbl_801CA068
+lbl_801CA05C:
+/* 801CA05C 001C5CBC 80 1E 00 08 */ lwz r0, 8(r30)
+/* 801CA060 001C5CC0 54 00 00 FE */ clrlwi r0, r0, 3
+/* 801CA064 001C5CC4 90 1E 00 08 */ stw r0, 8(r30)
+lbl_801CA068:
+/* 801CA068 001C5CC8 80 1E 00 08 */ lwz r0, 8(r30)
+/* 801CA06C 001C5CCC 54 00 1F 7F */ rlwinm. r0, r0, 3, 0x1d, 0x1f
+/* 801CA070 001C5CD0 40 82 00 64 */ bne lbl_801CA0D4
+/* 801CA074 001C5CD4 81 9E 00 38 */ lwz r12, 0x38(r30)
+/* 801CA078 001C5CD8 2C 0C 00 00 */ cmpwi r12, 0
+/* 801CA07C 001C5CDC 41 82 00 44 */ beq lbl_801CA0C0
+/* 801CA080 001C5CE0 7F E5 FB 78 */ mr r5, r31
+/* 801CA084 001C5CE4 38 81 00 08 */ addi r4, r1, 8
+/* 801CA088 001C5CE8 80 7E 00 00 */ lwz r3, 0(r30)
+/* 801CA08C 001C5CEC 80 DE 00 48 */ lwz r6, 0x48(r30)
+/* 801CA090 001C5CF0 7D 89 03 A6 */ mtctr r12
+/* 801CA094 001C5CF4 4E 80 04 21 */ bctrl
+/* 801CA098 001C5CF8 2C 03 00 00 */ cmpwi r3, 0
+/* 801CA09C 001C5CFC 41 82 00 24 */ beq lbl_801CA0C0
+/* 801CA0A0 001C5D00 38 00 00 01 */ li r0, 1
+/* 801CA0A4 001C5D04 38 80 00 00 */ li r4, 0
+/* 801CA0A8 001C5D08 98 1E 00 0A */ stb r0, 0xa(r30)
+/* 801CA0AC 001C5D0C 38 00 00 28 */ li r0, 0x28
+/* 801CA0B0 001C5D10 38 60 FF FF */ li r3, -1
+/* 801CA0B4 001C5D14 90 9E 00 28 */ stw r4, 0x28(r30)
+/* 801CA0B8 001C5D18 90 0D 9F C8 */ stw r0, lbl_8063F288-_SDA_BASE_(r13)
+/* 801CA0BC 001C5D1C 48 00 00 1C */ b lbl_801CA0D8
+lbl_801CA0C0:
+/* 801CA0C0 001C5D20 38 60 00 00 */ li r3, 0
+/* 801CA0C4 001C5D24 98 7E 00 09 */ stb r3, 9(r30)
+/* 801CA0C8 001C5D28 80 01 00 08 */ lwz r0, 8(r1)
+/* 801CA0CC 001C5D2C 90 1E 00 18 */ stw r0, 0x18(r30)
+/* 801CA0D0 001C5D30 90 7E 00 28 */ stw r3, 0x28(r30)
+lbl_801CA0D4:
+/* 801CA0D4 001C5D34 38 60 00 00 */ li r3, 0
+lbl_801CA0D8:
+/* 801CA0D8 001C5D38 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801CA0DC 001C5D3C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 801CA0E0 001C5D40 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 801CA0E4 001C5D44 7C 08 03 A6 */ mtlr r0
+/* 801CA0E8 001C5D48 38 21 00 20 */ addi r1, r1, 0x20
+/* 801CA0EC 001C5D4C 4E 80 00 20 */ blr
+
+.global fseek
+fseek:
+/* 801CA0F0 001C5D50 4B FF FE 3C */ b _fseek
+
+.global rewind
+rewind:
+/* 801CA0F4 001C5D54 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801CA0F8 001C5D58 7C 08 02 A6 */ mflr r0
+/* 801CA0FC 001C5D5C 38 80 00 00 */ li r4, 0
+/* 801CA100 001C5D60 38 A0 00 00 */ li r5, 0
+/* 801CA104 001C5D64 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801CA108 001C5D68 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801CA10C 001C5D6C 3B E0 00 00 */ li r31, 0
+/* 801CA110 001C5D70 93 C1 00 08 */ stw r30, 8(r1)
+/* 801CA114 001C5D74 7C 7E 1B 78 */ mr r30, r3
+/* 801CA118 001C5D78 9B E3 00 0A */ stb r31, 0xa(r3)
+/* 801CA11C 001C5D7C 4B FF FE 11 */ bl _fseek
+/* 801CA120 001C5D80 9B FE 00 0A */ stb r31, 0xa(r30)
+/* 801CA124 001C5D84 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801CA128 001C5D88 83 C1 00 08 */ lwz r30, 8(r1)
+/* 801CA12C 001C5D8C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801CA130 001C5D90 7C 08 03 A6 */ mtlr r0
+/* 801CA134 001C5D94 38 21 00 10 */ addi r1, r1, 0x10
+/* 801CA138 001C5D98 4E 80 00 20 */ blr
|