[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