diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2012-03-14 14:03:33 -0400 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2012-03-14 14:03:33 -0400 |
commit | 60b1e13e4e64f5512da8ad13eb8da36539432af6 (patch) | |
tree | 24b0ffbb2374127e9761579ca852a04e57e20953 | |
parent | 73f851d1257d1e3e8c9581b28dd9d01d1d3ce79d (diff) |
r600g: Handle continue instruction in bytestream => r600_bytecode
-rw-r--r-- | src/gallium/drivers/r600/r600_shader.c | 16 |
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; |