summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2012-03-14 14:03:33 -0400
committerTom Stellard <thomas.stellard@amd.com>2012-03-14 14:03:33 -0400
commit60b1e13e4e64f5512da8ad13eb8da36539432af6 (patch)
tree24b0ffbb2374127e9761579ca852a04e57e20953
parent73f851d1257d1e3e8c9581b28dd9d01d1d3ce79d (diff)
r600g: Handle continue instruction in bytestream => r600_bytecode
-rw-r--r--src/gallium/drivers/r600/r600_shader.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index eaa772cebb0..4222033e49e 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -374,6 +374,22 @@ static unsigned r600_fc_from_byte_stream(struct r600_shader_ctx *ctx,
r600_break_from_byte_stream(ctx, &alu,
CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETNE_INT));
break;
+ case 7:
+ {
+ unsigned opcode = TGSI_OPCODE_CONT;
+ if (ctx->bc->chip_class == CAYMAN) {
+ ctx->inst_info =
+ &cm_shader_tgsi_instruction[opcode];
+ } else if (ctx->bc->chip_class >= EVERGREEN) {
+ ctx->inst_info =
+ &eg_shader_tgsi_instruction[opcode];
+ } else {
+ ctx->inst_info =
+ &r600_shader_tgsi_instruction[opcode];
+ }
+ tgsi_loop_brk_cont(ctx);
+ }
+ break;
}
return bytes_read;