summaryrefslogtreecommitdiff
path: root/asm/SDK/VF/pf_api_util.s
blob: cad2d7da972118a140a140b266aa7453ea0e1eca (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
.include "macros.inc"

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

.global VFiPFAPI_ParseOpenModeString
VFiPFAPI_ParseOpenModeString:
/* 8031A110 00315D70  2C 03 00 00 */	cmpwi r3, 0
/* 8031A114 00315D74  40 82 00 0C */	bne lbl_8031A120
/* 8031A118 00315D78  38 60 00 0A */	li r3, 0xa
/* 8031A11C 00315D7C  4E 80 00 20 */	blr
lbl_8031A120:
/* 8031A120 00315D80  88 03 00 00 */	lbz r0, 0(r3)
/* 8031A124 00315D84  38 A0 00 01 */	li r5, 1
/* 8031A128 00315D88  7C 00 07 74 */	extsb r0, r0
/* 8031A12C 00315D8C  2C 00 00 72 */	cmpwi r0, 0x72
/* 8031A130 00315D90  41 82 00 20 */	beq lbl_8031A150
/* 8031A134 00315D94  40 80 00 10 */	bge lbl_8031A144
/* 8031A138 00315D98  2C 00 00 61 */	cmpwi r0, 0x61
/* 8031A13C 00315D9C  41 82 00 24 */	beq lbl_8031A160
/* 8031A140 00315DA0  48 00 00 28 */	b lbl_8031A168
lbl_8031A144:
/* 8031A144 00315DA4  2C 00 00 77 */	cmpwi r0, 0x77
/* 8031A148 00315DA8  41 82 00 10 */	beq lbl_8031A158
/* 8031A14C 00315DAC  48 00 00 1C */	b lbl_8031A168
lbl_8031A150:
/* 8031A150 00315DB0  38 80 00 02 */	li r4, 2
/* 8031A154 00315DB4  48 00 00 1C */	b lbl_8031A170
lbl_8031A158:
/* 8031A158 00315DB8  38 80 00 01 */	li r4, 1
/* 8031A15C 00315DBC  48 00 00 14 */	b lbl_8031A170
lbl_8031A160:
/* 8031A160 00315DC0  38 80 00 04 */	li r4, 4
/* 8031A164 00315DC4  48 00 00 0C */	b lbl_8031A170
lbl_8031A168:
/* 8031A168 00315DC8  38 60 00 00 */	li r3, 0
/* 8031A16C 00315DCC  4E 80 00 20 */	blr
lbl_8031A170:
/* 8031A170 00315DD0  88 03 00 01 */	lbz r0, 1(r3)
/* 8031A174 00315DD4  2C 00 00 62 */	cmpwi r0, 0x62
/* 8031A178 00315DD8  40 82 00 08 */	bne lbl_8031A180
/* 8031A17C 00315DDC  38 A0 00 02 */	li r5, 2
lbl_8031A180:
/* 8031A180 00315DE0  7C 03 28 AE */	lbzx r0, r3, r5
/* 8031A184 00315DE4  38 A5 00 01 */	addi r5, r5, 1
/* 8031A188 00315DE8  7C 00 07 74 */	extsb r0, r0
/* 8031A18C 00315DEC  2C 00 00 2B */	cmpwi r0, 0x2b
/* 8031A190 00315DF0  41 82 00 30 */	beq lbl_8031A1C0
/* 8031A194 00315DF4  40 80 00 10 */	bge lbl_8031A1A4
/* 8031A198 00315DF8  2C 00 00 00 */	cmpwi r0, 0
/* 8031A19C 00315DFC  41 82 00 14 */	beq lbl_8031A1B0
/* 8031A1A0 00315E00  48 00 00 18 */	b lbl_8031A1B8
lbl_8031A1A4:
/* 8031A1A4 00315E04  2C 00 00 74 */	cmpwi r0, 0x74
/* 8031A1A8 00315E08  41 82 00 10 */	beq lbl_8031A1B8
/* 8031A1AC 00315E0C  48 00 00 0C */	b lbl_8031A1B8
lbl_8031A1B0:
/* 8031A1B0 00315E10  7C 83 23 78 */	mr r3, r4
/* 8031A1B4 00315E14  4E 80 00 20 */	blr
lbl_8031A1B8:
/* 8031A1B8 00315E18  38 60 00 00 */	li r3, 0
/* 8031A1BC 00315E1C  4E 80 00 20 */	blr
lbl_8031A1C0:
/* 8031A1C0 00315E20  7C 03 28 AE */	lbzx r0, r3, r5
/* 8031A1C4 00315E24  7C 00 07 75 */	extsb. r0, r0
/* 8031A1C8 00315E28  41 82 00 08 */	beq lbl_8031A1D0
/* 8031A1CC 00315E2C  48 00 00 0C */	b lbl_8031A1D8
lbl_8031A1D0:
/* 8031A1D0 00315E30  60 83 00 08 */	ori r3, r4, 8
/* 8031A1D4 00315E34  4E 80 00 20 */	blr
lbl_8031A1D8:
/* 8031A1D8 00315E38  38 60 00 00 */	li r3, 0
/* 8031A1DC 00315E3C  4E 80 00 20 */	blr

.global VFiPFAPI_convertError
VFiPFAPI_convertError:
/* 8031A1E0 00315E40  2C 83 00 00 */	cmpwi cr1, r3, 0
/* 8031A1E4 00315E44  40 86 00 0C */	bne cr1, lbl_8031A1F0
/* 8031A1E8 00315E48  38 60 00 00 */	li r3, 0
/* 8031A1EC 00315E4C  4E 80 00 20 */	blr
lbl_8031A1F0:
/* 8031A1F0 00315E50  2C 03 FF FF */	cmpwi r3, -1
/* 8031A1F4 00315E54  40 82 00 0C */	bne lbl_8031A200
/* 8031A1F8 00315E58  38 60 FF FF */	li r3, -1
/* 8031A1FC 00315E5C  4E 80 00 20 */	blr
lbl_8031A200:
/* 8031A200 00315E60  40 85 00 20 */	ble cr1, lbl_8031A220
/* 8031A204 00315E64  2C 03 00 A0 */	cmpwi r3, 0xa0
/* 8031A208 00315E68  40 80 00 18 */	bge lbl_8031A220
/* 8031A20C 00315E6C  3C 80 80 44 */	lis r4, lbl_804465E8@ha
/* 8031A210 00315E70  54 60 10 3A */	slwi r0, r3, 2
/* 8031A214 00315E74  38 84 65 E8 */	addi r4, r4, lbl_804465E8@l
/* 8031A218 00315E78  7C 64 00 2E */	lwzx r3, r4, r0
/* 8031A21C 00315E7C  4E 80 00 20 */	blr
lbl_8031A220:
/* 8031A220 00315E80  2C 03 10 00 */	cmpwi r3, 0x1000
/* 8031A224 00315E84  4C 82 00 20 */	bnelr
/* 8031A228 00315E88  38 60 00 05 */	li r3, 5
/* 8031A22C 00315E8C  4E 80 00 20 */	blr

.global VFiPFAPI_convertReturnValue
VFiPFAPI_convertReturnValue:
/* 8031A230 00315E90  7C 03 00 D0 */	neg r0, r3
/* 8031A234 00315E94  7C 00 1B 78 */	or r0, r0, r3
/* 8031A238 00315E98  7C 03 FE 70 */	srawi r3, r0, 0x1f
/* 8031A23C 00315E9C  4E 80 00 20 */	blr

.global VFiPFAPI_convertReturnValue2NULL
VFiPFAPI_convertReturnValue2NULL:
/* 8031A240 00315EA0  2C 03 00 00 */	cmpwi r3, 0
/* 8031A244 00315EA4  41 82 00 0C */	beq lbl_8031A250
/* 8031A248 00315EA8  38 60 00 00 */	li r3, 0
/* 8031A24C 00315EAC  4E 80 00 20 */	blr
lbl_8031A250:
/* 8031A250 00315EB0  7C 83 23 78 */	mr r3, r4
/* 8031A254 00315EB4  4E 80 00 20 */	blr