Lines Matching defs:output

199 		const struct r600_bytecode_output *output)
203 if (output->gpr >= bc->ngpr)
204 bc->ngpr = output->gpr + 1;
206 if (bc->cf_last && (bc->cf_last->op == output->op ||
208 output->op == CF_OP_EXPORT_DONE)) &&
209 output->type == bc->cf_last->output.type &&
210 output->elem_size == bc->cf_last->output.elem_size &&
211 output->swizzle_x == bc->cf_last->output.swizzle_x &&
212 output->swizzle_y == bc->cf_last->output.swizzle_y &&
213 output->swizzle_z == bc->cf_last->output.swizzle_z &&
214 output->swizzle_w == bc->cf_last->output.swizzle_w &&
215 output->comp_mask == bc->cf_last->output.comp_mask &&
216 (output->burst_count + bc->cf_last->output.burst_count) <= 16) {
218 if ((output->gpr + output->burst_count) == bc->cf_last->output.gpr &&
219 (output->array_base + output->burst_count) == bc->cf_last->output.array_base) {
221 bc->cf_last->op = bc->cf_last->output.op = output->op;
222 bc->cf_last->output.gpr = output->gpr;
223 bc->cf_last->output.array_base = output->array_base;
224 bc->cf_last->output.burst_count += output->burst_count;
227 } else if (output->gpr == (bc->cf_last->output.gpr + bc->cf_last->output.burst_count) &&
228 output->array_base == (bc->cf_last->output.array_base + bc->cf_last->output.burst_count)) {
230 bc->cf_last->op = bc->cf_last->output.op = output->op;
231 bc->cf_last->output.burst_count += output->burst_count;
239 bc->cf_last->op = output->op;
240 memcpy(&bc->cf_last->output, output, sizeof(struct r600_bytecode_output));
246 const struct r600_bytecode_output *output)
249 bc->pending_outputs[bc->n_pending_outputs++] = *output;
1790 bc->bytecode[id++] = S_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR(cf->output.gpr) |
1791 S_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE(cf->output.elem_size) |
1792 S_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE(cf->output.array_base) |
1793 S_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(cf->output.type) |
1794 S_SQ_CF_ALLOC_EXPORT_WORD0_INDEX_GPR(cf->output.index_gpr);
1795 bc->bytecode[id++] = S_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT(cf->output.burst_count - 1) |
1796 S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_X(cf->output.swizzle_x) |
1797 S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Y(cf->output.swizzle_y) |
1798 S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Z(cf->output.swizzle_z) |
1799 S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_W(cf->output.swizzle_w) |
1804 bc->bytecode[id++] = S_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR(cf->output.gpr) |
1805 S_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE(cf->output.elem_size) |
1806 S_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE(cf->output.array_base) |
1807 S_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(cf->output.type) |
1808 S_SQ_CF_ALLOC_EXPORT_WORD0_INDEX_GPR(cf->output.index_gpr);
1809 bc->bytecode[id++] = S_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT(cf->output.burst_count - 1) |
1813 S_SQ_CF_ALLOC_EXPORT_WORD1_BUF_ARRAY_SIZE(cf->output.array_size) |
1814 S_SQ_CF_ALLOC_EXPORT_WORD1_BUF_COMP_MASK(cf->output.comp_mask);
2246 o += fprintf(stderr, "%s ", exp_type[cf->output.type]);
2247 if (cf->output.burst_count > 1) {
2248 o += fprintf(stderr, "%d-%d ", cf->output.array_base,
2249 cf->output.array_base + cf->output.burst_count - 1);
2252 o += fprintf(stderr, "R%d-%d.", cf->output.gpr,
2253 cf->output.gpr + cf->output.burst_count - 1);
2255 o += fprintf(stderr, "%d ", cf->output.array_base);
2257 o += fprintf(stderr, "R%d.", cf->output.gpr);
2260 o += print_swizzle(cf->output.swizzle_x);
2261 o += print_swizzle(cf->output.swizzle_y);
2262 o += print_swizzle(cf->output.swizzle_z);
2263 o += print_swizzle(cf->output.swizzle_w);
2267 fprintf(stderr, " ES:%X ", cf->output.elem_size);
2282 o += fprintf(stderr, "%s ", exp_type[cf->output.type]);
2292 if (cf->output.burst_count > 1) {
2293 o += fprintf(stderr, "%d-%d ", cf->output.array_base,
2294 cf->output.array_base + cf->output.burst_count - 1);
2296 o += fprintf(stderr, "R%d-%d.", cf->output.gpr,
2297 cf->output.gpr + cf->output.burst_count - 1);
2299 o += fprintf(stderr, "%d ", cf->output.array_base);
2301 o += fprintf(stderr, "R%d.", cf->output.gpr);
2304 if (cf->output.comp_mask & (1 << i))
2310 if (cf->output.type == V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_WRITE_IND ||
2311 cf->output.type == V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_READ_IND)
2312 o += fprintf(stderr, " R%d", cf->output.index_gpr);
2316 fprintf(stderr, " ES:%i ", cf->output.elem_size);
2317 if (cf->output.array_size != 0xFFF)
2318 fprintf(stderr, "AS:%i ", cf->output.array_size);
2326 if (cf->output.mark)
2929 struct r600_bytecode_output *output, uint32_t word0, uint32_t word1)
2931 output->array_base = G_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE(word0);
2932 output->type = G_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(word0);
2933 output->gpr = G_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR(word0);
2934 output->elem_size = G_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE(word0);
2936 output->swizzle_x = G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_X(word1);
2937 output->swizzle_y = G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Y(word1);
2938 output->swizzle_z = G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Z(word1);
2939 output->swizzle_w = G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_W(word1);
2940 output->burst_count = G_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT(word1);
2941 output->end_of_program = G_SQ_CF_ALLOC_EXPORT_WORD1_END_OF_PROGRAM(word1);
2942 output->op = r600_isa_cf_by_opcode(bc->isa,
2944 output->barrier = G_SQ_CF_ALLOC_EXPORT_WORD1_BARRIER(word1);
2945 output->array_size = G_SQ_CF_ALLOC_EXPORT_WORD1_BUF_ARRAY_SIZE(word1);
2946 output->comp_mask = G_SQ_CF_ALLOC_EXPORT_WORD1_BUF_COMP_MASK(word1);