diff options
Diffstat (limited to 'src/gallium/drivers/lima/ir/pp/instr.c')
-rw-r--r-- | src/gallium/drivers/lima/ir/pp/instr.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/gallium/drivers/lima/ir/pp/instr.c b/src/gallium/drivers/lima/ir/pp/instr.c index 8e1bc95158d..707055c48ac 100644 --- a/src/gallium/drivers/lima/ir/pp/instr.c +++ b/src/gallium/drivers/lima/ir/pp/instr.c @@ -186,18 +186,17 @@ bool ppir_instr_insert_node(ppir_instr *instr, ppir_node *node) uint8_t swizzle[4] = {0}; if (ppir_instr_insert_const(&ic, nc, swizzle)) { + instr->constant[i] = ic; ppir_node *succ = ppir_node_first_succ(node); - ppir_src *src = NULL; for (int s = 0; s < ppir_node_get_src_num(succ); s++) { - src = ppir_node_get_src(succ, s); - if (src->node == node) - break; - } - assert(src->node == node); + ppir_src *src = ppir_node_get_src(succ, s); + assert(src); + if (src->node != node) + continue; - instr->constant[i] = ic; - ppir_update_src_pipeline(ppir_pipeline_reg_const0 + i, src, - &c->dest, swizzle); + ppir_update_src_pipeline(ppir_pipeline_reg_const0 + i, src, + &c->dest, swizzle); + } break; } } @@ -284,7 +283,7 @@ void ppir_instr_print_list(ppir_compiler *comp) list_for_each_entry(ppir_block, block, &comp->block_list, list) { printf("-------block %3d-------\n", block->index); list_for_each_entry(ppir_instr, instr, &block->instr_list, list) { - printf("%c%03d: ", instr->is_end ? '*' : ' ', instr->index); + printf("%c%03d: ", instr->stop ? '*' : ' ', instr->index); for (int i = 0; i < PPIR_INSTR_SLOT_NUM; i++) { ppir_node *node = instr->slots[i]; if (node) |