mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-05 10:30:26 +01:00
tgsi: Fix parsing an instruction with no operands.
This commit is contained in:
parent
10d1dc68a4
commit
f2053cfa1a
1 changed files with 12 additions and 3 deletions
|
|
@ -758,13 +758,20 @@ parse_instruction(
|
|||
for (i = 0; i < TGSI_OPCODE_LAST; i++) {
|
||||
const char *cur = ctx->cur;
|
||||
|
||||
if (str_match_no_case( &cur, opcode_info[i].mnemonic )) {
|
||||
info = &opcode_info[i];
|
||||
if (str_match_no_case( &cur, info->mnemonic )) {
|
||||
if (str_match_no_case( &cur, "_SATNV" ))
|
||||
saturate = TGSI_SAT_MINUS_PLUS_ONE;
|
||||
else if (str_match_no_case( &cur, "_SAT" ))
|
||||
saturate = TGSI_SAT_ZERO_ONE;
|
||||
|
||||
if (*cur == '\0' || eat_white( &cur )) {
|
||||
if (info->num_dst + info->num_src + info->is_tex == 0) {
|
||||
if (!is_digit_alpha_underscore( cur )) {
|
||||
ctx->cur = cur;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (*cur == '\0' || eat_white( &cur )) {
|
||||
ctx->cur = cur;
|
||||
break;
|
||||
}
|
||||
|
|
@ -777,7 +784,6 @@ parse_instruction(
|
|||
report_error( ctx, "Expected `DCL', `IMM' or a label" );
|
||||
return FALSE;
|
||||
}
|
||||
info = &opcode_info[i];
|
||||
|
||||
inst = tgsi_default_full_instruction();
|
||||
inst.Instruction.Opcode = i;
|
||||
|
|
@ -1031,6 +1037,9 @@ static boolean translate( struct translate_ctx *ctx )
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
if (*ctx->cur == '\0')
|
||||
break;
|
||||
|
||||
if (parse_label( ctx, &label_val )) {
|
||||
if (!parse_instruction( ctx, TRUE ))
|
||||
return FALSE;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue