Remove generated file.
authorEric Anholt <eric@anholt.net>
Tue, 22 Aug 2006 20:14:09 +0000 (13:14 -0700)
committerDamien Lespiau <damien.lespiau@intel.com>
Mon, 4 Mar 2013 15:54:20 +0000 (15:54 +0000)
assembler/gram.c [deleted file]

diff --git a/assembler/gram.c b/assembler/gram.c
deleted file mode 100644 (file)
index 6b3ba47..0000000
+++ /dev/null
@@ -1,1123 +0,0 @@
-#include <stdlib.h>
-#ifndef lint
-#ifdef __unused
-__unused
-#endif
-static char const 
-yyrcsid[] = "$FreeBSD: src/usr.bin/yacc/skeleton.c,v 1.37 2003/02/12 18:03:55 davidc Exp $";
-#endif
-#define YYBYACC 1
-#define YYMAJOR 1
-#define YYMINOR 9
-#define YYLEX yylex()
-#define YYEMPTY -1
-#define yyclearin (yychar=(YYEMPTY))
-#define yyerrok (yyerrflag=0)
-#define YYRECOVERING() (yyerrflag!=0)
-#if defined(__cplusplus) || __STDC__
-static int yygrowstack(void);
-#else
-static int yygrowstack();
-#endif
-#define YYPREFIX "yy"
-#line 2 "gram.y"
-/*
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Authors:
- *    Eric Anholt <eric@anholt.net>
- *
- */
-
-#include <stdio.h>
-#include <string.h>
-#include "gen4asm.h"
-#include "brw_defines.h"
-
-#line 38 "gram.y"
-typedef union {
-       char *s;
-       int integer;
-       double number;
-       struct brw_instruction instruction;
-       struct brw_program program;
-       struct region {
-               int vert_stride, width, horiz_stride;
-       } region;
-       struct gen_reg {
-               int reg_file, reg_nr, subreg_nr;
-       } direct_gen_reg; /* XXX: naming */
-       double imm32;
-} YYSTYPE;
-#line 72 "y.tab.c"
-#define YYERRCODE 256
-#define SEMICOLON 257
-#define LPAREN 258
-#define RPAREN 259
-#define LANGLE 260
-#define RANGLE 261
-#define LCURLY 262
-#define RCURLY 263
-#define COMMA 264
-#define DOT 265
-#define TYPE_UD 266
-#define TYPE_D 267
-#define TYPE_UW 268
-#define TYPE_W 269
-#define TYPE_UB 270
-#define TYPE_B 271
-#define TYPE_VF 272
-#define TYPE_HF 273
-#define TYPE_V 274
-#define TYPE_F 275
-#define ALIGN1 276
-#define ALIGN16 277
-#define MASK_DISABLE 278
-#define EOT 279
-#define GENREG 280
-#define MSGREG 281
-#define ACCREG 282
-#define ADDRESSREG 283
-#define FLAGREG 284
-#define CONTROLREG 285
-#define IPREG 286
-#define MOV 287
-#define MUL 288
-#define MAC 289
-#define MACH 290
-#define LINE 291
-#define SAD2 292
-#define SADA2 293
-#define DP4 294
-#define DPH 295
-#define DP3 296
-#define DP2 297
-#define ADD 298
-#define SEND 299
-#define NULL_TOKEN 300
-#define MATH 301
-#define SAMPLER 302
-#define GATEWAY 303
-#define READ 304
-#define WRITE 305
-#define URB 306
-#define THREAD_SPAWNER 307
-#define NOP 308
-#define MSGLEN 309
-#define RETURNLEN 310
-#define SATURATE 311
-#define INTEGER 312
-#define NUMBER 313
-#define flagreg 314
-#define maskreg 315
-const short yylhs[] = {                                        -1,
-    0,   20,   20,   20,    1,    1,    1,    1,    1,    2,
-   22,    3,   23,   23,    4,   24,    5,    6,    7,   41,
-   32,   32,   32,   32,   32,   32,   32,   32,    8,    8,
-    9,   10,   10,   11,   11,   17,   17,   16,   15,   15,
-   12,   13,   14,   31,   31,   34,   35,   37,   36,   38,
-   30,   33,   27,   27,   27,   27,   27,   27,   27,   28,
-   39,   39,   40,   29,   26,   26,   25,   18,   19,   19,
-   21,   21,   21,   21,
-};
-const short yylen[] = {                                         2,
-    1,    3,    2,    3,    1,    1,    1,    1,    1,    8,
-    1,    9,    1,    1,    9,    1,    1,   12,    1,    1,
-    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-    3,    3,    1,    1,    1,    1,    2,    1,    1,    2,
-    1,    1,    3,    2,    0,    3,    3,    3,    3,    1,
-    3,    7,    1,    1,    1,    1,    1,    1,    1,    1,
-    1,    1,    0,    3,    0,    2,    0,    3,    2,    0,
-    1,    1,    1,    1,
-};
-const short yydefred[] = {                                      0,
-    0,   19,    0,    0,    5,    6,    7,    8,   17,    9,
-    1,    0,    0,    0,   11,   13,   14,   16,    0,   67,
-   67,   67,    4,    2,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,   50,    0,
-   29,   30,    0,   34,   35,    0,   33,   66,    0,    0,
-    0,   64,    0,    0,    0,   20,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,   46,   47,   48,    0,    0,
-   21,   23,   22,   24,   25,   26,   27,   28,    0,    0,
-   54,   55,   56,   57,   58,   59,   53,   31,   32,   61,
-   62,   38,   41,   36,    0,    0,    0,   42,    0,   44,
-    0,   43,    0,   51,    0,   10,   60,   37,   39,    0,
-    0,    0,    0,    0,   71,   72,   73,   74,    0,    0,
-   12,   40,   15,    0,    0,   68,   69,    0,    0,    0,
-   18,   52,
-};
-const short yydgoto[] = {                                       3,
-    4,    5,    6,    7,    8,    9,   10,   40,   41,   42,
-   43,   92,   97,   93,  110,   94,   95,  106,  119,   11,
-  120,   20,   21,   22,   26,   32,  107,  108,   30,   60,
-   66,   79,   70,   57,   45,    0,   46,   47,  111,   12,
-   58,
-};
-const short yysindex[] = {                                   -254,
- -251,    0,    0, -246,    0,    0,    0,    0,    0,    0,
-    0, -268, -254, -254,    0,    0,    0,    0, -308,    0,
-    0,    0,    0,    0, -230, -207, -207, -207, -239, -273,
- -236, -230, -230, -230, -187, -238, -235, -234,    0, -204,
-    0,    0, -181,    0,    0, -181,    0,    0, -273, -273,
- -273,    0, -185, -185, -185,    0, -179, -240, -229, -253,
- -253, -277, -204, -204, -228,    0,    0,    0, -227, -253,
-    0,    0,    0,    0,    0,    0,    0,    0, -223, -174,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0, -180, -253, -277,    0, -277,    0,
- -176,    0, -222,    0, -237,    0,    0,    0,    0, -180,
- -253, -180, -221, -218,    0,    0,    0,    0, -170, -237,
-    0,    0,    0, -175, -217,    0,    0, -216, -180, -167,
-    0,    0,
-};
-const short yyrindex[] = {                                   -255,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0, -255,    1,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0, -161, -161, -161,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0, -162, -162, -162,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0, -164,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0, -164,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,
-};
-const short yygindex[] = {                                      0,
-    0,    0,    0,    0,    0,    0,    0,   -1,    0,    0,
-    0,    0,    0,  -40,    2,   36,    0, -100,  -18,   32,
-    0,    0,    0,    0,   34,   41,  -23,   -8,   19,   58,
-   16,    0,    0,  -25,    0,    0,    0,    0,   43,    0,
-    0,
-};
-#define YYTABLESIZE 300
-const short yytable[] = {                                      56,
-    3,    1,   36,   25,   44,   13,   36,   37,   38,  121,
-   14,  123,   81,   82,   83,   84,   85,   86,   15,   16,
-   17,   87,   98,   44,   44,   44,   39,   29,  131,   18,
-   19,   63,   63,   63,   90,   91,   88,   89,  115,  116,
-  117,  118,   63,   63,   23,   24,  102,   62,   63,   64,
-   49,   50,   51,    2,   27,   28,  109,   31,  109,   71,
-   72,   73,   74,   75,   76,   77,   78,   33,   34,   67,
-   68,   52,   35,   53,   48,   36,   54,   55,   59,   65,
-   69,  105,   80,  100,  101,  103,  104,  113,  128,  114,
-  124,  125,  126,  132,  129,  130,   65,   45,   70,   99,
-  112,  127,  122,   61,   96,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   63,   63,   63,
-    0,    0,    0,    0,    0,    0,    0,    0,   63,   63,
-};
-const short yycheck[] = {                                      40,
-    0,  256,  280,  312,   30,  257,  280,  281,  282,  110,
-  257,  112,  266,  267,  268,  269,  270,  271,  287,  288,
-  289,  275,   63,   49,   50,   51,  300,  258,  129,  298,
-  299,  287,  288,  289,  312,  313,   60,   61,  276,  277,
-  278,  279,  298,  299,   13,   14,   70,   49,   50,   51,
-   32,   33,   34,  308,   21,   22,   97,  265,   99,  300,
-  301,  302,  303,  304,  305,  306,  307,   27,   28,   54,
-   55,  259,  312,  312,  311,  280,  312,  312,  260,  265,
-  260,  262,  312,  312,  312,  309,  261,  264,  264,  312,
-  312,  310,  263,  261,  312,  312,  258,  260,  263,   64,
-   99,  120,  111,   46,   62,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  287,  288,  289,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  298,  299,
-};
-#define YYFINAL 3
-#ifndef YYDEBUG
-#define YYDEBUG 0
-#endif
-#define YYMAXTOKEN 315
-#if YYDEBUG
-const char * const yyname[] = {
-"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"SEMICOLON","LPAREN","RPAREN",
-"LANGLE","RANGLE","LCURLY","RCURLY","COMMA","DOT","TYPE_UD","TYPE_D","TYPE_UW",
-"TYPE_W","TYPE_UB","TYPE_B","TYPE_VF","TYPE_HF","TYPE_V","TYPE_F","ALIGN1",
-"ALIGN16","MASK_DISABLE","EOT","GENREG","MSGREG","ACCREG","ADDRESSREG",
-"FLAGREG","CONTROLREG","IPREG","MOV","MUL","MAC","MACH","LINE","SAD2","SADA2",
-"DP4","DPH","DP3","DP2","ADD","SEND","NULL_TOKEN","MATH","SAMPLER","GATEWAY",
-"READ","WRITE","URB","THREAD_SPAWNER","NOP","MSGLEN","RETURNLEN","SATURATE",
-"INTEGER","NUMBER","flagreg","maskreg",
-};
-const char * const yyrule[] = {
-"$accept : ROOT",
-"ROOT : instrseq",
-"instrseq : instruction SEMICOLON instrseq",
-"instrseq : instruction SEMICOLON",
-"instrseq : error SEMICOLON instrseq",
-"instruction : unaryinstruction",
-"instruction : binaryinstruction",
-"instruction : binaryaccinstruction",
-"instruction : triinstruction",
-"instruction : specialinstruction",
-"unaryinstruction : predicate unaryop conditionalmodifier saturate execsize dst srcaccimm instoptions",
-"unaryop : MOV",
-"binaryinstruction : predicate binaryop conditionalmodifier saturate execsize dst src srcimm instoptions",
-"binaryop : MUL",
-"binaryop : MAC",
-"binaryaccinstruction : predicate binaryaccop conditionalmodifier saturate execsize dst srcacc srcimm instoptions",
-"binaryaccop : ADD",
-"triinstruction : sendinstruction",
-"sendinstruction : predicate SEND INTEGER execsize dst payload msgtarget MSGLEN INTEGER RETURNLEN INTEGER instoptions",
-"specialinstruction : NOP",
-"payload : directsrcoperand",
-"msgtarget : NULL_TOKEN",
-"msgtarget : SAMPLER",
-"msgtarget : MATH",
-"msgtarget : GATEWAY",
-"msgtarget : READ",
-"msgtarget : WRITE",
-"msgtarget : URB",
-"msgtarget : THREAD_SPAWNER",
-"dst : dstoperand",
-"dst : dstoperandex",
-"dstoperand : dstreg dstregion regtype",
-"dstoperandex : accreg dstregion regtype",
-"dstoperandex : nullreg",
-"dstreg : directgenreg",
-"dstreg : directmsgreg",
-"srcaccimm : srcacc",
-"srcaccimm : imm32 srcimmtype",
-"srcacc : directsrcaccoperand",
-"srcimm : directsrcoperand",
-"srcimm : imm32 srcimmtype",
-"directsrcaccoperand : directsrcoperand",
-"src : directsrcoperand",
-"directsrcoperand : directgenreg region regtype",
-"subregnum : DOT INTEGER",
-"subregnum :",
-"directgenreg : GENREG INTEGER subregnum",
-"directmsgreg : MSGREG INTEGER subregnum",
-"accreg : ACCREG INTEGER subregnum",
-"addrreg : ADDRESSREG INTEGER subregnum",
-"nullreg : NULL_TOKEN",
-"dstregion : LANGLE INTEGER RANGLE",
-"region : LANGLE INTEGER COMMA INTEGER COMMA INTEGER RANGLE",
-"regtype : TYPE_F",
-"regtype : TYPE_UD",
-"regtype : TYPE_D",
-"regtype : TYPE_UW",
-"regtype : TYPE_W",
-"regtype : TYPE_UB",
-"regtype : TYPE_B",
-"srcimmtype : regtype",
-"imm32 : INTEGER",
-"imm32 : NUMBER",
-"predicate :",
-"execsize : LPAREN INTEGER RPAREN",
-"saturate :",
-"saturate : DOT SATURATE",
-"conditionalmodifier :",
-"instoptions : LCURLY instoption_list RCURLY",
-"instoption_list : instoption instoption_list",
-"instoption_list :",
-"instoption : ALIGN1",
-"instoption : ALIGN16",
-"instoption : MASK_DISABLE",
-"instoption : EOT",
-};
-#endif
-#if YYDEBUG
-#include <stdio.h>
-#endif
-#ifdef YYSTACKSIZE
-#undef YYMAXDEPTH
-#define YYMAXDEPTH YYSTACKSIZE
-#else
-#ifdef YYMAXDEPTH
-#define YYSTACKSIZE YYMAXDEPTH
-#else
-#define YYSTACKSIZE 10000
-#define YYMAXDEPTH 10000
-#endif
-#endif
-#define YYINITSTACKSIZE 200
-int yydebug;
-int yynerrs;
-int yyerrflag;
-int yychar;
-short *yyssp;
-YYSTYPE *yyvsp;
-YYSTYPE yyval;
-YYSTYPE yylval;
-short *yyss;
-short *yysslim;
-YYSTYPE *yyvs;
-int yystacksize;
-#line 499 "gram.y"
-extern int yylineno;
-
-void yyerror (char *msg)
-{
-       fprintf(stderr, "parse error \"%s\" at line %d, token \"%s\"\n",
-               msg, yylineno, lex_text());
-}
-
-/**
- * Fills in the destination register information in instr from the bits in dst.
- */
-void set_instruction_dest(struct brw_instruction *instr,
-                        struct brw_instruction *dest)
-{
-       instr->bits1.da1.dest_reg_file = dest->bits1.da1.dest_reg_file;
-       instr->bits1.da1.dest_reg_type = dest->bits1.da1.dest_reg_type;
-       instr->bits1.da1.dest_subreg_nr = dest->bits1.da1.dest_subreg_nr;
-       instr->bits1.da1.dest_reg_nr = dest->bits1.da1.dest_reg_nr;
-       instr->bits1.da1.dest_horiz_stride = dest->bits1.da1.dest_horiz_stride;
-       instr->bits1.da1.dest_address_mode = dest->bits1.da1.dest_address_mode;
-}
-
-
-void set_instruction_src0(struct brw_instruction *instr,
-                         struct brw_instruction *src)
-{
-       instr->bits1.da1.src0_reg_file = src->bits1.da1.src0_reg_file;
-       instr->bits1.da1.src0_reg_type = src->bits1.da1.src0_reg_type;
-       if (src->bits1.da1.src0_reg_file == BRW_IMMEDIATE_VALUE) {
-               instr->bits3.ud = src->bits3.ud;
-       } else {
-               instr->bits2.da1.src0_subreg_nr =
-                       src->bits2.da1.src0_subreg_nr;
-               instr->bits2.da1.src0_reg_nr = src->bits2.da1.src0_reg_nr;
-               instr->bits2.da1.src0_vert_stride =
-                       src->bits2.da1.src0_vert_stride;
-               instr->bits2.da1.src0_width = src->bits2.da1.src0_width;
-               instr->bits2.da1.src0_horiz_stride =
-                       src->bits2.da1.src0_horiz_stride;
-       }
-}
-
-void set_instruction_src1(struct brw_instruction *instr,
-                         struct brw_instruction *src)
-{
-       instr->bits1.da1.src1_reg_file = src->bits1.da1.src0_reg_file;
-       instr->bits1.da1.src1_reg_type = src->bits1.da1.src0_reg_type;
-       if (src->bits1.da1.src0_reg_file == BRW_IMMEDIATE_VALUE) {
-               instr->bits3.ud = src->bits3.ud;
-       } else {
-               instr->bits3.da1.src1_subreg_nr =
-                       src->bits2.da1.src0_subreg_nr;
-               instr->bits3.da1.src1_reg_nr = src->bits2.da1.src0_reg_nr;
-               instr->bits3.da1.src1_vert_stride =
-                       src->bits2.da1.src0_vert_stride;
-               instr->bits3.da1.src1_width = src->bits2.da1.src0_width;
-               instr->bits3.da1.src1_horiz_stride =
-                       src->bits2.da1.src0_horiz_stride;
-       }
-}
-
-void set_instruction_options(struct brw_instruction *instr,
-                            struct brw_instruction *options)
-{
-       instr->header.access_mode = options->header.access_mode;
-       instr->header.mask_control = options->header.mask_control;
-       instr->header.dependency_control = options->header.dependency_control;
-       instr->header.compression_control =
-               options->header.compression_control;
-}
-#line 478 "y.tab.c"
-/* allocate initial stack or double stack size, up to YYMAXDEPTH */
-static int yygrowstack()
-{
-    int newsize, i;
-    short *newss;
-    YYSTYPE *newvs;
-
-    if ((newsize = yystacksize) == 0)
-        newsize = YYINITSTACKSIZE;
-    else if (newsize >= YYMAXDEPTH)
-        return -1;
-    else if ((newsize *= 2) > YYMAXDEPTH)
-        newsize = YYMAXDEPTH;
-    i = yyssp - yyss;
-    newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) :
-      (short *)malloc(newsize * sizeof *newss);
-    if (newss == NULL)
-        return -1;
-    yyss = newss;
-    yyssp = newss + i;
-    newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) :
-      (YYSTYPE *)malloc(newsize * sizeof *newvs);
-    if (newvs == NULL)
-        return -1;
-    yyvs = newvs;
-    yyvsp = newvs + i;
-    yystacksize = newsize;
-    yysslim = yyss + newsize - 1;
-    return 0;
-}
-
-#define YYABORT goto yyabort
-#define YYREJECT goto yyabort
-#define YYACCEPT goto yyaccept
-#define YYERROR goto yyerrlab
-
-#ifndef YYPARSE_PARAM
-#if defined(__cplusplus) || __STDC__
-#define YYPARSE_PARAM_ARG void
-#define YYPARSE_PARAM_DECL
-#else  /* ! ANSI-C/C++ */
-#define YYPARSE_PARAM_ARG
-#define YYPARSE_PARAM_DECL
-#endif /* ANSI-C/C++ */
-#else  /* YYPARSE_PARAM */
-#ifndef YYPARSE_PARAM_TYPE
-#define YYPARSE_PARAM_TYPE void *
-#endif
-#if defined(__cplusplus) || __STDC__
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM_TYPE YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL
-#else  /* ! ANSI-C/C++ */
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL YYPARSE_PARAM_TYPE YYPARSE_PARAM;
-#endif /* ANSI-C/C++ */
-#endif /* ! YYPARSE_PARAM */
-
-int
-yyparse (YYPARSE_PARAM_ARG)
-    YYPARSE_PARAM_DECL
-{
-    int yym, yyn, yystate;
-#if YYDEBUG
-    const char *yys;
-
-    if ((yys = getenv("YYDEBUG")))
-    {
-        yyn = *yys;
-        if (yyn >= '0' && yyn <= '9')
-            yydebug = yyn - '0';
-    }
-#endif
-
-    yynerrs = 0;
-    yyerrflag = 0;
-    yychar = (-1);
-
-    if (yyss == NULL && yygrowstack()) goto yyoverflow;
-    yyssp = yyss;
-    yyvsp = yyvs;
-    *yyssp = yystate = 0;
-
-yyloop:
-    if ((yyn = yydefred[yystate])) goto yyreduce;
-    if (yychar < 0)
-    {
-        if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
-        if (yydebug)
-        {
-            yys = 0;
-            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-            if (!yys) yys = "illegal-symbol";
-            printf("%sdebug: state %d, reading %d (%s)\n",
-                    YYPREFIX, yystate, yychar, yys);
-        }
-#endif
-    }
-    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
-    {
-#if YYDEBUG
-        if (yydebug)
-            printf("%sdebug: state %d, shifting to state %d\n",
-                    YYPREFIX, yystate, yytable[yyn]);
-#endif
-        if (yyssp >= yysslim && yygrowstack())
-        {
-            goto yyoverflow;
-        }
-        *++yyssp = yystate = yytable[yyn];
-        *++yyvsp = yylval;
-        yychar = (-1);
-        if (yyerrflag > 0)  --yyerrflag;
-        goto yyloop;
-    }
-    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
-    {
-        yyn = yytable[yyn];
-        goto yyreduce;
-    }
-    if (yyerrflag) goto yyinrecovery;
-#if defined(lint) || defined(__GNUC__)
-    goto yynewerror;
-#endif
-yynewerror:
-    yyerror("syntax error");
-#if defined(lint) || defined(__GNUC__)
-    goto yyerrlab;
-#endif
-yyerrlab:
-    ++yynerrs;
-yyinrecovery:
-    if (yyerrflag < 3)
-    {
-        yyerrflag = 3;
-        for (;;)
-        {
-            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
-                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
-            {
-#if YYDEBUG
-                if (yydebug)
-                    printf("%sdebug: state %d, error recovery shifting\
- to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
-#endif
-                if (yyssp >= yysslim && yygrowstack())
-                {
-                    goto yyoverflow;
-                }
-                *++yyssp = yystate = yytable[yyn];
-                *++yyvsp = yylval;
-                goto yyloop;
-            }
-            else
-            {
-#if YYDEBUG
-                if (yydebug)
-                    printf("%sdebug: error recovery discarding state %d\n",
-                            YYPREFIX, *yyssp);
-#endif
-                if (yyssp <= yyss) goto yyabort;
-                --yyssp;
-                --yyvsp;
-            }
-        }
-    }
-    else
-    {
-        if (yychar == 0) goto yyabort;
-#if YYDEBUG
-        if (yydebug)
-        {
-            yys = 0;
-            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-            if (!yys) yys = "illegal-symbol";
-            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
-                    YYPREFIX, yystate, yychar, yys);
-        }
-#endif
-        yychar = (-1);
-        goto yyloop;
-    }
-yyreduce:
-#if YYDEBUG
-    if (yydebug)
-        printf("%sdebug: state %d, reducing by rule %d (%s)\n",
-                YYPREFIX, yystate, yyn, yyrule[yyn]);
-#endif
-    yym = yylen[yyn];
-    yyval = yyvsp[1-yym];
-    switch (yyn)
-    {
-case 1:
-#line 100 "gram.y"
-{
-                 compiled_program = yyvsp[0].program;
-               }
-break;
-case 2:
-#line 106 "gram.y"
-{
-                 struct brw_program_instruction *list_entry =
-                   calloc(sizeof(struct brw_program_instruction), 1);
-                 list_entry->instruction = yyvsp[-2].instruction;
-
-                 list_entry->next = yyvsp[0].program.first;
-                 yyvsp[0].program.first = list_entry;
-
-                 yyval.program = yyvsp[0].program;
-               }
-break;
-case 3:
-#line 117 "gram.y"
-{
-                 struct brw_program_instruction *list_entry =
-                   calloc(sizeof(struct brw_program_instruction), 1);
-                 list_entry->instruction = yyvsp[-1].instruction;
-
-                 list_entry->next = NULL;
-
-                 yyval.program.first = list_entry;
-               }
-break;
-case 4:
-#line 127 "gram.y"
-{
-                 yyval.program = yyvsp[0].program;
-               }
-break;
-case 10:
-#line 143 "gram.y"
-{
-                 yyval.instruction.header.opcode = yyvsp[-6].integer;
-                 yyval.instruction.header.saturate = yyvsp[-5].integer;
-                 yyval.instruction.header.destreg__conditionalmod = yyvsp[-4].integer;
-                 yyval.instruction.header.execution_size = yyvsp[-3].integer;
-                 set_instruction_dest(&yyval.instruction, &yyvsp[-2].instruction);
-                 set_instruction_src0(&yyval.instruction, &yyvsp[-1].instruction);
-                 set_instruction_options(&yyval.instruction, &yyvsp[0].instruction);
-               }
-break;
-case 11:
-#line 154 "gram.y"
-{ yyval.integer = BRW_OPCODE_MOV; }
-break;
-case 12:
-#line 160 "gram.y"
-{
-                 yyval.instruction.header.opcode = yyvsp[-7].integer;
-                 yyval.instruction.header.saturate = yyvsp[-6].integer;
-                 yyval.instruction.header.destreg__conditionalmod = yyvsp[-5].integer;
-                 yyval.instruction.header.execution_size = yyvsp[-4].integer;
-                 set_instruction_dest(&yyval.instruction, &yyvsp[-3].instruction);
-                 set_instruction_src0(&yyval.instruction, &yyvsp[-2].instruction);
-                 set_instruction_src1(&yyval.instruction, &yyvsp[-1].instruction);
-                 set_instruction_options(&yyval.instruction, &yyvsp[0].instruction);
-               }
-break;
-case 13:
-#line 172 "gram.y"
-{ yyval.integer = BRW_OPCODE_MUL; }
-break;
-case 14:
-#line 173 "gram.y"
-{ yyval.integer = BRW_OPCODE_MAC; }
-break;
-case 15:
-#line 178 "gram.y"
-{
-                 yyval.instruction.header.opcode = yyvsp[-7].integer;
-                 yyval.instruction.header.saturate = yyvsp[-6].integer;
-                 yyval.instruction.header.destreg__conditionalmod = yyvsp[-5].integer;
-                 yyval.instruction.header.execution_size = yyvsp[-4].integer;
-                 set_instruction_dest(&yyval.instruction, &yyvsp[-3].instruction);
-                 set_instruction_src0(&yyval.instruction, &yyvsp[-2].instruction);
-                 set_instruction_src1(&yyval.instruction, &yyvsp[-1].instruction);
-                 set_instruction_options(&yyval.instruction, &yyvsp[0].instruction);
-               }
-break;
-case 16:
-#line 190 "gram.y"
-{ yyval.integer = BRW_OPCODE_ADD; }
-break;
-case 18:
-#line 198 "gram.y"
-{
-                 yyval.instruction.header.opcode = BRW_OPCODE_SEND;
-                 yyval.instruction.header.execution_size = yyvsp[-8].integer;
-                 yyval.instruction.header.destreg__conditionalmod = yyvsp[-9].integer;
-               }
-break;
-case 19:
-#line 205 "gram.y"
-{
-                 yyval.instruction.header.opcode = BRW_OPCODE_NOP;
-               }
-break;
-case 21:
-#line 213 "gram.y"
-{ yyval.integer = BRW_MESSAGE_TARGET_NULL; }
-break;
-case 22:
-#line 214 "gram.y"
-{ yyval.integer = BRW_MESSAGE_TARGET_SAMPLER; }
-break;
-case 23:
-#line 215 "gram.y"
-{ yyval.integer = BRW_MESSAGE_TARGET_MATH; }
-break;
-case 24:
-#line 216 "gram.y"
-{ yyval.integer = BRW_MESSAGE_TARGET_GATEWAY; }
-break;
-case 25:
-#line 217 "gram.y"
-{ yyval.integer = BRW_MESSAGE_TARGET_DATAPORT_READ; }
-break;
-case 26:
-#line 218 "gram.y"
-{ yyval.integer = BRW_MESSAGE_TARGET_DATAPORT_WRITE; }
-break;
-case 27:
-#line 219 "gram.y"
-{ yyval.integer = BRW_MESSAGE_TARGET_URB; }
-break;
-case 28:
-#line 220 "gram.y"
-{ yyval.integer = BRW_MESSAGE_TARGET_THREAD_SPAWNER; }
-break;
-case 31:
-#line 229 "gram.y"
-{
-                 /* Returns an instruction with just the destination register
-                  * filled in.
-                  */
-                 yyval.instruction.bits1 = yyvsp[-2].instruction.bits1;
-                 yyval.instruction.bits1.da1.dest_reg_type = yyvsp[-1].integer; /* XXX */
-                 /* XXX: $3 */
-               }
-break;
-case 32:
-#line 240 "gram.y"
-{
-                 /* Returns an instruction with just the destination register
-                  * filled in.
-                  */
-                 yyval.instruction.bits1.da1.dest_reg_file = yyvsp[-2].direct_gen_reg.reg_file;
-                 yyval.instruction.bits1.da1.dest_reg_nr = yyvsp[-2].direct_gen_reg.reg_nr;
-                 yyval.instruction.bits1.da1.dest_subreg_nr = yyvsp[-2].direct_gen_reg.subreg_nr;
-                 /* XXX: $2 $3 */
-               }
-break;
-case 33:
-#line 250 "gram.y"
-{
-                 /* Returns an instruction with just the destination register
-                  * filled in.
-                  */
-                 yyval.instruction.bits1.da1.dest_reg_file = yyvsp[0].direct_gen_reg.reg_file;
-                 yyval.instruction.bits1.da1.dest_reg_nr = yyvsp[0].direct_gen_reg.reg_nr;
-                 yyval.instruction.bits1.da1.dest_subreg_nr = yyvsp[0].direct_gen_reg.subreg_nr;
-               }
-break;
-case 34:
-#line 262 "gram.y"
-{
-                 yyval.instruction.bits1.da1.dest_reg_file = yyvsp[0].direct_gen_reg.reg_file;
-                 yyval.instruction.bits1.da1.dest_reg_nr = yyvsp[0].direct_gen_reg.reg_nr;
-                 yyval.instruction.bits1.da1.dest_subreg_nr = yyvsp[0].direct_gen_reg.subreg_nr;
-               }
-break;
-case 37:
-#line 274 "gram.y"
-{
-                 yyval.instruction.bits1.da1.src0_reg_file = BRW_IMMEDIATE_VALUE;
-                 switch (yyvsp[0].integer) {
-                 case BRW_REGISTER_TYPE_UD:
-                   yyval.instruction.bits3.ud = yyvsp[-1].imm32;
-                   break;
-                 case BRW_REGISTER_TYPE_D:
-                   yyval.instruction.bits3.id = yyvsp[-1].imm32;
-                   break;
-                 case BRW_REGISTER_TYPE_F:
-                   yyval.instruction.bits3.fd = yyvsp[-1].imm32;
-                   break;
-                 }
-               }
-break;
-case 40:
-#line 296 "gram.y"
-{
-                 yyval.instruction.bits1.da1.src0_reg_file = BRW_IMMEDIATE_VALUE;
-                 switch (yyvsp[0].integer) {
-                 case BRW_REGISTER_TYPE_UD:
-                   yyval.instruction.bits3.ud = yyvsp[-1].imm32;
-                   break;
-                 case BRW_REGISTER_TYPE_D:
-                   yyval.instruction.bits3.id = yyvsp[-1].imm32;
-                   break;
-                 case BRW_REGISTER_TYPE_F:
-                   yyval.instruction.bits3.fd = yyvsp[-1].imm32;
-                   break;
-                 }
-               }
-break;
-case 43:
-#line 322 "gram.y"
-{
-                 /* Returns a source operand in the src0 fields of an
-                  * instruction.
-                  */
-                 yyval.instruction.bits1.da1.src0_reg_file = yyvsp[-2].direct_gen_reg.reg_file;
-                 yyval.instruction.bits1.da1.src0_reg_type = yyvsp[0].integer;
-                 yyval.instruction.bits2.da1.src0_subreg_nr = yyvsp[-2].direct_gen_reg.subreg_nr;
-                 yyval.instruction.bits2.da1.src0_reg_nr = yyvsp[-2].direct_gen_reg.reg_nr;
-                 yyval.instruction.bits2.da1.src0_vert_stride = yyvsp[-1].region.vert_stride;
-                 yyval.instruction.bits2.da1.src0_width = yyvsp[-1].region.width;
-                 yyval.instruction.bits2.da1.src0_horiz_stride = yyvsp[-1].region.horiz_stride;
-               }
-break;
-case 44:
-#line 337 "gram.y"
-{
-                 yyval.integer = yyvsp[0].integer;
-               }
-break;
-case 45:
-#line 341 "gram.y"
-{
-                 /* Default to subreg 0 if unspecified. */
-                 yyval.integer = 0;
-               }
-break;
-case 46:
-#line 349 "gram.y"
-{
-                 /* Returns an instruction with just the destination register
-                  * fields filled in.
-                  */
-                 yyval.direct_gen_reg.reg_file = BRW_GENERAL_REGISTER_FILE;
-                 yyval.direct_gen_reg.reg_nr = yyvsp[-1].integer;
-                 yyval.direct_gen_reg.subreg_nr = yyvsp[0].integer;
-               }
-break;
-case 47:
-#line 359 "gram.y"
-{
-                 /* Returns an instruction with just the destination register
-                  * fields filled in.
-                  */
-                 yyval.direct_gen_reg.reg_file = BRW_GENERAL_REGISTER_FILE;
-                 yyval.direct_gen_reg.reg_nr = yyvsp[-1].integer;
-                 yyval.direct_gen_reg.subreg_nr = yyvsp[0].integer;
-               }
-break;
-case 48:
-#line 370 "gram.y"
-{
-                 /* Returns an instruction with just the destination register
-                  * fields filled in.
-                  */
-                 yyval.direct_gen_reg.reg_file = BRW_ARCHITECTURE_REGISTER_FILE;
-                 yyval.direct_gen_reg.reg_nr = BRW_ARF_ACCUMULATOR | yyvsp[-1].integer;
-                 yyval.direct_gen_reg.subreg_nr = yyvsp[0].integer;
-               }
-break;
-case 49:
-#line 381 "gram.y"
-{
-                 /* Returns an instruction with just the destination register
-                  * fields filled in.
-                  */
-                 yyval.direct_gen_reg.reg_file = BRW_ARCHITECTURE_REGISTER_FILE;
-                 yyval.direct_gen_reg.reg_nr = BRW_ARF_ADDRESS | yyvsp[-1].integer;
-                 yyval.direct_gen_reg.subreg_nr = yyvsp[0].integer;
-               }
-break;
-case 50:
-#line 392 "gram.y"
-{
-                 yyval.direct_gen_reg.reg_file = BRW_ARCHITECTURE_REGISTER_FILE;
-                 yyval.direct_gen_reg.reg_nr = BRW_ARF_NULL;
-                 yyval.direct_gen_reg.subreg_nr = 0;
-               }
-break;
-case 51:
-#line 401 "gram.y"
-{
-                 /* Returns a value for a horiz_stride field of an
-                  * instruction.
-                  */
-                 if (yyvsp[-1].integer != 1 && yyvsp[-1].integer != 2 && yyvsp[-1].integer != 4) {
-                   fprintf(stderr, "Invalid horiz size %d\n", yyvsp[-1].integer);
-                 }
-                 yyval.integer = ffs(yyvsp[-1].integer) - 1;
-               }
-break;
-case 52:
-#line 413 "gram.y"
-{
-                 yyval.region.vert_stride = ffs(yyvsp[-5].integer);
-                 yyval.region.width = ffs(yyvsp[-3].integer) - 1;
-                 yyval.region.horiz_stride = ffs(yyvsp[-1].integer);
-               }
-break;
-case 53:
-#line 425 "gram.y"
-{ yyval.integer = BRW_REGISTER_TYPE_F; }
-break;
-case 54:
-#line 426 "gram.y"
-{ yyval.integer = BRW_REGISTER_TYPE_UD; }
-break;
-case 55:
-#line 427 "gram.y"
-{ yyval.integer = BRW_REGISTER_TYPE_D; }
-break;
-case 56:
-#line 428 "gram.y"
-{ yyval.integer = BRW_REGISTER_TYPE_UW; }
-break;
-case 57:
-#line 429 "gram.y"
-{ yyval.integer = BRW_REGISTER_TYPE_UW; }
-break;
-case 58:
-#line 430 "gram.y"
-{ yyval.integer = BRW_REGISTER_TYPE_UB; }
-break;
-case 59:
-#line 431 "gram.y"
-{ yyval.integer = BRW_REGISTER_TYPE_B; }
-break;
-case 61:
-#line 437 "gram.y"
-{ yyval.imm32 = yyvsp[0].integer; }
-break;
-case 62:
-#line 438 "gram.y"
-{ yyval.imm32 = yyvsp[0].number; }
-break;
-case 64:
-#line 445 "gram.y"
-{
-                 /* Returns a value for the execution_size field of an
-                  * instruction.
-                  */
-                 if (yyvsp[-1].integer != 1 && yyvsp[-1].integer != 2 && yyvsp[-1].integer != 4 && yyvsp[-1].integer != 8 && yyvsp[-1].integer != 16 &&
-                     yyvsp[-1].integer != 32) {
-                   fprintf(stderr, "Invalid execution size %d\n", yyvsp[-1].integer);
-                   YYERROR;
-                 }
-                 yyval.integer = ffs(yyvsp[-1].integer) - 1;
-               }
-break;
-case 65:
-#line 458 "gram.y"
-{ yyval.integer = BRW_INSTRUCTION_NORMAL; }
-break;
-case 66:
-#line 459 "gram.y"
-{ yyval.integer = BRW_INSTRUCTION_SATURATE; }
-break;
-case 68:
-#line 468 "gram.y"
-{ yyval.instruction = yyvsp[-1].instruction; }
-break;
-case 69:
-#line 472 "gram.y"
-{
-                 yyval.instruction = yyvsp[0].instruction;
-                 switch (yyvsp[-1].integer) {
-                 case ALIGN1:
-                   yyval.instruction.header.access_mode = BRW_ALIGN_1;
-                   break;
-                 case ALIGN16:
-                   yyval.instruction.header.access_mode = BRW_ALIGN_16;
-                   break;
-                 case MASK_DISABLE:
-                   yyval.instruction.header.mask_control = BRW_MASK_DISABLE;
-                   break;
-                 case EOT:
-                   /* XXX: EOT shouldn't be here */
-                   break;
-                 }
-               }
-break;
-#line 1068 "y.tab.c"
-    }
-    yyssp -= yym;
-    yystate = *yyssp;
-    yyvsp -= yym;
-    yym = yylhs[yyn];
-    if (yystate == 0 && yym == 0)
-    {
-#if YYDEBUG
-        if (yydebug)
-            printf("%sdebug: after reduction, shifting from state 0 to\
- state %d\n", YYPREFIX, YYFINAL);
-#endif
-        yystate = YYFINAL;
-        *++yyssp = YYFINAL;
-        *++yyvsp = yyval;
-        if (yychar < 0)
-        {
-            if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
-            if (yydebug)
-            {
-                yys = 0;
-                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-                if (!yys) yys = "illegal-symbol";
-                printf("%sdebug: state %d, reading %d (%s)\n",
-                        YYPREFIX, YYFINAL, yychar, yys);
-            }
-#endif
-        }
-        if (yychar == 0) goto yyaccept;
-        goto yyloop;
-    }
-    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
-        yystate = yytable[yyn];
-    else
-        yystate = yydgoto[yym];
-#if YYDEBUG
-    if (yydebug)
-        printf("%sdebug: after reduction, shifting from state %d \
-to state %d\n", YYPREFIX, *yyssp, yystate);
-#endif
-    if (yyssp >= yysslim && yygrowstack())
-    {
-        goto yyoverflow;
-    }
-    *++yyssp = yystate;
-    *++yyvsp = yyval;
-    goto yyloop;
-yyoverflow:
-    yyerror("yacc stack overflow");
-yyabort:
-    return (1);
-yyaccept:
-    return (0);
-}