Lines Matching refs:buf

103 pg_addiu(u32 **buf, unsigned int reg1, unsigned int reg2, unsigned int off)
109 uasm_i_lui(buf, T9, uasm_rel_hi(off));
110 uasm_i_addiu(buf, T9, T9, uasm_rel_lo(off));
112 uasm_i_addiu(buf, T9, ZERO, off);
113 uasm_i_daddu(buf, reg1, reg2, T9);
116 uasm_i_lui(buf, T9, uasm_rel_hi(off));
117 uasm_i_addiu(buf, T9, T9, uasm_rel_lo(off));
118 UASM_i_ADDU(buf, reg1, reg2, T9);
120 UASM_i_ADDIU(buf, reg1, reg2, off);
233 static void build_clear_store(u32 **buf, int off)
236 uasm_i_sd(buf, ZERO, off, A0);
238 uasm_i_sw(buf, ZERO, off, A0);
242 static inline void build_clear_pref(u32 **buf, int off)
248 _uasm_i_pref(buf, pref_dst_mode, pref_bias_clear_store + off,
252 uasm_i_cache(buf, Create_Dirty_Excl_SD, off, A0);
256 uasm_i_nop(buf);
257 uasm_i_nop(buf);
258 uasm_i_nop(buf);
259 uasm_i_nop(buf);
264 uasm_i_lw(buf, ZERO, ZERO, AT);
266 uasm_i_cache(buf, Create_Dirty_Excl_D, off, A0);
279 u32 *buf = &__clear_page_start;
304 pg_addiu(&buf, A2, A0, off);
306 uasm_i_ori(&buf, A2, A0, off);
309 uasm_i_lui(&buf, AT, uasm_rel_hi(0xa0000000));
314 build_clear_pref(&buf, -off);
317 uasm_l_clear_pref(&l, buf);
319 build_clear_pref(&buf, off);
320 build_clear_store(&buf, off);
323 pg_addiu(&buf, A0, A0, 2 * off);
326 build_clear_pref(&buf, off);
328 uasm_il_bne(&buf, &r, A0, A2, label_clear_pref);
329 build_clear_store(&buf, off);
334 pg_addiu(&buf, A2, A0, pref_bias_clear_store);
335 uasm_l_clear_nopref(&l, buf);
338 build_clear_store(&buf, off);
341 pg_addiu(&buf, A0, A0, 2 * off);
345 uasm_il_bne(&buf, &r, A0, A2,
347 build_clear_store(&buf, off);
352 uasm_i_jr(&buf, RA);
353 uasm_i_nop(&buf);
355 BUG_ON(buf > &__clear_page_end);
360 (u32)(buf - &__clear_page_start));
364 for (i = 0; i < (buf - &__clear_page_start); i++)
369 static void build_copy_load(u32 **buf, int reg, int off)
372 uasm_i_ld(buf, reg, off, A1);
374 uasm_i_lw(buf, reg, off, A1);
378 static void build_copy_store(u32 **buf, int reg, int off)
381 uasm_i_sd(buf, reg, off, A0);
383 uasm_i_sw(buf, reg, off, A0);
387 static inline void build_copy_load_pref(u32 **buf, int off)
393 _uasm_i_pref(buf, pref_src_mode, pref_bias_copy_load + off, A1);
396 static inline void build_copy_store_pref(u32 **buf, int off)
402 _uasm_i_pref(buf, pref_dst_mode, pref_bias_copy_store + off,
406 uasm_i_cache(buf, Create_Dirty_Excl_SD, off, A0);
410 uasm_i_nop(buf);
411 uasm_i_nop(buf);
412 uasm_i_nop(buf);
413 uasm_i_nop(buf);
418 uasm_i_lw(buf, ZERO, ZERO, AT);
420 uasm_i_cache(buf, Create_Dirty_Excl_D, off, A0);
428 u32 *buf = &__copy_page_start;
457 pg_addiu(&buf, A2, A0, off);
459 uasm_i_ori(&buf, A2, A0, off);
462 uasm_i_lui(&buf, AT, uasm_rel_hi(0xa0000000));
467 build_copy_load_pref(&buf, -off);
473 build_copy_store_pref(&buf, -off);
476 uasm_l_copy_pref_both(&l, buf);
478 build_copy_load_pref(&buf, off);
479 build_copy_load(&buf, T0, off);
480 build_copy_load_pref(&buf, off + copy_word_size);
481 build_copy_load(&buf, T1, off + copy_word_size);
482 build_copy_load_pref(&buf, off + 2 * copy_word_size);
483 build_copy_load(&buf, T2, off + 2 * copy_word_size);
484 build_copy_load_pref(&buf, off + 3 * copy_word_size);
485 build_copy_load(&buf, T3, off + 3 * copy_word_size);
486 build_copy_store_pref(&buf, off);
487 build_copy_store(&buf, T0, off);
488 build_copy_store_pref(&buf, off + copy_word_size);
489 build_copy_store(&buf, T1, off + copy_word_size);
490 build_copy_store_pref(&buf, off + 2 * copy_word_size);
491 build_copy_store(&buf, T2, off + 2 * copy_word_size);
492 build_copy_store_pref(&buf, off + 3 * copy_word_size);
493 build_copy_store(&buf, T3, off + 3 * copy_word_size);
496 pg_addiu(&buf, A1, A1, 2 * off);
497 pg_addiu(&buf, A0, A0, 2 * off);
500 build_copy_load_pref(&buf, off);
501 build_copy_load(&buf, T0, off);
502 build_copy_load_pref(&buf, off + copy_word_size);
503 build_copy_load(&buf, T1, off + copy_word_size);
504 build_copy_load_pref(&buf, off + 2 * copy_word_size);
505 build_copy_load(&buf, T2, off + 2 * copy_word_size);
506 build_copy_load_pref(&buf, off + 3 * copy_word_size);
507 build_copy_load(&buf, T3, off + 3 * copy_word_size);
508 build_copy_store_pref(&buf, off);
509 build_copy_store(&buf, T0, off);
510 build_copy_store_pref(&buf, off + copy_word_size);
511 build_copy_store(&buf, T1, off + copy_word_size);
512 build_copy_store_pref(&buf, off + 2 * copy_word_size);
513 build_copy_store(&buf, T2, off + 2 * copy_word_size);
514 build_copy_store_pref(&buf, off + 3 * copy_word_size);
516 uasm_il_bne(&buf, &r, A2, A0, label_copy_pref_both);
517 build_copy_store(&buf, T3, off + 3 * copy_word_size);
522 pg_addiu(&buf, A2, A0,
524 uasm_l_copy_pref_store(&l, buf);
527 build_copy_load(&buf, T0, off);
528 build_copy_load(&buf, T1, off + copy_word_size);
529 build_copy_load(&buf, T2, off + 2 * copy_word_size);
530 build_copy_load(&buf, T3, off + 3 * copy_word_size);
531 build_copy_store_pref(&buf, off);
532 build_copy_store(&buf, T0, off);
533 build_copy_store_pref(&buf, off + copy_word_size);
534 build_copy_store(&buf, T1, off + copy_word_size);
535 build_copy_store_pref(&buf, off + 2 * copy_word_size);
536 build_copy_store(&buf, T2, off + 2 * copy_word_size);
537 build_copy_store_pref(&buf, off + 3 * copy_word_size);
538 build_copy_store(&buf, T3, off + 3 * copy_word_size);
541 pg_addiu(&buf, A1, A1, 2 * off);
542 pg_addiu(&buf, A0, A0, 2 * off);
545 build_copy_load(&buf, T0, off);
546 build_copy_load(&buf, T1, off + copy_word_size);
547 build_copy_load(&buf, T2, off + 2 * copy_word_size);
548 build_copy_load(&buf, T3, off + 3 * copy_word_size);
549 build_copy_store_pref(&buf, off);
550 build_copy_store(&buf, T0, off);
551 build_copy_store_pref(&buf, off + copy_word_size);
552 build_copy_store(&buf, T1, off + copy_word_size);
553 build_copy_store_pref(&buf, off + 2 * copy_word_size);
554 build_copy_store(&buf, T2, off + 2 * copy_word_size);
555 build_copy_store_pref(&buf, off + 3 * copy_word_size);
557 uasm_il_bne(&buf, &r, A2, A0,
559 build_copy_store(&buf, T3, off + 3 * copy_word_size);
565 pg_addiu(&buf, A2, A0, pref_bias_copy_store);
566 uasm_l_copy_nopref(&l, buf);
569 build_copy_load(&buf, T0, off);
570 build_copy_load(&buf, T1, off + copy_word_size);
571 build_copy_load(&buf, T2, off + 2 * copy_word_size);
572 build_copy_load(&buf, T3, off + 3 * copy_word_size);
573 build_copy_store(&buf, T0, off);
574 build_copy_store(&buf, T1, off + copy_word_size);
575 build_copy_store(&buf, T2, off + 2 * copy_word_size);
576 build_copy_store(&buf, T3, off + 3 * copy_word_size);
579 pg_addiu(&buf, A1, A1, 2 * off);
580 pg_addiu(&buf, A0, A0, 2 * off);
583 build_copy_load(&buf, T0, off);
584 build_copy_load(&buf, T1, off + copy_word_size);
585 build_copy_load(&buf, T2, off + 2 * copy_word_size);
586 build_copy_load(&buf, T3, off + 3 * copy_word_size);
587 build_copy_store(&buf, T0, off);
588 build_copy_store(&buf, T1, off + copy_word_size);
589 build_copy_store(&buf, T2, off + 2 * copy_word_size);
591 uasm_il_bne(&buf, &r, A2, A0,
593 build_copy_store(&buf, T3, off + 3 * copy_word_size);
598 uasm_i_jr(&buf, RA);
599 uasm_i_nop(&buf);
601 BUG_ON(buf > &__copy_page_end);
606 (u32)(buf - &__copy_page_start));
610 for (i = 0; i < (buf - &__copy_page_start); i++)