[Mesa-dev] [PATCH v3 05/12] gallium/tgsi/text: Make label parsing optional for branch instructions.
Jose Fonseca
jfonseca at vmware.com
Tue Mar 27 07:33:06 PDT 2012
Looks good thanks.
Jose
----- Original Message -----
> Structured branch instructions like IF, ELSE, BGNLOOP, ENDLOOP no
> longer require a label argument, make it optional for them.
> ---
> src/gallium/auxiliary/tgsi/tgsi_text.c | 19 +++++++++----------
> 1 file changed, 9 insertions(+), 10 deletions(-)
>
> diff --git a/src/gallium/auxiliary/tgsi/tgsi_text.c
> b/src/gallium/auxiliary/tgsi/tgsi_text.c
> index 56a90f7..554afa0 100644
> --- a/src/gallium/auxiliary/tgsi/tgsi_text.c
> +++ b/src/gallium/auxiliary/tgsi/tgsi_text.c
> @@ -821,6 +821,7 @@ parse_instruction(
> uint saturate = TGSI_SAT_NONE;
> const struct tgsi_opcode_info *info;
> struct tgsi_full_instruction inst;
> + const char *cur;
> uint advance;
>
> inst = tgsi_default_full_instruction();
> @@ -866,7 +867,7 @@ parse_instruction(
> */
> eat_opt_white( &ctx->cur );
> for (i = 0; i < TGSI_OPCODE_LAST; i++) {
> - const char *cur = ctx->cur;
> + cur = ctx->cur;
>
> info = tgsi_get_opcode_info( i );
> if (match_inst_mnemonic(&cur, info)) {
> @@ -940,22 +941,20 @@ parse_instruction(
> }
> }
>
> - if (info->is_branch) {
> + cur = ctx->cur;
> + eat_opt_white( &cur );
> + if (info->is_branch && *cur == ':') {
> uint target;
>
> - eat_opt_white( &ctx->cur );
> - if (*ctx->cur != ':') {
> - report_error( ctx, "Expected `:'" );
> - return FALSE;
> - }
> - ctx->cur++;
> - eat_opt_white( &ctx->cur );
> - if (!parse_uint( &ctx->cur, &target )) {
> + cur++;
> + eat_opt_white( &cur );
> + if (!parse_uint( &cur, &target )) {
> report_error( ctx, "Expected a label" );
> return FALSE;
> }
> inst.Instruction.Label = 1;
> inst.Label.Label = target;
> + ctx->cur = cur;
> }
>
> advance = tgsi_build_full_instruction(
> --
> 1.7.9.2
>
>
More information about the mesa-dev
mailing list