diff --git a/src/freedreno/ir3/ir3_lexer.l b/src/freedreno/ir3/ir3_lexer.l index 542e6ee6efa..2aef2f52a52 100644 --- a/src/freedreno/ir3/ir3_lexer.l +++ b/src/freedreno/ir3/ir3_lexer.l @@ -152,6 +152,7 @@ static int parse_reg(const char *str) "@tex" return TOKEN(T_A_TEX); "@pvtmem" return TOKEN(T_A_PVTMEM); "@localmem" return TOKEN(T_A_LOCALMEM); +"@constlen" return TOKEN(T_A_CONSTLEN); "@earlypreamble" return TOKEN(T_A_EARLYPREAMBLE); "@fullnopstart" return TOKEN(T_A_FULLNOPSTART); "@fullnopend" return TOKEN(T_A_FULLNOPEND); diff --git a/src/freedreno/ir3/ir3_parser.y b/src/freedreno/ir3/ir3_parser.y index 4ea38e0d7dd..3ee917d9986 100644 --- a/src/freedreno/ir3/ir3_parser.y +++ b/src/freedreno/ir3/ir3_parser.y @@ -82,6 +82,7 @@ static void print_token(FILE *file, int type, YYSTYPE value) %token T_A_TEX %token T_A_PVTMEM %token T_A_LOCALMEM +%token T_A_CONSTLEN %token T_A_EARLYPREAMBLE %token T_A_FULLNOPSTART %token T_A_FULLNOPEND @@ -508,6 +509,7 @@ header: localsize_header | pvtmem_header | localmem_header | earlypreamble_header +| constlen_header const_val: T_FLOAT { $$ = fui($1); } | T_INT { $$ = $1; } @@ -587,6 +589,8 @@ localmem_header: T_A_LOCALMEM const_val { variant->shared_size = $2; } earlypreamble_header: T_A_EARLYPREAMBLE { variant->early_preamble = 1; } +constlen_header: T_A_CONSTLEN const_val { variant->constlen = $2; } + /* Stubs for now */ in_header: T_A_IN '(' T_REGISTER ')' T_IDENTIFIER '(' T_IDENTIFIER '=' integer ')' { }