Lines Matching refs:ins
118 mir_print_embedded_constant(midgard_instruction *ins, unsigned src_idx)
122 unsigned base_size = max_bitsize_for_alu(ins);
123 unsigned sz = nir_alu_type_get_type_size(ins->src_types[src_idx]);
125 unsigned mod = mir_pack_mod(ins, src_idx, false);
126 unsigned *swizzle = ins->swizzle[src_idx];
127 midgard_reg_mode reg_mode = reg_mode_for_bitsize(max_bitsize_for_alu(ins));
128 unsigned comp_mask = effective_writemask(ins->op, ins->mask);
130 unsigned max_comp = mir_components_for_type(ins->dest_type);
147 mir_print_constant_component(stdout, &ins->constants,
149 half, mod, ins->op);
157 mir_print_src(midgard_instruction *ins, unsigned c)
159 mir_print_index(ins->src[c]);
161 if (ins->src[c] != ~0 && ins->src_types[c] != nir_type_invalid) {
162 pan_print_alu_type(ins->src_types[c], stdout);
163 mir_print_swizzle(ins->mask, ins->swizzle[c]);
168 mir_print_instruction(midgard_instruction *ins)
172 if (midgard_is_branch_unit(ins->unit)) {
177 printf("%s.", mir_get_unit(ins->unit));
178 if (ins->branch.target_type == TARGET_DISCARD)
180 else if (ins->writeout)
182 else if (ins->unit == ALU_ENAB_BR_COMPACT &&
183 !ins->branch.conditional)
188 if (!ins->branch.conditional)
190 else if (ins->branch.invert_conditional)
195 if (ins->writeout) {
197 mir_print_src(ins, 0);
199 mir_print_src(ins, 2);
201 mir_print_src(ins, 3);
205 if (ins->branch.target_type != TARGET_DISCARD)
207 ins->branch.target_type < 4 ?
208 branch_target_names[ins->branch.target_type] : "??",
209 ins->branch.target_block);
214 switch (ins->type) {
216 midgard_alu_op op = ins->op;
219 if (ins->unit)
220 printf("%s.", mir_get_unit(ins->unit));
224 if (!(midgard_is_integer_out_op(ins->op) && ins->outmod == midgard_outmod_keeplo)) {
225 mir_print_outmod(stdout, ins->outmod, midgard_is_integer_out_op(ins->op));
232 midgard_load_store_op op = ins->op;
243 if (ins->helper_terminate)
246 if (ins->helper_execute)
256 if (ins->compact_branch && ins->branch.invert_conditional)
260 mir_print_index(ins->dest);
262 if (ins->dest != ~0) {
263 pan_print_alu_type(ins->dest_type, stdout);
264 mir_print_mask(ins->mask);
271 bool is_alu = ins->type == TAG_ALU_4;
274 if (is_alu && alu_opcode_props[ins->op].props & QUIRK_FLIPPED_R24) {
278 assert(ins->src[0] == ~0);
280 if (ins->src[0] == r_constant && is_alu)
281 mir_print_embedded_constant(ins, 0);
283 mir_print_src(ins, 0);
288 if (ins->has_inline_constant)
289 printf("#%d", ins->inline_constant);
290 else if (ins->src[1] == r_constant && is_alu)
291 mir_print_embedded_constant(ins, 1);
293 mir_print_src(ins, 1);
299 switch (ins->op) {
305 mir_print_src(ins, 2);
308 assert(ins->src[2] == ~0);
312 assert(ins->src[3] == ~0);
316 mir_print_src(ins, c);
320 if (ins->no_spill)
341 mir_foreach_instr_in_block(block, ins) {
342 mir_print_instruction(ins);