Lines Matching +full:sub +full:- +full:units

18 #include <asm/asm-offsets.h>
30 * - src and dst don't overlap
31 * - src is readable
32 * - dst is writable
40 * - src is readable (no exceptions when reading src)
42 * - dst is writable (no exceptions when writing dst)
43 * __copy_user uses a non-standard calling convention; see
57 * 1- AT contain the address of the byte just past the end of the source
59 * 2- src_entry <= src < AT, and
60 * 3- (dst - src) == (dst_entry - src_entry),
81 * Only on the 64-bit kernel we can made use of 64-bit registers.
91 #define SUB dsubu macro
133 #define REST(unit) (FIRST(unit)+NBYTES-1)
136 #define ADDRMASK (NBYTES-1)
191 SUB len, len, 16*NBYTES
206 EXC( LOAD t0, UNIT(-8)(src), l_exc_copy_rewind16)
207 EXC( LOAD t1, UNIT(-7)(src), l_exc_copy_rewind16)
208 EXC( LOAD t2, UNIT(-6)(src), l_exc_copy_rewind16)
209 EXC( LOAD t3, UNIT(-5)(src), l_exc_copy_rewind16)
210 EXC( STORE t0, UNIT(-8)(dst), s_exc_p8u)
211 EXC( STORE t1, UNIT(-7)(dst), s_exc_p7u)
212 EXC( STORE t2, UNIT(-6)(dst), s_exc_p6u)
213 EXC( STORE t3, UNIT(-5)(dst), s_exc_p5u)
214 EXC( LOAD t0, UNIT(-4)(src), l_exc_copy_rewind16)
215 EXC( LOAD t1, UNIT(-3)(src), l_exc_copy_rewind16)
216 EXC( LOAD t2, UNIT(-2)(src), l_exc_copy_rewind16)
217 EXC( LOAD t3, UNIT(-1)(src), l_exc_copy_rewind16)
218 EXC( STORE t0, UNIT(-4)(dst), s_exc_p4u)
219 EXC( STORE t1, UNIT(-3)(dst), s_exc_p3u)
220 EXC( STORE t2, UNIT(-2)(dst), s_exc_p2u)
221 EXC( STORE t3, UNIT(-1)(dst), s_exc_p1u)
239 SUB len, len, 8*NBYTES
266 SUB len, len, 4*NBYTES
286 SUB len, len, NBYTES
296 SUB len, len, NBYTES
306 SUB len, len, NBYTES
310 EXC( STORE t0, -8(dst), s_exc_p1u)
314 SRL t0, len, LOG_NBYTES+2 # +2 for 4 units/iter
316 and rem, len, (4*NBYTES-1) # rem = len % 4*NBYTES
326 SUB len, len, 4*NBYTES
343 and rem, len, NBYTES-1 # rem = len % NBYTES
349 SUB len, len, NBYTES
362 SUB len, len, 1; \
372 EXC( lb t0, NBYTES-2(src), l_exc)
373 SUB len, len, 1
375 EXC( sb t0, NBYTES-2(dst), s_exc_p1)
383 SUB src, src, 16*NBYTES
384 SUB dst, dst, 16*NBYTES
401 sb t1, 0(dst) # can't fault -- we're copy_from_user
407 SUB len, AT, t0 # len number of uncopied bytes
446 sltu t0, a1, t0 # dst + len <= src -> memcpy
447 sltu t1, a0, t1 # dst >= src + len -> memcpy
463 lb t0, -1(a1)
464 SUB a2, a2, 0x1
465 sb t0, -1(a0)
466 SUB a1, a1, 0x1
468 SUB a0, a0, 0x1
476 SUB a2, a2, 0x1