From: Vincent Lejeune Date: Tue, 2 Apr 2013 17:19:24 +0000 (+0200) Subject: r600g/llvm: Do not change cf_alu inst when adding alus X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=097a6ecdfe592fdf2c5f3b48a17da6507eaa405c;p=mesa.git r600g/llvm: Do not change cf_alu inst when adding alus --- diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c index 82885d1370e..d24d8e704e9 100644 --- a/src/gallium/drivers/r600/r600_shader.c +++ b/src/gallium/drivers/r600/r600_shader.c @@ -399,12 +399,7 @@ static unsigned r600_alu_from_byte_stream(struct r600_shader_ctx *ctx, return bytes_read; } - if (alu.execute_mask) { - alu.pred_sel = 0; - r600_bytecode_add_alu_type(ctx->bc, &alu, CF_OP_ALU_PUSH_BEFORE); - } else { - r600_bytecode_add_alu(ctx->bc, &alu); - } + r600_bytecode_add_alu_type(ctx->bc, &alu, ctx->bc->cf_last->op); /* XXX: Handle other KILL instructions */ if (alu_op->flags & AF_KILL) { @@ -632,7 +627,7 @@ static void r600_bytecode_from_byte_stream(struct r600_shader_ctx *ctx, int32_t word1 = i32_from_byte_stream(bytes, &bytes_read); r600_bytecode_add_cf(ctx->bc); - ctx->bc->cf_last->op = r600_isa_cf_by_opcode(ctx->bc->isa, 8/* CF_ALU*/, 1); + ctx->bc->cf_last->op = r600_isa_cf_by_opcode(ctx->bc->isa, G_SQ_CF_ALU_WORD1_CF_INST(word1), 1); ctx->bc->cf_last->kcache[0].bank = G_SQ_CF_ALU_WORD0_KCACHE_BANK0(word0); ctx->bc->cf_last->kcache[0].addr = G_SQ_CF_ALU_WORD1_KCACHE_ADDR0(word1); ctx->bc->cf_last->kcache[0].mode = G_SQ_CF_ALU_WORD0_KCACHE_MODE0(word0);