ir3/parser: add @constlen header

Constlen cannot always be derived from the usage of @const et al. For
example when using ldc.k/ldg.k. Add a @constlen header to explicitly set
it.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40940>
This commit is contained in:
Job Noorman 2026-04-14 09:11:29 +02:00 committed by Marge Bot
parent 0e95730be0
commit ce810bb19b
2 changed files with 5 additions and 0 deletions

View file

@ -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);

View file

@ -82,6 +82,7 @@ static void print_token(FILE *file, int type, YYSTYPE value)
%token <tok> T_A_TEX
%token <tok> T_A_PVTMEM
%token <tok> T_A_LOCALMEM
%token <tok> T_A_CONSTLEN
%token <tok> T_A_EARLYPREAMBLE
%token <tok> T_A_FULLNOPSTART
%token <tok> 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 ')' { }