mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-01 06:50:22 +01:00
gallium: fix tgsi sanity checker with respect to END.
Subroutine code may be found after the END instruction so it's not always the last instruction. At least check for presence of exactly one END instruction though.
This commit is contained in:
parent
133693ebe8
commit
e6a120fefe
1 changed files with 7 additions and 9 deletions
|
|
@ -180,12 +180,10 @@ iter_instruction(
|
|||
const struct tgsi_opcode_info *info;
|
||||
uint i;
|
||||
|
||||
/* There must be no other instructions after END.
|
||||
*/
|
||||
if (ctx->index_of_END != ~0) {
|
||||
report_error( ctx, "Unexpected instruction after END" );
|
||||
}
|
||||
else if (inst->Instruction.Opcode == TGSI_OPCODE_END) {
|
||||
if (inst->Instruction.Opcode == TGSI_OPCODE_END) {
|
||||
if (ctx->index_of_END != ~0) {
|
||||
report_error( ctx, "Too many END instructions" );
|
||||
}
|
||||
ctx->index_of_END = ctx->num_instructions;
|
||||
}
|
||||
|
||||
|
|
@ -307,10 +305,10 @@ epilog(
|
|||
struct sanity_check_ctx *ctx = (struct sanity_check_ctx *) iter;
|
||||
uint file;
|
||||
|
||||
/* There must be an END instruction at the end.
|
||||
/* There must be an END instruction somewhere.
|
||||
*/
|
||||
if (ctx->index_of_END == ~0 || ctx->index_of_END != ctx->num_instructions - 1) {
|
||||
report_error( ctx, "Expected END at end of instruction sequence" );
|
||||
if (ctx->index_of_END == ~0) {
|
||||
report_error( ctx, "Missing END instruction" );
|
||||
}
|
||||
|
||||
/* Check if all declared registers were used.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue