Lines Matching full:n
48 "1: "op" %1,[%2]\n" \
49 "2: ;nop\n" \
50 " .section .fixup, \"ax\"\n" \
51 " .align 4\n" \
52 "3: # return -EFAULT\n" \
53 " mov %0, %3\n" \
54 " # zero out dst ptr\n" \
55 " mov %1, 0\n" \
56 " j 2b\n" \
57 " .previous\n" \
58 " .section __ex_table, \"a\"\n" \
59 " .align 4\n" \
60 " .word 1b,3b\n" \
61 " .previous\n" \
68 "1: ld %1,[%2]\n" \
69 "4: ld %R1,[%2, 4]\n" \
70 "2: ;nop\n" \
71 " .section .fixup, \"ax\"\n" \
72 " .align 4\n" \
73 "3: # return -EFAULT\n" \
74 " mov %0, %3\n" \
75 " # zero out dst ptr\n" \
76 " mov %1, 0\n" \
77 " mov %R1, 0\n" \
78 " j 2b\n" \
79 " .previous\n" \
80 " .section __ex_table, \"a\"\n" \
81 " .align 4\n" \
82 " .word 1b,3b\n" \
83 " .word 4b,3b\n" \
84 " .previous\n" \
103 "1: "op" %1,[%2]\n" \
104 "2: ;nop\n" \
105 " .section .fixup, \"ax\"\n" \
106 " .align 4\n" \
107 "3: mov %0, %3\n" \
108 " j 2b\n" \
109 " .previous\n" \
110 " .section __ex_table, \"a\"\n" \
111 " .align 4\n" \
112 " .word 1b,3b\n" \
113 " .previous\n" \
120 "1: st %1,[%2]\n" \
121 "4: st %R1,[%2, 4]\n" \
122 "2: ;nop\n" \
123 " .section .fixup, \"ax\"\n" \
124 " .align 4\n" \
125 "3: mov %0, %3\n" \
126 " j 2b\n" \
127 " .previous\n" \
128 " .section __ex_table, \"a\"\n" \
129 " .align 4\n" \
130 " .word 1b,3b\n" \
131 " .word 4b,3b\n" \
132 " .previous\n" \
139 raw_copy_from_user(void *to, const void __user *from, unsigned long n) in raw_copy_from_user() argument
144 unsigned long orig_n = n; in raw_copy_from_user()
146 if (n == 0) in raw_copy_from_user()
155 " mov.f lp_count, %0 \n" in raw_copy_from_user()
156 " lpnz 2f \n" in raw_copy_from_user()
157 "1: ldb.ab %1, [%3, 1] \n" in raw_copy_from_user()
158 " stb.ab %1, [%2, 1] \n" in raw_copy_from_user()
159 " sub %0,%0,1 \n" in raw_copy_from_user()
160 "2: ;nop \n" in raw_copy_from_user()
161 " .section .fixup, \"ax\" \n" in raw_copy_from_user()
162 " .align 4 \n" in raw_copy_from_user()
163 "3: j 2b \n" in raw_copy_from_user()
164 " .previous \n" in raw_copy_from_user()
165 " .section __ex_table, \"a\" \n" in raw_copy_from_user()
166 " .align 4 \n" in raw_copy_from_user()
167 " .word 1b, 3b \n" in raw_copy_from_user()
168 " .previous \n" in raw_copy_from_user()
170 : "+r" (n), in raw_copy_from_user()
180 return n; in raw_copy_from_user()
194 " lsr lp_count, %7,4 \n" in raw_copy_from_user()
195 " lp 3f \n" in raw_copy_from_user()
196 "1: ld.ab %3, [%2, 4] \n" in raw_copy_from_user()
197 "11: ld.ab %4, [%2, 4] \n" in raw_copy_from_user()
198 "12: ld.ab %5, [%2, 4] \n" in raw_copy_from_user()
199 "13: ld.ab %6, [%2, 4] \n" in raw_copy_from_user()
200 " st.ab %3, [%1, 4] \n" in raw_copy_from_user()
201 " st.ab %4, [%1, 4] \n" in raw_copy_from_user()
202 " st.ab %5, [%1, 4] \n" in raw_copy_from_user()
203 " st.ab %6, [%1, 4] \n" in raw_copy_from_user()
204 " sub %0,%0,16 \n" in raw_copy_from_user()
205 "3: ;nop \n" in raw_copy_from_user()
206 " .section .fixup, \"ax\" \n" in raw_copy_from_user()
207 " .align 4 \n" in raw_copy_from_user()
208 "4: j 3b \n" in raw_copy_from_user()
209 " .previous \n" in raw_copy_from_user()
210 " .section __ex_table, \"a\" \n" in raw_copy_from_user()
211 " .align 4 \n" in raw_copy_from_user()
212 " .word 1b, 4b \n" in raw_copy_from_user()
213 " .word 11b,4b \n" in raw_copy_from_user()
214 " .word 12b,4b \n" in raw_copy_from_user()
215 " .word 13b,4b \n" in raw_copy_from_user()
216 " .previous \n" in raw_copy_from_user()
219 : "ir"(n) in raw_copy_from_user()
226 "14: ld.ab %3, [%2,4] \n" in raw_copy_from_user()
227 "15: ld.ab %4, [%2,4] \n" in raw_copy_from_user()
228 " st.ab %3, [%1,4] \n" in raw_copy_from_user()
229 " st.ab %4, [%1,4] \n" in raw_copy_from_user()
230 " sub %0,%0,8 \n" in raw_copy_from_user()
231 "31: ;nop \n" in raw_copy_from_user()
232 " .section .fixup, \"ax\" \n" in raw_copy_from_user()
233 " .align 4 \n" in raw_copy_from_user()
234 "4: j 31b \n" in raw_copy_from_user()
235 " .previous \n" in raw_copy_from_user()
236 " .section __ex_table, \"a\" \n" in raw_copy_from_user()
237 " .align 4 \n" in raw_copy_from_user()
238 " .word 14b,4b \n" in raw_copy_from_user()
239 " .word 15b,4b \n" in raw_copy_from_user()
240 " .previous \n" in raw_copy_from_user()
250 "16: ld.ab %3, [%2,4] \n" in raw_copy_from_user()
251 " st.ab %3, [%1,4] \n" in raw_copy_from_user()
252 " sub %0,%0,4 \n" in raw_copy_from_user()
253 "32: ;nop \n" in raw_copy_from_user()
254 " .section .fixup, \"ax\" \n" in raw_copy_from_user()
255 " .align 4 \n" in raw_copy_from_user()
256 "4: j 32b \n" in raw_copy_from_user()
257 " .previous \n" in raw_copy_from_user()
258 " .section __ex_table, \"a\" \n" in raw_copy_from_user()
259 " .align 4 \n" in raw_copy_from_user()
260 " .word 16b,4b \n" in raw_copy_from_user()
261 " .previous \n" in raw_copy_from_user()
270 "17: ldw.ab %3, [%2,2] \n" in raw_copy_from_user()
271 " stw.ab %3, [%1,2] \n" in raw_copy_from_user()
272 " sub %0,%0,2 \n" in raw_copy_from_user()
273 "33: ;nop \n" in raw_copy_from_user()
274 " .section .fixup, \"ax\" \n" in raw_copy_from_user()
275 " .align 4 \n" in raw_copy_from_user()
276 "4: j 33b \n" in raw_copy_from_user()
277 " .previous \n" in raw_copy_from_user()
278 " .section __ex_table, \"a\" \n" in raw_copy_from_user()
279 " .align 4 \n" in raw_copy_from_user()
280 " .word 17b,4b \n" in raw_copy_from_user()
281 " .previous \n" in raw_copy_from_user()
288 "18: ldb.ab %3, [%2,2] \n" in raw_copy_from_user()
289 " stb.ab %3, [%1,2] \n" in raw_copy_from_user()
290 " sub %0,%0,1 \n" in raw_copy_from_user()
291 "34: ; nop \n" in raw_copy_from_user()
292 " .section .fixup, \"ax\" \n" in raw_copy_from_user()
293 " .align 4 \n" in raw_copy_from_user()
294 "4: j 34b \n" in raw_copy_from_user()
295 " .previous \n" in raw_copy_from_user()
296 " .section __ex_table, \"a\" \n" in raw_copy_from_user()
297 " .align 4 \n" in raw_copy_from_user()
298 " .word 18b,4b \n" in raw_copy_from_user()
299 " .previous \n" in raw_copy_from_user()
304 } else { /* n is NOT constant, so laddered copy of 16x,8,4,2,1 */ in raw_copy_from_user()
307 " mov %0,%3 \n" in raw_copy_from_user()
308 " lsr.f lp_count, %3,4 \n" /* 16x bytes */ in raw_copy_from_user()
309 " lpnz 3f \n" in raw_copy_from_user()
310 "1: ld.ab %5, [%2, 4] \n" in raw_copy_from_user()
311 "11: ld.ab %6, [%2, 4] \n" in raw_copy_from_user()
312 "12: ld.ab %7, [%2, 4] \n" in raw_copy_from_user()
313 "13: ld.ab %8, [%2, 4] \n" in raw_copy_from_user()
314 " st.ab %5, [%1, 4] \n" in raw_copy_from_user()
315 " st.ab %6, [%1, 4] \n" in raw_copy_from_user()
316 " st.ab %7, [%1, 4] \n" in raw_copy_from_user()
317 " st.ab %8, [%1, 4] \n" in raw_copy_from_user()
318 " sub %0,%0,16 \n" in raw_copy_from_user()
319 "3: and.f %3,%3,0xf \n" /* stragglers */ in raw_copy_from_user()
320 " bz 34f \n" in raw_copy_from_user()
321 " bbit0 %3,3,31f \n" /* 8 bytes left */ in raw_copy_from_user()
322 "14: ld.ab %5, [%2,4] \n" in raw_copy_from_user()
323 "15: ld.ab %6, [%2,4] \n" in raw_copy_from_user()
324 " st.ab %5, [%1,4] \n" in raw_copy_from_user()
325 " st.ab %6, [%1,4] \n" in raw_copy_from_user()
326 " sub.f %0,%0,8 \n" in raw_copy_from_user()
327 "31: bbit0 %3,2,32f \n" /* 4 bytes left */ in raw_copy_from_user()
328 "16: ld.ab %5, [%2,4] \n" in raw_copy_from_user()
329 " st.ab %5, [%1,4] \n" in raw_copy_from_user()
330 " sub.f %0,%0,4 \n" in raw_copy_from_user()
331 "32: bbit0 %3,1,33f \n" /* 2 bytes left */ in raw_copy_from_user()
332 "17: ldw.ab %5, [%2,2] \n" in raw_copy_from_user()
333 " stw.ab %5, [%1,2] \n" in raw_copy_from_user()
334 " sub.f %0,%0,2 \n" in raw_copy_from_user()
335 "33: bbit0 %3,0,34f \n" in raw_copy_from_user()
336 "18: ldb.ab %5, [%2,1] \n" /* 1 byte left */ in raw_copy_from_user()
337 " stb.ab %5, [%1,1] \n" in raw_copy_from_user()
338 " sub.f %0,%0,1 \n" in raw_copy_from_user()
339 "34: ;nop \n" in raw_copy_from_user()
340 " .section .fixup, \"ax\" \n" in raw_copy_from_user()
341 " .align 4 \n" in raw_copy_from_user()
342 "4: j 34b \n" in raw_copy_from_user()
343 " .previous \n" in raw_copy_from_user()
344 " .section __ex_table, \"a\" \n" in raw_copy_from_user()
345 " .align 4 \n" in raw_copy_from_user()
346 " .word 1b, 4b \n" in raw_copy_from_user()
347 " .word 11b,4b \n" in raw_copy_from_user()
348 " .word 12b,4b \n" in raw_copy_from_user()
349 " .word 13b,4b \n" in raw_copy_from_user()
350 " .word 14b,4b \n" in raw_copy_from_user()
351 " .word 15b,4b \n" in raw_copy_from_user()
352 " .word 16b,4b \n" in raw_copy_from_user()
353 " .word 17b,4b \n" in raw_copy_from_user()
354 " .word 18b,4b \n" in raw_copy_from_user()
355 " .previous \n" in raw_copy_from_user()
356 : "=r" (res), "+r"(to), "+r"(from), "+r"(n), "=r"(val), in raw_copy_from_user()
366 raw_copy_to_user(void __user *to, const void *from, unsigned long n) in raw_copy_to_user() argument
371 unsigned long orig_n = n; in raw_copy_to_user()
373 if (n == 0) in raw_copy_to_user()
382 " mov.f lp_count, %0 \n" in raw_copy_to_user()
383 " lpnz 3f \n" in raw_copy_to_user()
384 " ldb.ab %1, [%3, 1] \n" in raw_copy_to_user()
385 "1: stb.ab %1, [%2, 1] \n" in raw_copy_to_user()
386 " sub %0, %0, 1 \n" in raw_copy_to_user()
387 "3: ;nop \n" in raw_copy_to_user()
388 " .section .fixup, \"ax\" \n" in raw_copy_to_user()
389 " .align 4 \n" in raw_copy_to_user()
390 "4: j 3b \n" in raw_copy_to_user()
391 " .previous \n" in raw_copy_to_user()
392 " .section __ex_table, \"a\" \n" in raw_copy_to_user()
393 " .align 4 \n" in raw_copy_to_user()
394 " .word 1b, 4b \n" in raw_copy_to_user()
395 " .previous \n" in raw_copy_to_user()
397 : "+r" (n), in raw_copy_to_user()
406 return n; in raw_copy_to_user()
416 " lsr lp_count, %7,4 \n" in raw_copy_to_user()
417 " lp 3f \n" in raw_copy_to_user()
418 " ld.ab %3, [%2, 4] \n" in raw_copy_to_user()
419 " ld.ab %4, [%2, 4] \n" in raw_copy_to_user()
420 " ld.ab %5, [%2, 4] \n" in raw_copy_to_user()
421 " ld.ab %6, [%2, 4] \n" in raw_copy_to_user()
422 "1: st.ab %3, [%1, 4] \n" in raw_copy_to_user()
423 "11: st.ab %4, [%1, 4] \n" in raw_copy_to_user()
424 "12: st.ab %5, [%1, 4] \n" in raw_copy_to_user()
425 "13: st.ab %6, [%1, 4] \n" in raw_copy_to_user()
426 " sub %0, %0, 16 \n" in raw_copy_to_user()
427 "3:;nop \n" in raw_copy_to_user()
428 " .section .fixup, \"ax\" \n" in raw_copy_to_user()
429 " .align 4 \n" in raw_copy_to_user()
430 "4: j 3b \n" in raw_copy_to_user()
431 " .previous \n" in raw_copy_to_user()
432 " .section __ex_table, \"a\" \n" in raw_copy_to_user()
433 " .align 4 \n" in raw_copy_to_user()
434 " .word 1b, 4b \n" in raw_copy_to_user()
435 " .word 11b,4b \n" in raw_copy_to_user()
436 " .word 12b,4b \n" in raw_copy_to_user()
437 " .word 13b,4b \n" in raw_copy_to_user()
438 " .previous \n" in raw_copy_to_user()
441 : "ir"(n) in raw_copy_to_user()
448 " ld.ab %3, [%2,4] \n" in raw_copy_to_user()
449 " ld.ab %4, [%2,4] \n" in raw_copy_to_user()
450 "14: st.ab %3, [%1,4] \n" in raw_copy_to_user()
451 "15: st.ab %4, [%1,4] \n" in raw_copy_to_user()
452 " sub %0, %0, 8 \n" in raw_copy_to_user()
453 "31:;nop \n" in raw_copy_to_user()
454 " .section .fixup, \"ax\" \n" in raw_copy_to_user()
455 " .align 4 \n" in raw_copy_to_user()
456 "4: j 31b \n" in raw_copy_to_user()
457 " .previous \n" in raw_copy_to_user()
458 " .section __ex_table, \"a\" \n" in raw_copy_to_user()
459 " .align 4 \n" in raw_copy_to_user()
460 " .word 14b,4b \n" in raw_copy_to_user()
461 " .word 15b,4b \n" in raw_copy_to_user()
462 " .previous \n" in raw_copy_to_user()
472 " ld.ab %3, [%2,4] \n" in raw_copy_to_user()
473 "16: st.ab %3, [%1,4] \n" in raw_copy_to_user()
474 " sub %0, %0, 4 \n" in raw_copy_to_user()
475 "32:;nop \n" in raw_copy_to_user()
476 " .section .fixup, \"ax\" \n" in raw_copy_to_user()
477 " .align 4 \n" in raw_copy_to_user()
478 "4: j 32b \n" in raw_copy_to_user()
479 " .previous \n" in raw_copy_to_user()
480 " .section __ex_table, \"a\" \n" in raw_copy_to_user()
481 " .align 4 \n" in raw_copy_to_user()
482 " .word 16b,4b \n" in raw_copy_to_user()
483 " .previous \n" in raw_copy_to_user()
492 " ldw.ab %3, [%2,2] \n" in raw_copy_to_user()
493 "17: stw.ab %3, [%1,2] \n" in raw_copy_to_user()
494 " sub %0, %0, 2 \n" in raw_copy_to_user()
495 "33:;nop \n" in raw_copy_to_user()
496 " .section .fixup, \"ax\" \n" in raw_copy_to_user()
497 " .align 4 \n" in raw_copy_to_user()
498 "4: j 33b \n" in raw_copy_to_user()
499 " .previous \n" in raw_copy_to_user()
500 " .section __ex_table, \"a\" \n" in raw_copy_to_user()
501 " .align 4 \n" in raw_copy_to_user()
502 " .word 17b,4b \n" in raw_copy_to_user()
503 " .previous \n" in raw_copy_to_user()
510 " ldb.ab %3, [%2,1] \n" in raw_copy_to_user()
511 "18: stb.ab %3, [%1,1] \n" in raw_copy_to_user()
512 " sub %0, %0, 1 \n" in raw_copy_to_user()
513 "34: ;nop \n" in raw_copy_to_user()
514 " .section .fixup, \"ax\" \n" in raw_copy_to_user()
515 " .align 4 \n" in raw_copy_to_user()
516 "4: j 34b \n" in raw_copy_to_user()
517 " .previous \n" in raw_copy_to_user()
518 " .section __ex_table, \"a\" \n" in raw_copy_to_user()
519 " .align 4 \n" in raw_copy_to_user()
520 " .word 18b,4b \n" in raw_copy_to_user()
521 " .previous \n" in raw_copy_to_user()
526 } else { /* n is NOT constant, so laddered copy of 16x,8,4,2,1 */ in raw_copy_to_user()
529 " mov %0,%3 \n" in raw_copy_to_user()
530 " lsr.f lp_count, %3,4 \n" /* 16x bytes */ in raw_copy_to_user()
531 " lpnz 3f \n" in raw_copy_to_user()
532 " ld.ab %5, [%2, 4] \n" in raw_copy_to_user()
533 " ld.ab %6, [%2, 4] \n" in raw_copy_to_user()
534 " ld.ab %7, [%2, 4] \n" in raw_copy_to_user()
535 " ld.ab %8, [%2, 4] \n" in raw_copy_to_user()
536 "1: st.ab %5, [%1, 4] \n" in raw_copy_to_user()
537 "11: st.ab %6, [%1, 4] \n" in raw_copy_to_user()
538 "12: st.ab %7, [%1, 4] \n" in raw_copy_to_user()
539 "13: st.ab %8, [%1, 4] \n" in raw_copy_to_user()
540 " sub %0, %0, 16 \n" in raw_copy_to_user()
541 "3: and.f %3,%3,0xf \n" /* stragglers */ in raw_copy_to_user()
542 " bz 34f \n" in raw_copy_to_user()
543 " bbit0 %3,3,31f \n" /* 8 bytes left */ in raw_copy_to_user()
544 " ld.ab %5, [%2,4] \n" in raw_copy_to_user()
545 " ld.ab %6, [%2,4] \n" in raw_copy_to_user()
546 "14: st.ab %5, [%1,4] \n" in raw_copy_to_user()
547 "15: st.ab %6, [%1,4] \n" in raw_copy_to_user()
548 " sub.f %0, %0, 8 \n" in raw_copy_to_user()
549 "31: bbit0 %3,2,32f \n" /* 4 bytes left */ in raw_copy_to_user()
550 " ld.ab %5, [%2,4] \n" in raw_copy_to_user()
551 "16: st.ab %5, [%1,4] \n" in raw_copy_to_user()
552 " sub.f %0, %0, 4 \n" in raw_copy_to_user()
553 "32: bbit0 %3,1,33f \n" /* 2 bytes left */ in raw_copy_to_user()
554 " ldw.ab %5, [%2,2] \n" in raw_copy_to_user()
555 "17: stw.ab %5, [%1,2] \n" in raw_copy_to_user()
556 " sub.f %0, %0, 2 \n" in raw_copy_to_user()
557 "33: bbit0 %3,0,34f \n" in raw_copy_to_user()
558 " ldb.ab %5, [%2,1] \n" /* 1 byte left */ in raw_copy_to_user()
559 "18: stb.ab %5, [%1,1] \n" in raw_copy_to_user()
560 " sub.f %0, %0, 1 \n" in raw_copy_to_user()
561 "34: ;nop \n" in raw_copy_to_user()
562 " .section .fixup, \"ax\" \n" in raw_copy_to_user()
563 " .align 4 \n" in raw_copy_to_user()
564 "4: j 34b \n" in raw_copy_to_user()
565 " .previous \n" in raw_copy_to_user()
566 " .section __ex_table, \"a\" \n" in raw_copy_to_user()
567 " .align 4 \n" in raw_copy_to_user()
568 " .word 1b, 4b \n" in raw_copy_to_user()
569 " .word 11b,4b \n" in raw_copy_to_user()
570 " .word 12b,4b \n" in raw_copy_to_user()
571 " .word 13b,4b \n" in raw_copy_to_user()
572 " .word 14b,4b \n" in raw_copy_to_user()
573 " .word 15b,4b \n" in raw_copy_to_user()
574 " .word 16b,4b \n" in raw_copy_to_user()
575 " .word 17b,4b \n" in raw_copy_to_user()
576 " .word 18b,4b \n" in raw_copy_to_user()
577 " .previous \n" in raw_copy_to_user()
578 : "=r" (res), "+r"(to), "+r"(from), "+r"(n), "=r"(val), in raw_copy_to_user()
587 static inline unsigned long __arc_clear_user(void __user *to, unsigned long n) in __arc_clear_user() argument
589 long res = n; in __arc_clear_user()
593 " bbit0 %0, 0, 1f \n" in __arc_clear_user()
594 "75: stb.ab %2, [%0,1] \n" in __arc_clear_user()
595 " sub %1, %1, 1 \n" in __arc_clear_user()
596 "1: bbit0 %0, 1, 2f \n" in __arc_clear_user()
597 "76: stw.ab %2, [%0,2] \n" in __arc_clear_user()
598 " sub %1, %1, 2 \n" in __arc_clear_user()
599 "2: asr.f lp_count, %1, 2 \n" in __arc_clear_user()
600 " lpnz 3f \n" in __arc_clear_user()
601 "77: st.ab %2, [%0,4] \n" in __arc_clear_user()
602 " sub %1, %1, 4 \n" in __arc_clear_user()
603 "3: bbit0 %1, 1, 4f \n" in __arc_clear_user()
604 "78: stw.ab %2, [%0,2] \n" in __arc_clear_user()
605 " sub %1, %1, 2 \n" in __arc_clear_user()
606 "4: bbit0 %1, 0, 5f \n" in __arc_clear_user()
607 "79: stb.ab %2, [%0,1] \n" in __arc_clear_user()
608 " sub %1, %1, 1 \n" in __arc_clear_user()
609 "5: \n" in __arc_clear_user()
610 " .section .fixup, \"ax\" \n" in __arc_clear_user()
611 " .align 4 \n" in __arc_clear_user()
612 "3: j 5b \n" in __arc_clear_user()
613 " .previous \n" in __arc_clear_user()
614 " .section __ex_table, \"a\" \n" in __arc_clear_user()
615 " .align 4 \n" in __arc_clear_user()
616 " .word 75b, 3b \n" in __arc_clear_user()
617 " .word 76b, 3b \n" in __arc_clear_user()
618 " .word 77b, 3b \n" in __arc_clear_user()
619 " .word 78b, 3b \n" in __arc_clear_user()
620 " .word 79b, 3b \n" in __arc_clear_user()
621 " .previous \n" in __arc_clear_user()
634 #define __clear_user(d, n) __arc_clear_user(d, n) argument
637 unsigned long n);
638 #define __clear_user(d, n) arc_clear_user_noinline(d, n) argument