Lines Matching refs:buf

104 pg_addiu(u32 **buf, unsigned int reg1, unsigned int reg2, unsigned int off)
108 uasm_i_lui(buf, T9, uasm_rel_hi(off));
109 uasm_i_addiu(buf, T9, T9, uasm_rel_lo(off));
111 uasm_i_addiu(buf, T9, ZERO, off);
112 uasm_i_daddu(buf, reg1, reg2, T9);
115 uasm_i_lui(buf, T9, uasm_rel_hi(off));
116 uasm_i_addiu(buf, T9, T9, uasm_rel_lo(off));
117 UASM_i_ADDU(buf, reg1, reg2, T9);
119 UASM_i_ADDIU(buf, reg1, reg2, off);
232 static void build_clear_store(u32 **buf, int off)
235 uasm_i_sd(buf, ZERO, off, A0);
237 uasm_i_sw(buf, ZERO, off, A0);
241 static inline void build_clear_pref(u32 **buf, int off)
247 _uasm_i_pref(buf, pref_dst_mode, pref_bias_clear_store + off,
251 uasm_i_cache(buf, Create_Dirty_Excl_SD, off, A0);
255 uasm_i_nop(buf);
256 uasm_i_nop(buf);
257 uasm_i_nop(buf);
258 uasm_i_nop(buf);
263 uasm_i_lw(buf, ZERO, ZERO, AT);
265 uasm_i_cache(buf, Create_Dirty_Excl_D, off, A0);
278 u32 *buf = &__clear_page_start;
303 pg_addiu(&buf, A2, A0, off);
305 uasm_i_ori(&buf, A2, A0, off);
308 uasm_i_lui(&buf, AT, uasm_rel_hi(0xa0000000));
313 build_clear_pref(&buf, -off);
316 uasm_l_clear_pref(&l, buf);
318 build_clear_pref(&buf, off);
319 build_clear_store(&buf, off);
322 pg_addiu(&buf, A0, A0, 2 * off);
325 build_clear_pref(&buf, off);
327 uasm_il_bne(&buf, &r, A0, A2, label_clear_pref);
328 build_clear_store(&buf, off);
333 pg_addiu(&buf, A2, A0, pref_bias_clear_store);
334 uasm_l_clear_nopref(&l, buf);
337 build_clear_store(&buf, off);
340 pg_addiu(&buf, A0, A0, 2 * off);
344 uasm_il_bne(&buf, &r, A0, A2,
346 build_clear_store(&buf, off);
351 uasm_i_jr(&buf, RA);
352 uasm_i_nop(&buf);
354 BUG_ON(buf > &__clear_page_end);
359 (u32)(buf - &__clear_page_start));
363 for (i = 0; i < (buf - &__clear_page_start); i++)
368 static void build_copy_load(u32 **buf, int reg, int off)
371 uasm_i_ld(buf, reg, off, A1);
373 uasm_i_lw(buf, reg, off, A1);
377 static void build_copy_store(u32 **buf, int reg, int off)
380 uasm_i_sd(buf, reg, off, A0);
382 uasm_i_sw(buf, reg, off, A0);
386 static inline void build_copy_load_pref(u32 **buf, int off)
392 _uasm_i_pref(buf, pref_src_mode, pref_bias_copy_load + off, A1);
395 static inline void build_copy_store_pref(u32 **buf, int off)
401 _uasm_i_pref(buf, pref_dst_mode, pref_bias_copy_store + off,
405 uasm_i_cache(buf, Create_Dirty_Excl_SD, off, A0);
409 uasm_i_nop(buf);
410 uasm_i_nop(buf);
411 uasm_i_nop(buf);
412 uasm_i_nop(buf);
417 uasm_i_lw(buf, ZERO, ZERO, AT);
419 uasm_i_cache(buf, Create_Dirty_Excl_D, off, A0);
427 u32 *buf = &__copy_page_start;
456 pg_addiu(&buf, A2, A0, off);
458 uasm_i_ori(&buf, A2, A0, off);
461 uasm_i_lui(&buf, AT, uasm_rel_hi(0xa0000000));
466 build_copy_load_pref(&buf, -off);
472 build_copy_store_pref(&buf, -off);
475 uasm_l_copy_pref_both(&l, buf);
477 build_copy_load_pref(&buf, off);
478 build_copy_load(&buf, T0, off);
479 build_copy_load_pref(&buf, off + copy_word_size);
480 build_copy_load(&buf, T1, off + copy_word_size);
481 build_copy_load_pref(&buf, off + 2 * copy_word_size);
482 build_copy_load(&buf, T2, off + 2 * copy_word_size);
483 build_copy_load_pref(&buf, off + 3 * copy_word_size);
484 build_copy_load(&buf, T3, off + 3 * copy_word_size);
485 build_copy_store_pref(&buf, off);
486 build_copy_store(&buf, T0, off);
487 build_copy_store_pref(&buf, off + copy_word_size);
488 build_copy_store(&buf, T1, off + copy_word_size);
489 build_copy_store_pref(&buf, off + 2 * copy_word_size);
490 build_copy_store(&buf, T2, off + 2 * copy_word_size);
491 build_copy_store_pref(&buf, off + 3 * copy_word_size);
492 build_copy_store(&buf, T3, off + 3 * copy_word_size);
495 pg_addiu(&buf, A1, A1, 2 * off);
496 pg_addiu(&buf, A0, A0, 2 * off);
499 build_copy_load_pref(&buf, off);
500 build_copy_load(&buf, T0, off);
501 build_copy_load_pref(&buf, off + copy_word_size);
502 build_copy_load(&buf, T1, off + copy_word_size);
503 build_copy_load_pref(&buf, off + 2 * copy_word_size);
504 build_copy_load(&buf, T2, off + 2 * copy_word_size);
505 build_copy_load_pref(&buf, off + 3 * copy_word_size);
506 build_copy_load(&buf, T3, off + 3 * copy_word_size);
507 build_copy_store_pref(&buf, off);
508 build_copy_store(&buf, T0, off);
509 build_copy_store_pref(&buf, off + copy_word_size);
510 build_copy_store(&buf, T1, off + copy_word_size);
511 build_copy_store_pref(&buf, off + 2 * copy_word_size);
512 build_copy_store(&buf, T2, off + 2 * copy_word_size);
513 build_copy_store_pref(&buf, off + 3 * copy_word_size);
515 uasm_il_bne(&buf, &r, A2, A0, label_copy_pref_both);
516 build_copy_store(&buf, T3, off + 3 * copy_word_size);
521 pg_addiu(&buf, A2, A0,
523 uasm_l_copy_pref_store(&l, buf);
526 build_copy_load(&buf, T0, off);
527 build_copy_load(&buf, T1, off + copy_word_size);
528 build_copy_load(&buf, T2, off + 2 * copy_word_size);
529 build_copy_load(&buf, T3, off + 3 * copy_word_size);
530 build_copy_store_pref(&buf, off);
531 build_copy_store(&buf, T0, off);
532 build_copy_store_pref(&buf, off + copy_word_size);
533 build_copy_store(&buf, T1, off + copy_word_size);
534 build_copy_store_pref(&buf, off + 2 * copy_word_size);
535 build_copy_store(&buf, T2, off + 2 * copy_word_size);
536 build_copy_store_pref(&buf, off + 3 * copy_word_size);
537 build_copy_store(&buf, T3, off + 3 * copy_word_size);
540 pg_addiu(&buf, A1, A1, 2 * off);
541 pg_addiu(&buf, A0, A0, 2 * off);
544 build_copy_load(&buf, T0, off);
545 build_copy_load(&buf, T1, off + copy_word_size);
546 build_copy_load(&buf, T2, off + 2 * copy_word_size);
547 build_copy_load(&buf, T3, off + 3 * copy_word_size);
548 build_copy_store_pref(&buf, off);
549 build_copy_store(&buf, T0, off);
550 build_copy_store_pref(&buf, off + copy_word_size);
551 build_copy_store(&buf, T1, off + copy_word_size);
552 build_copy_store_pref(&buf, off + 2 * copy_word_size);
553 build_copy_store(&buf, T2, off + 2 * copy_word_size);
554 build_copy_store_pref(&buf, off + 3 * copy_word_size);
556 uasm_il_bne(&buf, &r, A2, A0,
558 build_copy_store(&buf, T3, off + 3 * copy_word_size);
564 pg_addiu(&buf, A2, A0, pref_bias_copy_store);
565 uasm_l_copy_nopref(&l, buf);
568 build_copy_load(&buf, T0, off);
569 build_copy_load(&buf, T1, off + copy_word_size);
570 build_copy_load(&buf, T2, off + 2 * copy_word_size);
571 build_copy_load(&buf, T3, off + 3 * copy_word_size);
572 build_copy_store(&buf, T0, off);
573 build_copy_store(&buf, T1, off + copy_word_size);
574 build_copy_store(&buf, T2, off + 2 * copy_word_size);
575 build_copy_store(&buf, T3, off + 3 * copy_word_size);
578 pg_addiu(&buf, A1, A1, 2 * off);
579 pg_addiu(&buf, A0, A0, 2 * off);
582 build_copy_load(&buf, T0, off);
583 build_copy_load(&buf, T1, off + copy_word_size);
584 build_copy_load(&buf, T2, off + 2 * copy_word_size);
585 build_copy_load(&buf, T3, off + 3 * copy_word_size);
586 build_copy_store(&buf, T0, off);
587 build_copy_store(&buf, T1, off + copy_word_size);
588 build_copy_store(&buf, T2, off + 2 * copy_word_size);
590 uasm_il_bne(&buf, &r, A2, A0,
592 build_copy_store(&buf, T3, off + 3 * copy_word_size);
597 uasm_i_jr(&buf, RA);
598 uasm_i_nop(&buf);
600 BUG_ON(buf > &__copy_page_end);
605 (u32)(buf - &__copy_page_start));
609 for (i = 0; i < (buf - &__copy_page_start); i++)