repo.or.cz
/
linux-2.6
/
openmoko-kernel
/
knife-kernel.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
Linux 2.6.26-rc5
[linux-2.6/openmoko-kernel/knife-kernel.git]
/
arch
/
sparc
/
lib
/
memcmp.S
blob
cb4bdb0cc2afe3798674066209995d8cf98072c9
1
.text
2
.align 4
3
.global __memcmp, memcmp
4
__memcmp:
5
memcmp:
6
#if 1
7
cmp %o2, 0
8
ble L3
9
mov 0, %g3
10
L5:
11
ldub [%o0], %g2
12
ldub [%o1], %g3
13
sub %g2, %g3, %g2
14
mov %g2, %g3
15
sll %g2, 24, %g2
16
17
cmp %g2, 0
18
bne L3
19
add %o0, 1, %o0
20
21
add %o2, -1, %o2
22
23
cmp %o2, 0
24
bg L5
25
add %o1, 1, %o1
26
L3:
27
sll %g3, 24, %o0
28
sra %o0, 24, %o0
29
30
retl
31
nop
32
#else
33
save %sp, -104, %sp
34
mov %i2, %o4
35
mov %i0, %o0
36
37
cmp %o4, 15
38
ble L72
39
mov %i1, %i2
40
41
andcc %i2, 3, %g0
42
be L161
43
andcc %o0, 3, %g2
44
L75:
45
ldub [%o0], %g3
46
ldub [%i2], %g2
47
add %o0,1, %o0
48
49
subcc %g3, %g2, %i0
50
bne L156
51
add %i2, 1, %i2
52
53
andcc %i2, 3, %g0
54
bne L75
55
add %o4, -1, %o4
56
57
andcc %o0, 3, %g2
58
L161:
59
bne,a L78
60
mov %i2, %i1
61
62
mov %o0, %i5
63
mov %i2, %i3
64
srl %o4, 2, %i4
65
66
cmp %i4, 0
67
bge L93
68
mov %i4, %g2
69
70
add %i4, 3, %g2
71
L93:
72
sra %g2, 2, %g2
73
sll %g2, 2, %g2
74
sub %i4, %g2, %g2
75
76
cmp %g2, 1
77
be,a L88
78
add %o0, 4, %i5
79
80
bg L94
81
cmp %g2, 2
82
83
cmp %g2, 0
84
be,a L86
85
ld [%o0], %g3
86
87
b L162
88
ld [%i5], %g3
89
L94:
90
be L81
91
cmp %g2, 3
92
93
be,a L83
94
add %o0, -4, %i5
95
96
b L162
97
ld [%i5], %g3
98
L81:
99
add %o0, -8, %i5
100
ld [%o0], %g3
101
add %i2, -8, %i3
102
ld [%i2], %g2
103
104
b L82
105
add %i4, 2, %i4
106
L83:
107
ld [%o0], %g4
108
add %i2, -4, %i3
109
ld [%i2], %g1
110
111
b L84
112
add %i4, 1, %i4
113
L86:
114
b L87
115
ld [%i2], %g2
116
L88:
117
add %i2, 4, %i3
118
ld [%o0], %g4
119
add %i4, -1, %i4
120
ld [%i2], %g1
121
L95:
122
ld [%i5], %g3
123
L162:
124
cmp %g4, %g1
125
be L87
126
ld [%i3], %g2
127
128
cmp %g4, %g1
129
L163:
130
bleu L114
131
mov -1, %i0
132
133
b L114
134
mov 1, %i0
135
L87:
136
ld [%i5 + 4], %g4
137
cmp %g3, %g2
138
bne L163
139
ld [%i3 + 4], %g1
140
L84:
141
ld [%i5 + 8], %g3
142
143
cmp %g4, %g1
144
bne L163
145
ld [%i3 + 8], %g2
146
L82:
147
ld [%i5 + 12], %g4
148
cmp %g3, %g2
149
bne L163
150
ld [%i3 + 12], %g1
151
152
add %i5, 16, %i5
153
154
addcc %i4, -4, %i4
155
bne L95
156
add %i3, 16, %i3
157
158
cmp %g4, %g1
159
bne L163
160
nop
161
162
b L114
163
mov 0, %i0
164
L78:
165
srl %o4, 2, %i0
166
and %o0, -4, %i3
167
orcc %i0, %g0, %g3
168
sll %g2, 3, %o7
169
mov 32, %g2
170
171
bge L129
172
sub %g2, %o7, %o1
173
174
add %i0, 3, %g3
175
L129:
176
sra %g3, 2, %g2
177
sll %g2, 2, %g2
178
sub %i0, %g2, %g2
179
180
cmp %g2, 1
181
be,a L124
182
ld [%i3], %o3
183
184
bg L130
185
cmp %g2, 2
186
187
cmp %g2, 0
188
be,a L122
189
ld [%i3], %o2
190
191
b L164
192
sll %o3, %o7, %g3
193
L130:
194
be L117
195
cmp %g2, 3
196
197
be,a L119
198
ld [%i3], %g1
199
200
b L164
201
sll %o3, %o7, %g3
202
L117:
203
ld [%i3], %g4
204
add %i2, -8, %i1
205
ld [%i3 + 4], %o3
206
add %i0, 2, %i0
207
ld [%i2], %i4
208
209
b L118
210
add %i3, -4, %i3
211
L119:
212
ld [%i3 + 4], %g4
213
add %i2, -4, %i1
214
ld [%i2], %i5
215
216
b L120
217
add %i0, 1, %i0
218
L122:
219
ld [%i3 + 4], %g1
220
ld [%i2], %i4
221
222
b L123
223
add %i3, 4, %i3
224
L124:
225
add %i2, 4, %i1
226
ld [%i3 + 4], %o2
227
add %i0, -1, %i0
228
ld [%i2], %i5
229
add %i3, 8, %i3
230
L131:
231
sll %o3, %o7, %g3
232
L164:
233
srl %o2, %o1, %g2
234
ld [%i3], %g1
235
or %g3, %g2, %g3
236
237
cmp %g3, %i5
238
bne L163
239
ld [%i1], %i4
240
L123:
241
sll %o2, %o7, %g3
242
srl %g1, %o1, %g2
243
ld [%i3 + 4], %g4
244
or %g3, %g2, %g3
245
246
cmp %g3, %i4
247
bne L163
248
ld [%i1 + 4], %i5
249
L120:
250
sll %g1, %o7, %g3
251
srl %g4, %o1, %g2
252
ld [%i3 + 8], %o3
253
or %g3, %g2, %g3
254
255
cmp %g3, %i5
256
bne L163
257
ld [%i1 + 8], %i4
258
L118:
259
sll %g4, %o7, %g3
260
srl %o3, %o1, %g2
261
ld [%i3 + 12], %o2
262
or %g3, %g2, %g3
263
264
cmp %g3, %i4
265
bne L163
266
ld [%i1 + 12], %i5
267
268
add %i3, 16, %i3
269
addcc %i0, -4, %i0
270
bne L131
271
add %i1, 16, %i1
272
273
sll %o3, %o7, %g3
274
srl %o2, %o1, %g2
275
or %g3, %g2, %g3
276
277
cmp %g3, %i5
278
be,a L114
279
mov 0, %i0
280
281
b,a L163
282
L114:
283
cmp %i0, 0
284
bne L156
285
and %o4, -4, %g2
286
287
add %o0, %g2, %o0
288
add %i2, %g2, %i2
289
and %o4, 3, %o4
290
L72:
291
cmp %o4, 0
292
be L156
293
mov 0, %i0
294
295
ldub [%o0], %g3
296
L165:
297
ldub [%i2], %g2
298
add %o0, 1, %o0
299
300
subcc %g3, %g2, %i0
301
bne L156
302
add %i2, 1, %i2
303
304
addcc %o4, -1, %o4
305
bne,a L165
306
ldub [%o0], %g3
307
308
mov 0, %i0
309
L156:
310
ret
311
restore
312
#endif