Lines Matching refs:kcache
937 struct r600_bytecode_kcache *kcache, in r600_bytecode_alloc_kcache_line() argument
943 if (kcache[i].mode) { in r600_bytecode_alloc_kcache_line()
946 if (kcache[i].bank < bank) in r600_bytecode_alloc_kcache_line()
949 if ((kcache[i].bank == bank && kcache[i].addr > line+1) || in r600_bytecode_alloc_kcache_line()
950 kcache[i].bank > bank) { in r600_bytecode_alloc_kcache_line()
952 if (kcache[kcache_banks-1].mode) { in r600_bytecode_alloc_kcache_line()
957 memmove(&kcache[i+1],&kcache[i], (kcache_banks-i-1)*sizeof(struct r600_bytecode_kcache)); in r600_bytecode_alloc_kcache_line()
958 kcache[i].mode = V_SQ_CF_KCACHE_LOCK_1; in r600_bytecode_alloc_kcache_line()
959 kcache[i].bank = bank; in r600_bytecode_alloc_kcache_line()
960 kcache[i].addr = line; in r600_bytecode_alloc_kcache_line()
961 kcache[i].index_mode = index_mode; in r600_bytecode_alloc_kcache_line()
965 d = line - kcache[i].addr; in r600_bytecode_alloc_kcache_line()
968 kcache[i].addr--; in r600_bytecode_alloc_kcache_line()
969 if (kcache[i].mode == V_SQ_CF_KCACHE_LOCK_2) { in r600_bytecode_alloc_kcache_line()
975 } else if (kcache[i].mode == V_SQ_CF_KCACHE_LOCK_1) { in r600_bytecode_alloc_kcache_line()
976 kcache[i].mode = V_SQ_CF_KCACHE_LOCK_2; in r600_bytecode_alloc_kcache_line()
983 kcache[i].mode = V_SQ_CF_KCACHE_LOCK_2; in r600_bytecode_alloc_kcache_line()
988 kcache[i].mode = V_SQ_CF_KCACHE_LOCK_1; in r600_bytecode_alloc_kcache_line()
989 kcache[i].bank = bank; in r600_bytecode_alloc_kcache_line()
990 kcache[i].addr = line; in r600_bytecode_alloc_kcache_line()
991 kcache[i].index_mode = index_mode; in r600_bytecode_alloc_kcache_line()
999 struct r600_bytecode_kcache *kcache, in r600_bytecode_alloc_inst_kcache_lines() argument
1015 if ((r = r600_bytecode_alloc_kcache_line(bc, kcache, bank, line, index_mode))) in r600_bytecode_alloc_inst_kcache_lines()
1023 struct r600_bytecode_kcache * kcache) in r600_bytecode_assign_kcache_banks() argument
1039 switch (kcache[j].mode) { in r600_bytecode_assign_kcache_banks()
1045 if (kcache[j].bank == alu->src[i].kc_bank && in r600_bytecode_assign_kcache_banks()
1046 kcache[j].addr <= line && in r600_bytecode_assign_kcache_banks()
1047 line < kcache[j].addr + kcache[j].mode) { in r600_bytecode_assign_kcache_banks()
1048 alu->src[i].sel = sel - (kcache[j].addr<<4); in r600_bytecode_assign_kcache_banks()
1063 struct r600_bytecode_kcache *kcache = kcache_sets; in r600_bytecode_alloc_kcache_lines() local
1066 memcpy(kcache, bc->cf_last->kcache, 4 * sizeof(struct r600_bytecode_kcache)); in r600_bytecode_alloc_kcache_lines()
1068 if ((r = r600_bytecode_alloc_inst_kcache_lines(bc, kcache, alu))) { in r600_bytecode_alloc_kcache_lines()
1076 kcache = bc->cf_last->kcache; in r600_bytecode_alloc_kcache_lines()
1077 if ((r = r600_bytecode_alloc_inst_kcache_lines(bc, kcache, alu))) { in r600_bytecode_alloc_kcache_lines()
1083 memcpy(bc->cf_last->kcache, kcache, 4 * sizeof(struct r600_bytecode_kcache)); in r600_bytecode_alloc_kcache_lines()
1087 if (kcache[2].mode != V_SQ_CF_KCACHE_NOP || in r600_bytecode_alloc_kcache_lines()
1088 kcache[0].index_mode || kcache[1].index_mode || kcache[2].index_mode || kcache[3].index_mode) { in r600_bytecode_alloc_kcache_lines()
1647 S_SQ_CF_ALU_WORD0_KCACHE_MODE0(cf->kcache[0].mode) | in r600_bytecode_cf_build()
1648 S_SQ_CF_ALU_WORD0_KCACHE_BANK0(cf->kcache[0].bank) | in r600_bytecode_cf_build()
1649 S_SQ_CF_ALU_WORD0_KCACHE_BANK1(cf->kcache[1].bank); in r600_bytecode_cf_build()
1652 S_SQ_CF_ALU_WORD1_KCACHE_MODE1(cf->kcache[1].mode) | in r600_bytecode_cf_build()
1653 S_SQ_CF_ALU_WORD1_KCACHE_ADDR0(cf->kcache[0].addr) | in r600_bytecode_cf_build()
1654 S_SQ_CF_ALU_WORD1_KCACHE_ADDR1(cf->kcache[1].addr) | in r600_bytecode_cf_build()
1754 r600_bytecode_assign_kcache_banks(alu, cf->kcache); in r600_bytecode_build()
2088 if (cf->kcache[i].mode) { in r600_bytecode_disasm()
2089 int c_start = (cf->kcache[i].addr << 4); in r600_bytecode_disasm()
2090 int c_end = c_start + (cf->kcache[i].mode << 4); in r600_bytecode_disasm()
2092 i, cf->kcache[i].bank, c_start, c_end, in r600_bytecode_disasm()
2093 cf->kcache[i].index_mode ? " " : "", in r600_bytecode_disasm()
2094 cf->kcache[i].index_mode ? index_mode[cf->kcache[i].index_mode] : ""); in r600_bytecode_disasm()