summaryrefslogtreecommitdiff
path: root/asm/MSL_C/MSL_Common/extras.s
blob: ba072031cf29985db09336a74b3c186a7e964f42 (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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
.include "macros.inc"

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

.global stricmp
stricmp:
/* 801D0A00 001CC660  3C A0 80 42 */	lis r5, lbl_80422D48@ha
/* 801D0A04 001CC664  38 A5 2D 48 */	addi r5, r5, lbl_80422D48@l
/* 801D0A08 001CC668  80 C5 00 38 */	lwz r6, 0x38(r5)
lbl_801D0A0C:
/* 801D0A0C 001CC66C  88 A3 00 00 */	lbz r5, 0(r3)
/* 801D0A10 001CC670  38 00 00 00 */	li r0, 0
/* 801D0A14 001CC674  38 63 00 01 */	addi r3, r3, 1
/* 801D0A18 001CC678  7C A7 07 75 */	extsb. r7, r5
/* 801D0A1C 001CC67C  41 80 00 0C */	blt lbl_801D0A28
/* 801D0A20 001CC680  2C 07 01 00 */	cmpwi r7, 0x100
/* 801D0A24 001CC684  41 80 00 08 */	blt lbl_801D0A2C
lbl_801D0A28:
/* 801D0A28 001CC688  38 00 00 01 */	li r0, 1
lbl_801D0A2C:
/* 801D0A2C 001CC68C  2C 00 00 00 */	cmpwi r0, 0
/* 801D0A30 001CC690  41 82 00 08 */	beq lbl_801D0A38
/* 801D0A34 001CC694  48 00 00 0C */	b lbl_801D0A40
lbl_801D0A38:
/* 801D0A38 001CC698  80 A6 00 10 */	lwz r5, 0x10(r6)
/* 801D0A3C 001CC69C  7C E5 38 AE */	lbzx r7, r5, r7
lbl_801D0A40:
/* 801D0A40 001CC6A0  88 A4 00 00 */	lbz r5, 0(r4)
/* 801D0A44 001CC6A4  7C E8 07 74 */	extsb r8, r7
/* 801D0A48 001CC6A8  38 00 00 00 */	li r0, 0
/* 801D0A4C 001CC6AC  38 84 00 01 */	addi r4, r4, 1
/* 801D0A50 001CC6B0  7C A7 07 75 */	extsb. r7, r5
/* 801D0A54 001CC6B4  41 80 00 0C */	blt lbl_801D0A60
/* 801D0A58 001CC6B8  2C 07 01 00 */	cmpwi r7, 0x100
/* 801D0A5C 001CC6BC  41 80 00 08 */	blt lbl_801D0A64
lbl_801D0A60:
/* 801D0A60 001CC6C0  38 00 00 01 */	li r0, 1
lbl_801D0A64:
/* 801D0A64 001CC6C4  2C 00 00 00 */	cmpwi r0, 0
/* 801D0A68 001CC6C8  41 82 00 08 */	beq lbl_801D0A70
/* 801D0A6C 001CC6CC  48 00 00 0C */	b lbl_801D0A78
lbl_801D0A70:
/* 801D0A70 001CC6D0  80 A6 00 10 */	lwz r5, 0x10(r6)
/* 801D0A74 001CC6D4  7C E5 38 AE */	lbzx r7, r5, r7
lbl_801D0A78:
/* 801D0A78 001CC6D8  7C E0 07 74 */	extsb r0, r7
/* 801D0A7C 001CC6DC  7C 08 00 00 */	cmpw r8, r0
/* 801D0A80 001CC6E0  40 80 00 0C */	bge lbl_801D0A8C
/* 801D0A84 001CC6E4  38 60 FF FF */	li r3, -1
/* 801D0A88 001CC6E8  4E 80 00 20 */	blr
lbl_801D0A8C:
/* 801D0A8C 001CC6EC  40 81 00 0C */	ble lbl_801D0A98
/* 801D0A90 001CC6F0  38 60 00 01 */	li r3, 1
/* 801D0A94 001CC6F4  4E 80 00 20 */	blr
lbl_801D0A98:
/* 801D0A98 001CC6F8  2C 08 00 00 */	cmpwi r8, 0
/* 801D0A9C 001CC6FC  40 82 FF 70 */	bne lbl_801D0A0C
/* 801D0AA0 001CC700  38 60 00 00 */	li r3, 0
/* 801D0AA4 001CC704  4E 80 00 20 */	blr

.global strncasecmp
strncasecmp:
/* 801D0AA8 001CC708  4B FF 93 18 */	b __msl_strnicmp

.global strcmpi
strcmpi:
/* 801D0AAC 001CC70C  3C A0 80 42 */	lis r5, lbl_80422D48@ha
/* 801D0AB0 001CC710  38 A5 2D 48 */	addi r5, r5, lbl_80422D48@l
/* 801D0AB4 001CC714  80 C5 00 38 */	lwz r6, 0x38(r5)
lbl_801D0AB8:
/* 801D0AB8 001CC718  88 A3 00 00 */	lbz r5, 0(r3)
/* 801D0ABC 001CC71C  38 00 00 00 */	li r0, 0
/* 801D0AC0 001CC720  38 63 00 01 */	addi r3, r3, 1
/* 801D0AC4 001CC724  7C A7 07 75 */	extsb. r7, r5
/* 801D0AC8 001CC728  41 80 00 0C */	blt lbl_801D0AD4
/* 801D0ACC 001CC72C  2C 07 01 00 */	cmpwi r7, 0x100
/* 801D0AD0 001CC730  41 80 00 08 */	blt lbl_801D0AD8
lbl_801D0AD4:
/* 801D0AD4 001CC734  38 00 00 01 */	li r0, 1
lbl_801D0AD8:
/* 801D0AD8 001CC738  2C 00 00 00 */	cmpwi r0, 0
/* 801D0ADC 001CC73C  41 82 00 08 */	beq lbl_801D0AE4
/* 801D0AE0 001CC740  48 00 00 0C */	b lbl_801D0AEC
lbl_801D0AE4:
/* 801D0AE4 001CC744  80 A6 00 10 */	lwz r5, 0x10(r6)
/* 801D0AE8 001CC748  7C E5 38 AE */	lbzx r7, r5, r7
lbl_801D0AEC:
/* 801D0AEC 001CC74C  88 A4 00 00 */	lbz r5, 0(r4)
/* 801D0AF0 001CC750  7C E8 07 74 */	extsb r8, r7
/* 801D0AF4 001CC754  38 00 00 00 */	li r0, 0
/* 801D0AF8 001CC758  38 84 00 01 */	addi r4, r4, 1
/* 801D0AFC 001CC75C  7C A7 07 75 */	extsb. r7, r5
/* 801D0B00 001CC760  41 80 00 0C */	blt lbl_801D0B0C
/* 801D0B04 001CC764  2C 07 01 00 */	cmpwi r7, 0x100
/* 801D0B08 001CC768  41 80 00 08 */	blt lbl_801D0B10
lbl_801D0B0C:
/* 801D0B0C 001CC76C  38 00 00 01 */	li r0, 1
lbl_801D0B10:
/* 801D0B10 001CC770  2C 00 00 00 */	cmpwi r0, 0
/* 801D0B14 001CC774  41 82 00 08 */	beq lbl_801D0B1C
/* 801D0B18 001CC778  48 00 00 0C */	b lbl_801D0B24
lbl_801D0B1C:
/* 801D0B1C 001CC77C  80 A6 00 10 */	lwz r5, 0x10(r6)
/* 801D0B20 001CC780  7C E5 38 AE */	lbzx r7, r5, r7
lbl_801D0B24:
/* 801D0B24 001CC784  7C E0 07 74 */	extsb r0, r7
/* 801D0B28 001CC788  7C 08 00 00 */	cmpw r8, r0
/* 801D0B2C 001CC78C  40 80 00 0C */	bge lbl_801D0B38
/* 801D0B30 001CC790  38 60 FF FF */	li r3, -1
/* 801D0B34 001CC794  4E 80 00 20 */	blr
lbl_801D0B38:
/* 801D0B38 001CC798  40 81 00 0C */	ble lbl_801D0B44
/* 801D0B3C 001CC79C  38 60 00 01 */	li r3, 1
/* 801D0B40 001CC7A0  4E 80 00 20 */	blr
lbl_801D0B44:
/* 801D0B44 001CC7A4  2C 08 00 00 */	cmpwi r8, 0
/* 801D0B48 001CC7A8  40 82 FF 70 */	bne lbl_801D0AB8
/* 801D0B4C 001CC7AC  38 60 00 00 */	li r3, 0
/* 801D0B50 001CC7B0  4E 80 00 20 */	blr

.global strcasecmp
strcasecmp:
/* 801D0B54 001CC7B4  3C A0 80 42 */	lis r5, lbl_80422D48@ha
/* 801D0B58 001CC7B8  38 A5 2D 48 */	addi r5, r5, lbl_80422D48@l
/* 801D0B5C 001CC7BC  80 C5 00 38 */	lwz r6, 0x38(r5)
lbl_801D0B60:
/* 801D0B60 001CC7C0  88 A3 00 00 */	lbz r5, 0(r3)
/* 801D0B64 001CC7C4  38 00 00 00 */	li r0, 0
/* 801D0B68 001CC7C8  38 63 00 01 */	addi r3, r3, 1
/* 801D0B6C 001CC7CC  7C A7 07 75 */	extsb. r7, r5
/* 801D0B70 001CC7D0  41 80 00 0C */	blt lbl_801D0B7C
/* 801D0B74 001CC7D4  2C 07 01 00 */	cmpwi r7, 0x100
/* 801D0B78 001CC7D8  41 80 00 08 */	blt lbl_801D0B80
lbl_801D0B7C:
/* 801D0B7C 001CC7DC  38 00 00 01 */	li r0, 1
lbl_801D0B80:
/* 801D0B80 001CC7E0  2C 00 00 00 */	cmpwi r0, 0
/* 801D0B84 001CC7E4  41 82 00 08 */	beq lbl_801D0B8C
/* 801D0B88 001CC7E8  48 00 00 0C */	b lbl_801D0B94
lbl_801D0B8C:
/* 801D0B8C 001CC7EC  80 A6 00 10 */	lwz r5, 0x10(r6)
/* 801D0B90 001CC7F0  7C E5 38 AE */	lbzx r7, r5, r7
lbl_801D0B94:
/* 801D0B94 001CC7F4  88 A4 00 00 */	lbz r5, 0(r4)
/* 801D0B98 001CC7F8  7C E8 07 74 */	extsb r8, r7
/* 801D0B9C 001CC7FC  38 00 00 00 */	li r0, 0
/* 801D0BA0 001CC800  38 84 00 01 */	addi r4, r4, 1
/* 801D0BA4 001CC804  7C A7 07 75 */	extsb. r7, r5
/* 801D0BA8 001CC808  41 80 00 0C */	blt lbl_801D0BB4
/* 801D0BAC 001CC80C  2C 07 01 00 */	cmpwi r7, 0x100
/* 801D0BB0 001CC810  41 80 00 08 */	blt lbl_801D0BB8
lbl_801D0BB4:
/* 801D0BB4 001CC814  38 00 00 01 */	li r0, 1
lbl_801D0BB8:
/* 801D0BB8 001CC818  2C 00 00 00 */	cmpwi r0, 0
/* 801D0BBC 001CC81C  41 82 00 08 */	beq lbl_801D0BC4
/* 801D0BC0 001CC820  48 00 00 0C */	b lbl_801D0BCC
lbl_801D0BC4:
/* 801D0BC4 001CC824  80 A6 00 10 */	lwz r5, 0x10(r6)
/* 801D0BC8 001CC828  7C E5 38 AE */	lbzx r7, r5, r7
lbl_801D0BCC:
/* 801D0BCC 001CC82C  7C E0 07 74 */	extsb r0, r7
/* 801D0BD0 001CC830  7C 08 00 00 */	cmpw r8, r0
/* 801D0BD4 001CC834  40 80 00 0C */	bge lbl_801D0BE0
/* 801D0BD8 001CC838  38 60 FF FF */	li r3, -1
/* 801D0BDC 001CC83C  4E 80 00 20 */	blr
lbl_801D0BE0:
/* 801D0BE0 001CC840  40 81 00 0C */	ble lbl_801D0BEC
/* 801D0BE4 001CC844  38 60 00 01 */	li r3, 1
/* 801D0BE8 001CC848  4E 80 00 20 */	blr
lbl_801D0BEC:
/* 801D0BEC 001CC84C  2C 08 00 00 */	cmpwi r8, 0
/* 801D0BF0 001CC850  40 82 FF 70 */	bne lbl_801D0B60
/* 801D0BF4 001CC854  38 60 00 00 */	li r3, 0
/* 801D0BF8 001CC858  4E 80 00 20 */	blr