Lines Matching refs:dst

37    physreg_t dst;
101 /* Choose a temporary that doesn't overlap src or dst */
102 physreg_t tmp = entry->dst < 2 ? 2 : 0;
108 .dst = tmp,
112 /* If src and dst are within the same full register, then swapping src
113 * with tmp above will also move dst to tmp. Account for that here.
115 unsigned dst =
116 (entry->src.reg & ~1u) == (entry->dst & ~1u) ?
117 tmp + (entry->dst & 1u) : entry->dst;
123 .dst = dst,
131 .dst = tmp,
137 /* If dst is not addressable, we only need to swap the arguments and
140 if (entry->dst >= RA_HALF_SIZE) {
143 .src = {.reg = entry->dst},
144 .dst = entry->src.reg,
152 unsigned dst_num = ra_physreg_to_num(entry->dst, entry->flags);
191 if (entry->dst >= RA_HALF_SIZE) {
197 .src = {.reg = entry->dst & ~1u},
198 .dst = tmp,
203 * src and dst are in the same register.
206 if (!src.flags && (src.reg & ~1u) == (entry->dst & ~1u))
212 .dst = tmp + (entry->dst & 1),
218 .src = {.reg = entry->dst & ~1u},
219 .dst = tmp,
228 unsigned dst_num = ra_physreg_to_num(entry->dst, entry->flags);
231 /* cov.u32u16 dst, src */
240 /* shr.b dst, src, (16) */
253 unsigned dst_num = ra_physreg_to_num(entry->dst, entry->flags);
288 if (ctx->physreg_use_count[entry->dst + i] != 0)
303 new_entry->dst = entry->dst + 1;
309 ctx->physreg_dst[entry->dst + 1] = new_entry;
327 assert(!ctx->physreg_dst[entry->dst + j]);
328 ctx->physreg_dst[entry->dst + j] = entry;
341 * TODO: We should note that src is also available in dst to unblock
354 ctx->physreg_dst[entry->dst + j] = NULL;
377 if (((ctx->physreg_use_count[entry->dst] == 0 ||
378 ctx->physreg_use_count[entry->dst + 1] == 0)) &&
430 if (entry->dst == entry->src.reg) {
447 if (blocking->src.reg <= entry->dst &&
448 blocking->src.reg + 1 >= entry->dst &&
462 if (blocking->src.reg >= entry->dst &&
463 blocking->src.reg < entry->dst + copy_entry_size(entry)) {
465 entry->src.reg + (blocking->src.reg - entry->dst);
529 struct ir3_register *dst = instr->dsts[i];
532 unsigned dst_physreg = ra_reg_get_physreg(dst);
533 for (unsigned j = 0; j < reg_elems(dst); j++) {
537 .dst = dst_physreg + j * reg_elem_size(dst),
538 .src = get_copy_src(src, j * reg_elem_size(dst)),
547 struct ir3_register *dst = instr->dsts[0];
548 unsigned flags = dst->flags & (IR3_REG_HALF | IR3_REG_SHARED);
553 .dst = ra_num_to_physreg(dst->num + i, flags),
562 struct ir3_register *dst = instr->dsts[0];
567 .dst = ra_reg_get_physreg(dst),
569 src, instr->split.off * reg_elem_size(dst)),