summaryrefslogtreecommitdiff
path: root/asm/MSL_C/MSL_Common/ansi_files.s
blob: b912ffd058324e590991e8fd3aef0aaf438e1aaf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global __close_all
__close_all:
/* 801C7894 001C34F4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801C7898 001C34F8  7C 08 02 A6 */	mflr r0
/* 801C789C 001C34FC  90 01 00 24 */	stw r0, 0x24(r1)
/* 801C78A0 001C3500  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801C78A4 001C3504  3B E0 00 00 */	li r31, 0
/* 801C78A8 001C3508  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801C78AC 001C350C  3B C0 00 03 */	li r30, 3
/* 801C78B0 001C3510  93 A1 00 14 */	stw r29, 0x14(r1)
/* 801C78B4 001C3514  3F A0 80 42 */	lis r29, lbl_804228F0@ha
/* 801C78B8 001C3518  3B BD 28 F0 */	addi r29, r29, lbl_804228F0@l
/* 801C78BC 001C351C  48 00 00 58 */	b lbl_801C7914
lbl_801C78C0:
/* 801C78C0 001C3520  80 1D 00 04 */	lwz r0, 4(r29)
/* 801C78C4 001C3524  54 00 57 7F */	rlwinm. r0, r0, 0xa, 0x1d, 0x1f
/* 801C78C8 001C3528  41 82 00 0C */	beq lbl_801C78D4
/* 801C78CC 001C352C  7F A3 EB 78 */	mr r3, r29
/* 801C78D0 001C3530  48 00 23 01 */	bl fclose
lbl_801C78D4:
/* 801C78D4 001C3534  7F A3 EB 78 */	mr r3, r29
/* 801C78D8 001C3538  83 BD 00 4C */	lwz r29, 0x4c(r29)
/* 801C78DC 001C353C  88 03 00 0C */	lbz r0, 0xc(r3)
/* 801C78E0 001C3540  2C 00 00 00 */	cmpwi r0, 0
/* 801C78E4 001C3544  41 82 00 0C */	beq lbl_801C78F0
/* 801C78E8 001C3548  4B E4 2E DD */	bl free
/* 801C78EC 001C354C  48 00 00 28 */	b lbl_801C7914
lbl_801C78F0:
/* 801C78F0 001C3550  80 03 00 04 */	lwz r0, 4(r3)
/* 801C78F4 001C3554  53 C0 B1 D2 */	rlwimi r0, r30, 0x16, 7, 9
/* 801C78F8 001C3558  2C 1D 00 00 */	cmpwi r29, 0
/* 801C78FC 001C355C  90 03 00 04 */	stw r0, 4(r3)
/* 801C7900 001C3560  41 82 00 14 */	beq lbl_801C7914
/* 801C7904 001C3564  88 1D 00 0C */	lbz r0, 0xc(r29)
/* 801C7908 001C3568  2C 00 00 00 */	cmpwi r0, 0
/* 801C790C 001C356C  41 82 00 08 */	beq lbl_801C7914
/* 801C7910 001C3570  93 E3 00 4C */	stw r31, 0x4c(r3)
lbl_801C7914:
/* 801C7914 001C3574  2C 1D 00 00 */	cmpwi r29, 0
/* 801C7918 001C3578  40 82 FF A8 */	bne lbl_801C78C0
/* 801C791C 001C357C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801C7920 001C3580  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801C7924 001C3584  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801C7928 001C3588  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 801C792C 001C358C  7C 08 03 A6 */	mtlr r0
/* 801C7930 001C3590  38 21 00 20 */	addi r1, r1, 0x20
/* 801C7934 001C3594  4E 80 00 20 */	blr

