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