Lines Matching defs:dst

714                  const struct ra_removed_interval *removed, physreg_t dst)
718 interval->physreg_start = dst;
719 interval->physreg_end = dst + removed->size;
728 /* Pick up the interval and place it at "dst". */
731 struct ra_interval *interval, physreg_t dst)
734 ra_push_interval(ctx, file, &temp, dst);
749 /* Returns true if the proposed spot for "dst" or a killed source overlaps a
754 struct ir3_register *dst, physreg_t start,
757 struct ir3_instruction *instr = dst->instr;
762 if (other_dst == dst)
1096 /* dst intervals with a tied killed source are considered attached to
1188 struct ir3_register *dst = dsts[dst_index];
1193 bool dst_half = dst->flags & IR3_REG_HALF;
1194 bool dst_early_clobber = is_early_clobber(dst);
1278 ra_foreach_dst (dst, reg->instr) {
1279 if (dst == reg)
1282 struct ir3_register *tied = dst->tied;
1290 struct ra_interval *dst_interval = &ctx->intervals[dst->name];
1291 unsigned dst_size = reg_size(dst);
1320 struct ir3_register *dst, unsigned file_size, unsigned size,
1330 is_early_clobber(dst) ? file->available_to_evict : file->available;
1345 !check_dst_overlap(ctx, file, dst, candidate, candidate + size);
1481 insert_dst(struct ra_ctx *ctx, struct ir3_register *dst)
1483 struct ra_file *file = ra_get_file(ctx, dst);
1484 struct ra_interval *interval = &ctx->intervals[dst->name];
1486 d("insert dst %u physreg %u", dst->name, ra_interval_get_physreg(interval));
1488 if (!(dst->flags & IR3_REG_UNUSED))
1491 assign_reg(dst->instr, dst, ra_interval_get_num(interval));
1495 allocate_dst_fixed(struct ra_ctx *ctx, struct ir3_register *dst,
1498 struct ra_file *file = ra_get_file(ctx, dst);
1499 struct ra_interval *interval = &ctx->intervals[dst->name];
1500 update_affinity(file, dst, physreg);
1502 ra_interval_init(interval, dst);
1504 interval->physreg_end = physreg + reg_size(dst);
1517 insert_tied_dst_copy(struct ra_ctx *ctx, struct ir3_register *dst)
1519 struct ir3_register *tied = dst->tied;
1525 struct ra_interval *dst_interval = &ctx->intervals[dst->name];
1540 allocate_dst(struct ra_ctx *ctx, struct ir3_register *dst)
1542 struct ra_file *file = ra_get_file(ctx, dst);
1544 struct ir3_register *tied = dst->tied;
1551 allocate_dst_fixed(ctx, dst, ra_interval_get_physreg(tied_interval));
1557 physreg_t physreg = get_reg(ctx, file, dst);
1559 allocate_dst_fixed(ctx, dst, physreg);
1632 /* Pre-insert tied dst copies. */
1633 ra_foreach_dst (dst, instr) {
1634 insert_tied_dst_copy(ctx, dst);
1638 ra_foreach_dst (dst, instr) {
1639 allocate_dst(ctx, dst);
1651 ra_foreach_dst (dst, instr) {
1652 insert_dst(ctx, dst);
1661 struct ir3_register *dst = instr->dsts[0];
1664 if (dst->merge_set == NULL || src->def->merge_set != dst->merge_set) {
1675 ctx, dst, physreg - src->def->merge_set_offset + dst->merge_set_offset);
1676 insert_dst(ctx, dst);
1805 d("insert precolored dst %u physreg %u", instr->dsts[0]->name,
2039 insert_liveout_copy(struct ir3_block *block, physreg_t dst, physreg_t src,
2064 assign_reg(pcopy, dst_reg, ra_physreg_to_num(dst, reg->flags));
2412 struct ir3_register *dst = input->dsts[0];
2413 if (dst->num != INVALID_REG) {
2414 unsigned physreg = ra_reg_get_physreg(dst) + reg_size(dst);
2415 if (dst->flags & IR3_REG_HALF)
2417 if (!(dst->flags & IR3_REG_HALF) || v->mergedregs)
2434 ra_foreach_dst (dst, instr) {
2435 ir3_reg_interval_init(&intervals[dst->name], dst);
2449 ra_foreach_dst (dst, instr) {
2450 if (dst->tied && !(dst->tied->flags & IR3_REG_KILL))
2451 add_pressure(&cur_pressure, dst, v->mergedregs);
2476 ra_foreach_dst (dst, instr) {
2477 ir3_reg_interval_init(&intervals[dst->name], dst);
2478 ir3_reg_interval_insert(ctx, &intervals[dst->name]);
2479 add_pressure(&cur_pressure, dst, v->mergedregs);