From c2dbc4a00a77bb20403f0d8c2bad7f2b5334e6e1 Mon Sep 17 00:00:00 2001 From: Job Noorman Date: Wed, 10 Apr 2024 10:43:38 +0200 Subject: [PATCH] ir3: simplify cat5 parsing Signed-off-by: Job Noorman Part-of: --- src/freedreno/ir3/ir3_parser.y | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/freedreno/ir3/ir3_parser.y b/src/freedreno/ir3/ir3_parser.y index acbdff49d4f..a7796bd4ef8 100644 --- a/src/freedreno/ir3/ir3_parser.y +++ b/src/freedreno/ir3/ir3_parser.y @@ -1129,23 +1129,19 @@ cat5_tex: T_TEX { instr->cat5.tex = $1; } cat5_type: '(' type ')' { instr->cat5.type = $2; } cat5_a1: src_reg { instr->flags |= IR3_INSTR_A1EN; } +cat5_samp_tex: src_reg +| cat5_samp ',' cat5_tex +| cat5_samp +| cat5_tex + +cat5_samp_tex_all: cat5_samp_tex +| cat5_samp ',' cat5_a1 +| cat5_tex ',' cat5_a1 + cat5_instr: cat5_opc_dsxypp cat5_flags dst_reg ',' src_reg -| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg ',' src_reg ',' src_reg -| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg ',' src_reg ',' cat5_samp ',' cat5_tex -| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg ',' src_reg ',' cat5_samp ',' cat5_a1 -| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg ',' src_reg ',' cat5_tex ',' cat5_a1 -| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg ',' src_reg ',' cat5_samp -| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg ',' src_reg ',' cat5_tex -| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg ',' src_reg -| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg ',' cat5_samp ',' cat5_tex -| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg ',' cat5_samp ',' cat5_a1 -| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg ',' cat5_tex ',' cat5_a1 -| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg ',' cat5_samp -| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg ',' cat5_tex -| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg -| cat5_opc cat5_flags cat5_type dst_reg ',' cat5_samp ',' cat5_tex -| cat5_opc cat5_flags cat5_type dst_reg ',' cat5_samp -| cat5_opc cat5_flags cat5_type dst_reg ',' cat5_tex +| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg ',' src_reg ',' cat5_samp_tex_all +| cat5_opc cat5_flags cat5_type dst_reg ',' src_reg ',' cat5_samp_tex_all +| cat5_opc cat5_flags cat5_type dst_reg ',' cat5_samp_tex | cat5_opc cat5_flags cat5_type dst_reg | T_OP_TCINV { new_instr(OPC_TCINV); }