summaryrefslogtreecommitdiff
path: root/assembler/lex.l
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2006-08-25 13:38:03 -0700
committerDamien Lespiau <damien.lespiau@intel.com>2013-03-04 15:54:22 +0000
commit883408eab8dc0d36d36acbccc4bb4cde432607ec (patch)
tree29e339eb4b77dca965c162957a4b9016efcd3561 /assembler/lex.l
parent2cca382cd23c6d18d498f55692088ee1112deb8c (diff)
Add rules for more registers, and use some for destinations.
Diffstat (limited to 'assembler/lex.l')
-rw-r--r--assembler/lex.l52
1 files changed, 52 insertions, 0 deletions
diff --git a/assembler/lex.l b/assembler/lex.l
index ab418da2..b5b4f725 100644
--- a/assembler/lex.l
+++ b/assembler/lex.l
@@ -119,6 +119,22 @@ int saved_state = INITIAL;
yylval.integer = atoi(yytext + 1);
return MSGREG;
}
+"mask"[0-9]+ {
+ yylval.integer = atoi(yytext + 1);
+ return MASKREG;
+}
+"ms"[0-9]+ {
+ yylval.integer = atoi(yytext + 1);
+ return MASKSTACKREG;
+}
+"msd"[0-9]+ {
+ yylval.integer = atoi(yytext + 1);
+ return MASKSTACKDEPTHREG;
+}
+"n"[0-9]+ {
+ yylval.integer = atoi(yytext + 1);
+ return NOTIFYREG;
+}
"f"[0-9]+ {
yylval.integer = atoi(yytext + 1);
return FLAGREG;
@@ -131,9 +147,45 @@ int saved_state = INITIAL;
yylval.integer = atoi(yytext + 1);
return CONTROLREG;
}
+"sr"[0-9]+ {
+ yylval.integer = atoi(yytext + 1);
+ return STATEREG;
+}
"ip" {
return IPREG;
}
+"amask" {
+ yylval.integer = BRW_AMASK;
+ return AMASK;
+}
+"imask" {
+ yylval.integer = BRW_IMASK;
+ return IMASK;
+}
+"lmask" {
+ yylval.integer = BRW_LMASK;
+ return LMASK;
+}
+"cmask" {
+ yylval.integer = BRW_CMASK;
+ return CMASK;
+}
+"imsd" {
+ yylval.integer = 0;
+ return IMSD;
+}
+"lmsd" {
+ yylval.integer = 1;
+ return LMSD;
+}
+"ims" {
+ yylval.integer = 0;
+ return IMS;
+}
+"lms" {
+ yylval.integer = 16;
+ return LMS;
+}
/*
* Lexing of register types should probably require the ":" symbol specified