Lines Matching refs:spill
32 * 2. The immediate offset only has 13 bits and is signed, so if we spill a lot
91 handle_oob_offset_spill(struct ir3_instruction *spill)
93 unsigned components = spill->srcs[2]->uim_val;
95 if (spill->cat6.dst_offset + components * component_bytes(spill->srcs[1]) < MAX_CAT6_SIZE)
98 set_base_reg(spill, spill->cat6.dst_offset);
99 reset_base_reg(spill);
100 spill->cat6.dst_offset = 0;
117 split_spill(struct ir3_instruction *spill)
119 unsigned orig_components = spill->srcs[2]->uim_val;
122 assert(spill->deps_count == 0);
125 if (spill->srcs[1]->flags & IR3_REG_ARRAY) {
126 spill->srcs[1]->wrmask = MASK(orig_components);
127 spill->srcs[1]->num = spill->srcs[1]->array.base;
128 spill->srcs[1]->flags &= ~IR3_REG_ARRAY;
135 struct ir3_instruction *clone = ir3_instr_clone(spill);
136 ir3_instr_move_before(clone, spill);
145 clone->cat6.dst_offset += comp * component_bytes(spill->srcs[1]);
148 list_delinit(&spill->node);