Lines Matching defs:cf

216 	struct r600_bytecode_cf *cf = CALLOC_STRUCT(r600_bytecode_cf);
218 if (cf == NULL)
220 LIST_INITHEAD(&cf->list);
221 LIST_INITHEAD(&cf->alu);
222 LIST_INITHEAD(&cf->vtx);
223 LIST_INITHEAD(&cf->tex);
224 return cf;
268 LIST_INITHEAD(&bc->cf);
274 struct r600_bytecode_cf *cf = r600_bytecode_cf();
276 if (cf == NULL)
278 LIST_ADDTAIL(&cf->list, &bc->cf);
280 cf->id = bc->cf_last->id + 2;
283 cf->id += 2;
287 bc->cf_last = cf;
1455 /* cf can contains only alu or only vtx or only tex */
1600 /* cf can contains only alu or only vtx or only tex */
1657 /* slight hack to make gradients always go into same cf */
1662 /* cf can contains only alu or only vtx or only tex */
1808 static void r600_bytecode_cf_vtx_build(uint32_t *bytecode, const struct r600_bytecode_cf *cf)
1810 *bytecode++ = S_SQ_CF_WORD0_ADDR(cf->addr >> 1);
1811 *bytecode++ = cf->inst |
1813 S_SQ_CF_WORD1_COUNT((cf->ndw / 4) - 1);
1817 static int r600_bytecode_cf_build(struct r600_bytecode *bc, struct r600_bytecode_cf *cf)
1819 unsigned id = cf->id;
1821 switch (cf->inst) {
1826 bc->bytecode[id++] = S_SQ_CF_ALU_WORD0_ADDR(cf->addr >> 1) |
1827 S_SQ_CF_ALU_WORD0_KCACHE_MODE0(cf->kcache[0].mode) |
1828 S_SQ_CF_ALU_WORD0_KCACHE_BANK0(cf->kcache[0].bank) |
1829 S_SQ_CF_ALU_WORD0_KCACHE_BANK1(cf->kcache[1].bank);
1831 bc->bytecode[id++] = cf->inst |
1832 S_SQ_CF_ALU_WORD1_KCACHE_MODE1(cf->kcache[1].mode) |
1833 S_SQ_CF_ALU_WORD1_KCACHE_ADDR0(cf->kcache[0].addr) |
1834 S_SQ_CF_ALU_WORD1_KCACHE_ADDR1(cf->kcache[1].addr) |
1836 S_SQ_CF_ALU_WORD1_USES_WATERFALL(bc->chip_class == R600 ? cf->r6xx_uses_waterfall : 0) |
1837 S_SQ_CF_ALU_WORD1_COUNT((cf->ndw / 2) - 1);
1843 r700_bytecode_cf_vtx_build(&bc->bytecode[id], cf);
1845 r600_bytecode_cf_vtx_build(&bc->bytecode[id], cf);
1849 bc->bytecode[id++] = S_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR(cf->output.gpr) |
1850 S_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE(cf->output.elem_size) |
1851 S_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE(cf->output.array_base) |
1852 S_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(cf->output.type);
1853 bc->bytecode[id++] = S_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT(cf->output.burst_count - 1) |
1854 S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_X(cf->output.swizzle_x) |
1855 S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Y(cf->output.swizzle_y) |
1856 S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Z(cf->output.swizzle_z) |
1857 S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_W(cf->output.swizzle_w) |
1858 S_SQ_CF_ALLOC_EXPORT_WORD1_BARRIER(cf->output.barrier) |
1859 cf->output.inst |
1860 S_SQ_CF_ALLOC_EXPORT_WORD1_END_OF_PROGRAM(cf->output.end_of_program);
1866 bc->bytecode[id++] = S_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR(cf->output.gpr) |
1867 S_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE(cf->output.elem_size) |
1868 S_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE(cf->output.array_base) |
1869 S_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(cf->output.type);
1870 bc->bytecode[id++] = S_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT(cf->output.burst_count - 1) |
1871 S_SQ_CF_ALLOC_EXPORT_WORD1_BARRIER(cf->output.barrier) |
1872 cf->output.inst |
1873 S_SQ_CF_ALLOC_EXPORT_WORD1_END_OF_PROGRAM(cf->output.end_of_program) |
1874 S_SQ_CF_ALLOC_EXPORT_WORD1_BUF_ARRAY_SIZE(cf->output.array_size) |
1875 S_SQ_CF_ALLOC_EXPORT_WORD1_BUF_COMP_MASK(cf->output.comp_mask);
1887 bc->bytecode[id++] = S_SQ_CF_WORD0_ADDR(cf->cf_addr >> 1);
1888 bc->bytecode[id++] = cf->inst |
1890 S_SQ_CF_WORD1_COND(cf->cond) |
1891 S_SQ_CF_WORD1_POP_COUNT(cf->pop_count);
1895 R600_ERR("unsupported CF instruction (0x%X)\n", cf->inst);
1903 struct r600_bytecode_cf *cf;
1921 LIST_FOR_EACH_ENTRY(cf, &bc->cf, list) {
1923 switch (cf->inst) {
1966 R600_ERR("unsupported CF instruction (0x%X)\n", cf->inst);
1970 switch (cf->inst) {
1999 R600_ERR("unsupported CF instruction (0x%X)\n", cf->inst);
2003 cf->addr = addr;
2004 addr += cf->ndw;
2005 bc->ndw = cf->addr + cf->ndw;
2011 LIST_FOR_EACH_ENTRY(cf, &bc->cf, list) {
2012 addr = cf->addr;
2014 r = eg_bytecode_cf_build(bc, cf);
2018 switch (cf->inst) {
2025 LIST_FOR_EACH_ENTRY(alu, &cf->alu, list) {
2030 r600_bytecode_assign_kcache_banks(bc, alu, cf->kcache);
2054 LIST_FOR_EACH_ENTRY(vtx, &cf->vtx, list) {
2062 LIST_FOR_EACH_ENTRY(vtx, &cf->vtx, list) {
2069 LIST_FOR_EACH_ENTRY(tex, &cf->tex, list) {
2109 R600_ERR("unsupported CF instruction (0x%X)\n", cf->inst);
2113 r = r600_bytecode_cf_build(bc, cf);
2117 switch (cf->inst) {
2124 LIST_FOR_EACH_ENTRY(alu, &cf->alu, list) {
2129 r600_bytecode_assign_kcache_banks(bc, alu, cf->kcache);
2156 LIST_FOR_EACH_ENTRY(vtx, &cf->vtx, list) {
2164 LIST_FOR_EACH_ENTRY(tex, &cf->tex, list) {
2189 R600_ERR("unsupported CF instruction (0x%X)\n", cf->inst);
2199 struct r600_bytecode_cf *cf = NULL, *next_cf;
2204 LIST_FOR_EACH_ENTRY_SAFE(cf, next_cf, &bc->cf, list) {
2209 LIST_FOR_EACH_ENTRY_SAFE(alu, next_alu, &cf->alu, list) {
2213 LIST_INITHEAD(&cf->alu);
2215 LIST_FOR_EACH_ENTRY_SAFE(tex, next_tex, &cf->tex, list) {
2219 LIST_INITHEAD(&cf->tex);
2221 LIST_FOR_EACH_ENTRY_SAFE(vtx, next_vtx, &cf->vtx, list) {
2225 LIST_INITHEAD(&cf->vtx);
2227 free(cf);
2230 LIST_INITHEAD(&cf->list);
2235 struct r600_bytecode_cf *cf = NULL;
2263 LIST_FOR_EACH_ENTRY(cf, &bc->cf, list) {
2264 id = cf->id;
2267 switch (cf->inst) {
2272 if (cf->eg_alu_extended) {
2274 fprintf(stderr, "KCACHE_BANK2:%X ", cf->kcache[2].bank);
2275 fprintf(stderr, "KCACHE_BANK3:%X ", cf->kcache[3].bank);
2276 fprintf(stderr, "KCACHE_MODE2:%X\n", cf->kcache[2].mode);
2279 fprintf(stderr, "KCACHE_MODE3:%X ", cf->kcache[3].mode);
2280 fprintf(stderr, "KCACHE_ADDR2:%X ", cf->kcache[2].addr);
2281 fprintf(stderr, "KCACHE_ADDR3:%X\n", cf->kcache[3].addr);
2286 fprintf(stderr, "ADDR:%d ", cf->addr);
2287 fprintf(stderr, "KCACHE_MODE0:%X ", cf->kcache[0].mode);
2288 fprintf(stderr, "KCACHE_BANK0:%X ", cf->kcache[0].bank);
2289 fprintf(stderr, "KCACHE_BANK1:%X\n", cf->kcache[1].bank);
2292 fprintf(stderr, "INST:0x%x ", EG_G_SQ_CF_ALU_WORD1_CF_INST(cf->inst));
2293 fprintf(stderr, "KCACHE_MODE1:%X ", cf->kcache[1].mode);
2294 fprintf(stderr, "KCACHE_ADDR0:%X ", cf->kcache[0].addr);
2295 fprintf(stderr, "KCACHE_ADDR1:%X ", cf->kcache[1].addr);
2296 fprintf(stderr, "COUNT:%d\n", cf->ndw / 2);
2301 fprintf(stderr, "ADDR:%d\n", cf->addr);
2304 fprintf(stderr, "INST:0x%x ", EG_G_SQ_CF_WORD1_CF_INST(cf->inst));
2305 fprintf(stderr, "COUNT:%d\n", cf->ndw / 4);
2310 fprintf(stderr, "GPR:%X ", cf->output.gpr);
2311 fprintf(stderr, "ELEM_SIZE:%X ", cf->output.elem_size);
2312 fprintf(stderr, "ARRAY_BASE:%X ", cf->output.array_base);
2313 fprintf(stderr, "TYPE:%X\n", cf->output.type);
2316 fprintf(stderr, "SWIZ_X:%X ", cf->output.swizzle_x);
2317 fprintf(stderr, "SWIZ_Y:%X ", cf->output.swizzle_y);
2318 fprintf(stderr, "SWIZ_Z:%X ", cf->output.swizzle_z);
2319 fprintf(stderr, "SWIZ_W:%X ", cf->output.swizzle_w);
2320 fprintf(stderr, "BARRIER:%X ", cf->output.barrier);
2321 fprintf(stderr, "INST:0x%x ", EG_G_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(cf->output.inst));
2322 fprintf(stderr, "BURST_COUNT:%d ", cf->output.burst_count);
2323 fprintf(stderr, "EOP:%X\n", cf->output.end_of_program);
2342 (EG_G_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(cf->inst) -
2344 (EG_G_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(cf->inst) -
2346 fprintf(stderr, "GPR:%X ", cf->output.gpr);
2347 fprintf(stderr, "ELEM_SIZE:%i ", cf->output.elem_size);
2348 fprintf(stderr, "ARRAY_BASE:%i ", cf->output.array_base);
2349 fprintf(stderr, "TYPE:%X\n", cf->output.type);
2352 (EG_G_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(cf->inst) -
2354 (EG_G_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(cf->inst) -
2356 fprintf(stderr, "ARRAY_SIZE:%i ", cf->output.array_size);
2357 fprintf(stderr, "COMP_MASK:%X ", cf->output.comp_mask);
2358 fprintf(stderr, "BARRIER:%X ", cf->output.barrier);
2359 fprintf(stderr, "INST:%d ", cf->output.inst);
2360 fprintf(stderr, "BURST_COUNT:%d ", cf->output.burst_count);
2361 fprintf(stderr, "EOP:%X\n", cf->output.end_of_program);
2375 fprintf(stderr, "ADDR:%d\n", cf->cf_addr);
2378 fprintf(stderr, "INST:0x%x ", EG_G_SQ_CF_WORD1_CF_INST(cf->inst));
2379 fprintf(stderr, "COND:%X ", cf->cond);
2380 fprintf(stderr, "POP_COUNT:%X\n", cf->pop_count);
2387 R600_ERR("Unknown instruction %0x\n", cf->inst);
2390 switch (cf->inst) {
2396 fprintf(stderr, "ADDR:%d ", cf->addr);
2397 fprintf(stderr, "KCACHE_MODE0:%X ", cf->kcache[0].mode);
2398 fprintf(stderr, "KCACHE_BANK0:%X ", cf->kcache[0].bank);
2399 fprintf(stderr, "KCACHE_BANK1:%X\n", cf->kcache[1].bank);
2402 fprintf(stderr, "INST:0x%x ", R600_G_SQ_CF_ALU_WORD1_CF_INST(cf->inst));
2403 fprintf(stderr, "KCACHE_MODE1:%X ", cf->kcache[1].mode);
2404 fprintf(stderr, "KCACHE_ADDR0:%X ", cf->kcache[0].addr);
2405 fprintf(stderr, "KCACHE_ADDR1:%X ", cf->kcache[1].addr);
2406 fprintf(stderr, "COUNT:%d\n", cf->ndw / 2);
2412 fprintf(stderr, "ADDR:%d\n", cf->addr);
2415 fprintf(stderr, "INST:0x%x ", R600_G_SQ_CF_WORD1_CF_INST(cf->inst));
2416 fprintf(stderr, "COUNT:%d\n", cf->ndw / 4);
2421 fprintf(stderr, "GPR:%X ", cf->output.gpr);
2422 fprintf(stderr, "ELEM_SIZE:%X ", cf->output.elem_size);
2423 fprintf(stderr, "ARRAY_BASE:%X ", cf->output.array_base);
2424 fprintf(stderr, "TYPE:%X\n", cf->output.type);
2427 fprintf(stderr, "SWIZ_X:%X ", cf->output.swizzle_x);
2428 fprintf(stderr, "SWIZ_Y:%X ", cf->output.swizzle_y);
2429 fprintf(stderr, "SWIZ_Z:%X ", cf->output.swizzle_z);
2430 fprintf(stderr, "SWIZ_W:%X ", cf->output.swizzle_w);
2431 fprintf(stderr, "BARRIER:%X ", cf->output.barrier);
2432 fprintf(stderr, "INST:0x%x ", R600_G_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(cf->output.inst));
2433 fprintf(stderr, "BURST_COUNT:%d ", cf->output.burst_count);
2434 fprintf(stderr, "EOP:%X\n", cf->output.end_of_program);
2441 R600_G_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(cf->inst) -
2443 fprintf(stderr, "GPR:%X ", cf->output.gpr);
2444 fprintf(stderr, "ELEM_SIZE:%i ", cf->output.elem_size);
2445 fprintf(stderr, "ARRAY_BASE:%i ", cf->output.array_base);
2446 fprintf(stderr, "TYPE:%X\n", cf->output.type);
2449 R600_G_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(cf->inst) -
2451 fprintf(stderr, "ARRAY_SIZE:%i ", cf->output.array_size);
2452 fprintf(stderr, "COMP_MASK:%X ", cf->output.comp_mask);
2453 fprintf(stderr, "BARRIER:%X ", cf->output.barrier);
2454 fprintf(stderr, "INST:%d ", cf->output.inst);
2455 fprintf(stderr, "BURST_COUNT:%d ", cf->output.burst_count);
2456 fprintf(stderr, "EOP:%X\n", cf->output.end_of_program);
2469 fprintf(stderr, "ADDR:%d\n", cf->cf_addr);
2472 fprintf(stderr, "INST:0x%x ", R600_G_SQ_CF_WORD1_CF_INST(cf->inst));
2473 fprintf(stderr, "COND:%X ", cf->cond);
2474 fprintf(stderr, "POP_COUNT:%X\n", cf->pop_count);
2477 R600_ERR("Unknown instruction %0x\n", cf->inst);
2481 id = cf->addr;
2483 LIST_FOR_EACH_ENTRY(alu, &cf->alu, list) {
2532 LIST_FOR_EACH_ENTRY(tex, &cf->tex, list) {
2566 LIST_FOR_EACH_ENTRY(vtx, &cf->vtx, list) {