Mesa (master): freedreno/ir3/parser: half-precision relative regs
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sat Jul 18 16:51:38 UTC 2020
Module: Mesa
Branch: master
Commit: 0472ca2aa5c47cf2b6e0b0c6972d6f5c79ba35a1
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0472ca2aa5c47cf2b6e0b0c6972d6f5c79ba35a1
Author: Rob Clark <robdclark at chromium.org>
Date: Fri Jul 17 09:35:18 2020 -0700
freedreno/ir3/parser: half-precision relative regs
Signed-off-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5957>
---
src/freedreno/ir3/ir3_lexer.l | 2 ++
src/freedreno/ir3/ir3_parser.y | 5 +++++
2 files changed, 7 insertions(+)
diff --git a/src/freedreno/ir3/ir3_lexer.l b/src/freedreno/ir3/ir3_lexer.l
index 823cb1587dc..f93d25b5328 100644
--- a/src/freedreno/ir3/ir3_lexer.l
+++ b/src/freedreno/ir3/ir3_lexer.l
@@ -308,6 +308,8 @@ static int parse_reg(const char *str)
"|" return '|';
"c" return 'c';
"r" return 'r';
+"hc" return TOKEN(T_HC);
+"hr" return TOKEN(T_HR);
"g" return 'g';
"l" return 'l';
"<" return '<';
diff --git a/src/freedreno/ir3/ir3_parser.y b/src/freedreno/ir3/ir3_parser.y
index 27c52bd21e9..6c06f1d3e03 100644
--- a/src/freedreno/ir3/ir3_parser.y
+++ b/src/freedreno/ir3/ir3_parser.y
@@ -266,6 +266,9 @@ static void print_token(FILE *file, int type, YYSTYPE value)
%token <tok> T_ABS
%token <tok> T_R
+%token <tok> T_HR
+%token <tok> T_HC
+
/* dst register flags */
%token <tok> T_EVEN
%token <tok> T_POS_INFINITY
@@ -873,6 +876,8 @@ offset: { $$ = 0; }
relative: 'r' '<' T_A0 offset '>' { new_reg(0, IR3_REG_RELATIV)->array.offset = $4; }
| 'c' '<' T_A0 offset '>' { new_reg(0, IR3_REG_RELATIV | IR3_REG_CONST)->array.offset = $4; }
+| T_HR '<' T_A0 offset '>' { new_reg(0, IR3_REG_RELATIV | IR3_REG_HALF)->array.offset = $4; }
+| T_HC '<' T_A0 offset '>' { new_reg(0, IR3_REG_RELATIV | IR3_REG_CONST | IR3_REG_HALF)->array.offset = $4; }
immediate: integer { new_reg(0, IR3_REG_IMMED)->iim_val = $1; }
| '(' integer ')' { new_reg(0, IR3_REG_IMMED)->fim_val = $2; }
More information about the mesa-commit
mailing list