OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [arch/] [sparc/] [lib/] [memcmp.S] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 xianfeng
        .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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.