summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVincent Lejeune <[email protected]>2013-04-02 19:19:24 +0200
committerVincent Lejeune <[email protected]>2013-04-03 18:22:40 +0200
commit097a6ecdfe592fdf2c5f3b48a17da6507eaa405c (patch)
treea17ccdbd2716843478146eae620315d843d39b03 /src
parentff01e0db0e45b47b6012e7c28f331a4a8e518df9 (diff)
r600g/llvm: Do not change cf_alu inst when adding alus
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/r600/r600_shader.c9
1 files changed, 2 insertions, 7 deletions
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);