• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/tile/lib/

Lines Matching refs:r0

25 	{ move r0, zero; move r1, zero }
30 { movei r0, -EFAULT; jrp lr }
36 * __get_user_N functions take a pointer in r0, and return 0 in r2
37 * on success, with the value in r0; or else -EFAULT in r2.
41 1: { LOAD r0, r0; move r1, zero; move r2, zero }; \
53 * __get_user_8 takes a pointer in r0, and returns 0 in r2
54 * on success, with the value in r0/r1; or else -EFAULT in r2.
57 1: { lw r0, r0; addi r1, r0, 4 };
67 * __put_user_N functions take a value in r0 and a pointer in r1,
68 * and return 0 in r0 on success or -EFAULT on failure.
72 1: { STORE r1, r0; move r0, zero }; \
84 * __put_user_8 takes a value in r0/r1 and a pointer in r2,
85 * and returns 0 in r0 on success or -EFAULT on failure.
88 1: { sw r2, r0; addi r2, r2, 4 }
89 2: { sw r2, r1; move r0, zero }
99 * strnlen_user_asm takes the pointer in r0, and the length bound in r1.
104 { bz r1, 2f; addi r3, r0, -1 } /* bias down to include NUL */
105 1: { lb_u r4, r0; addi r1, r1, -1 }
107 { bnzt r1, 1b; addi r0, r0, 1 }
108 2: { sub r0, r0, r3; jrp lr }
112 { move r0, zero; jrp lr }
119 * strncpy_from_user_asm takes the kernel target pointer in r0,
125 { bz r2, 2f; move r3, r0 }
127 { sb r0, r4; addi r0, r0, 1 }
130 addi r0, r0, -1 /* don't count the trailing NUL */
131 2: { sub r0, r0, r3; jrp lr }
135 { movei r0, -EFAULT; jrp lr }
142 * clear_user_asm takes the user target address in r0 and the
144 * It returns the number of uncopiable bytes (hopefully zero) in r0.
149 { bz r1, 2f; or r2, r0, r1 }
152 1: { sb r0, zero; addi r0, r0, 1; addi r1, r1, -1 }
154 2: { move r0, r1; jrp lr }
160 1: { sw r0, zero; addi r0, r0, 4; addi r1, r1, -4 }
162 2: { move r0, r1; jrp lr }
169 * flush_user_asm takes the user target address in r0 and the
171 * It returns the number of unflushable bytes (hopefully zero) in r0.
175 { movei r2, L2_CACHE_BYTES; add r1, r0, r1 }
177 { and r0, r0, r2; and r1, r1, r2 }
178 { sub r1, r1, r0 }
179 1: { flush r0; addi r1, r1, -CHIP_FLUSH_STRIDE() }
180 { addi r0, r0, CHIP_FLUSH_STRIDE(); bnzt r1, 1b }
181 2: { move r0, r1; jrp lr }
188 * inv_user_asm takes the user target address in r0 and the
190 * It returns the number of not inv'able bytes (hopefully zero) in r0.
194 { movei r2, L2_CACHE_BYTES; add r1, r0, r1 }
196 { and r0, r0, r2; and r1, r1, r2 }
197 { sub r1, r1, r0 }
198 1: { inv r0; addi r1, r1, -CHIP_INV_STRIDE() }
199 { addi r0, r0, CHIP_INV_STRIDE(); bnzt r1, 1b }
200 2: { move r0, r1; jrp lr }
207 * finv_user_asm takes the user target address in r0 and the
209 * It returns the number of not finv'able bytes (hopefully zero) in r0.
213 { movei r2, L2_CACHE_BYTES; add r1, r0, r1 }
215 { and r0, r0, r2; and r1, r1, r2 }
216 { sub r1, r1, r0 }
217 1: { finv r0; addi r1, r1, -CHIP_FINV_STRIDE() }
218 { addi r0, r0, CHIP_FINV_STRIDE(); bnzt r1, 1b }
219 2: { move r0, r1; jrp lr }