From fc022c1bc23588515dbb91f21764cd34138bb79a Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 22 Aug 2006 13:14:09 -0700 Subject: [PATCH] Remove generated file. --- assembler/gram.c | 1123 ---------------------------------------------- 1 file changed, 1123 deletions(-) delete mode 100644 assembler/gram.c diff --git a/assembler/gram.c b/assembler/gram.c deleted file mode 100644 index 6b3ba475..00000000 --- a/assembler/gram.c +++ /dev/null @@ -1,1123 +0,0 @@ -#include -#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 - * - */ - -#include -#include -#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 -#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); -}