.global __flush_line_buffered_output_files
__flush_line_buffered_output_files:
/* 801C7938 001C3598  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801C793C 001C359C  7C 08 02 A6 */	mflr r0
/* 801C7940 001C35A0  90 01 00 14 */	stw r0, 0x14(r1)
/* 801C7944 001C35A4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801C7948 001C35A8  3B E0 00 00 */	li r31, 0
/* 801C794C 001C35AC  93 C1 00 08 */	stw r30, 8(r1)
/* 801C7950 001C35B0  3F C0 80 42 */	lis r30, lbl_804228F0@ha
/* 801C7954 001C35B4  3B DE 28 F0 */	addi r30, r30, lbl_804228F0@l
/* 801C7958 001C35B8  48 00 00 40 */	b lbl_801C7998
lbl_801C795C:
/* 801C795C 001C35BC  80 7E 00 04 */	lwz r3, 4(r30)
/* 801C7960 001C35C0  54 60 57 7F */	rlwinm. r0, r3, 0xa, 0x1d, 0x1f
/* 801C7964 001C35C4  41 82 00 30 */	beq lbl_801C7994
/* 801C7968 001C35C8  54 60 3F FF */	rlwinm. r0, r3, 7, 0x1f, 0x1f
/* 801C796C 001C35CC  41 82 00 28 */	beq lbl_801C7994
/* 801C7970 001C35D0  80 1E 00 08 */	lwz r0, 8(r30)
/* 801C7974 001C35D4  54 00 1F 7E */	srwi r0, r0, 0x1d
/* 801C7978 001C35D8  28 00 00 01 */	cmplwi r0, 1
/* 801C797C 001C35DC  40 82 00 18 */	bne lbl_801C7994
/* 801C7980 001C35E0  7F C3 F3 78 */	mr r3, r30
/* 801C7984 001C35E4  48 00 23 09 */	bl fflush
/* 801C7988 001C35E8  2C 03 00 00 */	cmpwi r3, 0
/* 801C798C 001C35EC  41 82 00 08 */	beq lbl_801C7994
/* 801C7990 001C35F0  3B E0 FF FF */	li r31, -1
lbl_801C7994:
/* 801C7994 001C35F4  83 DE 00 4C */	lwz r30, 0x4c(r30)
lbl_801C7998:
/* 801C7998 001C35F8  2C 1E 00 00 */	cmpwi r30, 0
/* 801C799C 001C35FC  40 82 FF C0 */	bne lbl_801C795C
/* 801C79A0 001C3600  7F E3 FB 78 */	mr r3, r31
/* 801C79A4 001C3604  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801C79A8 001C3608  83 C1 00 08 */	lwz r30, 8(r1)
/* 801C79AC 001C360C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801C79B0 001C3610  7C 08 03 A6 */	mtlr r0
/* 801C79B4 001C3614  38 21 00 10 */	addi r1, r1, 0x10
/* 801C79B8 001C3618  4E 80 00 20 */	blr

.global __flush_all
__flush_all:
/* 801C79BC 001C361C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801C79C0 001C3620  7C 08 02 A6 */	mflr r0
/* 801C79C4 001C3624  90 01 00 14 */	stw r0, 0x14(r1)
/* 801C79C8 001C3628  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801C79CC 001C362C  3B E0 00 00 */	li r31, 0
/* 801C79D0 001C3630  93 C1 00 08 */	stw r30, 8(r1)
/* 801C79D4 001C3634  3F C0 80 42 */	lis r30, lbl_804228F0@ha
/* 801C79D8 001C3638  3B DE 28 F0 */	addi r30, r30, lbl_804228F0@l
/* 801C79DC 001C363C  48 00 00 28 */	b lbl_801C7A04
lbl_801C79E0:
/* 801C79E0 001C3640  80 1E 00 04 */	lwz r0, 4(r30)
/* 801C79E4 001C3644  54 00 57 7F */	rlwinm. r0, r0, 0xa, 0x1d, 0x1f
/* 801C79E8 001C3648  41 82 00 18 */	beq lbl_801C7A00
/* 801C79EC 001C364C  7F C3 F3 78 */	mr r3, r30
/* 801C79F0 001C3650  48 00 22 9D */	bl fflush
/* 801C79F4 001C3654  2C 03 00 00 */	cmpwi r3, 0
/* 801C79F8 001C3658  41 82 00 08 */	beq lbl_801C7A00
/* 801C79FC 001C365C  3B E0 FF FF */	li r31, -1
lbl_801C7A00:
/* 801C7A00 001C3660  83 DE 00 4C */	lwz r30, 0x4c(r30)
lbl_801C7A04:
/* 801C7A04 001C3664  2C 1E 00 00 */	cmpwi r30, 0
/* 801C7A08 001C3668  40 82 FF D8 */	bne lbl_801C79E0
/* 801C7A0C 001C366C  7F E3 FB 78 */	mr r3, r31
/* 801C7A10 001C3670  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801C7A14 001C3674  83 C1 00 08 */	lwz r30, 8(r1)
/* 801C7A18 001C3678  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801C7A1C 001C367C  7C 08 03 A6 */	mtlr r0
/* 801C7A20 001C3680  38 21 00 10 */	addi r1, r1, 0x10
/* 801C7A24 001C3684  4E 80 00 20 */	blr