1 /* A Bison parser, made by GNU Bison 2.3. */ 2 3 /* Skeleton interface for Bison's Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 6 Free Software Foundation, Inc. 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 2, or (at your option) 11 any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program; if not, write to the Free Software 20 Foundation, Inc., 51 Franklin Street, Fifth Floor, 21 Boston, MA 02110-1301, USA. */ 22 23 /* As a special exception, you may create a larger work that contains 24 part or all of the Bison parser skeleton and distribute that work 25 under terms of your choice, so long as that work isn't itself a 26 parser generator using the skeleton or a modified version thereof 27 as a parser skeleton. Alternatively, if you modify or redistribute 28 the parser skeleton itself, you may (at your option) remove this 29 special exception, which will cause the skeleton and the resulting 30 Bison output files to be licensed under the GNU General Public 31 License without this special exception. 32 33 This special exception was added by the Free Software Foundation in 34 version 2.2 of Bison. */ 35 36 /* Tokens. */ 37 #ifndef YYTOKENTYPE 38 # define YYTOKENTYPE 39 /* Put the tokens into the symbol table, so that GDB and other debuggers 40 know about them. */ 41 enum yytokentype { 42 BYTEOP16P = 258, 43 BYTEOP16M = 259, 44 BYTEOP1P = 260, 45 BYTEOP2P = 261, 46 BYTEOP3P = 262, 47 BYTEUNPACK = 263, 48 BYTEPACK = 264, 49 PACK = 265, 50 SAA = 266, 51 ALIGN8 = 267, 52 ALIGN16 = 268, 53 ALIGN24 = 269, 54 VIT_MAX = 270, 55 EXTRACT = 271, 56 DEPOSIT = 272, 57 EXPADJ = 273, 58 SEARCH = 274, 59 ONES = 275, 60 SIGN = 276, 61 SIGNBITS = 277, 62 LINK = 278, 63 UNLINK = 279, 64 REG = 280, 65 PC = 281, 66 CCREG = 282, 67 BYTE_DREG = 283, 68 REG_A_DOUBLE_ZERO = 284, 69 REG_A_DOUBLE_ONE = 285, 70 A_ZERO_DOT_L = 286, 71 A_ZERO_DOT_H = 287, 72 A_ONE_DOT_L = 288, 73 A_ONE_DOT_H = 289, 74 HALF_REG = 290, 75 NOP = 291, 76 RTI = 292, 77 RTS = 293, 78 RTX = 294, 79 RTN = 295, 80 RTE = 296, 81 HLT = 297, 82 IDLE = 298, 83 STI = 299, 84 CLI = 300, 85 CSYNC = 301, 86 SSYNC = 302, 87 EMUEXCPT = 303, 88 RAISE = 304, 89 EXCPT = 305, 90 LSETUP = 306, 91 LOOP = 307, 92 LOOP_BEGIN = 308, 93 LOOP_END = 309, 94 DISALGNEXCPT = 310, 95 JUMP = 311, 96 JUMP_DOT_S = 312, 97 JUMP_DOT_L = 313, 98 CALL = 314, 99 ABORT = 315, 100 NOT = 316, 101 TILDA = 317, 102 BANG = 318, 103 AMPERSAND = 319, 104 BAR = 320, 105 PERCENT = 321, 106 CARET = 322, 107 BXOR = 323, 108 MINUS = 324, 109 PLUS = 325, 110 STAR = 326, 111 SLASH = 327, 112 NEG = 328, 113 MIN = 329, 114 MAX = 330, 115 ABS = 331, 116 DOUBLE_BAR = 332, 117 _PLUS_BAR_PLUS = 333, 118 _PLUS_BAR_MINUS = 334, 119 _MINUS_BAR_PLUS = 335, 120 _MINUS_BAR_MINUS = 336, 121 _MINUS_MINUS = 337, 122 _PLUS_PLUS = 338, 123 SHIFT = 339, 124 LSHIFT = 340, 125 ASHIFT = 341, 126 BXORSHIFT = 342, 127 _GREATER_GREATER_GREATER_THAN_ASSIGN = 343, 128 ROT = 344, 129 LESS_LESS = 345, 130 GREATER_GREATER = 346, 131 _GREATER_GREATER_GREATER = 347, 132 _LESS_LESS_ASSIGN = 348, 133 _GREATER_GREATER_ASSIGN = 349, 134 DIVS = 350, 135 DIVQ = 351, 136 ASSIGN = 352, 137 _STAR_ASSIGN = 353, 138 _BAR_ASSIGN = 354, 139 _CARET_ASSIGN = 355, 140 _AMPERSAND_ASSIGN = 356, 141 _MINUS_ASSIGN = 357, 142 _PLUS_ASSIGN = 358, 143 _ASSIGN_BANG = 359, 144 _LESS_THAN_ASSIGN = 360, 145 _ASSIGN_ASSIGN = 361, 146 GE = 362, 147 LT = 363, 148 LE = 364, 149 GT = 365, 150 LESS_THAN = 366, 151 FLUSHINV = 367, 152 FLUSH = 368, 153 IFLUSH = 369, 154 PREFETCH = 370, 155 PRNT = 371, 156 OUTC = 372, 157 WHATREG = 373, 158 TESTSET = 374, 159 ASL = 375, 160 ASR = 376, 161 B = 377, 162 W = 378, 163 NS = 379, 164 S = 380, 165 CO = 381, 166 SCO = 382, 167 TH = 383, 168 TL = 384, 169 BP = 385, 170 BREV = 386, 171 X = 387, 172 Z = 388, 173 M = 389, 174 MMOD = 390, 175 R = 391, 176 RND = 392, 177 RNDL = 393, 178 RNDH = 394, 179 RND12 = 395, 180 RND20 = 396, 181 V = 397, 182 LO = 398, 183 HI = 399, 184 BITTGL = 400, 185 BITCLR = 401, 186 BITSET = 402, 187 BITTST = 403, 188 BITMUX = 404, 189 DBGAL = 405, 190 DBGAH = 406, 191 DBGHALT = 407, 192 DBG = 408, 193 DBGA = 409, 194 DBGCMPLX = 410, 195 IF = 411, 196 COMMA = 412, 197 BY = 413, 198 COLON = 414, 199 SEMICOLON = 415, 200 RPAREN = 416, 201 LPAREN = 417, 202 LBRACK = 418, 203 RBRACK = 419, 204 STATUS_REG = 420, 205 MNOP = 421, 206 SYMBOL = 422, 207 NUMBER = 423, 208 GOT = 424, 209 GOT17M4 = 425, 210 FUNCDESC_GOT17M4 = 426, 211 AT = 427, 212 PLTPC = 428 213 }; 214 #endif 215 /* Tokens. */ 216 #define BYTEOP16P 258 217 #define BYTEOP16M 259 218 #define BYTEOP1P 260 219 #define BYTEOP2P 261 220 #define BYTEOP3P 262 221 #define BYTEUNPACK 263 222 #define BYTEPACK 264 223 #define PACK 265 224 #define SAA 266 225 #define ALIGN8 267 226 #define ALIGN16 268 227 #define ALIGN24 269 228 #define VIT_MAX 270 229 #define EXTRACT 271 230 #define DEPOSIT 272 231 #define EXPADJ 273 232 #define SEARCH 274 233 #define ONES 275 234 #define SIGN 276 235 #define SIGNBITS 277 236 #define LINK 278 237 #define UNLINK 279 238 #define REG 280 239 #define PC 281 240 #define CCREG 282 241 #define BYTE_DREG 283 242 #define REG_A_DOUBLE_ZERO 284 243 #define REG_A_DOUBLE_ONE 285 244 #define A_ZERO_DOT_L 286 245 #define A_ZERO_DOT_H 287 246 #define A_ONE_DOT_L 288 247 #define A_ONE_DOT_H 289 248 #define HALF_REG 290 249 #define NOP 291 250 #define RTI 292 251 #define RTS 293 252 #define RTX 294 253 #define RTN 295 254 #define RTE 296 255 #define HLT 297 256 #define IDLE 298 257 #define STI 299 258 #define CLI 300 259 #define CSYNC 301 260 #define SSYNC 302 261 #define EMUEXCPT 303 262 #define RAISE 304 263 #define EXCPT 305 264 #define LSETUP 306 265 #define LOOP 307 266 #define LOOP_BEGIN 308 267 #define LOOP_END 309 268 #define DISALGNEXCPT 310 269 #define JUMP 311 270 #define JUMP_DOT_S 312 271 #define JUMP_DOT_L 313 272 #define CALL 314 273 #define ABORT 315 274 #define NOT 316 275 #define TILDA 317 276 #define BANG 318 277 #define AMPERSAND 319 278 #define BAR 320 279 #define PERCENT 321 280 #define CARET 322 281 #define BXOR 323 282 #define MINUS 324 283 #define PLUS 325 284 #define STAR 326 285 #define SLASH 327 286 #define NEG 328 287 #define MIN 329 288 #define MAX 330 289 #define ABS 331 290 #define DOUBLE_BAR 332 291 #define _PLUS_BAR_PLUS 333 292 #define _PLUS_BAR_MINUS 334 293 #define _MINUS_BAR_PLUS 335 294 #define _MINUS_BAR_MINUS 336 295 #define _MINUS_MINUS 337 296 #define _PLUS_PLUS 338 297 #define SHIFT 339 298 #define LSHIFT 340 299 #define ASHIFT 341 300 #define BXORSHIFT 342 301 #define _GREATER_GREATER_GREATER_THAN_ASSIGN 343 302 #define ROT 344 303 #define LESS_LESS 345 304 #define GREATER_GREATER 346 305 #define _GREATER_GREATER_GREATER 347 306 #define _LESS_LESS_ASSIGN 348 307 #define _GREATER_GREATER_ASSIGN 349 308 #define DIVS 350 309 #define DIVQ 351 310 #define ASSIGN 352 311 #define _STAR_ASSIGN 353 312 #define _BAR_ASSIGN 354 313 #define _CARET_ASSIGN 355 314 #define _AMPERSAND_ASSIGN 356 315 #define _MINUS_ASSIGN 357 316 #define _PLUS_ASSIGN 358 317 #define _ASSIGN_BANG 359 318 #define _LESS_THAN_ASSIGN 360 319 #define _ASSIGN_ASSIGN 361 320 #define GE 362 321 #define LT 363 322 #define LE 364 323 #define GT 365 324 #define LESS_THAN 366 325 #define FLUSHINV 367 326 #define FLUSH 368 327 #define IFLUSH 369 328 #define PREFETCH 370 329 #define PRNT 371 330 #define OUTC 372 331 #define WHATREG 373 332 #define TESTSET 374 333 #define ASL 375 334 #define ASR 376 335 #define B 377 336 #define W 378 337 #define NS 379 338 #define S 380 339 #define CO 381 340 #define SCO 382 341 #define TH 383 342 #define TL 384 343 #define BP 385 344 #define BREV 386 345 #define X 387 346 #define Z 388 347 #define M 389 348 #define MMOD 390 349 #define R 391 350 #define RND 392 351 #define RNDL 393 352 #define RNDH 394 353 #define RND12 395 354 #define RND20 396 355 #define V 397 356 #define LO 398 357 #define HI 399 358 #define BITTGL 400 359 #define BITCLR 401 360 #define BITSET 402 361 #define BITTST 403 362 #define BITMUX 404 363 #define DBGAL 405 364 #define DBGAH 406 365 #define DBGHALT 407 366 #define DBG 408 367 #define DBGA 409 368 #define DBGCMPLX 410 369 #define IF 411 370 #define COMMA 412 371 #define BY 413 372 #define COLON 414 373 #define SEMICOLON 415 374 #define RPAREN 416 375 #define LPAREN 417 376 #define LBRACK 418 377 #define RBRACK 419 378 #define STATUS_REG 420 379 #define MNOP 421 380 #define SYMBOL 422 381 #define NUMBER 423 382 #define GOT 424 383 #define GOT17M4 425 384 #define FUNCDESC_GOT17M4 426 385 #define AT 427 386 #define PLTPC 428 387 388 389 390 391 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 392 typedef union YYSTYPE 393 #line 445 "./config/bfin-parse.y" 394 { 395 INSTR_T instr; 396 Expr_Node *expr; 397 SYMBOL_T symbol; 398 long value; 399 Register reg; 400 Macfunc macfunc; 401 struct { int r0; int s0; int x0; int aop; } modcodes; 402 struct { int r0; } r0; 403 Opt_mode mod; 404 } 405 /* Line 1529 of yacc.c. */ 406 #line 407 "bfin-parse.h" 407 YYSTYPE; 408 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 409 # define YYSTYPE_IS_DECLARED 1 410 # define YYSTYPE_IS_TRIVIAL 1 411 #endif 412 413 extern YYSTYPE yylval; 414 415