Lines Matching +full:0 +full:- +full:9 +full:a +full:- +full:f
3 * The non inlined parts of asm-m32r/uaccess.h are here.
30 memset(to, 0, n); in __generic_copy_from_user()
36 * Copy a null terminated string from userspace.
45 " beqz %1, 2f\n" \
47 "0: ldb r14, @%3 || addi %3, #1\n" \
49 " beqz r14, 1f\n" \
50 " addi %1, #-1\n" \
51 " bnez %1, 0b\n" \
53 "1: sub %0, %1\n" \
60 " jmp r14 || ldi %0, #%5\n" \
62 ".section __ex_table,\"a\"\n" \
64 " .long 0b,3b\n" \
68 : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), \
71 } while (0)
79 " beqz %1, 2f\n" \
81 "0: ldb r14, @%3\n" \
85 " beqz r14, 1f\n" \
86 " addi %1, #-1\n" \
87 " bnez %1, 0b\n" \
89 "1: sub %0, %1\n" \
94 "3: ldi %0, #%5\n" \
99 ".section __ex_table,\"a\"\n" \
101 " .long 0b,3b\n" \
105 : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), \
108 } while (0)
123 long res = -EFAULT; in strncpy_from_user()
140 " beqz %1, 9f\n" \
141 " and3 r14, %0, #3\n" \
142 " bnez r14, 2f\n" \
144 " bnez r14, 2f\n" \
146 " beqz %2, 2f\n" \
147 " addi %0, #-4\n" \
149 "0: ; word clear \n" \
150 " st %6, @+%0 || addi %2, #-1\n" \
151 " bnez %2, 0b\n" \
152 " beqz %1, 9f\n" \
155 " stb %6, @%0 || addi %1, #-1\n" \
156 " addi %0, #1\n" \
159 "9:\n" \
163 " seth r14, #high(9b)\n" \
164 " or3 r14, r14, #low(9b)\n" \
167 ".section __ex_table,\"a\"\n" \
169 " .long 0b,4b\n" \
170 " .long 2b,9b\n" \
173 : "0"(addr), "1"(size), "2"(size / 4), "r"(0) \
175 } while (0)
183 " beqz %1, 9f\n" \
184 " and3 r14, %0, #3\n" \
185 " bnez r14, 2f\n" \
187 " bnez r14, 2f\n" \
189 " beqz %2, 2f\n" \
190 " addi %0, #-4\n" \
192 "0: st %6, @+%0 ; word clear \n" \
193 " addi %2, #-1\n" \
194 " bnez %2, 0b\n" \
195 " beqz %1, 9f\n" \
197 "2: stb %6, @%0 ; byte clear \n" \
198 " addi %1, #-1\n" \
199 " addi %0, #1\n" \
202 "9:\n" \
207 " seth r14, #high(9b)\n" \
208 " or3 r14, r14, #low(9b)\n" \
211 ".section __ex_table,\"a\"\n" \
213 " .long 0b,4b\n" \
214 " .long 2b,9b\n" \
217 : "0"(addr), "1"(size), "2"(size / 4), "r"(0) \
219 } while (0)
239 * Return the size of a string (including the ending 0)
241 * Return 0 on exception, a value greater than N if too long
248 unsigned long mask = -__addr_ok(s); in strnlen_user()
252 " and %0, %5 || mv r1, %1\n" in strnlen_user()
253 " beqz %0, strnlen_exit\n" in strnlen_user()
256 " cmpui %0, #4\n" in strnlen_user()
259 "0: ld r0, @%1+\n" in strnlen_user()
262 " addi %0, #-4\n" in strnlen_user()
263 " beqz %0, strnlen_exit\n" in strnlen_user()
264 " bgtz %0, strnlen_word_loop\n" in strnlen_user()
266 " mv %0, %4\n" in strnlen_user()
268 " addi %1, #-4\n" in strnlen_user()
270 "1: ldb r0, @%1 || addi %0, #-1\n" in strnlen_user()
273 " bnez %0, strnlen_byte_loop\n" in strnlen_user()
276 " add3 %0, %1, #1\n" in strnlen_user()
278 "9:\n" in strnlen_user()
281 "4: addi %1, #-4\n" in strnlen_user()
283 "5: seth r1, #high(9b)\n" in strnlen_user()
284 " or3 r1, r1, #low(9b)\n" in strnlen_user()
285 " jmp r1 || ldi %0, #0\n" in strnlen_user()
287 ".section __ex_table,\"a\"\n" in strnlen_user()
289 " .long 0b,4b\n" in strnlen_user()
293 : "0" (n), "1" (s), "r" (n & 3), "r" (mask), "r"(0x01010101) in strnlen_user()
299 * for (p = s; n-- && *p != '\0'; ++p) in strnlen_user()
301 * return p - s + 1; in strnlen_user()
305 /* NOTE: If a null char. exists, return 0. in strnlen_user()
306 * if ((x - 0x01010101) & ~x & 0x80808080)\n" in strnlen_user()
307 * return 0;\n" in strnlen_user()
317 unsigned long mask = -__addr_ok(s); in strnlen_user()
321 " and %0, %5\n" in strnlen_user()
323 " beqz %0, strnlen_exit\n" in strnlen_user()
326 " cmpui %0, #4\n" in strnlen_user()
330 "0: ld r0, @%1+\n" in strnlen_user()
336 " addi %0, #-4\n" in strnlen_user()
337 " beqz %0, strnlen_exit\n" in strnlen_user()
338 " bgtz %0, strnlen_word_loop\n" in strnlen_user()
340 " mv %0, %4\n" in strnlen_user()
342 " addi %1, #-4\n" in strnlen_user()
345 " addi %0, #-1\n" in strnlen_user()
348 " bnez %0, strnlen_byte_loop\n" in strnlen_user()
351 " add3 %0, %1, #1\n" in strnlen_user()
353 "9:\n" in strnlen_user()
356 "4: addi %1, #-4\n" in strnlen_user()
358 "5: ldi %0, #0\n" in strnlen_user()
359 " seth r1, #high(9b)\n" in strnlen_user()
360 " or3 r1, r1, #low(9b)\n" in strnlen_user()
363 ".section __ex_table,\"a\"\n" in strnlen_user()
365 " .long 0b,4b\n" in strnlen_user()
369 : "0" (n), "1" (s), "r" (n & 3), "r" (mask), "r"(0x01010101) in strnlen_user()
375 * for (p = s; n-- && *p != '\0'; ++p) in strnlen_user()
377 * return p - s + 1; in strnlen_user()
381 /* NOTE: If a null char. exists, return 0. in strnlen_user()
382 * if ((x - 0x01010101) & ~x & 0x80808080)\n" in strnlen_user()
383 * return 0;\n" in strnlen_user()