summaryrefslogtreecommitdiff
path: root/assembler/lex.l
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2006-08-25 09:36:28 -0700
committerDamien Lespiau <damien.lespiau@intel.com>2013-03-04 15:54:22 +0000
commit3d36079ae3f9cab993b7bbec68f6fa2fbfb60136 (patch)
treebd95891449866837f58e928ac8115e3b1834eecc /assembler/lex.l
parente865196a9d28d0097e76d606f727939c11bf6147 (diff)
Add syntax for extended math send functions, and adjust packed_yuv_sf for it.
Diffstat (limited to 'assembler/lex.l')
-rw-r--r--assembler/lex.l27
1 files changed, 27 insertions, 0 deletions
diff --git a/assembler/lex.l b/assembler/lex.l
index 6bca52dd4..8982df55a 100644
--- a/assembler/lex.l
+++ b/assembler/lex.l
@@ -2,6 +2,7 @@
%{
#include "gen4asm.h"
#include "y.tab.h"
+#include "brw_defines.h"
int saved_state = INITIAL;
@@ -121,6 +122,32 @@ int saved_state = INITIAL;
"mask_disable" { return MASK_DISABLE; }
"EOT" { return EOT; }
+ /* extended math functions */
+"inv" { yylval.integer = BRW_MATH_FUNCTION_INV; return SIN; }
+"log" { yylval.integer = BRW_MATH_FUNCTION_LOG; return LOG; }
+"exp" { yylval.integer = BRW_MATH_FUNCTION_EXP; return EXP; }
+"sqrt" { yylval.integer = BRW_MATH_FUNCTION_SQRT; return SQRT; }
+"rsq" { yylval.integer = BRW_MATH_FUNCTION_RSQ; return RSQ; }
+"pow" { yylval.integer = BRW_MATH_FUNCTION_POW; return POW; }
+"sin" { yylval.integer = BRW_MATH_FUNCTION_SIN; return SIN; }
+"cos" { yylval.integer = BRW_MATH_FUNCTION_COS; return COS; }
+"sincos" { yylval.integer = BRW_MATH_FUNCTION_SINCOS; return SINCOS; }
+"intdiv" {
+ yylval.integer = BRW_MATH_FUNCTION_INT_DIV_QUOTIENT;
+ return INTDIV;
+}
+"intmod" {
+ yylval.integer = BRW_MATH_FUNCTION_INT_DIV_REMAINDER;
+ return INTMOD;
+}
+"intdivmod" {
+ yylval.integer = BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER;
+ return INTDIVMOD;
+}
+
+"signed" { return SIGNED; }
+"scalar" { return SCALAR; }
+
[0-9]* {
yylval.integer = atoi(yytext);
return INTEGER;