Lines Matching full:t
45 __asm__("movel %2,%3\n\t"
46 "btst #1,%3\n\t" /* Check alignment */
47 "jeq 2f\n\t"
48 "subql #2,%1\n\t" /* buff%4==2: treat first word */
49 "jgt 1f\n\t"
50 "addql #2,%1\n\t" /* len was == 2, treat only rest */
52 "1:\t"
53 "addw %2@+,%0\n\t" /* add first word to sum */
54 "clrl %3\n\t"
56 "2:\t"
58 "movel %1,%3\n\t" /* save len in tmp1 */
59 "lsrl #5,%1\n\t" /* len/32 */
60 "jeq 2f\n\t" /* not enough... */
62 "1:\t"
63 "movel %2@+,%4\n\t"
64 "addxl %4,%0\n\t"
65 "movel %2@+,%4\n\t"
66 "addxl %4,%0\n\t"
67 "movel %2@+,%4\n\t"
68 "addxl %4,%0\n\t"
69 "movel %2@+,%4\n\t"
70 "addxl %4,%0\n\t"
71 "movel %2@+,%4\n\t"
72 "addxl %4,%0\n\t"
73 "movel %2@+,%4\n\t"
74 "addxl %4,%0\n\t"
75 "movel %2@+,%4\n\t"
76 "addxl %4,%0\n\t"
77 "movel %2@+,%4\n\t"
78 "addxl %4,%0\n\t"
79 "dbra %1,1b\n\t"
80 "clrl %4\n\t"
81 "addxl %4,%0\n\t" /* add X bit */
82 "clrw %1\n\t"
83 "subql #1,%1\n\t"
85 "2:\t"
86 "movel %3,%1\n\t" /* restore len from tmp1 */
87 "andw #0x1c,%3\n\t" /* number of rest longs */
88 "jeq 4f\n\t"
89 "lsrw #2,%3\n\t"
91 "3:\t"
93 "movel %2@+,%4\n\t"
94 "addxl %4,%0\n\t"
95 "dbra %3,3b\n\t"
96 "clrl %4\n\t"
98 "4:\t"
100 "andw #3,%1\n\t"
101 "jeq 7f\n\t"
102 "clrl %4\n\t" /* clear tmp2 for rest bytes */
103 "subqw #2,%1\n\t"
104 "jlt 5f\n\t"
105 "movew %2@+,%4\n\t" /* have rest >= 2: get word */
106 "swap %4\n\t" /* into bits 16..31 */
107 "tstw %1\n\t" /* another byte? */
109 "5:\t"
110 "moveb %2@,%4\n\t" /* have odd rest: get byte */
111 "lslw #8,%4\n\t" /* into bits 8..15; 16..31 untouched */
112 "6:\t"
113 "addl %4,%0\n\t" /* now add rest long to sum */
114 "clrl %4\n\t"
116 "7:\t"
135 * GCC doesn't like more than 10 operands for the asm
142 __asm__("movel %2,%4\n\t"
143 "btst #1,%4\n\t" /* Check alignment */
144 "jeq 2f\n\t"
145 "subql #2,%1\n\t" /* buff%4==2: treat first word */
146 "jgt 1f\n\t"
147 "addql #2,%1\n\t" /* len was == 2, treat only rest */
150 "10:\t"
151 "movesw %2@+,%4\n\t" /* add first word to sum */
152 "addw %4,%0\n\t"
153 "movew %4,%3@+\n\t"
154 "clrl %4\n\t"
156 "2:\t"
158 "movel %1,%4\n\t" /* save len in tmp1 */
159 "lsrl #5,%1\n\t" /* len/32 */
160 "jeq 2f\n\t" /* not enough... */
163 "11:\t"
164 "movesl %2@+,%5\n\t"
165 "addxl %5,%0\n\t"
166 "movel %5,%3@+\n\t"
167 "12:\t"
168 "movesl %2@+,%5\n\t"
169 "addxl %5,%0\n\t"
170 "movel %5,%3@+\n\t"
171 "13:\t"
172 "movesl %2@+,%5\n\t"
173 "addxl %5,%0\n\t"
174 "movel %5,%3@+\n\t"
175 "14:\t"
176 "movesl %2@+,%5\n\t"
177 "addxl %5,%0\n\t"
178 "movel %5,%3@+\n\t"
179 "15:\t"
180 "movesl %2@+,%5\n\t"
181 "addxl %5,%0\n\t"
182 "movel %5,%3@+\n\t"
183 "16:\t"
184 "movesl %2@+,%5\n\t"
185 "addxl %5,%0\n\t"
186 "movel %5,%3@+\n\t"
187 "17:\t"
188 "movesl %2@+,%5\n\t"
189 "addxl %5,%0\n\t"
190 "movel %5,%3@+\n\t"
191 "18:\t"
192 "movesl %2@+,%5\n\t"
193 "addxl %5,%0\n\t"
194 "movel %5,%3@+\n\t"
195 "dbra %1,1b\n\t"
196 "clrl %5\n\t"
197 "addxl %5,%0\n\t" /* add X bit */
198 "clrw %1\n\t"
199 "subql #1,%1\n\t"
201 "2:\t"
202 "movel %4,%1\n\t" /* restore len from tmp1 */
203 "andw #0x1c,%4\n\t" /* number of rest longs */
204 "jeq 4f\n\t"
205 "lsrw #2,%4\n\t"
209 "19:\t"
210 "movesl %2@+,%5\n\t"
211 "addxl %5,%0\n\t"
212 "movel %5,%3@+\n\t"
213 "dbra %4,3b\n\t"
214 "clrl %5\n\t"
216 "4:\t"
218 "andw #3,%1\n\t"
219 "jeq 7f\n\t"
220 "clrl %5\n\t" /* clear tmp2 for rest bytes */
221 "subqw #2,%1\n\t"
222 "jlt 5f\n\t"
223 "20:\t"
224 "movesw %2@+,%5\n\t" /* have rest >= 2: get word */
225 "movew %5,%3@+\n\t"
226 "swap %5\n\t" /* into bits 16..31 */
227 "tstw %1\n\t" /* another byte? */
230 "21:\t"
231 "movesb %2@,%5\n\t" /* have odd rest: get byte */
232 "moveb %5,%3@+\n\t"
233 "lslw #8,%5\n\t" /* into bits 8..15; 16..31 untouched */
234 "6:\t"
235 "addl %5,%0\n\t" /* now add rest long to sum */
236 "clrl %5\n\t"
237 "addxl %5,%0\n\t" /* add X bit */
238 "7:\t"
242 "90:\t"
278 __asm__("movel %2,%4\n\t"
279 "btst #1,%4\n\t" /* Check alignment */
280 "jeq 2f\n\t"
281 "subql #2,%1\n\t" /* buff%4==2: treat first word */
282 "jgt 1f\n\t"
283 "addql #2,%1\n\t" /* len was == 2, treat only rest */
285 "1:\t"
286 "movew %2@+,%4\n\t" /* add first word to sum */
287 "addw %4,%0\n\t"
288 "movew %4,%3@+\n\t"
289 "clrl %4\n\t"
291 "2:\t"
293 "movel %1,%4\n\t" /* save len in tmp1 */
294 "lsrl #5,%1\n\t" /* len/32 */
295 "jeq 2f\n\t" /* not enough... */
297 "1:\t"
298 "movel %2@+,%5\n\t"
299 "addxl %5,%0\n\t"
300 "movel %5,%3@+\n\t"
301 "movel %2@+,%5\n\t"
302 "addxl %5,%0\n\t"
303 "movel %5,%3@+\n\t"
304 "movel %2@+,%5\n\t"
305 "addxl %5,%0\n\t"
306 "movel %5,%3@+\n\t"
307 "movel %2@+,%5\n\t"
308 "addxl %5,%0\n\t"
309 "movel %5,%3@+\n\t"
310 "movel %2@+,%5\n\t"
311 "addxl %5,%0\n\t"
312 "movel %5,%3@+\n\t"
313 "movel %2@+,%5\n\t"
314 "addxl %5,%0\n\t"
315 "movel %5,%3@+\n\t"
316 "movel %2@+,%5\n\t"
317 "addxl %5,%0\n\t"
318 "movel %5,%3@+\n\t"
319 "movel %2@+,%5\n\t"
320 "addxl %5,%0\n\t"
321 "movel %5,%3@+\n\t"
322 "dbra %1,1b\n\t"
323 "clrl %5\n\t"
324 "addxl %5,%0\n\t" /* add X bit */
325 "clrw %1\n\t"
326 "subql #1,%1\n\t"
328 "2:\t"
329 "movel %4,%1\n\t" /* restore len from tmp1 */
330 "andw #0x1c,%4\n\t" /* number of rest longs */
331 "jeq 4f\n\t"
332 "lsrw #2,%4\n\t"
334 "3:\t"
336 "movel %2@+,%5\n\t"
337 "addxl %5,%0\n\t"
338 "movel %5,%3@+\n\t"
339 "dbra %4,3b\n\t"
340 "clrl %5\n\t"
342 "4:\t"
344 "andw #3,%1\n\t"
345 "jeq 7f\n\t"
346 "clrl %5\n\t" /* clear tmp2 for rest bytes */
347 "subqw #2,%1\n\t"
348 "jlt 5f\n\t"
349 "movew %2@+,%5\n\t" /* have rest >= 2: get word */
350 "movew %5,%3@+\n\t"
351 "swap %5\n\t" /* into bits 16..31 */
352 "tstw %1\n\t" /* another byte? */
354 "5:\t"
355 "moveb %2@,%5\n\t" /* have odd rest: get byte */
356 "moveb %5,%3@+\n\t"
358 "6:\t"
359 "addl %5,%0\n\t" /* now add rest long to sum */
360 "clrl %5\n\t"
362 "7:\t"