From 5a8193e6579d8da0adf4eccce1a382a7e97d0b4b Mon Sep 17 00:00:00 2001 From: Job Noorman Date: Wed, 12 Feb 2025 07:29:03 +0100 Subject: [PATCH] ir3/parser: add helper to generate syntax errors based on gen The assembly syntax of certain instructions differs significantly between generations (e.g., ldg.a/stg.a) so it's useful to be able to generate syntax error based on the generation we are assembling for. Signed-off-by: Job Noorman Part-of: --- src/freedreno/ir3/ir3_parser.y | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/freedreno/ir3/ir3_parser.y b/src/freedreno/ir3/ir3_parser.y index 83167e25ca2..ea24aabb56e 100644 --- a/src/freedreno/ir3/ir3_parser.y +++ b/src/freedreno/ir3/ir3_parser.y @@ -320,6 +320,15 @@ static void yyerror(const char *error) fprintf(stderr, "error at line %d: %s\n%s\n", ir3_yyget_lineno(), error, current_line); } +/* Needs to be a macro to use YYERROR */ +#define illegal_syntax_from(gen_from, error) \ + do { \ + if (variant->compiler->gen >= gen_from) { \ + yyerror(error); \ + YYERROR; \ + } \ + } while (0) + struct ir3 * ir3_parse(struct ir3_shader_variant *v, struct ir3_kernel_info *k, FILE *f) {