• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/arch/mips/mm/

Lines Matching refs:off

131 pg_addiu(u32 **buf, unsigned int reg1, unsigned int reg2, unsigned int off)
134 if (off > 0x7fff) {
135 uasm_i_lui(buf, T9, uasm_rel_hi(off));
136 uasm_i_addiu(buf, T9, T9, uasm_rel_lo(off));
138 uasm_i_addiu(buf, T9, ZERO, off);
141 if (off > 0x7fff) {
142 uasm_i_lui(buf, T9, uasm_rel_hi(off));
143 uasm_i_addiu(buf, T9, T9, uasm_rel_lo(off));
146 UASM_i_ADDIU(buf, reg1, reg2, off);
239 static void __cpuinit build_clear_store(u32 **buf, int off)
242 uasm_i_sd(buf, ZERO, off, A0);
244 uasm_i_sw(buf, ZERO, off, A0);
248 static inline void __cpuinit build_clear_pref(u32 **buf, int off)
250 if (off & cache_line_mask())
254 uasm_i_pref(buf, pref_dst_mode, pref_bias_clear_store + off,
258 uasm_i_cache(buf, Create_Dirty_Excl_SD, off, A0);
270 uasm_i_cache(buf, Create_Dirty_Excl_D, off, A0);
277 int off;
296 off = PAGE_SIZE - pref_bias_clear_store;
297 if (off > 0xffff || !pref_bias_clear_store)
298 pg_addiu(&buf, A2, A0, off);
300 uasm_i_ori(&buf, A2, A0, off);
305 off = cache_line_size ? min(8, pref_bias_clear_store / cache_line_size)
307 while (off) {
308 build_clear_pref(&buf, -off);
309 off -= cache_line_size;
313 build_clear_pref(&buf, off);
314 build_clear_store(&buf, off);
315 off += clear_word_size;
316 } while (off < half_clear_loop_size);
317 pg_addiu(&buf, A0, A0, 2 * off);
318 off = -off;
320 build_clear_pref(&buf, off);
321 if (off == -clear_word_size)
323 build_clear_store(&buf, off);
324 off += clear_word_size;
325 } while (off < 0);
330 off = 0;
332 build_clear_store(&buf, off);
333 off += clear_word_size;
334 } while (off < half_clear_loop_size);
335 pg_addiu(&buf, A0, A0, 2 * off);
336 off = -off;
338 if (off == -clear_word_size)
341 build_clear_store(&buf, off);
342 off += clear_word_size;
343 } while (off < 0);
363 static void __cpuinit build_copy_load(u32 **buf, int reg, int off)
366 uasm_i_ld(buf, reg, off, A1);
368 uasm_i_lw(buf, reg, off, A1);
372 static void __cpuinit build_copy_store(u32 **buf, int reg, int off)
375 uasm_i_sd(buf, reg, off, A0);
377 uasm_i_sw(buf, reg, off, A0);
381 static inline void build_copy_load_pref(u32 **buf, int off)
383 if (off & cache_line_mask())
387 uasm_i_pref(buf, pref_src_mode, pref_bias_copy_load + off, A1);
390 static inline void build_copy_store_pref(u32 **buf, int off)
392 if (off & cache_line_mask())
396 uasm_i_pref(buf, pref_dst_mode, pref_bias_copy_store + off,
400 uasm_i_cache(buf, Create_Dirty_Excl_SD, off, A0);
412 uasm_i_cache(buf, Create_Dirty_Excl_D, off, A0);
419 int off;
442 off = PAGE_SIZE - pref_bias_copy_load;
443 if (off > 0xffff || !pref_bias_copy_load)
444 pg_addiu(&buf, A2, A0, off);
446 uasm_i_ori(&buf, A2, A0, off);
451 off = cache_line_size ? min(8, pref_bias_copy_load / cache_line_size) *
453 while (off) {
454 build_copy_load_pref(&buf, -off);
455 off -= cache_line_size;
457 off = cache_line_size ? min(8, pref_bias_copy_store / cache_line_size) *
459 while (off) {
460 build_copy_store_pref(&buf, -off);
461 off -= cache_line_size;
465 build_copy_load_pref(&buf, off);
466 build_copy_load(&buf, T0, off);
467 build_copy_load_pref(&buf, off + copy_word_size);
468 build_copy_load(&buf, T1, off + copy_word_size);
469 build_copy_load_pref(&buf, off + 2 * copy_word_size);
470 build_copy_load(&buf, T2, off + 2 * copy_word_size);
471 build_copy_load_pref(&buf, off + 3 * copy_word_size);
472 build_copy_load(&buf, T3, off + 3 * copy_word_size);
473 build_copy_store_pref(&buf, off);
474 build_copy_store(&buf, T0, off);
475 build_copy_store_pref(&buf, off + copy_word_size);
476 build_copy_store(&buf, T1, off + copy_word_size);
477 build_copy_store_pref(&buf, off + 2 * copy_word_size);
478 build_copy_store(&buf, T2, off + 2 * copy_word_size);
479 build_copy_store_pref(&buf, off + 3 * copy_word_size);
480 build_copy_store(&buf, T3, off + 3 * copy_word_size);
481 off += 4 * copy_word_size;
482 } while (off < half_copy_loop_size);
483 pg_addiu(&buf, A1, A1, 2 * off);
484 pg_addiu(&buf, A0, A0, 2 * off);
485 off = -off;
487 build_copy_load_pref(&buf, off);
488 build_copy_load(&buf, T0, off);
489 build_copy_load_pref(&buf, off + copy_word_size);
490 build_copy_load(&buf, T1, off + copy_word_size);
491 build_copy_load_pref(&buf, off + 2 * copy_word_size);
492 build_copy_load(&buf, T2, off + 2 * copy_word_size);
493 build_copy_load_pref(&buf, off + 3 * copy_word_size);
494 build_copy_load(&buf, T3, off + 3 * copy_word_size);
495 build_copy_store_pref(&buf, off);
496 build_copy_store(&buf, T0, off);
497 build_copy_store_pref(&buf, off + copy_word_size);
498 build_copy_store(&buf, T1, off + copy_word_size);
499 build_copy_store_pref(&buf, off + 2 * copy_word_size);
500 build_copy_store(&buf, T2, off + 2 * copy_word_size);
501 build_copy_store_pref(&buf, off + 3 * copy_word_size);
502 if (off == -(4 * copy_word_size))
504 build_copy_store(&buf, T3, off + 3 * copy_word_size);
505 off += 4 * copy_word_size;
506 } while (off < 0);
512 off = 0;
514 build_copy_load(&buf, T0, off);
515 build_copy_load(&buf, T1, off + copy_word_size);
516 build_copy_load(&buf, T2, off + 2 * copy_word_size);
517 build_copy_load(&buf, T3, off + 3 * copy_word_size);
518 build_copy_store_pref(&buf, off);
519 build_copy_store(&buf, T0, off);
520 build_copy_store_pref(&buf, off + copy_word_size);
521 build_copy_store(&buf, T1, off + copy_word_size);
522 build_copy_store_pref(&buf, off + 2 * copy_word_size);
523 build_copy_store(&buf, T2, off + 2 * copy_word_size);
524 build_copy_store_pref(&buf, off + 3 * copy_word_size);
525 build_copy_store(&buf, T3, off + 3 * copy_word_size);
526 off += 4 * copy_word_size;
527 } while (off < half_copy_loop_size);
528 pg_addiu(&buf, A1, A1, 2 * off);
529 pg_addiu(&buf, A0, A0, 2 * off);
530 off = -off;
532 build_copy_load(&buf, T0, off);
533 build_copy_load(&buf, T1, off + copy_word_size);
534 build_copy_load(&buf, T2, off + 2 * copy_word_size);
535 build_copy_load(&buf, T3, off + 3 * copy_word_size);
536 build_copy_store_pref(&buf, off);
537 build_copy_store(&buf, T0, off);
538 build_copy_store_pref(&buf, off + copy_word_size);
539 build_copy_store(&buf, T1, off + copy_word_size);
540 build_copy_store_pref(&buf, off + 2 * copy_word_size);
541 build_copy_store(&buf, T2, off + 2 * copy_word_size);
542 build_copy_store_pref(&buf, off + 3 * copy_word_size);
543 if (off == -(4 * copy_word_size))
546 build_copy_store(&buf, T3, off + 3 * copy_word_size);
547 off += 4 * copy_word_size;
548 } while (off < 0);
554 off = 0;
556 build_copy_load(&buf, T0, off);
557 build_copy_load(&buf, T1, off + copy_word_size);
558 build_copy_load(&buf, T2, off + 2 * copy_word_size);
559 build_copy_load(&buf, T3, off + 3 * copy_word_size);
560 build_copy_store(&buf, T0, off);
561 build_copy_store(&buf, T1, off + copy_word_size);
562 build_copy_store(&buf, T2, off + 2 * copy_word_size);
563 build_copy_store(&buf, T3, off + 3 * copy_word_size);
564 off += 4 * copy_word_size;
565 } while (off < half_copy_loop_size);
566 pg_addiu(&buf, A1, A1, 2 * off);
567 pg_addiu(&buf, A0, A0, 2 * off);
568 off = -off;
570 build_copy_load(&buf, T0, off);
571 build_copy_load(&buf, T1, off + copy_word_size);
572 build_copy_load(&buf, T2, off + 2 * copy_word_size);
573 build_copy_load(&buf, T3, off + 3 * copy_word_size);
574 build_copy_store(&buf, T0, off);
575 build_copy_store(&buf, T1, off + copy_word_size);
576 build_copy_store(&buf, T2, off + 2 * copy_word_size);
577 if (off == -(4 * copy_word_size))
580 build_copy_store(&buf, T3, off + 3 * copy_word_size);
581 off += 4 * copy_word_size;
582 } while (off < 0);