Home | History | Annotate | Line # | Download | only in config
rx-parse.c revision 1.1
      1  1.1  christos /* A Bison parser, made by GNU Bison 3.8.2.  */
      2  1.1  christos 
      3  1.1  christos /* Bison implementation for Yacc-like parsers in C
      4  1.1  christos 
      5  1.1  christos    Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
      6  1.1  christos    Inc.
      7  1.1  christos 
      8  1.1  christos    This program is free software: you can redistribute it and/or modify
      9  1.1  christos    it under the terms of the GNU General Public License as published by
     10  1.1  christos    the Free Software Foundation, either version 3 of the License, or
     11  1.1  christos    (at your option) any later version.
     12  1.1  christos 
     13  1.1  christos    This program is distributed in the hope that it will be useful,
     14  1.1  christos    but WITHOUT ANY WARRANTY; without even the implied warranty of
     15  1.1  christos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16  1.1  christos    GNU General Public License for more details.
     17  1.1  christos 
     18  1.1  christos    You should have received a copy of the GNU General Public License
     19  1.1  christos    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
     20  1.1  christos 
     21  1.1  christos /* As a special exception, you may create a larger work that contains
     22  1.1  christos    part or all of the Bison parser skeleton and distribute that work
     23  1.1  christos    under terms of your choice, so long as that work isn't itself a
     24  1.1  christos    parser generator using the skeleton or a modified version thereof
     25  1.1  christos    as a parser skeleton.  Alternatively, if you modify or redistribute
     26  1.1  christos    the parser skeleton itself, you may (at your option) remove this
     27  1.1  christos    special exception, which will cause the skeleton and the resulting
     28  1.1  christos    Bison output files to be licensed under the GNU General Public
     29  1.1  christos    License without this special exception.
     30  1.1  christos 
     31  1.1  christos    This special exception was added by the Free Software Foundation in
     32  1.1  christos    version 2.2 of Bison.  */
     33  1.1  christos 
     34  1.1  christos /* C LALR(1) parser skeleton written by Richard Stallman, by
     35  1.1  christos    simplifying the original so-called "semantic" parser.  */
     36  1.1  christos 
     37  1.1  christos /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
     38  1.1  christos    especially those whose name start with YY_ or yy_.  They are
     39  1.1  christos    private implementation details that can be changed or removed.  */
     40  1.1  christos 
     41  1.1  christos /* All symbols defined below should begin with yy or YY, to avoid
     42  1.1  christos    infringing on user name space.  This should be done even for local
     43  1.1  christos    variables, as they might otherwise be expanded by user macros.
     44  1.1  christos    There are some unavoidable exceptions within include files to
     45  1.1  christos    define necessary library symbols; they are noted "INFRINGES ON
     46  1.1  christos    USER NAME SPACE" below.  */
     47  1.1  christos 
     48  1.1  christos /* Identify Bison output, and Bison version.  */
     49  1.1  christos #define YYBISON 30802
     50  1.1  christos 
     51  1.1  christos /* Bison version string.  */
     52  1.1  christos #define YYBISON_VERSION "3.8.2"
     53  1.1  christos 
     54  1.1  christos /* Skeleton name.  */
     55  1.1  christos #define YYSKELETON_NAME "yacc.c"
     56  1.1  christos 
     57  1.1  christos /* Pure parsers.  */
     58  1.1  christos #define YYPURE 0
     59  1.1  christos 
     60  1.1  christos /* Push parsers.  */
     61  1.1  christos #define YYPUSH 0
     62  1.1  christos 
     63  1.1  christos /* Pull parsers.  */
     64  1.1  christos #define YYPULL 1
     65  1.1  christos 
     66  1.1  christos 
     67  1.1  christos /* Substitute the variable and function names.  */
     68  1.1  christos #define yyparse         rx_parse
     69  1.1  christos #define yylex           rx_lex
     70  1.1  christos #define yyerror         rx_error
     71  1.1  christos #define yydebug         rx_debug
     72  1.1  christos #define yynerrs         rx_nerrs
     73  1.1  christos #define yylval          rx_lval
     74  1.1  christos #define yychar          rx_char
     75  1.1  christos 
     76  1.1  christos /* First part of user prologue.  */
     77  1.1  christos #line 20 "./config/rx-parse.y"
     78  1.1  christos 
     79  1.1  christos 
     80  1.1  christos #include "as.h"
     81  1.1  christos #include "safe-ctype.h"
     82  1.1  christos #include "rx-defs.h"
     83  1.1  christos 
     84  1.1  christos static int rx_lex (void);
     85  1.1  christos 
     86  1.1  christos #define COND_EQ	0
     87  1.1  christos #define COND_NE	1
     88  1.1  christos 
     89  1.1  christos #define MEMEX 0x06
     90  1.1  christos 
     91  1.1  christos #define BSIZE 0
     92  1.1  christos #define WSIZE 1
     93  1.1  christos #define LSIZE 2
     94  1.1  christos #define DSIZE 3
     95  1.1  christos 
     96  1.1  christos /*                       .sb    .sw    .l     .uw   */
     97  1.1  christos static int sizemap[] = { BSIZE, WSIZE, LSIZE, WSIZE };
     98  1.1  christos 
     99  1.1  christos /* Ok, here are the rules for using these macros...
    100  1.1  christos 
    101  1.1  christos    B*() is used to specify the base opcode bytes.  Fields to be filled
    102  1.1  christos         in later, leave zero.  Call this first.
    103  1.1  christos 
    104  1.1  christos    F() and FE() are used to fill in fields within the base opcode bytes.  You MUST
    105  1.1  christos         call B*() before any F() or FE().
    106  1.1  christos 
    107  1.1  christos    [UN]*O*(), PC*() appends operands to the end of the opcode.  You
    108  1.1  christos         must call P() and B*() before any of these, so that the fixups
    109  1.1  christos         have the right byte location.
    110  1.1  christos         O = signed, UO = unsigned, NO = negated, PC = pcrel
    111  1.1  christos 
    112  1.1  christos    IMM() adds an immediate and fills in the field for it.
    113  1.1  christos    NIMM() same, but negates the immediate.
    114  1.1  christos    NBIMM() same, but negates the immediate, for sbb.
    115  1.1  christos    DSP() adds a displacement, and fills in the field for it.
    116  1.1  christos 
    117  1.1  christos    Note that order is significant for the O, IMM, and DSP macros, as
    118  1.1  christos    they append their data to the operand buffer in the order that you
    119  1.1  christos    call them.
    120  1.1  christos 
    121  1.1  christos    Use "disp" for displacements whenever possible; this handles the
    122  1.1  christos    "0" case properly.  */
    123  1.1  christos 
    124  1.1  christos #define B1(b1)             rx_base1 (b1)
    125  1.1  christos #define B2(b1, b2)         rx_base2 (b1, b2)
    126  1.1  christos #define B3(b1, b2, b3)     rx_base3 (b1, b2, b3)
    127  1.1  christos #define B4(b1, b2, b3, b4) rx_base4 (b1, b2, b3, b4)
    128  1.1  christos 
    129  1.1  christos /* POS is bits from the MSB of the first byte to the LSB of the last byte.  */
    130  1.1  christos #define F(val,pos,sz)      rx_field (val, pos, sz)
    131  1.1  christos #define FE(exp,pos,sz)	   rx_field (exp_val (exp), pos, sz);
    132  1.1  christos 
    133  1.1  christos #define O1(v)              rx_op (v, 1, RXREL_SIGNED); rx_range (v, -128, 255)
    134  1.1  christos #define O2(v)              rx_op (v, 2, RXREL_SIGNED); rx_range (v, -32768, 65536)
    135  1.1  christos #define O3(v)              rx_op (v, 3, RXREL_SIGNED); rx_range (v, -8388608, 16777216)
    136  1.1  christos #define O4(v)              rx_op (v, 4, RXREL_SIGNED)
    137  1.1  christos 
    138  1.1  christos #define UO1(v)             rx_op (v, 1, RXREL_UNSIGNED); rx_range (v, 0, 255)
    139  1.1  christos #define UO2(v)             rx_op (v, 2, RXREL_UNSIGNED); rx_range (v, 0, 65536)
    140  1.1  christos #define UO3(v)             rx_op (v, 3, RXREL_UNSIGNED); rx_range (v, 0, 16777216)
    141  1.1  christos #define UO4(v)             rx_op (v, 4, RXREL_UNSIGNED)
    142  1.1  christos 
    143  1.1  christos #define NO1(v)             rx_op (v, 1, RXREL_NEGATIVE)
    144  1.1  christos #define NO2(v)             rx_op (v, 2, RXREL_NEGATIVE)
    145  1.1  christos #define NO3(v)             rx_op (v, 3, RXREL_NEGATIVE)
    146  1.1  christos #define NO4(v)             rx_op (v, 4, RXREL_NEGATIVE)
    147  1.1  christos 
    148  1.1  christos #define PC1(v)             rx_op (v, 1, RXREL_PCREL)
    149  1.1  christos #define PC2(v)             rx_op (v, 2, RXREL_PCREL)
    150  1.1  christos #define PC3(v)             rx_op (v, 3, RXREL_PCREL)
    151  1.1  christos 
    152  1.1  christos #define POST(v)            rx_post (v)
    153  1.1  christos 
    154  1.1  christos #define IMM_(v,pos,size)   F (immediate (v, RXREL_SIGNED, pos, size), pos, 2); \
    155  1.1  christos 			   if (v.X_op != O_constant && v.X_op != O_big) rx_linkrelax_imm (pos)
    156  1.1  christos #define IMM(v,pos)	   IMM_ (v, pos, 32)
    157  1.1  christos #define IMMW(v,pos)	   IMM_ (v, pos, 16); rx_range (v, -32768, 65536)
    158  1.1  christos #define IMMB(v,pos)	   IMM_ (v, pos, 8); rx_range (v, -128, 255)
    159  1.1  christos #define NIMM(v,pos)	   F (immediate (v, RXREL_NEGATIVE, pos, 32), pos, 2)
    160  1.1  christos #define NBIMM(v,pos)	   F (immediate (v, RXREL_NEGATIVE_BORROW, pos, 32), pos, 2)
    161  1.1  christos #define DSP(v,pos,msz)	   if (!v.X_md) rx_relax (RX_RELAX_DISP, pos); \
    162  1.1  christos 			   else rx_linkrelax_dsp (pos); \
    163  1.1  christos 			   F (displacement (v, msz), pos, 2)
    164  1.1  christos 
    165  1.1  christos #define id24(a,b2,b3)	   B3 (0xfb + a, b2, b3)
    166  1.1  christos 
    167  1.1  christos static void	   rx_check_float_support (void);
    168  1.1  christos static int         rx_intop (expressionS, int, int);
    169  1.1  christos static int         rx_uintop (expressionS, int);
    170  1.1  christos static int         rx_disp3op (expressionS);
    171  1.1  christos static int         rx_disp5op (expressionS *, int);
    172  1.1  christos static int         rx_disp5op0 (expressionS *, int);
    173  1.1  christos static int         exp_val (expressionS exp);
    174  1.1  christos static expressionS zero_expr (void);
    175  1.1  christos static int         immediate (expressionS, int, int, int);
    176  1.1  christos static int         displacement (expressionS, int);
    177  1.1  christos static void        rtsd_immediate (expressionS);
    178  1.1  christos static void	   rx_range (expressionS, int, int);
    179  1.1  christos static void        rx_check_v2 (void);
    180  1.1  christos static void        rx_check_v3 (void);
    181  1.1  christos static void        rx_check_dfpu (void);
    182  1.1  christos 
    183  1.1  christos static int    need_flag = 0;
    184  1.1  christos static int    rx_in_brackets = 0;
    185  1.1  christos static int    rx_last_token = 0;
    186  1.1  christos static char * rx_init_start;
    187  1.1  christos static char * rx_last_exp_start = 0;
    188  1.1  christos static int    sub_op;
    189  1.1  christos static int    sub_op2;
    190  1.1  christos 
    191  1.1  christos #define YYDEBUG 1
    192  1.1  christos #define YYERROR_VERBOSE 1
    193  1.1  christos 
    194  1.1  christos 
    195  1.1  christos #line 196 "config/rx-parse.c"
    196  1.1  christos 
    197  1.1  christos # ifndef YY_CAST
    198  1.1  christos #  ifdef __cplusplus
    199  1.1  christos #   define YY_CAST(Type, Val) static_cast<Type> (Val)
    200  1.1  christos #   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
    201  1.1  christos #  else
    202  1.1  christos #   define YY_CAST(Type, Val) ((Type) (Val))
    203  1.1  christos #   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
    204  1.1  christos #  endif
    205  1.1  christos # endif
    206  1.1  christos # ifndef YY_NULLPTR
    207  1.1  christos #  if defined __cplusplus
    208  1.1  christos #   if 201103L <= __cplusplus
    209  1.1  christos #    define YY_NULLPTR nullptr
    210  1.1  christos #   else
    211  1.1  christos #    define YY_NULLPTR 0
    212  1.1  christos #   endif
    213  1.1  christos #  else
    214  1.1  christos #   define YY_NULLPTR ((void*)0)
    215  1.1  christos #  endif
    216  1.1  christos # endif
    217  1.1  christos 
    218  1.1  christos /* Use api.header.include to #include this header
    219  1.1  christos    instead of duplicating it here.  */
    220  1.1  christos #ifndef YY_RX_CONFIG_RX_PARSE_H_INCLUDED
    221  1.1  christos # define YY_RX_CONFIG_RX_PARSE_H_INCLUDED
    222  1.1  christos /* Debug traces.  */
    223  1.1  christos #ifndef YYDEBUG
    224  1.1  christos # define YYDEBUG 0
    225  1.1  christos #endif
    226  1.1  christos #if YYDEBUG
    227  1.1  christos extern int rx_debug;
    228  1.1  christos #endif
    229  1.1  christos 
    230  1.1  christos /* Token kinds.  */
    231  1.1  christos #ifndef YYTOKENTYPE
    232  1.1  christos # define YYTOKENTYPE
    233  1.1  christos   enum yytokentype
    234  1.1  christos   {
    235  1.1  christos     YYEMPTY = -2,
    236  1.1  christos     YYEOF = 0,                     /* "end of file"  */
    237  1.1  christos     YYerror = 256,                 /* error  */
    238  1.1  christos     YYUNDEF = 257,                 /* "invalid token"  */
    239  1.1  christos     REG = 258,                     /* REG  */
    240  1.1  christos     FLAG = 259,                    /* FLAG  */
    241  1.1  christos     CREG = 260,                    /* CREG  */
    242  1.1  christos     ACC = 261,                     /* ACC  */
    243  1.1  christos     DREG = 262,                    /* DREG  */
    244  1.1  christos     DREGH = 263,                   /* DREGH  */
    245  1.1  christos     DREGL = 264,                   /* DREGL  */
    246  1.1  christos     DCREG = 265,                   /* DCREG  */
    247  1.1  christos     EXPR = 266,                    /* EXPR  */
    248  1.1  christos     UNKNOWN_OPCODE = 267,          /* UNKNOWN_OPCODE  */
    249  1.1  christos     IS_OPCODE = 268,               /* IS_OPCODE  */
    250  1.1  christos     DOT_S = 269,                   /* DOT_S  */
    251  1.1  christos     DOT_B = 270,                   /* DOT_B  */
    252  1.1  christos     DOT_W = 271,                   /* DOT_W  */
    253  1.1  christos     DOT_L = 272,                   /* DOT_L  */
    254  1.1  christos     DOT_A = 273,                   /* DOT_A  */
    255  1.1  christos     DOT_UB = 274,                  /* DOT_UB  */
    256  1.1  christos     DOT_UW = 275,                  /* DOT_UW  */
    257  1.1  christos     DOT_D = 276,                   /* DOT_D  */
    258  1.1  christos     ABS = 277,                     /* ABS  */
    259  1.1  christos     ADC = 278,                     /* ADC  */
    260  1.1  christos     ADD = 279,                     /* ADD  */
    261  1.1  christos     AND_ = 280,                    /* AND_  */
    262  1.1  christos     BCLR = 281,                    /* BCLR  */
    263  1.1  christos     BCND = 282,                    /* BCND  */
    264  1.1  christos     BFMOV = 283,                   /* BFMOV  */
    265  1.1  christos     BFMOVZ = 284,                  /* BFMOVZ  */
    266  1.1  christos     BMCND = 285,                   /* BMCND  */
    267  1.1  christos     BNOT = 286,                    /* BNOT  */
    268  1.1  christos     BRA = 287,                     /* BRA  */
    269  1.1  christos     BRK = 288,                     /* BRK  */
    270  1.1  christos     BSET = 289,                    /* BSET  */
    271  1.1  christos     BSR = 290,                     /* BSR  */
    272  1.1  christos     BTST = 291,                    /* BTST  */
    273  1.1  christos     CLRPSW = 292,                  /* CLRPSW  */
    274  1.1  christos     CMP = 293,                     /* CMP  */
    275  1.1  christos     DABS = 294,                    /* DABS  */
    276  1.1  christos     DADD = 295,                    /* DADD  */
    277  1.1  christos     DBT = 296,                     /* DBT  */
    278  1.1  christos     DCMP = 297,                    /* DCMP  */
    279  1.1  christos     DDIV = 298,                    /* DDIV  */
    280  1.1  christos     DIV = 299,                     /* DIV  */
    281  1.1  christos     DIVU = 300,                    /* DIVU  */
    282  1.1  christos     DMOV = 301,                    /* DMOV  */
    283  1.1  christos     DMUL = 302,                    /* DMUL  */
    284  1.1  christos     DNEG = 303,                    /* DNEG  */
    285  1.1  christos     DPOPM = 304,                   /* DPOPM  */
    286  1.1  christos     DPUSHM = 305,                  /* DPUSHM  */
    287  1.1  christos     DROUND = 306,                  /* DROUND  */
    288  1.1  christos     DSQRT = 307,                   /* DSQRT  */
    289  1.1  christos     DSUB = 308,                    /* DSUB  */
    290  1.1  christos     DTOF = 309,                    /* DTOF  */
    291  1.1  christos     DTOI = 310,                    /* DTOI  */
    292  1.1  christos     DTOU = 311,                    /* DTOU  */
    293  1.1  christos     EDIV = 312,                    /* EDIV  */
    294  1.1  christos     EDIVU = 313,                   /* EDIVU  */
    295  1.1  christos     EMACA = 314,                   /* EMACA  */
    296  1.1  christos     EMSBA = 315,                   /* EMSBA  */
    297  1.1  christos     EMUL = 316,                    /* EMUL  */
    298  1.1  christos     EMULA = 317,                   /* EMULA  */
    299  1.1  christos     EMULU = 318,                   /* EMULU  */
    300  1.1  christos     FADD = 319,                    /* FADD  */
    301  1.1  christos     FCMP = 320,                    /* FCMP  */
    302  1.1  christos     FDIV = 321,                    /* FDIV  */
    303  1.1  christos     FMUL = 322,                    /* FMUL  */
    304  1.1  christos     FREIT = 323,                   /* FREIT  */
    305  1.1  christos     FSUB = 324,                    /* FSUB  */
    306  1.1  christos     FSQRT = 325,                   /* FSQRT  */
    307  1.1  christos     FTOD = 326,                    /* FTOD  */
    308  1.1  christos     FTOI = 327,                    /* FTOI  */
    309  1.1  christos     FTOU = 328,                    /* FTOU  */
    310  1.1  christos     INT = 329,                     /* INT  */
    311  1.1  christos     ITOD = 330,                    /* ITOD  */
    312  1.1  christos     ITOF = 331,                    /* ITOF  */
    313  1.1  christos     JMP = 332,                     /* JMP  */
    314  1.1  christos     JSR = 333,                     /* JSR  */
    315  1.1  christos     MACHI = 334,                   /* MACHI  */
    316  1.1  christos     MACLH = 335,                   /* MACLH  */
    317  1.1  christos     MACLO = 336,                   /* MACLO  */
    318  1.1  christos     MAX = 337,                     /* MAX  */
    319  1.1  christos     MIN = 338,                     /* MIN  */
    320  1.1  christos     MOV = 339,                     /* MOV  */
    321  1.1  christos     MOVCO = 340,                   /* MOVCO  */
    322  1.1  christos     MOVLI = 341,                   /* MOVLI  */
    323  1.1  christos     MOVU = 342,                    /* MOVU  */
    324  1.1  christos     MSBHI = 343,                   /* MSBHI  */
    325  1.1  christos     MSBLH = 344,                   /* MSBLH  */
    326  1.1  christos     MSBLO = 345,                   /* MSBLO  */
    327  1.1  christos     MUL = 346,                     /* MUL  */
    328  1.1  christos     MULHI = 347,                   /* MULHI  */
    329  1.1  christos     MULLH = 348,                   /* MULLH  */
    330  1.1  christos     MULLO = 349,                   /* MULLO  */
    331  1.1  christos     MULU = 350,                    /* MULU  */
    332  1.1  christos     MVFACHI = 351,                 /* MVFACHI  */
    333  1.1  christos     MVFACGU = 352,                 /* MVFACGU  */
    334  1.1  christos     MVFACMI = 353,                 /* MVFACMI  */
    335  1.1  christos     MVFACLO = 354,                 /* MVFACLO  */
    336  1.1  christos     MVFC = 355,                    /* MVFC  */
    337  1.1  christos     MVFDC = 356,                   /* MVFDC  */
    338  1.1  christos     MVFDR = 357,                   /* MVFDR  */
    339  1.1  christos     MVTACGU = 358,                 /* MVTACGU  */
    340  1.1  christos     MVTACHI = 359,                 /* MVTACHI  */
    341  1.1  christos     MVTACLO = 360,                 /* MVTACLO  */
    342  1.1  christos     MVTC = 361,                    /* MVTC  */
    343  1.1  christos     MVTDC = 362,                   /* MVTDC  */
    344  1.1  christos     MVTIPL = 363,                  /* MVTIPL  */
    345  1.1  christos     NEG = 364,                     /* NEG  */
    346  1.1  christos     NOP = 365,                     /* NOP  */
    347  1.1  christos     NOT = 366,                     /* NOT  */
    348  1.1  christos     OR = 367,                      /* OR  */
    349  1.1  christos     POP = 368,                     /* POP  */
    350  1.1  christos     POPC = 369,                    /* POPC  */
    351  1.1  christos     POPM = 370,                    /* POPM  */
    352  1.1  christos     PUSH = 371,                    /* PUSH  */
    353  1.1  christos     PUSHA = 372,                   /* PUSHA  */
    354  1.1  christos     PUSHC = 373,                   /* PUSHC  */
    355  1.1  christos     PUSHM = 374,                   /* PUSHM  */
    356  1.1  christos     RACL = 375,                    /* RACL  */
    357  1.1  christos     RACW = 376,                    /* RACW  */
    358  1.1  christos     RDACL = 377,                   /* RDACL  */
    359  1.1  christos     RDACW = 378,                   /* RDACW  */
    360  1.1  christos     REIT = 379,                    /* REIT  */
    361  1.1  christos     REVL = 380,                    /* REVL  */
    362  1.1  christos     REVW = 381,                    /* REVW  */
    363  1.1  christos     RMPA = 382,                    /* RMPA  */
    364  1.1  christos     ROLC = 383,                    /* ROLC  */
    365  1.1  christos     RORC = 384,                    /* RORC  */
    366  1.1  christos     ROTL = 385,                    /* ROTL  */
    367  1.1  christos     ROTR = 386,                    /* ROTR  */
    368  1.1  christos     ROUND = 387,                   /* ROUND  */
    369  1.1  christos     RSTR = 388,                    /* RSTR  */
    370  1.1  christos     RTE = 389,                     /* RTE  */
    371  1.1  christos     RTFI = 390,                    /* RTFI  */
    372  1.1  christos     RTS = 391,                     /* RTS  */
    373  1.1  christos     RTSD = 392,                    /* RTSD  */
    374  1.1  christos     SAT = 393,                     /* SAT  */
    375  1.1  christos     SATR = 394,                    /* SATR  */
    376  1.1  christos     SAVE = 395,                    /* SAVE  */
    377  1.1  christos     SBB = 396,                     /* SBB  */
    378  1.1  christos     SCCND = 397,                   /* SCCND  */
    379  1.1  christos     SCMPU = 398,                   /* SCMPU  */
    380  1.1  christos     SETPSW = 399,                  /* SETPSW  */
    381  1.1  christos     SHAR = 400,                    /* SHAR  */
    382  1.1  christos     SHLL = 401,                    /* SHLL  */
    383  1.1  christos     SHLR = 402,                    /* SHLR  */
    384  1.1  christos     SMOVB = 403,                   /* SMOVB  */
    385  1.1  christos     SMOVF = 404,                   /* SMOVF  */
    386  1.1  christos     SMOVU = 405,                   /* SMOVU  */
    387  1.1  christos     SSTR = 406,                    /* SSTR  */
    388  1.1  christos     STNZ = 407,                    /* STNZ  */
    389  1.1  christos     STOP = 408,                    /* STOP  */
    390  1.1  christos     STZ = 409,                     /* STZ  */
    391  1.1  christos     SUB = 410,                     /* SUB  */
    392  1.1  christos     SUNTIL = 411,                  /* SUNTIL  */
    393  1.1  christos     SWHILE = 412,                  /* SWHILE  */
    394  1.1  christos     TST = 413,                     /* TST  */
    395  1.1  christos     UTOD = 414,                    /* UTOD  */
    396  1.1  christos     UTOF = 415,                    /* UTOF  */
    397  1.1  christos     WAIT = 416,                    /* WAIT  */
    398  1.1  christos     XCHG = 417,                    /* XCHG  */
    399  1.1  christos     XOR = 418                      /* XOR  */
    400  1.1  christos   };
    401  1.1  christos   typedef enum yytokentype yytoken_kind_t;
    402  1.1  christos #endif
    403  1.1  christos /* Token kinds.  */
    404  1.1  christos #define YYEMPTY -2
    405  1.1  christos #define YYEOF 0
    406  1.1  christos #define YYerror 256
    407  1.1  christos #define YYUNDEF 257
    408  1.1  christos #define REG 258
    409  1.1  christos #define FLAG 259
    410  1.1  christos #define CREG 260
    411  1.1  christos #define ACC 261
    412  1.1  christos #define DREG 262
    413  1.1  christos #define DREGH 263
    414  1.1  christos #define DREGL 264
    415  1.1  christos #define DCREG 265
    416  1.1  christos #define EXPR 266
    417  1.1  christos #define UNKNOWN_OPCODE 267
    418  1.1  christos #define IS_OPCODE 268
    419  1.1  christos #define DOT_S 269
    420  1.1  christos #define DOT_B 270
    421  1.1  christos #define DOT_W 271
    422  1.1  christos #define DOT_L 272
    423  1.1  christos #define DOT_A 273
    424  1.1  christos #define DOT_UB 274
    425  1.1  christos #define DOT_UW 275
    426  1.1  christos #define DOT_D 276
    427  1.1  christos #define ABS 277
    428  1.1  christos #define ADC 278
    429  1.1  christos #define ADD 279
    430  1.1  christos #define AND_ 280
    431  1.1  christos #define BCLR 281
    432  1.1  christos #define BCND 282
    433  1.1  christos #define BFMOV 283
    434  1.1  christos #define BFMOVZ 284
    435  1.1  christos #define BMCND 285
    436  1.1  christos #define BNOT 286
    437  1.1  christos #define BRA 287
    438  1.1  christos #define BRK 288
    439  1.1  christos #define BSET 289
    440  1.1  christos #define BSR 290
    441  1.1  christos #define BTST 291
    442  1.1  christos #define CLRPSW 292
    443  1.1  christos #define CMP 293
    444  1.1  christos #define DABS 294
    445  1.1  christos #define DADD 295
    446  1.1  christos #define DBT 296
    447  1.1  christos #define DCMP 297
    448  1.1  christos #define DDIV 298
    449  1.1  christos #define DIV 299
    450  1.1  christos #define DIVU 300
    451  1.1  christos #define DMOV 301
    452  1.1  christos #define DMUL 302
    453  1.1  christos #define DNEG 303
    454  1.1  christos #define DPOPM 304
    455  1.1  christos #define DPUSHM 305
    456  1.1  christos #define DROUND 306
    457  1.1  christos #define DSQRT 307
    458  1.1  christos #define DSUB 308
    459  1.1  christos #define DTOF 309
    460  1.1  christos #define DTOI 310
    461  1.1  christos #define DTOU 311
    462  1.1  christos #define EDIV 312
    463  1.1  christos #define EDIVU 313
    464  1.1  christos #define EMACA 314
    465  1.1  christos #define EMSBA 315
    466  1.1  christos #define EMUL 316
    467  1.1  christos #define EMULA 317
    468  1.1  christos #define EMULU 318
    469  1.1  christos #define FADD 319
    470  1.1  christos #define FCMP 320
    471  1.1  christos #define FDIV 321
    472  1.1  christos #define FMUL 322
    473  1.1  christos #define FREIT 323
    474  1.1  christos #define FSUB 324
    475  1.1  christos #define FSQRT 325
    476  1.1  christos #define FTOD 326
    477  1.1  christos #define FTOI 327
    478  1.1  christos #define FTOU 328
    479  1.1  christos #define INT 329
    480  1.1  christos #define ITOD 330
    481  1.1  christos #define ITOF 331
    482  1.1  christos #define JMP 332
    483  1.1  christos #define JSR 333
    484  1.1  christos #define MACHI 334
    485  1.1  christos #define MACLH 335
    486  1.1  christos #define MACLO 336
    487  1.1  christos #define MAX 337
    488  1.1  christos #define MIN 338
    489  1.1  christos #define MOV 339
    490  1.1  christos #define MOVCO 340
    491  1.1  christos #define MOVLI 341
    492  1.1  christos #define MOVU 342
    493  1.1  christos #define MSBHI 343
    494  1.1  christos #define MSBLH 344
    495  1.1  christos #define MSBLO 345
    496  1.1  christos #define MUL 346
    497  1.1  christos #define MULHI 347
    498  1.1  christos #define MULLH 348
    499  1.1  christos #define MULLO 349
    500  1.1  christos #define MULU 350
    501  1.1  christos #define MVFACHI 351
    502  1.1  christos #define MVFACGU 352
    503  1.1  christos #define MVFACMI 353
    504  1.1  christos #define MVFACLO 354
    505  1.1  christos #define MVFC 355
    506  1.1  christos #define MVFDC 356
    507  1.1  christos #define MVFDR 357
    508  1.1  christos #define MVTACGU 358
    509  1.1  christos #define MVTACHI 359
    510  1.1  christos #define MVTACLO 360
    511  1.1  christos #define MVTC 361
    512  1.1  christos #define MVTDC 362
    513  1.1  christos #define MVTIPL 363
    514  1.1  christos #define NEG 364
    515  1.1  christos #define NOP 365
    516  1.1  christos #define NOT 366
    517  1.1  christos #define OR 367
    518  1.1  christos #define POP 368
    519  1.1  christos #define POPC 369
    520  1.1  christos #define POPM 370
    521  1.1  christos #define PUSH 371
    522  1.1  christos #define PUSHA 372
    523  1.1  christos #define PUSHC 373
    524  1.1  christos #define PUSHM 374
    525  1.1  christos #define RACL 375
    526  1.1  christos #define RACW 376
    527  1.1  christos #define RDACL 377
    528  1.1  christos #define RDACW 378
    529  1.1  christos #define REIT 379
    530  1.1  christos #define REVL 380
    531  1.1  christos #define REVW 381
    532  1.1  christos #define RMPA 382
    533  1.1  christos #define ROLC 383
    534  1.1  christos #define RORC 384
    535  1.1  christos #define ROTL 385
    536  1.1  christos #define ROTR 386
    537  1.1  christos #define ROUND 387
    538  1.1  christos #define RSTR 388
    539  1.1  christos #define RTE 389
    540  1.1  christos #define RTFI 390
    541  1.1  christos #define RTS 391
    542  1.1  christos #define RTSD 392
    543  1.1  christos #define SAT 393
    544  1.1  christos #define SATR 394
    545  1.1  christos #define SAVE 395
    546  1.1  christos #define SBB 396
    547  1.1  christos #define SCCND 397
    548  1.1  christos #define SCMPU 398
    549  1.1  christos #define SETPSW 399
    550  1.1  christos #define SHAR 400
    551  1.1  christos #define SHLL 401
    552  1.1  christos #define SHLR 402
    553  1.1  christos #define SMOVB 403
    554  1.1  christos #define SMOVF 404
    555  1.1  christos #define SMOVU 405
    556  1.1  christos #define SSTR 406
    557  1.1  christos #define STNZ 407
    558  1.1  christos #define STOP 408
    559  1.1  christos #define STZ 409
    560  1.1  christos #define SUB 410
    561  1.1  christos #define SUNTIL 411
    562  1.1  christos #define SWHILE 412
    563  1.1  christos #define TST 413
    564  1.1  christos #define UTOD 414
    565  1.1  christos #define UTOF 415
    566  1.1  christos #define WAIT 416
    567  1.1  christos #define XCHG 417
    568  1.1  christos #define XOR 418
    569  1.1  christos 
    570  1.1  christos /* Value type.  */
    571  1.1  christos #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    572  1.1  christos union YYSTYPE
    573  1.1  christos {
    574  1.1  christos #line 140 "./config/rx-parse.y"
    575  1.1  christos 
    576  1.1  christos   int regno;
    577  1.1  christos   expressionS exp;
    578  1.1  christos 
    579  1.1  christos #line 580 "config/rx-parse.c"
    580  1.1  christos 
    581  1.1  christos };
    582  1.1  christos typedef union YYSTYPE YYSTYPE;
    583  1.1  christos # define YYSTYPE_IS_TRIVIAL 1
    584  1.1  christos # define YYSTYPE_IS_DECLARED 1
    585  1.1  christos #endif
    586  1.1  christos 
    587  1.1  christos 
    588  1.1  christos extern YYSTYPE rx_lval;
    589  1.1  christos 
    590  1.1  christos 
    591  1.1  christos int rx_parse (void);
    592  1.1  christos 
    593  1.1  christos 
    594  1.1  christos #endif /* !YY_RX_CONFIG_RX_PARSE_H_INCLUDED  */
    595  1.1  christos /* Symbol kind.  */
    596  1.1  christos enum yysymbol_kind_t
    597  1.1  christos {
    598  1.1  christos   YYSYMBOL_YYEMPTY = -2,
    599  1.1  christos   YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
    600  1.1  christos   YYSYMBOL_YYerror = 1,                    /* error  */
    601  1.1  christos   YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
    602  1.1  christos   YYSYMBOL_REG = 3,                        /* REG  */
    603  1.1  christos   YYSYMBOL_FLAG = 4,                       /* FLAG  */
    604  1.1  christos   YYSYMBOL_CREG = 5,                       /* CREG  */
    605  1.1  christos   YYSYMBOL_ACC = 6,                        /* ACC  */
    606  1.1  christos   YYSYMBOL_DREG = 7,                       /* DREG  */
    607  1.1  christos   YYSYMBOL_DREGH = 8,                      /* DREGH  */
    608  1.1  christos   YYSYMBOL_DREGL = 9,                      /* DREGL  */
    609  1.1  christos   YYSYMBOL_DCREG = 10,                     /* DCREG  */
    610  1.1  christos   YYSYMBOL_EXPR = 11,                      /* EXPR  */
    611  1.1  christos   YYSYMBOL_UNKNOWN_OPCODE = 12,            /* UNKNOWN_OPCODE  */
    612  1.1  christos   YYSYMBOL_IS_OPCODE = 13,                 /* IS_OPCODE  */
    613  1.1  christos   YYSYMBOL_DOT_S = 14,                     /* DOT_S  */
    614  1.1  christos   YYSYMBOL_DOT_B = 15,                     /* DOT_B  */
    615  1.1  christos   YYSYMBOL_DOT_W = 16,                     /* DOT_W  */
    616  1.1  christos   YYSYMBOL_DOT_L = 17,                     /* DOT_L  */
    617  1.1  christos   YYSYMBOL_DOT_A = 18,                     /* DOT_A  */
    618  1.1  christos   YYSYMBOL_DOT_UB = 19,                    /* DOT_UB  */
    619  1.1  christos   YYSYMBOL_DOT_UW = 20,                    /* DOT_UW  */
    620  1.1  christos   YYSYMBOL_DOT_D = 21,                     /* DOT_D  */
    621  1.1  christos   YYSYMBOL_ABS = 22,                       /* ABS  */
    622  1.1  christos   YYSYMBOL_ADC = 23,                       /* ADC  */
    623  1.1  christos   YYSYMBOL_ADD = 24,                       /* ADD  */
    624  1.1  christos   YYSYMBOL_AND_ = 25,                      /* AND_  */
    625  1.1  christos   YYSYMBOL_BCLR = 26,                      /* BCLR  */
    626  1.1  christos   YYSYMBOL_BCND = 27,                      /* BCND  */
    627  1.1  christos   YYSYMBOL_BFMOV = 28,                     /* BFMOV  */
    628  1.1  christos   YYSYMBOL_BFMOVZ = 29,                    /* BFMOVZ  */
    629  1.1  christos   YYSYMBOL_BMCND = 30,                     /* BMCND  */
    630  1.1  christos   YYSYMBOL_BNOT = 31,                      /* BNOT  */
    631  1.1  christos   YYSYMBOL_BRA = 32,                       /* BRA  */
    632  1.1  christos   YYSYMBOL_BRK = 33,                       /* BRK  */
    633  1.1  christos   YYSYMBOL_BSET = 34,                      /* BSET  */
    634  1.1  christos   YYSYMBOL_BSR = 35,                       /* BSR  */
    635  1.1  christos   YYSYMBOL_BTST = 36,                      /* BTST  */
    636  1.1  christos   YYSYMBOL_CLRPSW = 37,                    /* CLRPSW  */
    637  1.1  christos   YYSYMBOL_CMP = 38,                       /* CMP  */
    638  1.1  christos   YYSYMBOL_DABS = 39,                      /* DABS  */
    639  1.1  christos   YYSYMBOL_DADD = 40,                      /* DADD  */
    640  1.1  christos   YYSYMBOL_DBT = 41,                       /* DBT  */
    641  1.1  christos   YYSYMBOL_DCMP = 42,                      /* DCMP  */
    642  1.1  christos   YYSYMBOL_DDIV = 43,                      /* DDIV  */
    643  1.1  christos   YYSYMBOL_DIV = 44,                       /* DIV  */
    644  1.1  christos   YYSYMBOL_DIVU = 45,                      /* DIVU  */
    645  1.1  christos   YYSYMBOL_DMOV = 46,                      /* DMOV  */
    646  1.1  christos   YYSYMBOL_DMUL = 47,                      /* DMUL  */
    647  1.1  christos   YYSYMBOL_DNEG = 48,                      /* DNEG  */
    648  1.1  christos   YYSYMBOL_DPOPM = 49,                     /* DPOPM  */
    649  1.1  christos   YYSYMBOL_DPUSHM = 50,                    /* DPUSHM  */
    650  1.1  christos   YYSYMBOL_DROUND = 51,                    /* DROUND  */
    651  1.1  christos   YYSYMBOL_DSQRT = 52,                     /* DSQRT  */
    652  1.1  christos   YYSYMBOL_DSUB = 53,                      /* DSUB  */
    653  1.1  christos   YYSYMBOL_DTOF = 54,                      /* DTOF  */
    654  1.1  christos   YYSYMBOL_DTOI = 55,                      /* DTOI  */
    655  1.1  christos   YYSYMBOL_DTOU = 56,                      /* DTOU  */
    656  1.1  christos   YYSYMBOL_EDIV = 57,                      /* EDIV  */
    657  1.1  christos   YYSYMBOL_EDIVU = 58,                     /* EDIVU  */
    658  1.1  christos   YYSYMBOL_EMACA = 59,                     /* EMACA  */
    659  1.1  christos   YYSYMBOL_EMSBA = 60,                     /* EMSBA  */
    660  1.1  christos   YYSYMBOL_EMUL = 61,                      /* EMUL  */
    661  1.1  christos   YYSYMBOL_EMULA = 62,                     /* EMULA  */
    662  1.1  christos   YYSYMBOL_EMULU = 63,                     /* EMULU  */
    663  1.1  christos   YYSYMBOL_FADD = 64,                      /* FADD  */
    664  1.1  christos   YYSYMBOL_FCMP = 65,                      /* FCMP  */
    665  1.1  christos   YYSYMBOL_FDIV = 66,                      /* FDIV  */
    666  1.1  christos   YYSYMBOL_FMUL = 67,                      /* FMUL  */
    667  1.1  christos   YYSYMBOL_FREIT = 68,                     /* FREIT  */
    668  1.1  christos   YYSYMBOL_FSUB = 69,                      /* FSUB  */
    669  1.1  christos   YYSYMBOL_FSQRT = 70,                     /* FSQRT  */
    670  1.1  christos   YYSYMBOL_FTOD = 71,                      /* FTOD  */
    671  1.1  christos   YYSYMBOL_FTOI = 72,                      /* FTOI  */
    672  1.1  christos   YYSYMBOL_FTOU = 73,                      /* FTOU  */
    673  1.1  christos   YYSYMBOL_INT = 74,                       /* INT  */
    674  1.1  christos   YYSYMBOL_ITOD = 75,                      /* ITOD  */
    675  1.1  christos   YYSYMBOL_ITOF = 76,                      /* ITOF  */
    676  1.1  christos   YYSYMBOL_JMP = 77,                       /* JMP  */
    677  1.1  christos   YYSYMBOL_JSR = 78,                       /* JSR  */
    678  1.1  christos   YYSYMBOL_MACHI = 79,                     /* MACHI  */
    679  1.1  christos   YYSYMBOL_MACLH = 80,                     /* MACLH  */
    680  1.1  christos   YYSYMBOL_MACLO = 81,                     /* MACLO  */
    681  1.1  christos   YYSYMBOL_MAX = 82,                       /* MAX  */
    682  1.1  christos   YYSYMBOL_MIN = 83,                       /* MIN  */
    683  1.1  christos   YYSYMBOL_MOV = 84,                       /* MOV  */
    684  1.1  christos   YYSYMBOL_MOVCO = 85,                     /* MOVCO  */
    685  1.1  christos   YYSYMBOL_MOVLI = 86,                     /* MOVLI  */
    686  1.1  christos   YYSYMBOL_MOVU = 87,                      /* MOVU  */
    687  1.1  christos   YYSYMBOL_MSBHI = 88,                     /* MSBHI  */
    688  1.1  christos   YYSYMBOL_MSBLH = 89,                     /* MSBLH  */
    689  1.1  christos   YYSYMBOL_MSBLO = 90,                     /* MSBLO  */
    690  1.1  christos   YYSYMBOL_MUL = 91,                       /* MUL  */
    691  1.1  christos   YYSYMBOL_MULHI = 92,                     /* MULHI  */
    692  1.1  christos   YYSYMBOL_MULLH = 93,                     /* MULLH  */
    693  1.1  christos   YYSYMBOL_MULLO = 94,                     /* MULLO  */
    694  1.1  christos   YYSYMBOL_MULU = 95,                      /* MULU  */
    695  1.1  christos   YYSYMBOL_MVFACHI = 96,                   /* MVFACHI  */
    696  1.1  christos   YYSYMBOL_MVFACGU = 97,                   /* MVFACGU  */
    697  1.1  christos   YYSYMBOL_MVFACMI = 98,                   /* MVFACMI  */
    698  1.1  christos   YYSYMBOL_MVFACLO = 99,                   /* MVFACLO  */
    699  1.1  christos   YYSYMBOL_MVFC = 100,                     /* MVFC  */
    700  1.1  christos   YYSYMBOL_MVFDC = 101,                    /* MVFDC  */
    701  1.1  christos   YYSYMBOL_MVFDR = 102,                    /* MVFDR  */
    702  1.1  christos   YYSYMBOL_MVTACGU = 103,                  /* MVTACGU  */
    703  1.1  christos   YYSYMBOL_MVTACHI = 104,                  /* MVTACHI  */
    704  1.1  christos   YYSYMBOL_MVTACLO = 105,                  /* MVTACLO  */
    705  1.1  christos   YYSYMBOL_MVTC = 106,                     /* MVTC  */
    706  1.1  christos   YYSYMBOL_MVTDC = 107,                    /* MVTDC  */
    707  1.1  christos   YYSYMBOL_MVTIPL = 108,                   /* MVTIPL  */
    708  1.1  christos   YYSYMBOL_NEG = 109,                      /* NEG  */
    709  1.1  christos   YYSYMBOL_NOP = 110,                      /* NOP  */
    710  1.1  christos   YYSYMBOL_NOT = 111,                      /* NOT  */
    711  1.1  christos   YYSYMBOL_OR = 112,                       /* OR  */
    712  1.1  christos   YYSYMBOL_POP = 113,                      /* POP  */
    713  1.1  christos   YYSYMBOL_POPC = 114,                     /* POPC  */
    714  1.1  christos   YYSYMBOL_POPM = 115,                     /* POPM  */
    715  1.1  christos   YYSYMBOL_PUSH = 116,                     /* PUSH  */
    716  1.1  christos   YYSYMBOL_PUSHA = 117,                    /* PUSHA  */
    717  1.1  christos   YYSYMBOL_PUSHC = 118,                    /* PUSHC  */
    718  1.1  christos   YYSYMBOL_PUSHM = 119,                    /* PUSHM  */
    719  1.1  christos   YYSYMBOL_RACL = 120,                     /* RACL  */
    720  1.1  christos   YYSYMBOL_RACW = 121,                     /* RACW  */
    721  1.1  christos   YYSYMBOL_RDACL = 122,                    /* RDACL  */
    722  1.1  christos   YYSYMBOL_RDACW = 123,                    /* RDACW  */
    723  1.1  christos   YYSYMBOL_REIT = 124,                     /* REIT  */
    724  1.1  christos   YYSYMBOL_REVL = 125,                     /* REVL  */
    725  1.1  christos   YYSYMBOL_REVW = 126,                     /* REVW  */
    726  1.1  christos   YYSYMBOL_RMPA = 127,                     /* RMPA  */
    727  1.1  christos   YYSYMBOL_ROLC = 128,                     /* ROLC  */
    728  1.1  christos   YYSYMBOL_RORC = 129,                     /* RORC  */
    729  1.1  christos   YYSYMBOL_ROTL = 130,                     /* ROTL  */
    730  1.1  christos   YYSYMBOL_ROTR = 131,                     /* ROTR  */
    731  1.1  christos   YYSYMBOL_ROUND = 132,                    /* ROUND  */
    732  1.1  christos   YYSYMBOL_RSTR = 133,                     /* RSTR  */
    733  1.1  christos   YYSYMBOL_RTE = 134,                      /* RTE  */
    734  1.1  christos   YYSYMBOL_RTFI = 135,                     /* RTFI  */
    735  1.1  christos   YYSYMBOL_RTS = 136,                      /* RTS  */
    736  1.1  christos   YYSYMBOL_RTSD = 137,                     /* RTSD  */
    737  1.1  christos   YYSYMBOL_SAT = 138,                      /* SAT  */
    738  1.1  christos   YYSYMBOL_SATR = 139,                     /* SATR  */
    739  1.1  christos   YYSYMBOL_SAVE = 140,                     /* SAVE  */
    740  1.1  christos   YYSYMBOL_SBB = 141,                      /* SBB  */
    741  1.1  christos   YYSYMBOL_SCCND = 142,                    /* SCCND  */
    742  1.1  christos   YYSYMBOL_SCMPU = 143,                    /* SCMPU  */
    743  1.1  christos   YYSYMBOL_SETPSW = 144,                   /* SETPSW  */
    744  1.1  christos   YYSYMBOL_SHAR = 145,                     /* SHAR  */
    745  1.1  christos   YYSYMBOL_SHLL = 146,                     /* SHLL  */
    746  1.1  christos   YYSYMBOL_SHLR = 147,                     /* SHLR  */
    747  1.1  christos   YYSYMBOL_SMOVB = 148,                    /* SMOVB  */
    748  1.1  christos   YYSYMBOL_SMOVF = 149,                    /* SMOVF  */
    749  1.1  christos   YYSYMBOL_SMOVU = 150,                    /* SMOVU  */
    750  1.1  christos   YYSYMBOL_SSTR = 151,                     /* SSTR  */
    751  1.1  christos   YYSYMBOL_STNZ = 152,                     /* STNZ  */
    752  1.1  christos   YYSYMBOL_STOP = 153,                     /* STOP  */
    753  1.1  christos   YYSYMBOL_STZ = 154,                      /* STZ  */
    754  1.1  christos   YYSYMBOL_SUB = 155,                      /* SUB  */
    755  1.1  christos   YYSYMBOL_SUNTIL = 156,                   /* SUNTIL  */
    756  1.1  christos   YYSYMBOL_SWHILE = 157,                   /* SWHILE  */
    757  1.1  christos   YYSYMBOL_TST = 158,                      /* TST  */
    758  1.1  christos   YYSYMBOL_UTOD = 159,                     /* UTOD  */
    759  1.1  christos   YYSYMBOL_UTOF = 160,                     /* UTOF  */
    760  1.1  christos   YYSYMBOL_WAIT = 161,                     /* WAIT  */
    761  1.1  christos   YYSYMBOL_XCHG = 162,                     /* XCHG  */
    762  1.1  christos   YYSYMBOL_XOR = 163,                      /* XOR  */
    763  1.1  christos   YYSYMBOL_164_ = 164,                     /* '#'  */
    764  1.1  christos   YYSYMBOL_165_ = 165,                     /* ','  */
    765  1.1  christos   YYSYMBOL_166_ = 166,                     /* '['  */
    766  1.1  christos   YYSYMBOL_167_ = 167,                     /* ']'  */
    767  1.1  christos   YYSYMBOL_168_ = 168,                     /* '-'  */
    768  1.1  christos   YYSYMBOL_169_ = 169,                     /* '+'  */
    769  1.1  christos   YYSYMBOL_YYACCEPT = 170,                 /* $accept  */
    770  1.1  christos   YYSYMBOL_statement = 171,                /* statement  */
    771  1.1  christos   YYSYMBOL_172_1 = 172,                    /* $@1  */
    772  1.1  christos   YYSYMBOL_173_2 = 173,                    /* $@2  */
    773  1.1  christos   YYSYMBOL_174_3 = 174,                    /* $@3  */
    774  1.1  christos   YYSYMBOL_175_4 = 175,                    /* $@4  */
    775  1.1  christos   YYSYMBOL_176_5 = 176,                    /* $@5  */
    776  1.1  christos   YYSYMBOL_177_6 = 177,                    /* $@6  */
    777  1.1  christos   YYSYMBOL_178_7 = 178,                    /* $@7  */
    778  1.1  christos   YYSYMBOL_179_8 = 179,                    /* $@8  */
    779  1.1  christos   YYSYMBOL_180_9 = 180,                    /* $@9  */
    780  1.1  christos   YYSYMBOL_181_10 = 181,                   /* $@10  */
    781  1.1  christos   YYSYMBOL_182_11 = 182,                   /* $@11  */
    782  1.1  christos   YYSYMBOL_183_12 = 183,                   /* $@12  */
    783  1.1  christos   YYSYMBOL_184_13 = 184,                   /* $@13  */
    784  1.1  christos   YYSYMBOL_185_14 = 185,                   /* $@14  */
    785  1.1  christos   YYSYMBOL_186_15 = 186,                   /* $@15  */
    786  1.1  christos   YYSYMBOL_187_16 = 187,                   /* $@16  */
    787  1.1  christos   YYSYMBOL_188_17 = 188,                   /* $@17  */
    788  1.1  christos   YYSYMBOL_189_18 = 189,                   /* $@18  */
    789  1.1  christos   YYSYMBOL_190_19 = 190,                   /* $@19  */
    790  1.1  christos   YYSYMBOL_191_20 = 191,                   /* $@20  */
    791  1.1  christos   YYSYMBOL_192_21 = 192,                   /* $@21  */
    792  1.1  christos   YYSYMBOL_193_22 = 193,                   /* $@22  */
    793  1.1  christos   YYSYMBOL_194_23 = 194,                   /* $@23  */
    794  1.1  christos   YYSYMBOL_195_24 = 195,                   /* $@24  */
    795  1.1  christos   YYSYMBOL_196_25 = 196,                   /* $@25  */
    796  1.1  christos   YYSYMBOL_197_26 = 197,                   /* $@26  */
    797  1.1  christos   YYSYMBOL_198_27 = 198,                   /* $@27  */
    798  1.1  christos   YYSYMBOL_199_28 = 199,                   /* $@28  */
    799  1.1  christos   YYSYMBOL_200_29 = 200,                   /* $@29  */
    800  1.1  christos   YYSYMBOL_201_30 = 201,                   /* $@30  */
    801  1.1  christos   YYSYMBOL_202_31 = 202,                   /* $@31  */
    802  1.1  christos   YYSYMBOL_203_32 = 203,                   /* $@32  */
    803  1.1  christos   YYSYMBOL_204_33 = 204,                   /* $@33  */
    804  1.1  christos   YYSYMBOL_205_34 = 205,                   /* $@34  */
    805  1.1  christos   YYSYMBOL_206_35 = 206,                   /* $@35  */
    806  1.1  christos   YYSYMBOL_207_36 = 207,                   /* $@36  */
    807  1.1  christos   YYSYMBOL_208_37 = 208,                   /* $@37  */
    808  1.1  christos   YYSYMBOL_209_38 = 209,                   /* $@38  */
    809  1.1  christos   YYSYMBOL_210_39 = 210,                   /* $@39  */
    810  1.1  christos   YYSYMBOL_211_40 = 211,                   /* $@40  */
    811  1.1  christos   YYSYMBOL_212_41 = 212,                   /* $@41  */
    812  1.1  christos   YYSYMBOL_213_42 = 213,                   /* $@42  */
    813  1.1  christos   YYSYMBOL_214_43 = 214,                   /* $@43  */
    814  1.1  christos   YYSYMBOL_215_44 = 215,                   /* $@44  */
    815  1.1  christos   YYSYMBOL_216_45 = 216,                   /* $@45  */
    816  1.1  christos   YYSYMBOL_217_46 = 217,                   /* $@46  */
    817  1.1  christos   YYSYMBOL_218_47 = 218,                   /* $@47  */
    818  1.1  christos   YYSYMBOL_219_48 = 219,                   /* $@48  */
    819  1.1  christos   YYSYMBOL_220_49 = 220,                   /* $@49  */
    820  1.1  christos   YYSYMBOL_221_50 = 221,                   /* $@50  */
    821  1.1  christos   YYSYMBOL_222_51 = 222,                   /* $@51  */
    822  1.1  christos   YYSYMBOL_223_52 = 223,                   /* $@52  */
    823  1.1  christos   YYSYMBOL_224_53 = 224,                   /* $@53  */
    824  1.1  christos   YYSYMBOL_225_54 = 225,                   /* $@54  */
    825  1.1  christos   YYSYMBOL_226_55 = 226,                   /* $@55  */
    826  1.1  christos   YYSYMBOL_227_56 = 227,                   /* $@56  */
    827  1.1  christos   YYSYMBOL_228_57 = 228,                   /* $@57  */
    828  1.1  christos   YYSYMBOL_229_58 = 229,                   /* $@58  */
    829  1.1  christos   YYSYMBOL_230_59 = 230,                   /* $@59  */
    830  1.1  christos   YYSYMBOL_231_60 = 231,                   /* $@60  */
    831  1.1  christos   YYSYMBOL_op_subadd = 232,                /* op_subadd  */
    832  1.1  christos   YYSYMBOL_op_dp20_rm_l = 233,             /* op_dp20_rm_l  */
    833  1.1  christos   YYSYMBOL_op_dp20_rm = 234,               /* op_dp20_rm  */
    834  1.1  christos   YYSYMBOL_op_dp20_i = 235,                /* op_dp20_i  */
    835  1.1  christos   YYSYMBOL_op_dp20_rim = 236,              /* op_dp20_rim  */
    836  1.1  christos   YYSYMBOL_op_dp20_rim_l = 237,            /* op_dp20_rim_l  */
    837  1.1  christos   YYSYMBOL_op_dp20_rr = 238,               /* op_dp20_rr  */
    838  1.1  christos   YYSYMBOL_op_dp20_r = 239,                /* op_dp20_r  */
    839  1.1  christos   YYSYMBOL_op_dp20_ri = 240,               /* op_dp20_ri  */
    840  1.1  christos   YYSYMBOL_241_61 = 241,                   /* $@61  */
    841  1.1  christos   YYSYMBOL_op_xchg = 242,                  /* op_xchg  */
    842  1.1  christos   YYSYMBOL_op_shift_rot = 243,             /* op_shift_rot  */
    843  1.1  christos   YYSYMBOL_op_shift = 244,                 /* op_shift  */
    844  1.1  christos   YYSYMBOL_float3_op = 245,                /* float3_op  */
    845  1.1  christos   YYSYMBOL_float2_op = 246,                /* float2_op  */
    846  1.1  christos   YYSYMBOL_247_62 = 247,                   /* $@62  */
    847  1.1  christos   YYSYMBOL_float2_op_ni = 248,             /* float2_op_ni  */
    848  1.1  christos   YYSYMBOL_249_63 = 249,                   /* $@63  */
    849  1.1  christos   YYSYMBOL_250_64 = 250,                   /* $@64  */
    850  1.1  christos   YYSYMBOL_mvfa_op = 251,                  /* mvfa_op  */
    851  1.1  christos   YYSYMBOL_252_65 = 252,                   /* $@65  */
    852  1.1  christos   YYSYMBOL_op_xor = 253,                   /* op_xor  */
    853  1.1  christos   YYSYMBOL_op_bfield = 254,                /* op_bfield  */
    854  1.1  christos   YYSYMBOL_255_66 = 255,                   /* $@66  */
    855  1.1  christos   YYSYMBOL_op_save_rstr = 256,             /* op_save_rstr  */
    856  1.1  christos   YYSYMBOL_double2_op = 257,               /* double2_op  */
    857  1.1  christos   YYSYMBOL_double3_op = 258,               /* double3_op  */
    858  1.1  christos   YYSYMBOL_disp = 259,                     /* disp  */
    859  1.1  christos   YYSYMBOL_flag = 260,                     /* flag  */
    860  1.1  christos   YYSYMBOL_261_67 = 261,                   /* $@67  */
    861  1.1  christos   YYSYMBOL_memex = 262,                    /* memex  */
    862  1.1  christos   YYSYMBOL_bwl = 263,                      /* bwl  */
    863  1.1  christos   YYSYMBOL_bw = 264,                       /* bw  */
    864  1.1  christos   YYSYMBOL_opt_l = 265,                    /* opt_l  */
    865  1.1  christos   YYSYMBOL_opt_b = 266                     /* opt_b  */
    866  1.1  christos };
    867  1.1  christos typedef enum yysymbol_kind_t yysymbol_kind_t;
    868  1.1  christos 
    869  1.1  christos 
    870  1.1  christos 
    871  1.1  christos 
    872  1.1  christos #ifdef short
    873  1.1  christos # undef short
    874  1.1  christos #endif
    875  1.1  christos 
    876  1.1  christos /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
    877  1.1  christos    <limits.h> and (if available) <stdint.h> are included
    878  1.1  christos    so that the code can choose integer types of a good width.  */
    879  1.1  christos 
    880  1.1  christos #ifndef __PTRDIFF_MAX__
    881  1.1  christos # include <limits.h> /* INFRINGES ON USER NAME SPACE */
    882  1.1  christos # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
    883  1.1  christos #  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
    884  1.1  christos #  define YY_STDINT_H
    885  1.1  christos # endif
    886  1.1  christos #endif
    887  1.1  christos 
    888  1.1  christos /* Narrow types that promote to a signed type and that can represent a
    889  1.1  christos    signed or unsigned integer of at least N bits.  In tables they can
    890  1.1  christos    save space and decrease cache pressure.  Promoting to a signed type
    891  1.1  christos    helps avoid bugs in integer arithmetic.  */
    892  1.1  christos 
    893  1.1  christos #ifdef __INT_LEAST8_MAX__
    894  1.1  christos typedef __INT_LEAST8_TYPE__ yytype_int8;
    895  1.1  christos #elif defined YY_STDINT_H
    896  1.1  christos typedef int_least8_t yytype_int8;
    897  1.1  christos #else
    898  1.1  christos typedef signed char yytype_int8;
    899  1.1  christos #endif
    900  1.1  christos 
    901  1.1  christos #ifdef __INT_LEAST16_MAX__
    902  1.1  christos typedef __INT_LEAST16_TYPE__ yytype_int16;
    903  1.1  christos #elif defined YY_STDINT_H
    904  1.1  christos typedef int_least16_t yytype_int16;
    905  1.1  christos #else
    906  1.1  christos typedef short yytype_int16;
    907  1.1  christos #endif
    908  1.1  christos 
    909  1.1  christos /* Work around bug in HP-UX 11.23, which defines these macros
    910  1.1  christos    incorrectly for preprocessor constants.  This workaround can likely
    911  1.1  christos    be removed in 2023, as HPE has promised support for HP-UX 11.23
    912  1.1  christos    (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
    913  1.1  christos    <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
    914  1.1  christos #ifdef __hpux
    915  1.1  christos # undef UINT_LEAST8_MAX
    916  1.1  christos # undef UINT_LEAST16_MAX
    917  1.1  christos # define UINT_LEAST8_MAX 255
    918  1.1  christos # define UINT_LEAST16_MAX 65535
    919  1.1  christos #endif
    920  1.1  christos 
    921  1.1  christos #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
    922  1.1  christos typedef __UINT_LEAST8_TYPE__ yytype_uint8;
    923  1.1  christos #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
    924  1.1  christos        && UINT_LEAST8_MAX <= INT_MAX)
    925  1.1  christos typedef uint_least8_t yytype_uint8;
    926  1.1  christos #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
    927  1.1  christos typedef unsigned char yytype_uint8;
    928  1.1  christos #else
    929  1.1  christos typedef short yytype_uint8;
    930  1.1  christos #endif
    931  1.1  christos 
    932  1.1  christos #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
    933  1.1  christos typedef __UINT_LEAST16_TYPE__ yytype_uint16;
    934  1.1  christos #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
    935  1.1  christos        && UINT_LEAST16_MAX <= INT_MAX)
    936  1.1  christos typedef uint_least16_t yytype_uint16;
    937  1.1  christos #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
    938  1.1  christos typedef unsigned short yytype_uint16;
    939  1.1  christos #else
    940  1.1  christos typedef int yytype_uint16;
    941  1.1  christos #endif
    942  1.1  christos 
    943  1.1  christos #ifndef YYPTRDIFF_T
    944  1.1  christos # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
    945  1.1  christos #  define YYPTRDIFF_T __PTRDIFF_TYPE__
    946  1.1  christos #  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
    947  1.1  christos # elif defined PTRDIFF_MAX
    948  1.1  christos #  ifndef ptrdiff_t
    949  1.1  christos #   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    950  1.1  christos #  endif
    951  1.1  christos #  define YYPTRDIFF_T ptrdiff_t
    952  1.1  christos #  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
    953  1.1  christos # else
    954  1.1  christos #  define YYPTRDIFF_T long
    955  1.1  christos #  define YYPTRDIFF_MAXIMUM LONG_MAX
    956  1.1  christos # endif
    957  1.1  christos #endif
    958  1.1  christos 
    959  1.1  christos #ifndef YYSIZE_T
    960  1.1  christos # ifdef __SIZE_TYPE__
    961  1.1  christos #  define YYSIZE_T __SIZE_TYPE__
    962  1.1  christos # elif defined size_t
    963  1.1  christos #  define YYSIZE_T size_t
    964  1.1  christos # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
    965  1.1  christos #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    966  1.1  christos #  define YYSIZE_T size_t
    967  1.1  christos # else
    968  1.1  christos #  define YYSIZE_T unsigned
    969  1.1  christos # endif
    970  1.1  christos #endif
    971  1.1  christos 
    972  1.1  christos #define YYSIZE_MAXIMUM                                  \
    973  1.1  christos   YY_CAST (YYPTRDIFF_T,                                 \
    974  1.1  christos            (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
    975  1.1  christos             ? YYPTRDIFF_MAXIMUM                         \
    976  1.1  christos             : YY_CAST (YYSIZE_T, -1)))
    977  1.1  christos 
    978  1.1  christos #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
    979  1.1  christos 
    980  1.1  christos 
    981  1.1  christos /* Stored state numbers (used for stacks). */
    982  1.1  christos typedef yytype_int16 yy_state_t;
    983  1.1  christos 
    984  1.1  christos /* State numbers in computations.  */
    985  1.1  christos typedef int yy_state_fast_t;
    986  1.1  christos 
    987  1.1  christos #ifndef YY_
    988  1.1  christos # if defined YYENABLE_NLS && YYENABLE_NLS
    989  1.1  christos #  if ENABLE_NLS
    990  1.1  christos #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    991  1.1  christos #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
    992  1.1  christos #  endif
    993  1.1  christos # endif
    994  1.1  christos # ifndef YY_
    995  1.1  christos #  define YY_(Msgid) Msgid
    996  1.1  christos # endif
    997  1.1  christos #endif
    998  1.1  christos 
    999  1.1  christos 
   1000  1.1  christos #ifndef YY_ATTRIBUTE_PURE
   1001  1.1  christos # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
   1002  1.1  christos #  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
   1003  1.1  christos # else
   1004  1.1  christos #  define YY_ATTRIBUTE_PURE
   1005  1.1  christos # endif
   1006  1.1  christos #endif
   1007  1.1  christos 
   1008  1.1  christos #ifndef YY_ATTRIBUTE_UNUSED
   1009  1.1  christos # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
   1010  1.1  christos #  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
   1011  1.1  christos # else
   1012  1.1  christos #  define YY_ATTRIBUTE_UNUSED
   1013  1.1  christos # endif
   1014  1.1  christos #endif
   1015  1.1  christos 
   1016  1.1  christos /* Suppress unused-variable warnings by "using" E.  */
   1017  1.1  christos #if ! defined lint || defined __GNUC__
   1018  1.1  christos # define YY_USE(E) ((void) (E))
   1019  1.1  christos #else
   1020  1.1  christos # define YY_USE(E) /* empty */
   1021  1.1  christos #endif
   1022  1.1  christos 
   1023  1.1  christos /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
   1024  1.1  christos #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
   1025  1.1  christos # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
   1026  1.1  christos #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
   1027  1.1  christos     _Pragma ("GCC diagnostic push")                                     \
   1028  1.1  christos     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
   1029  1.1  christos # else
   1030  1.1  christos #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
   1031  1.1  christos     _Pragma ("GCC diagnostic push")                                     \
   1032  1.1  christos     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
   1033  1.1  christos     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
   1034  1.1  christos # endif
   1035  1.1  christos # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
   1036  1.1  christos     _Pragma ("GCC diagnostic pop")
   1037  1.1  christos #else
   1038  1.1  christos # define YY_INITIAL_VALUE(Value) Value
   1039  1.1  christos #endif
   1040  1.1  christos #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   1041  1.1  christos # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   1042  1.1  christos # define YY_IGNORE_MAYBE_UNINITIALIZED_END
   1043  1.1  christos #endif
   1044  1.1  christos #ifndef YY_INITIAL_VALUE
   1045  1.1  christos # define YY_INITIAL_VALUE(Value) /* Nothing. */
   1046  1.1  christos #endif
   1047  1.1  christos 
   1048  1.1  christos #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
   1049  1.1  christos # define YY_IGNORE_USELESS_CAST_BEGIN                          \
   1050  1.1  christos     _Pragma ("GCC diagnostic push")                            \
   1051  1.1  christos     _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
   1052  1.1  christos # define YY_IGNORE_USELESS_CAST_END            \
   1053  1.1  christos     _Pragma ("GCC diagnostic pop")
   1054  1.1  christos #endif
   1055  1.1  christos #ifndef YY_IGNORE_USELESS_CAST_BEGIN
   1056  1.1  christos # define YY_IGNORE_USELESS_CAST_BEGIN
   1057  1.1  christos # define YY_IGNORE_USELESS_CAST_END
   1058  1.1  christos #endif
   1059  1.1  christos 
   1060  1.1  christos 
   1061  1.1  christos #define YY_ASSERT(E) ((void) (0 && (E)))
   1062  1.1  christos 
   1063  1.1  christos #if !defined yyoverflow
   1064  1.1  christos 
   1065  1.1  christos /* The parser invokes alloca or malloc; define the necessary symbols.  */
   1066  1.1  christos 
   1067  1.1  christos # ifdef YYSTACK_USE_ALLOCA
   1068  1.1  christos #  if YYSTACK_USE_ALLOCA
   1069  1.1  christos #   ifdef __GNUC__
   1070  1.1  christos #    define YYSTACK_ALLOC __builtin_alloca
   1071  1.1  christos #   elif defined __BUILTIN_VA_ARG_INCR
   1072  1.1  christos #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
   1073  1.1  christos #   elif defined _AIX
   1074  1.1  christos #    define YYSTACK_ALLOC __alloca
   1075  1.1  christos #   elif defined _MSC_VER
   1076  1.1  christos #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
   1077  1.1  christos #    define alloca _alloca
   1078  1.1  christos #   else
   1079  1.1  christos #    define YYSTACK_ALLOC alloca
   1080  1.1  christos #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
   1081  1.1  christos #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
   1082  1.1  christos       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
   1083  1.1  christos #     ifndef EXIT_SUCCESS
   1084  1.1  christos #      define EXIT_SUCCESS 0
   1085  1.1  christos #     endif
   1086  1.1  christos #    endif
   1087  1.1  christos #   endif
   1088  1.1  christos #  endif
   1089  1.1  christos # endif
   1090  1.1  christos 
   1091  1.1  christos # ifdef YYSTACK_ALLOC
   1092  1.1  christos    /* Pacify GCC's 'empty if-body' warning.  */
   1093  1.1  christos #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
   1094  1.1  christos #  ifndef YYSTACK_ALLOC_MAXIMUM
   1095  1.1  christos     /* The OS might guarantee only one guard page at the bottom of the stack,
   1096  1.1  christos        and a page size can be as small as 4096 bytes.  So we cannot safely
   1097  1.1  christos        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
   1098  1.1  christos        to allow for a few compiler-allocated temporary stack slots.  */
   1099  1.1  christos #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
   1100  1.1  christos #  endif
   1101  1.1  christos # else
   1102  1.1  christos #  define YYSTACK_ALLOC YYMALLOC
   1103  1.1  christos #  define YYSTACK_FREE YYFREE
   1104  1.1  christos #  ifndef YYSTACK_ALLOC_MAXIMUM
   1105  1.1  christos #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
   1106  1.1  christos #  endif
   1107  1.1  christos #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
   1108  1.1  christos        && ! ((defined YYMALLOC || defined malloc) \
   1109  1.1  christos              && (defined YYFREE || defined free)))
   1110  1.1  christos #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
   1111  1.1  christos #   ifndef EXIT_SUCCESS
   1112  1.1  christos #    define EXIT_SUCCESS 0
   1113  1.1  christos #   endif
   1114  1.1  christos #  endif
   1115  1.1  christos #  ifndef YYMALLOC
   1116  1.1  christos #   define YYMALLOC malloc
   1117  1.1  christos #   if ! defined malloc && ! defined EXIT_SUCCESS
   1118  1.1  christos void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
   1119  1.1  christos #   endif
   1120  1.1  christos #  endif
   1121  1.1  christos #  ifndef YYFREE
   1122  1.1  christos #   define YYFREE free
   1123  1.1  christos #   if ! defined free && ! defined EXIT_SUCCESS
   1124  1.1  christos void free (void *); /* INFRINGES ON USER NAME SPACE */
   1125  1.1  christos #   endif
   1126  1.1  christos #  endif
   1127  1.1  christos # endif
   1128  1.1  christos #endif /* !defined yyoverflow */
   1129  1.1  christos 
   1130  1.1  christos #if (! defined yyoverflow \
   1131  1.1  christos      && (! defined __cplusplus \
   1132  1.1  christos          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
   1133  1.1  christos 
   1134  1.1  christos /* A type that is properly aligned for any stack member.  */
   1135  1.1  christos union yyalloc
   1136  1.1  christos {
   1137  1.1  christos   yy_state_t yyss_alloc;
   1138  1.1  christos   YYSTYPE yyvs_alloc;
   1139  1.1  christos };
   1140  1.1  christos 
   1141  1.1  christos /* The size of the maximum gap between one aligned stack and the next.  */
   1142  1.1  christos # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
   1143  1.1  christos 
   1144  1.1  christos /* The size of an array large to enough to hold all stacks, each with
   1145  1.1  christos    N elements.  */
   1146  1.1  christos # define YYSTACK_BYTES(N) \
   1147  1.1  christos      ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
   1148  1.1  christos       + YYSTACK_GAP_MAXIMUM)
   1149  1.1  christos 
   1150  1.1  christos # define YYCOPY_NEEDED 1
   1151  1.1  christos 
   1152  1.1  christos /* Relocate STACK from its old location to the new one.  The
   1153  1.1  christos    local variables YYSIZE and YYSTACKSIZE give the old and new number of
   1154  1.1  christos    elements in the stack, and YYPTR gives the new location of the
   1155  1.1  christos    stack.  Advance YYPTR to a properly aligned location for the next
   1156  1.1  christos    stack.  */
   1157  1.1  christos # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
   1158  1.1  christos     do                                                                  \
   1159  1.1  christos       {                                                                 \
   1160  1.1  christos         YYPTRDIFF_T yynewbytes;                                         \
   1161  1.1  christos         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
   1162  1.1  christos         Stack = &yyptr->Stack_alloc;                                    \
   1163  1.1  christos         yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
   1164  1.1  christos         yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
   1165  1.1  christos       }                                                                 \
   1166  1.1  christos     while (0)
   1167  1.1  christos 
   1168  1.1  christos #endif
   1169  1.1  christos 
   1170  1.1  christos #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
   1171  1.1  christos /* Copy COUNT objects from SRC to DST.  The source and destination do
   1172  1.1  christos    not overlap.  */
   1173  1.1  christos # ifndef YYCOPY
   1174  1.1  christos #  if defined __GNUC__ && 1 < __GNUC__
   1175  1.1  christos #   define YYCOPY(Dst, Src, Count) \
   1176  1.1  christos       __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
   1177  1.1  christos #  else
   1178  1.1  christos #   define YYCOPY(Dst, Src, Count)              \
   1179  1.1  christos       do                                        \
   1180  1.1  christos         {                                       \
   1181  1.1  christos           YYPTRDIFF_T yyi;                      \
   1182  1.1  christos           for (yyi = 0; yyi < (Count); yyi++)   \
   1183  1.1  christos             (Dst)[yyi] = (Src)[yyi];            \
   1184  1.1  christos         }                                       \
   1185  1.1  christos       while (0)
   1186  1.1  christos #  endif
   1187  1.1  christos # endif
   1188  1.1  christos #endif /* !YYCOPY_NEEDED */
   1189  1.1  christos 
   1190  1.1  christos /* YYFINAL -- State number of the termination state.  */
   1191  1.1  christos #define YYFINAL  307
   1192  1.1  christos /* YYLAST -- Last index in YYTABLE.  */
   1193  1.1  christos #define YYLAST   967
   1194  1.1  christos 
   1195  1.1  christos /* YYNTOKENS -- Number of terminals.  */
   1196  1.1  christos #define YYNTOKENS  170
   1197  1.1  christos /* YYNNTS -- Number of nonterminals.  */
   1198  1.1  christos #define YYNNTS  97
   1199  1.1  christos /* YYNRULES -- Number of rules.  */
   1200  1.1  christos #define YYNRULES  356
   1201  1.1  christos /* YYNSTATES -- Number of states.  */
   1202  1.1  christos #define YYNSTATES  924
   1203  1.1  christos 
   1204  1.1  christos /* YYMAXUTOK -- Last valid token kind.  */
   1205  1.1  christos #define YYMAXUTOK   418
   1206  1.1  christos 
   1207  1.1  christos 
   1208  1.1  christos /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
   1209  1.1  christos    as returned by yylex, with out-of-bounds checking.  */
   1210  1.1  christos #define YYTRANSLATE(YYX)                                \
   1211  1.1  christos   (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
   1212  1.1  christos    ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
   1213  1.1  christos    : YYSYMBOL_YYUNDEF)
   1214  1.1  christos 
   1215  1.1  christos /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
   1216  1.1  christos    as returned by yylex.  */
   1217  1.1  christos static const yytype_uint8 yytranslate[] =
   1218  1.1  christos {
   1219  1.1  christos        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1220  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1221  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1222  1.1  christos        2,     2,     2,     2,     2,   164,     2,     2,     2,     2,
   1223  1.1  christos        2,     2,     2,   169,   165,   168,     2,     2,     2,     2,
   1224  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1225  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1226  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1227  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1228  1.1  christos        2,   166,     2,   167,     2,     2,     2,     2,     2,     2,
   1229  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1230  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1231  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1232  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1233  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1234  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1235  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1236  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1237  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1238  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1239  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1240  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1241  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1242  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1243  1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1244  1.1  christos        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
   1245  1.1  christos        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
   1246  1.1  christos       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
   1247  1.1  christos       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
   1248  1.1  christos       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
   1249  1.1  christos       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
   1250  1.1  christos       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
   1251  1.1  christos       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
   1252  1.1  christos       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
   1253  1.1  christos       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
   1254  1.1  christos       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
   1255  1.1  christos      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
   1256  1.1  christos      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
   1257  1.1  christos      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
   1258  1.1  christos      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
   1259  1.1  christos      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
   1260  1.1  christos      155,   156,   157,   158,   159,   160,   161,   162,   163
   1261  1.1  christos };
   1262  1.1  christos 
   1263  1.1  christos #if YYDEBUG
   1264  1.1  christos /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
   1265  1.1  christos static const yytype_int16 yyrline[] =
   1266  1.1  christos {
   1267  1.1  christos        0,   184,   184,   189,   192,   195,   198,   203,   218,   221,
   1268  1.1  christos      226,   235,   240,   248,   251,   256,   258,   260,   265,   283,
   1269  1.1  christos      286,   289,   292,   300,   306,   314,   323,   328,   331,   336,
   1270  1.1  christos      341,   344,   352,   359,   367,   373,   379,   385,   391,   399,
   1271  1.1  christos      409,   414,   414,   415,   415,   416,   416,   420,   433,   446,
   1272  1.1  christos      451,   456,   458,   463,   468,   470,   472,   477,   482,   487,
   1273  1.1  christos      497,   507,   509,   514,   516,   518,   520,   525,   527,   529,
   1274  1.1  christos      531,   536,   538,   540,   545,   550,   552,   554,   556,   561,
   1275  1.1  christos      567,   575,   589,   594,   599,   604,   609,   614,   616,   618,
   1276  1.1  christos      623,   628,   628,   629,   629,   630,   630,   631,   631,   632,
   1277  1.1  christos      632,   633,   633,   634,   634,   635,   635,   636,   636,   637,
   1278  1.1  christos      637,   638,   638,   639,   639,   640,   640,   641,   641,   642,
   1279  1.1  christos      642,   646,   646,   647,   647,   648,   648,   649,   649,   650,
   1280  1.1  christos      650,   654,   656,   658,   660,   663,   665,   667,   669,   674,
   1281  1.1  christos      674,   675,   675,   676,   676,   677,   677,   678,   678,   679,
   1282  1.1  christos      679,   680,   680,   681,   681,   682,   682,   689,   691,   696,
   1283  1.1  christos      702,   708,   710,   712,   714,   716,   718,   720,   722,   728,
   1284  1.1  christos      730,   732,   734,   736,   738,   738,   739,   741,   741,   742,
   1285  1.1  christos      744,   744,   745,   753,   764,   766,   771,   773,   778,   780,
   1286  1.1  christos      785,   785,   786,   786,   787,   787,   788,   788,   792,   800,
   1287  1.1  christos      807,   809,   814,   821,   827,   832,   835,   838,   843,   843,
   1288  1.1  christos      844,   844,   845,   845,   846,   846,   847,   847,   852,   857,
   1289  1.1  christos      862,   867,   869,   871,   873,   875,   877,   879,   881,   883,
   1290  1.1  christos      883,   884,   886,   894,   902,   912,   912,   913,   913,   916,
   1291  1.1  christos      916,   917,   917,   920,   920,   921,   921,   922,   922,   923,
   1292  1.1  christos      923,   924,   924,   925,   925,   926,   926,   927,   927,   928,
   1293  1.1  christos      928,   929,   929,   930,   930,   931,   933,   936,   939,   942,
   1294  1.1  christos      945,   948,   951,   954,   958,   961,   965,   968,   971,   974,
   1295  1.1  christos      977,   980,   983,   986,   989,   991,   994,   997,  1000,  1011,
   1296  1.1  christos     1013,  1015,  1017,  1024,  1026,  1034,  1036,  1038,  1044,  1049,
   1297  1.1  christos     1050,  1054,  1055,  1059,  1061,  1066,  1071,  1071,  1073,  1078,
   1298  1.1  christos     1080,  1082,  1089,  1093,  1095,  1097,  1101,  1103,  1105,  1107,
   1299  1.1  christos     1112,  1112,  1115,  1119,  1119,  1122,  1122,  1128,  1128,  1151,
   1300  1.1  christos     1152,  1157,  1157,  1165,  1167,  1172,  1176,  1181,  1182,  1185,
   1301  1.1  christos     1185,  1190,  1191,  1192,  1193,  1194,  1197,  1198,  1199,  1200,
   1302  1.1  christos     1203,  1204,  1205,  1208,  1209,  1212,  1213
   1303  1.1  christos };
   1304  1.1  christos #endif
   1305  1.1  christos 
   1306  1.1  christos /** Accessing symbol of state STATE.  */
   1307  1.1  christos #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
   1308  1.1  christos 
   1309  1.1  christos #if YYDEBUG || 0
   1310  1.1  christos /* The user-facing name of the symbol whose (internal) number is
   1311  1.1  christos    YYSYMBOL.  No bounds checking.  */
   1312  1.1  christos static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
   1313  1.1  christos 
   1314  1.1  christos /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
   1315  1.1  christos    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
   1316  1.1  christos static const char *const yytname[] =
   1317  1.1  christos {
   1318  1.1  christos   "\"end of file\"", "error", "\"invalid token\"", "REG", "FLAG", "CREG",
   1319  1.1  christos   "ACC", "DREG", "DREGH", "DREGL", "DCREG", "EXPR", "UNKNOWN_OPCODE",
   1320  1.1  christos   "IS_OPCODE", "DOT_S", "DOT_B", "DOT_W", "DOT_L", "DOT_A", "DOT_UB",
   1321  1.1  christos   "DOT_UW", "DOT_D", "ABS", "ADC", "ADD", "AND_", "BCLR", "BCND", "BFMOV",
   1322  1.1  christos   "BFMOVZ", "BMCND", "BNOT", "BRA", "BRK", "BSET", "BSR", "BTST", "CLRPSW",
   1323  1.1  christos   "CMP", "DABS", "DADD", "DBT", "DCMP", "DDIV", "DIV", "DIVU", "DMOV",
   1324  1.1  christos   "DMUL", "DNEG", "DPOPM", "DPUSHM", "DROUND", "DSQRT", "DSUB", "DTOF",
   1325  1.1  christos   "DTOI", "DTOU", "EDIV", "EDIVU", "EMACA", "EMSBA", "EMUL", "EMULA",
   1326  1.1  christos   "EMULU", "FADD", "FCMP", "FDIV", "FMUL", "FREIT", "FSUB", "FSQRT",
   1327  1.1  christos   "FTOD", "FTOI", "FTOU", "INT", "ITOD", "ITOF", "JMP", "JSR", "MACHI",
   1328  1.1  christos   "MACLH", "MACLO", "MAX", "MIN", "MOV", "MOVCO", "MOVLI", "MOVU", "MSBHI",
   1329  1.1  christos   "MSBLH", "MSBLO", "MUL", "MULHI", "MULLH", "MULLO", "MULU", "MVFACHI",
   1330  1.1  christos   "MVFACGU", "MVFACMI", "MVFACLO", "MVFC", "MVFDC", "MVFDR", "MVTACGU",
   1331  1.1  christos   "MVTACHI", "MVTACLO", "MVTC", "MVTDC", "MVTIPL", "NEG", "NOP", "NOT",
   1332  1.1  christos   "OR", "POP", "POPC", "POPM", "PUSH", "PUSHA", "PUSHC", "PUSHM", "RACL",
   1333  1.1  christos   "RACW", "RDACL", "RDACW", "REIT", "REVL", "REVW", "RMPA", "ROLC", "RORC",
   1334  1.1  christos   "ROTL", "ROTR", "ROUND", "RSTR", "RTE", "RTFI", "RTS", "RTSD", "SAT",
   1335  1.1  christos   "SATR", "SAVE", "SBB", "SCCND", "SCMPU", "SETPSW", "SHAR", "SHLL",
   1336  1.1  christos   "SHLR", "SMOVB", "SMOVF", "SMOVU", "SSTR", "STNZ", "STOP", "STZ", "SUB",
   1337  1.1  christos   "SUNTIL", "SWHILE", "TST", "UTOD", "UTOF", "WAIT", "XCHG", "XOR", "'#'",
   1338  1.1  christos   "','", "'['", "']'", "'-'", "'+'", "$accept", "statement", "$@1", "$@2",
   1339  1.1  christos   "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "$@12",
   1340  1.1  christos   "$@13", "$@14", "$@15", "$@16", "$@17", "$@18", "$@19", "$@20", "$@21",
   1341  1.1  christos   "$@22", "$@23", "$@24", "$@25", "$@26", "$@27", "$@28", "$@29", "$@30",
   1342  1.1  christos   "$@31", "$@32", "$@33", "$@34", "$@35", "$@36", "$@37", "$@38", "$@39",
   1343  1.1  christos   "$@40", "$@41", "$@42", "$@43", "$@44", "$@45", "$@46", "$@47", "$@48",
   1344  1.1  christos   "$@49", "$@50", "$@51", "$@52", "$@53", "$@54", "$@55", "$@56", "$@57",
   1345  1.1  christos   "$@58", "$@59", "$@60", "op_subadd", "op_dp20_rm_l", "op_dp20_rm",
   1346  1.1  christos   "op_dp20_i", "op_dp20_rim", "op_dp20_rim_l", "op_dp20_rr", "op_dp20_r",
   1347  1.1  christos   "op_dp20_ri", "$@61", "op_xchg", "op_shift_rot", "op_shift", "float3_op",
   1348  1.1  christos   "float2_op", "$@62", "float2_op_ni", "$@63", "$@64", "mvfa_op", "$@65",
   1349  1.1  christos   "op_xor", "op_bfield", "$@66", "op_save_rstr", "double2_op",
   1350  1.1  christos   "double3_op", "disp", "flag", "$@67", "memex", "bwl", "bw", "opt_l",
   1351  1.1  christos   "opt_b", YY_NULLPTR
   1352  1.1  christos };
   1353  1.1  christos 
   1354  1.1  christos static const char *
   1355  1.1  christos yysymbol_name (yysymbol_kind_t yysymbol)
   1356  1.1  christos {
   1357  1.1  christos   return yytname[yysymbol];
   1358  1.1  christos }
   1359  1.1  christos #endif
   1360  1.1  christos 
   1361  1.1  christos #define YYPACT_NINF (-728)
   1362  1.1  christos 
   1363  1.1  christos #define yypact_value_is_default(Yyn) \
   1364  1.1  christos   ((Yyn) == YYPACT_NINF)
   1365  1.1  christos 
   1366  1.1  christos #define YYTABLE_NINF (-324)
   1367  1.1  christos 
   1368  1.1  christos #define yytable_value_is_error(Yyn) \
   1369  1.1  christos   0
   1370  1.1  christos 
   1371  1.1  christos /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   1372  1.1  christos    STATE-NUM.  */
   1373  1.1  christos static const yytype_int16 yypact[] =
   1374  1.1  christos {
   1375  1.1  christos      323,  -728,  -728,  -728,  -136,  -129,     2,   116,  -728,  -728,
   1376  1.1  christos     -120,    29,   127,  -728,    31,   136,    33,  -728,    12,  -728,
   1377  1.1  christos     -728,  -728,    45,  -728,  -728,  -728,   170,  -728,  -728,   183,
   1378  1.1  christos      193,  -728,  -728,  -728,  -728,  -728,  -728,    66,    77,  -118,
   1379  1.1  christos       79,   -98,  -728,  -728,  -728,  -728,  -728,  -728,   110,  -728,
   1380  1.1  christos     -728,   -30,   143,  -728,   155,   158,   191,   210,   221,  -728,
   1381  1.1  christos     -728,    41,   244,    85,    34,   249,   250,   251,    99,   252,
   1382  1.1  christos      253,   254,   255,  -728,   256,   257,   259,   258,  -728,   262,
   1383  1.1  christos      263,   264,    35,   266,   112,  -728,  -728,  -728,   113,   268,
   1384  1.1  christos      269,   270,   162,   273,   272,   115,   118,   119,   120,  -728,
   1385  1.1  christos     -728,   162,   277,   282,   124,   128,  -728,  -728,  -728,  -728,
   1386  1.1  christos     -728,   129,   286,  -728,  -728,   130,   227,  -728,  -728,  -728,
   1387  1.1  christos     -728,  -728,  -728,  -728,  -728,   162,  -728,  -728,   131,   162,
   1388  1.1  christos      162,  -728,   287,  -728,  -728,  -728,  -728,   261,   288,    19,
   1389  1.1  christos      285,    64,   289,    64,   132,   290,  -728,   291,   292,   294,
   1390  1.1  christos     -728,  -728,   295,   133,   296,  -728,   297,   298,   299,  -728,
   1391  1.1  christos      300,   309,   134,   303,  -728,   304,   305,   314,   153,   308,
   1392  1.1  christos     -728,   317,   157,  -728,   312,   160,   320,   321,   159,   321,
   1393  1.1  christos       22,    22,    18,     6,   321,   320,   319,   324,   322,   326,
   1394  1.1  christos      320,   320,   321,   320,   320,   320,   165,   169,   172,    91,
   1395  1.1  christos      173,   172,    91,    26,    37,    37,    26,    26,   334,   174,
   1396  1.1  christos      334,   334,   329,   176,    91,  -728,  -728,   177,   178,   179,
   1397  1.1  christos       22,    22,   216,   276,   283,   380,     5,   311,   415,  -728,
   1398  1.1  christos     -728,     7,   327,   330,   332,   476,    64,   333,   335,   336,
   1399  1.1  christos     -728,  -728,  -728,  -728,  -728,  -728,  -728,   337,   338,   339,
   1400  1.1  christos      340,   341,   342,   478,   343,   480,   288,   288,   483,    64,
   1401  1.1  christos     -728,  -728,   344,  -728,  -728,  -728,    92,  -728,   346,   498,
   1402  1.1  christos      499,   500,   504,   513,   513,  -728,  -728,  -728,   506,   513,
   1403  1.1  christos      507,   513,   334,    38,   508,  -728,    38,   509,    93,   518,
   1404  1.1  christos      511,  -728,    39,    39,    39,  -728,   172,   172,   512,    64,
   1405  1.1  christos     -728,  -728,    22,   359,    91,    91,    28,  -728,   360,  -728,
   1406  1.1  christos      361,   516,  -728,  -728,  -728,   362,   364,   365,  -728,   366,
   1407  1.1  christos      368,  -728,    94,   369,  -728,  -728,  -728,  -728,   367,  -728,
   1408  1.1  christos      370,    95,   371,  -728,  -728,  -728,  -728,  -728,    96,   372,
   1409  1.1  christos     -728,  -728,  -728,    97,   373,  -728,   536,   375,   538,   377,
   1410  1.1  christos     -728,   378,  -728,   537,  -728,   381,  -728,  -728,  -728,   379,
   1411  1.1  christos     -728,   382,   383,   384,   539,   386,   387,   542,   551,   389,
   1412  1.1  christos     -728,  -728,   388,   390,   391,   392,  -728,  -728,  -728,  -728,
   1413  1.1  christos     -728,  -728,   554,   558,  -728,   397,  -728,   398,   560,  -728,
   1414  1.1  christos     -728,   400,   555,  -728,   401,  -728,   404,  -728,   566,   511,
   1415  1.1  christos     -728,  -728,  -728,  -728,   563,  -728,  -728,  -728,   564,  -728,
   1416  1.1  christos      569,   570,   571,  -728,  -728,   565,   567,   568,   410,   412,
   1417  1.1  christos      414,    -1,   416,   417,   418,   419,     0,   578,   583,   584,
   1418  1.1  christos      423,  -728,   586,   587,   588,  -728,   428,  -728,  -728,  -728,
   1419  1.1  christos      590,   591,   589,   592,   593,   595,   431,   594,  -728,  -728,
   1420  1.1  christos     -728,   432,  -728,   598,  -728,   436,   600,   440,   441,   442,
   1421  1.1  christos      443,   444,  -728,  -728,   445,  -728,   446,  -728,  -728,  -728,
   1422  1.1  christos      601,  -728,   448,  -728,   449,  -728,  -728,   450,   604,  -728,
   1423  1.1  christos     -728,  -728,  -728,  -728,  -728,   614,  -728,   453,  -728,  -728,
   1424  1.1  christos      612,  -728,  -728,   455,  -728,  -728,   618,   619,   458,   621,
   1425  1.1  christos      622,   623,   624,   625,  -728,   463,    98,   620,   107,  -728,
   1426  1.1  christos      464,   108,  -728,   466,   109,  -728,   467,   111,  -728,   631,
   1427  1.1  christos      468,   629,   630,  -728,   635,   636,   231,   637,   638,   477,
   1428  1.1  christos      642,    40,   479,   484,   640,   643,   639,   644,   645,   490,
   1429  1.1  christos      491,   654,   655,   494,   657,   496,   659,   634,   501,   497,
   1430  1.1  christos     -728,  -728,   502,   503,   505,   510,   514,   515,   661,     8,
   1431  1.1  christos      662,    62,   666,   668,   517,   669,   670,    63,   671,   519,
   1432  1.1  christos      520,   521,   673,   522,   523,   524,   667,  -728,  -728,  -728,
   1433  1.1  christos     -728,  -728,  -728,   672,  -728,   678,  -728,   680,  -728,   684,
   1434  1.1  christos      685,   686,   687,   691,   692,   693,  -728,   695,   696,   697,
   1435  1.1  christos      540,   541,  -728,   698,  -728,   699,  -728,  -728,   700,   543,
   1436  1.1  christos      544,   546,   545,  -728,   701,  -728,   547,   549,  -728,   550,
   1437  1.1  christos      704,  -728,   552,   705,  -728,   553,   712,  -728,   556,  -728,
   1438  1.1  christos      140,  -728,   559,  -728,   561,  -728,  -728,  -728,  -728,   237,
   1439  1.1  christos     -728,  -728,   714,   557,   713,   562,   572,  -728,  -728,  -728,
   1440  1.1  christos     -728,   719,   720,  -728,   573,   723,   576,   717,   575,   579,
   1441  1.1  christos      727,   728,   729,   730,   731,    -4,    32,     9,  -728,  -728,
   1442  1.1  christos      577,     1,   581,   735,   580,   582,   585,   596,   743,  -728,
   1443  1.1  christos      597,   747,   602,   599,   603,   745,   748,   749,  -728,   750,
   1444  1.1  christos      751,   752,   606,  -728,  -728,   605,  -728,  -728,  -728,  -728,
   1445  1.1  christos     -728,  -728,  -728,   607,  -728,   609,   756,   757,  -728,   608,
   1446  1.1  christos     -728,   245,   758,   759,   192,   610,   762,   615,   765,   611,
   1447  1.1  christos      766,   613,   771,   616,   778,  -728,  -728,  -728,   617,  -728,
   1448  1.1  christos      626,   726,   200,  -728,  -728,   627,   781,  -728,   746,   628,
   1449  1.1  christos     -728,  -728,   206,  -728,   782,  -728,   245,   783,  -728,   632,
   1450  1.1  christos     -728,  -728,  -728,   784,   641,   785,   646,  -728,   786,   647,
   1451  1.1  christos      787,    68,   789,   633,   648,   125,   649,   651,  -728,  -728,
   1452  1.1  christos      652,   653,   792,   656,   658,  -728,  -728,  -728,  -728,  -728,
   1453  1.1  christos     -728,   790,  -728,   794,  -728,   660,  -728,   797,   663,  -728,
   1454  1.1  christos     -728,   664,   665,   791,   674,   793,   675,   791,   676,   791,
   1455  1.1  christos      677,   791,   679,   798,   799,  -728,   682,   683,  -728,   688,
   1456  1.1  christos     -728,   801,   689,   694,  -728,   702,  -728,   245,   690,   802,
   1457  1.1  christos      703,   806,   706,   807,   707,   815,  -728,   708,   709,   126,
   1458  1.1  christos      715,  -728,   711,   816,   819,   821,   716,  -728,   823,   824,
   1459  1.1  christos      718,  -728,   828,  -728,   829,   830,   831,  -728,  -728,   820,
   1460  1.1  christos      721,   791,  -728,   791,  -728,   822,  -728,   825,  -728,  -728,
   1461  1.1  christos      833,   835,  -728,  -728,   836,   842,   846,   722,  -728,   724,
   1462  1.1  christos     -728,   725,  -728,   732,  -728,   733,  -728,  -728,  -728,   736,
   1463  1.1  christos      847,   848,  -728,  -728,  -728,   849,  -728,  -728,   850,  -728,
   1464  1.1  christos     -728,  -728,  -728,  -728,   734,  -728,  -728,  -728,  -728,  -728,
   1465  1.1  christos     -728,  -728,  -728,  -728,   853,  -728,  -728,  -728,  -728,   855,
   1466  1.1  christos     -728,   737,  -728,  -728,   851,  -728,   738,  -728,   741,  -728,
   1467  1.1  christos      857,   742,   858,  -728
   1468  1.1  christos };
   1469  1.1  christos 
   1470  1.1  christos /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
   1471  1.1  christos    Performed when YYTABLE does not specify something else to do.  Zero
   1472  1.1  christos    means the default is an error.  */
   1473  1.1  christos static const yytype_int16 yydefact[] =
   1474  1.1  christos {
   1475  1.1  christos        0,     2,    97,    95,   210,   214,     0,     0,   235,   237,
   1476  1.1  christos        0,     0,   353,     3,     0,   353,     0,   339,   337,   243,
   1477  1.1  christos      257,     4,     0,   259,   107,   109,     0,   261,   245,     0,
   1478  1.1  christos        0,   247,   249,   263,   251,   253,   255,     0,     0,   121,
   1479  1.1  christos        0,   123,   143,   141,   147,   145,   139,   149,     0,   151,
   1480  1.1  christos      153,     0,     0,   127,     0,     0,     0,     0,     0,    99,
   1481  1.1  christos      101,   346,     0,     0,   350,     0,     0,     0,   212,     0,
   1482  1.1  christos        0,     0,   174,   229,   177,   180,     0,     0,   284,     0,
   1483  1.1  christos        0,     0,     0,     0,     0,    93,     6,   115,   216,     0,
   1484  1.1  christos        0,     0,   346,     0,     0,     0,     0,     0,     0,   196,
   1485  1.1  christos      194,   346,     0,     0,   190,   192,   155,   239,    76,    75,
   1486  1.1  christos        5,     0,     0,    78,   241,    91,   346,    67,   339,    43,
   1487  1.1  christos       45,    41,    69,    70,    68,   346,   119,   117,   208,   346,
   1488  1.1  christos      346,   111,     0,   129,    77,   125,   113,     0,     0,   337,
   1489  1.1  christos        0,   337,     0,   337,     0,     0,    18,     0,     0,     0,
   1490  1.1  christos      331,   331,     0,     0,     0,     7,     0,     0,     0,   354,
   1491  1.1  christos        0,     0,     0,     0,    10,     0,     0,     0,     0,     0,
   1492  1.1  christos       62,     0,     0,   338,     0,     0,     0,     0,     0,     0,
   1493  1.1  christos      337,   337,     0,     0,     0,     0,     0,     0,     0,     0,
   1494  1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,     0,   337,
   1495  1.1  christos        0,     0,   337,   337,   325,   325,   337,   337,   325,     0,
   1496  1.1  christos      325,   325,     0,     0,   337,    63,    64,     0,     0,     0,
   1497  1.1  christos      337,   337,   347,   348,   349,     0,     0,     0,     0,   351,
   1498  1.1  christos      352,     0,     0,     0,     0,     0,   337,     0,     0,     0,
   1499  1.1  christos      173,   327,   327,   176,   327,   179,   327,     0,     0,     0,
   1500  1.1  christos      169,   171,     0,     0,     0,     0,     0,     0,     0,   337,
   1501  1.1  christos       58,    60,     0,   347,   348,   349,   337,    59,     0,     0,
   1502  1.1  christos        0,     0,     0,     0,     0,    74,    56,    55,     0,     0,
   1503  1.1  christos        0,     0,   325,     0,     0,    54,     0,     0,   337,   349,
   1504  1.1  christos      337,    61,     0,     0,     0,    73,   306,   306,     0,   337,
   1505  1.1  christos       71,    72,   337,     0,   337,   337,   337,     1,   304,    98,
   1506  1.1  christos        0,     0,   301,   302,    96,     0,     0,     0,   211,     0,
   1507  1.1  christos        0,   215,   337,     0,    12,    13,    17,   236,     0,   238,
   1508  1.1  christos        0,   337,     0,     9,    14,    15,     8,    65,   337,     0,
   1509  1.1  christos       16,    11,    66,   337,     0,   340,     0,     0,     0,     0,
   1510  1.1  christos      244,     0,   258,     0,   260,     0,   299,   300,   108,     0,
   1511  1.1  christos      110,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1512  1.1  christos      262,   246,     0,     0,     0,     0,   248,   250,   264,   252,
   1513  1.1  christos      254,   256,     0,     0,   104,     0,   122,     0,     0,   106,
   1514  1.1  christos      124,     0,     0,   144,     0,   142,     0,   322,     0,   337,
   1515  1.1  christos      148,   146,   140,   150,     0,   152,   154,    50,     0,   128,
   1516  1.1  christos        0,     0,     0,   100,   102,     0,     0,     0,     0,     0,
   1517  1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1518  1.1  christos        0,   213,     0,     0,     0,   175,     0,   230,   178,   181,
   1519  1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,    79,    94,
   1520  1.1  christos      116,     0,   217,     0,    57,     0,     0,     0,   182,     0,
   1521  1.1  christos        0,     0,   197,   195,     0,   191,     0,   193,   156,   334,
   1522  1.1  christos        0,   240,    40,   242,     0,    92,   157,     0,     0,   315,
   1523  1.1  christos       44,    46,    42,   308,   120,     0,   118,     0,   209,   112,
   1524  1.1  christos        0,   130,   126,     0,   329,   114,     0,     0,     0,     0,
   1525  1.1  christos        0,     0,     0,     0,   132,     0,   337,     0,   337,   134,
   1526  1.1  christos        0,   337,   131,     0,   337,   133,     0,   337,    26,     0,
   1527  1.1  christos        0,     0,     0,   265,     0,     0,     0,     0,     0,     0,
   1528  1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1529  1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1530  1.1  christos      286,   287,   165,     0,   167,     0,     0,     0,     0,     0,
   1531  1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1532  1.1  christos        0,     0,     0,   161,     0,   163,     0,   199,   283,   231,
   1533  1.1  christos      170,   172,   198,     0,   285,     0,    48,     0,    47,     0,
   1534  1.1  christos        0,     0,     0,     0,     0,     0,   333,     0,     0,     0,
   1535  1.1  christos        0,     0,   307,     0,   288,     0,   303,   293,     0,     0,
   1536  1.1  christos       34,   289,     0,    36,     0,    52,     0,     0,   203,     0,
   1537  1.1  christos        0,   204,     0,     0,    51,     0,     0,    53,     0,    33,
   1538  1.1  christos      343,   335,     0,   295,     0,   267,   268,   269,   270,     0,
   1539  1.1  christos      266,   271,     0,     0,     0,     0,     0,   280,   279,   282,
   1540  1.1  christos      281,     0,     0,   309,     0,     0,   317,     0,     0,     0,
   1541  1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,    39,    85,
   1542  1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,     0,    29,
   1543  1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
   1544  1.1  christos        0,     0,     0,   202,    37,     0,   232,   183,   233,   234,
   1545  1.1  christos      312,   200,   201,     0,   218,     0,     0,     0,    32,   295,
   1546  1.1  christos      298,   353,     0,     0,   343,     0,     0,     0,     0,     0,
   1547  1.1  christos        0,     0,     0,     0,     0,   341,   342,   344,     0,   345,
   1548  1.1  christos        0,     0,   343,   277,   278,     0,     0,   276,     0,     0,
   1549  1.1  christos      221,   222,   343,   223,     0,   316,   353,     0,   324,     0,
   1550  1.1  christos      166,   224,   168,     0,     0,     0,     0,    38,     0,     0,
   1551  1.1  christos        0,     0,     0,     0,     0,   337,     0,     0,   219,   220,
   1552  1.1  christos        0,     0,     0,     0,     0,   225,   226,   227,   162,   228,
   1553  1.1  christos      164,     0,    90,     0,   158,   313,   305,     0,     0,    49,
   1554  1.1  christos      292,     0,     0,   355,     0,     0,     0,   355,     0,   355,
   1555  1.1  christos        0,   355,     0,     0,     0,   336,     0,     0,   272,     0,
   1556  1.1  christos      274,     0,     0,     0,   319,     0,   321,   353,     0,     0,
   1557  1.1  christos        0,     0,     0,     0,     0,     0,    82,     0,     0,   337,
   1558  1.1  christos        0,    86,     0,     0,     0,     0,     0,    30,     0,     0,
   1559  1.1  christos        0,    25,     0,   330,     0,     0,     0,   356,   136,     0,
   1560  1.1  christos        0,   355,   138,   355,   135,     0,   137,     0,    27,    28,
   1561  1.1  christos        0,     0,   273,   275,     0,     0,     0,     0,    19,     0,
   1562  1.1  christos       20,     0,    21,     0,    80,     0,   184,   185,    81,     0,
   1563  1.1  christos        0,     0,   186,   187,    31,     0,   188,   189,     0,   314,
   1564  1.1  christos      294,   290,   291,    88,     0,   159,   160,    87,    89,   296,
   1565  1.1  christos      297,   310,   311,   318,     0,    22,    23,    24,   205,     0,
   1566  1.1  christos      206,     0,   207,   328,     0,   326,     0,    83,     0,    84,
   1567  1.1  christos        0,     0,     0,   332
   1568  1.1  christos };
   1569  1.1  christos 
   1570  1.1  christos /* YYPGOTO[NTERM-NUM].  */
   1571  1.1  christos static const yytype_int16 yypgoto[] =
   1572  1.1  christos {
   1573  1.1  christos     -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,
   1574  1.1  christos     -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,
   1575  1.1  christos     -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,
   1576  1.1  christos     -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,
   1577  1.1  christos     -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,
   1578  1.1  christos     -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,  -728,
   1579  1.1  christos     -728,  -728,  -119,   650,  -728,  -133,  -167,  -728,  -141,  -728,
   1580  1.1  christos      437,  -728,  -154,  -196,  -145,    43,   710,  -728,  -149,  -728,
   1581  1.1  christos     -728,    -8,  -728,  -728,   739,  -728,   681,  -104,  -108,   -18,
   1582  1.1  christos      753,  -728,  -669,   -37,  -728,   -14,  -727
   1583  1.1  christos };
   1584  1.1  christos 
   1585  1.1  christos /* YYDEFGOTO[NTERM-NUM].  */
   1586  1.1  christos static const yytype_int16 yydefgoto[] =
   1587  1.1  christos {
   1588  1.1  christos        0,   137,   294,   292,   293,   288,   256,   139,   138,   220,
   1589  1.1  christos      221,   198,   201,   180,   181,   302,   306,   257,   297,   296,
   1590  1.1  christos      199,   202,   305,   214,   304,   207,   204,   203,   206,   205,
   1591  1.1  christos      208,   210,   211,   282,   241,   244,   246,   279,   281,   274,
   1592  1.1  christos      273,   299,   141,   236,   143,   259,   242,   150,   151,   283,
   1593  1.1  christos      286,   176,   185,   190,   191,   193,   194,   195,   177,   179,
   1594  1.1  christos      184,   192,   318,   312,   356,   357,   358,   314,   309,   602,
   1595  1.1  christos      484,   485,   386,   479,   480,   393,   395,   396,   397,   398,
   1596  1.1  christos      399,   435,   436,   495,   327,   328,   471,   350,   352,   359,
   1597  1.1  christos      170,   171,   730,   226,   231,   161,   848
   1598  1.1  christos };
   1599  1.1  christos 
   1600  1.1  christos /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
   1601  1.1  christos    positive, shift that token.  If negative, reduce the rule whose
   1602  1.1  christos    number is the opposite.  If YYTABLE_NINF, syntax error.  */
   1603  1.1  christos static const yytype_int16 yytable[] =
   1604  1.1  christos {
   1605  1.1  christos      175,   167,   561,   567,   761,   144,   313,   173,   419,   365,
   1606  1.1  christos      424,   669,   757,   366,   360,   172,   420,   173,   425,   670,
   1607  1.1  christos      173,   361,   310,   173,   321,   355,   362,   363,   140,   391,
   1608  1.1  christos      173,   493,   153,   173,   162,   142,   168,   173,   252,   173,
   1609  1.1  christos     -323,   469,   461,   173,   152,   792,  -103,   641,   390,   229,
   1610  1.1  christos      230,   173,   178,   413,   414,   266,   222,   223,   224,   403,
   1611  1.1  christos      409,   405,   406,   807,   275,   384,  -105,   317,   389,   196,
   1612  1.1  christos      852,   354,   854,   813,   856,   173,   370,   462,   463,   290,
   1613  1.1  christos      197,   371,   200,   465,   378,   467,   376,   377,   295,   379,
   1614  1.1  christos      380,   381,   300,   301,   385,   454,   310,   504,   509,   512,
   1615  1.1  christos      515,   615,   173,   173,   173,   173,   173,   173,   173,   173,
   1616  1.1  christos      618,   621,   624,   209,   627,   449,   450,   431,   173,   173,
   1617  1.1  christos      173,   315,   173,   319,   895,   319,   896,   146,   831,   878,
   1618  1.1  christos      147,   148,   149,   468,   212,   489,   173,   173,   155,   494,
   1619  1.1  christos      452,   156,   157,   158,   159,   160,   213,   164,   481,   482,
   1620  1.1  christos      491,   492,   165,   159,   166,   725,   726,   727,   215,   728,
   1621  1.1  christos      729,   216,   753,   483,   483,   369,   145,   562,   568,   762,
   1622  1.1  christos      367,   421,   368,   426,   671,   758,   174,   263,   264,   265,
   1623  1.1  christos      488,   387,   364,   311,   387,   394,   311,   182,   394,   394,
   1624  1.1  christos      392,   183,   311,   154,   217,   163,   387,   169,   755,   253,
   1625  1.1  christos      186,  -320,   470,   478,   187,   225,   642,   725,   726,   727,
   1626  1.1  christos      188,   791,   729,   218,   189,   725,   726,   727,   319,   806,
   1627  1.1  christos      729,   725,   726,   727,   219,   812,   729,   673,   681,   674,
   1628  1.1  christos      682,   675,   683,   825,   437,   826,   438,   827,   439,   635,
   1629  1.1  christos      636,   319,   263,   264,   289,   733,   734,   227,   455,   401,
   1630  1.1  christos      402,   228,   232,   233,   234,   237,   238,   239,   240,   243,
   1631  1.1  christos      245,   307,   159,   235,   247,   249,   250,   251,   248,   254,
   1632  1.1  christos      315,   260,   477,   262,   261,   268,   255,   258,   267,   269,
   1633  1.1  christos      276,   319,   270,   271,   272,   277,   387,   387,   278,   285,
   1634  1.1  christos      303,   308,   280,   284,   287,   298,   316,   322,   331,   338,
   1635  1.1  christos      320,   323,   324,   325,   505,   326,   330,   332,   333,   334,
   1636  1.1  christos      335,   336,   337,   510,   339,   340,   341,   342,   343,   344,
   1637  1.1  christos      513,   345,   346,   347,   353,   516,   348,   349,   351,   372,
   1638  1.1  christos      382,   373,   374,   375,   383,     1,   311,  -323,   388,   404,
   1639  1.1  christos      407,   408,   410,   411,   412,     2,     3,     4,     5,     6,
   1640  1.1  christos        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
   1641  1.1  christos       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
   1642  1.1  christos       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
   1643  1.1  christos      415,   549,    37,    38,    39,    40,    41,    42,    43,    44,
   1644  1.1  christos       45,   418,    46,    47,    48,    49,    50,    51,    52,    53,
   1645  1.1  christos       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
   1646  1.1  christos       64,    65,    66,    67,    68,    69,    70,    71,   423,    72,
   1647  1.1  christos       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
   1648  1.1  christos       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
   1649  1.1  christos      416,    93,    94,    95,    96,    97,    98,   417,    99,   100,
   1650  1.1  christos      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
   1651  1.1  christos      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
   1652  1.1  christos      121,   122,   123,   124,   125,   126,   422,   127,   128,   129,
   1653  1.1  christos      130,   131,   132,   133,   134,   135,   136,   430,   616,   446,
   1654  1.1  christos      619,   448,   427,   622,   451,   428,   625,   429,   432,   628,
   1655  1.1  christos      433,   434,   440,   441,   442,   443,   444,   445,   447,   457,
   1656  1.1  christos      458,   459,   453,   643,   456,   460,   461,   464,   466,   472,
   1657  1.1  christos      474,   476,   173,   487,   490,   496,   497,   498,   499,   500,
   1658  1.1  christos      501,   507,   502,   503,   506,   508,   511,   514,   517,   518,
   1659  1.1  christos      519,   520,   521,   522,   523,   525,   524,   526,   527,   528,
   1660  1.1  christos      529,   530,   531,   532,   533,   534,   535,   539,   536,   537,
   1661  1.1  christos      538,   540,   541,   543,   542,   544,   545,   546,   547,   548,
   1662  1.1  christos      550,   551,   552,   553,   554,   558,   555,   559,   556,   557,
   1663  1.1  christos      560,   569,   563,   565,   564,   566,   570,   571,   572,   573,
   1664  1.1  christos      574,   575,   576,   577,   578,   579,   583,   585,   580,   581,
   1665  1.1  christos      582,   586,   587,   588,   584,   589,   590,   591,   592,   593,
   1666  1.1  christos      594,   595,   596,   597,   598,   600,   599,   601,   603,   604,
   1667  1.1  christos      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
   1668  1.1  christos      620,   617,   623,   626,   629,   630,   631,   632,   633,   634,
   1669  1.1  christos      637,   638,   639,   646,   644,   659,   648,   754,   756,   759,
   1670  1.1  christos      640,   645,   650,   647,   649,   651,   652,   653,   654,   655,
   1671  1.1  christos      656,   657,   658,   661,   668,   672,   660,   662,   663,   676,
   1672  1.1  christos      664,   677,   679,   680,   684,   665,   688,   693,   692,   666,
   1673  1.1  christos      667,   694,   678,   695,   685,   686,   687,   689,   690,   691,
   1674  1.1  christos      696,   697,   698,   699,   700,   701,   702,   788,   703,   704,
   1675  1.1  christos      705,   708,   709,   710,   715,   706,   707,   719,   721,   712,
   1676  1.1  christos      711,   713,   714,   716,   717,   723,   718,   735,   720,   722,
   1677  1.1  christos      745,   737,   724,   736,   731,   740,   741,   738,   732,   743,
   1678  1.1  christos      748,   749,   815,   805,   486,   750,   751,   752,   764,   739,
   1679  1.1  christos      742,   744,   746,   760,   747,   765,   769,   832,   763,   766,
   1680  1.1  christos      771,   775,   767,   810,   776,   777,   778,   779,   780,   785,
   1681  1.1  christos      786,   789,   790,   768,   770,   794,   773,   772,   796,   798,
   1682  1.1  christos      774,   781,   782,   787,   800,   783,   784,   793,   797,   795,
   1683  1.1  christos      799,   802,   803,   801,   809,   814,   816,   818,   820,   822,
   1684  1.1  christos      824,   804,   828,   811,   808,   837,   840,   841,   829,   817,
   1685  1.1  christos      843,   858,   859,   867,   850,   869,   847,   819,   863,   871,
   1686  1.1  christos      873,   879,   821,   823,   833,   830,   834,   835,   875,   882,
   1687  1.1  christos      836,   838,   883,   839,   884,   842,   886,   887,   844,   845,
   1688  1.1  christos      846,   889,   890,   891,   892,   893,   899,   897,   900,   901,
   1689  1.1  christos      898,   849,   851,   853,   855,   902,   857,   860,   861,   903,
   1690  1.1  christos      910,   911,   912,   913,   864,   862,   915,   868,   916,   865,
   1691  1.1  christos      921,   923,   918,     0,     0,     0,     0,   866,     0,     0,
   1692  1.1  christos      870,   291,     0,   872,   874,   876,   877,   881,     0,     0,
   1693  1.1  christos      880,   885,     0,   888,     0,     0,   894,   904,     0,     0,
   1694  1.1  christos      329,   905,   906,     0,     0,     0,     0,     0,   914,   907,
   1695  1.1  christos      908,     0,   909,     0,   917,   919,   920,   922,     0,     0,
   1696  1.1  christos        0,     0,     0,     0,     0,   400,     0,     0,     0,     0,
   1697  1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1698  1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,   475,     0,
   1699  1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1700  1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1701  1.1  christos        0,     0,     0,     0,     0,     0,     0,   473
   1702  1.1  christos };
   1703  1.1  christos 
   1704  1.1  christos static const yytype_int16 yycheck[] =
   1705  1.1  christos {
   1706  1.1  christos       18,    15,     3,     3,     3,     3,   139,    11,     3,     3,
   1707  1.1  christos        3,     3,     3,     7,   181,     3,    11,    11,    11,    11,
   1708  1.1  christos       11,     3,     3,    11,   143,     3,     8,     9,   164,     3,
   1709  1.1  christos       11,     3,     3,    11,     3,   164,     3,    11,     3,    11,
   1710  1.1  christos        3,     3,     3,    11,   164,   714,   164,     7,   202,    15,
   1711  1.1  christos       16,    11,     7,   220,   221,    92,    15,    16,    17,   208,
   1712  1.1  christos      214,   210,   211,   732,   101,   198,   164,     3,   201,     3,
   1713  1.1  christos      797,   179,   799,   742,   801,    11,   184,   273,   274,   116,
   1714  1.1  christos        3,   185,     3,   279,   192,   281,   190,   191,   125,   193,
   1715  1.1  christos      194,   195,   129,   130,     3,     3,     3,     3,     3,     3,
   1716  1.1  christos        3,     3,    11,    11,    11,    11,    11,    11,    11,    11,
   1717  1.1  christos        3,     3,     3,     3,     3,   256,   257,   236,    11,    11,
   1718  1.1  christos       11,   139,    11,   141,   851,   143,   853,    11,     3,     3,
   1719  1.1  christos       14,    15,    16,   282,   164,   302,    11,    11,    11,   306,
   1720  1.1  christos      259,    14,    15,    16,    17,    18,     3,    11,   293,   294,
   1721  1.1  christos      304,   305,    16,    17,    18,    15,    16,    17,     3,    19,
   1722  1.1  christos       20,     3,   166,   296,   297,   183,   164,   168,   168,   168,
   1723  1.1  christos      164,   166,   166,   166,   166,   166,   164,    15,    16,    17,
   1724  1.1  christos      299,   199,   164,   164,   202,   203,   164,    17,   206,   207,
   1725  1.1  christos      164,    21,   164,   164,     3,   164,   214,   164,   166,   164,
   1726  1.1  christos       17,   164,   164,   164,    21,   164,   166,    15,    16,    17,
   1727  1.1  christos       17,    19,    20,     3,    21,    15,    16,    17,   236,    19,
   1728  1.1  christos       20,    15,    16,    17,     3,    19,    20,   165,   165,   167,
   1729  1.1  christos      167,   169,   169,   165,   242,   167,   244,   169,   246,     8,
   1730  1.1  christos        9,   259,    15,    16,    17,     8,     9,     3,   266,   206,
   1731  1.1  christos      207,   166,     3,     3,     3,     3,     3,     3,     3,     3,
   1732  1.1  christos        3,     0,    17,   164,     5,     3,     3,     3,    10,     3,
   1733  1.1  christos      288,     3,   290,     3,     5,     3,   164,   164,     5,   164,
   1734  1.1  christos        3,   299,   164,   164,   164,     3,   304,   305,   164,     3,
   1735  1.1  christos        3,     3,   164,   164,   164,   164,    11,   165,   165,   165,
   1736  1.1  christos       11,    11,    11,    11,   322,    11,    11,    11,    11,    11,
   1737  1.1  christos       11,    11,     3,   331,    11,    11,    11,     3,   165,    11,
   1738  1.1  christos      338,     4,   165,    11,   165,   343,   166,     7,     7,    10,
   1739  1.1  christos      165,     7,    10,     7,   165,    12,   164,     3,   165,   165,
   1740  1.1  christos       11,   165,   165,   165,   165,    22,    23,    24,    25,    26,
   1741  1.1  christos       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
   1742  1.1  christos       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
   1743  1.1  christos       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
   1744  1.1  christos      164,   399,    59,    60,    61,    62,    63,    64,    65,    66,
   1745  1.1  christos       67,    11,    69,    70,    71,    72,    73,    74,    75,    76,
   1746  1.1  christos       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
   1747  1.1  christos       87,    88,    89,    90,    91,    92,    93,    94,     3,    96,
   1748  1.1  christos       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
   1749  1.1  christos      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
   1750  1.1  christos      164,   118,   119,   120,   121,   122,   123,   164,   125,   126,
   1751  1.1  christos      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
   1752  1.1  christos      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
   1753  1.1  christos      147,   148,   149,   150,   151,   152,   165,   154,   155,   156,
   1754  1.1  christos      157,   158,   159,   160,   161,   162,   163,    11,   506,    11,
   1755  1.1  christos      508,    11,   165,   511,    11,   165,   514,   165,   165,   517,
   1756  1.1  christos      165,   165,   165,   165,   165,   165,   165,   165,   165,    11,
   1757  1.1  christos       11,    11,   168,   531,   168,    11,     3,    11,    11,    11,
   1758  1.1  christos       11,     3,    11,    11,   165,   165,   165,    11,   166,   165,
   1759  1.1  christos      165,   164,   166,   165,   165,   165,   165,   165,   165,     3,
   1760  1.1  christos      165,     3,   165,   165,     7,   166,   165,   165,   165,   165,
   1761  1.1  christos       11,   165,   165,    11,     3,   166,   168,     3,   168,   168,
   1762  1.1  christos      168,     3,   165,     3,   166,   165,    11,   166,   164,     3,
   1763  1.1  christos        7,     7,     3,     3,     3,   165,    11,   165,    11,    11,
   1764  1.1  christos      166,     3,   166,   165,   167,   166,     3,     3,   165,     3,
   1765  1.1  christos        3,     3,   164,     3,     3,     6,   165,   165,     6,     6,
   1766  1.1  christos        5,     3,   166,     3,    10,   165,   165,   165,   165,   165,
   1767  1.1  christos      165,   165,    11,   165,   165,    11,   166,     3,   165,     7,
   1768  1.1  christos      165,     3,     3,   165,     3,     3,     3,     3,     3,   166,
   1769  1.1  christos      166,    11,   166,   166,     3,   167,     7,     7,     3,     3,
   1770  1.1  christos        3,     3,   165,     3,   165,    11,     7,   665,   666,   667,
   1771  1.1  christos        8,   167,     7,    10,    10,   165,   165,     3,     3,   165,
   1772  1.1  christos        3,   165,     3,   166,     3,     3,   165,   165,   165,     3,
   1773  1.1  christos      165,     3,     3,     3,     3,   165,     3,     5,    11,   165,
   1774  1.1  christos      165,     3,   165,     3,   165,   165,   165,   165,   165,   165,
   1775  1.1  christos        6,     6,     6,     6,     3,     3,     3,   711,     3,     3,
   1776  1.1  christos        3,     3,     3,     3,     3,   165,   165,     3,     3,   165,
   1777  1.1  christos      167,   165,   167,   166,   165,     3,   166,     3,   166,   166,
   1778  1.1  christos        3,     8,   166,   166,   165,     6,     6,   165,   167,     6,
   1779  1.1  christos        3,     3,   746,     7,   297,     6,     6,     6,     3,   167,
   1780  1.1  christos      167,   165,   167,   166,   165,   165,     3,   765,   167,   167,
   1781  1.1  christos        3,     6,   167,     7,     6,     6,     6,     6,     6,     3,
   1782  1.1  christos        3,     3,     3,   167,   167,     3,   167,   165,     3,     3,
   1783  1.1  christos      167,   165,   167,   165,     3,   168,   167,   167,   167,   164,
   1784  1.1  christos      167,     3,   165,   167,     3,     3,     3,     3,     3,     3,
   1785  1.1  christos        3,   165,     3,   165,   167,     3,     6,     3,   165,   167,
   1786  1.1  christos        3,     3,     3,   817,    11,     3,    15,   166,     7,     3,
   1787  1.1  christos        3,   829,   166,   166,   165,   167,   165,   165,     3,     3,
   1788  1.1  christos      167,   165,     3,   165,     3,   165,     3,     3,   165,   165,
   1789  1.1  christos      165,     3,     3,     3,     3,    15,     3,    15,     3,     3,
   1790  1.1  christos       15,   167,   167,   167,   167,     3,   167,   165,   165,     3,
   1791  1.1  christos        3,     3,     3,     3,   165,   167,     3,   167,     3,   165,
   1792  1.1  christos        3,     3,    11,    -1,    -1,    -1,    -1,   165,    -1,    -1,
   1793  1.1  christos      167,   118,    -1,   167,   167,   167,   167,   166,    -1,    -1,
   1794  1.1  christos      165,   165,    -1,   165,    -1,    -1,   165,   165,    -1,    -1,
   1795  1.1  christos      151,   167,   167,    -1,    -1,    -1,    -1,    -1,   164,   167,
   1796  1.1  christos      167,    -1,   166,    -1,   167,   167,   165,   165,    -1,    -1,
   1797  1.1  christos       -1,    -1,    -1,    -1,    -1,   205,    -1,    -1,    -1,    -1,
   1798  1.1  christos       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1799  1.1  christos       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   288,    -1,
   1800  1.1  christos       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1801  1.1  christos       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   1802  1.1  christos       -1,    -1,    -1,    -1,    -1,    -1,    -1,   286
   1803  1.1  christos };
   1804  1.1  christos 
   1805  1.1  christos /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
   1806  1.1  christos    state STATE-NUM.  */
   1807  1.1  christos static const yytype_int16 yystos[] =
   1808  1.1  christos {
   1809  1.1  christos        0,    12,    22,    23,    24,    25,    26,    27,    28,    29,
   1810  1.1  christos       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
   1811  1.1  christos       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
   1812  1.1  christos       50,    51,    52,    53,    54,    55,    56,    59,    60,    61,
   1813  1.1  christos       62,    63,    64,    65,    66,    67,    69,    70,    71,    72,
   1814  1.1  christos       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
   1815  1.1  christos       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
   1816  1.1  christos       93,    94,    96,    97,    98,    99,   100,   101,   102,   103,
   1817  1.1  christos      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
   1818  1.1  christos      114,   115,   116,   118,   119,   120,   121,   122,   123,   125,
   1819  1.1  christos      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
   1820  1.1  christos      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
   1821  1.1  christos      146,   147,   148,   149,   150,   151,   152,   154,   155,   156,
   1822  1.1  christos      157,   158,   159,   160,   161,   162,   163,   171,   178,   177,
   1823  1.1  christos      164,   212,   164,   214,     3,   164,    11,    14,    15,    16,
   1824  1.1  christos      217,   218,   164,     3,   164,    11,    14,    15,    16,    17,
   1825  1.1  christos       18,   265,     3,   164,    11,    16,    18,   265,     3,   164,
   1826  1.1  christos      260,   261,     3,    11,   164,   259,   221,   228,     7,   229,
   1827  1.1  christos      183,   184,    17,    21,   230,   222,    17,    21,    17,    21,
   1828  1.1  christos      223,   224,   231,   225,   226,   227,     3,     3,   181,   190,
   1829  1.1  christos        3,   182,   191,   197,   196,   199,   198,   195,   200,     3,
   1830  1.1  christos      201,   202,   164,     3,   193,     3,     3,     3,     3,     3,
   1831  1.1  christos      179,   180,    15,    16,    17,   164,   263,     3,   166,    15,
   1832  1.1  christos       16,   264,     3,     3,     3,   164,   213,     3,     3,     3,
   1833  1.1  christos        3,   204,   216,     3,   205,     3,   206,     5,    10,     3,
   1834  1.1  christos        3,     3,     3,   164,     3,   164,   176,   187,   164,   215,
   1835  1.1  christos        3,     5,     3,    15,    16,    17,   263,     5,     3,   164,
   1836  1.1  christos      164,   164,   164,   210,   209,   263,     3,     3,   164,   207,
   1837  1.1  christos      164,   208,   203,   219,   164,     3,   220,   164,   175,    17,
   1838  1.1  christos      263,   260,   173,   174,   172,   263,   189,   188,   164,   211,
   1839  1.1  christos      263,   263,   185,     3,   194,   192,   186,     0,     3,   238,
   1840  1.1  christos        3,   164,   233,   235,   237,   259,    11,     3,   232,   259,
   1841  1.1  christos       11,   232,   165,    11,    11,    11,    11,   254,   255,   254,
   1842  1.1  christos       11,   165,    11,    11,    11,    11,    11,     3,   165,    11,
   1843  1.1  christos       11,    11,     3,   165,    11,     4,   165,    11,   166,     7,
   1844  1.1  christos      257,     7,   258,   165,   258,     3,   234,   235,   236,   259,
   1845  1.1  christos      236,     3,     8,     9,   164,     3,     7,   164,   166,   259,
   1846  1.1  christos      258,   257,    10,     7,    10,     7,   257,   257,   258,   257,
   1847  1.1  christos      257,   257,   165,   165,   235,     3,   242,   259,   165,   235,
   1848  1.1  christos      242,     3,   164,   245,   259,   246,   247,   248,   249,   250,
   1849  1.1  christos      246,   245,   245,   248,   165,   248,   248,    11,   165,   242,
   1850  1.1  christos      165,   165,   165,   236,   236,   164,   164,   164,    11,     3,
   1851  1.1  christos       11,   166,   165,     3,     3,    11,   166,   165,   165,   165,
   1852  1.1  christos       11,   232,   165,   165,   165,   251,   252,   251,   251,   251,
   1853  1.1  christos      165,   165,   165,   165,   165,   165,    11,   165,    11,   238,
   1854  1.1  christos      238,    11,   232,   168,     3,   259,   168,    11,    11,    11,
   1855  1.1  christos       11,     3,   243,   243,    11,   243,    11,   243,   248,     3,
   1856  1.1  christos      164,   256,    11,   256,    11,   233,     3,   259,   164,   243,
   1857  1.1  christos      244,   244,   244,   235,   240,   241,   240,    11,   232,   236,
   1858  1.1  christos      165,   242,   242,     3,   236,   253,   165,   165,    11,   166,
   1859  1.1  christos      165,   165,   166,   165,     3,   259,   165,   164,   165,     3,
   1860  1.1  christos      259,   165,     3,   259,   165,     3,   259,   165,     3,   165,
   1861  1.1  christos        3,   165,   165,     7,   165,   166,   165,   165,   165,    11,
   1862  1.1  christos      165,   165,    11,     3,   166,   168,   168,   168,   168,     3,
   1863  1.1  christos        3,   165,   166,     3,   165,    11,   166,   164,     3,   259,
   1864  1.1  christos        7,     7,     3,     3,     3,    11,    11,    11,   165,   165,
   1865  1.1  christos      166,     3,   168,   166,   167,   165,   166,     3,   168,     3,
   1866  1.1  christos        3,     3,   165,     3,     3,     3,   164,     3,     3,     6,
   1867  1.1  christos        6,     6,     5,   165,    10,   165,     3,   166,     3,   165,
   1868  1.1  christos      165,   165,   165,   165,   165,   165,    11,   165,   165,   166,
   1869  1.1  christos       11,     3,   239,   165,     7,   165,     3,     3,   165,     3,
   1870  1.1  christos        3,     3,     3,     3,   166,     3,   259,    11,     3,   259,
   1871  1.1  christos      166,     3,   259,   166,     3,   259,   166,     3,   259,     3,
   1872  1.1  christos      167,     7,     7,     3,     3,     8,     9,     3,     3,   165,
   1873  1.1  christos        8,     7,   166,   259,   165,   167,     3,    10,     7,    10,
   1874  1.1  christos        7,   165,   165,     3,     3,   165,     3,   165,     3,    11,
   1875  1.1  christos      165,   166,   165,   165,   165,   165,   165,   165,     3,     3,
   1876  1.1  christos       11,   166,     3,   165,   167,   169,     3,     3,   165,     3,
   1877  1.1  christos        3,   165,   167,   169,     3,   165,   165,   165,     3,   165,
   1878  1.1  christos      165,   165,    11,     5,     3,     3,     6,     6,     6,     6,
   1879  1.1  christos        3,     3,     3,     3,     3,     3,   165,   165,     3,     3,
   1880  1.1  christos        3,   167,   165,   165,   167,     3,   166,   165,   166,     3,
   1881  1.1  christos      166,     3,   166,     3,   166,    15,    16,    17,    19,    20,
   1882  1.1  christos      262,   165,   167,     8,     9,     3,   166,     8,   165,   167,
   1883  1.1  christos        6,     6,   167,     6,   165,     3,   167,   165,     3,     3,
   1884  1.1  christos        6,     6,     6,   166,   259,   166,   259,     3,   166,   259,
   1885  1.1  christos      166,     3,   168,   167,     3,   165,   167,   167,   167,     3,
   1886  1.1  christos      167,     3,   165,   167,   167,     6,     6,     6,     6,     6,
   1887  1.1  christos        6,   165,   167,   168,   167,     3,     3,   165,   265,     3,
   1888  1.1  christos        3,    19,   262,   167,     3,   164,     3,   167,     3,   167,
   1889  1.1  christos        3,   167,     3,   165,   165,     7,    19,   262,   167,     3,
   1890  1.1  christos        7,   165,    19,   262,     3,   265,     3,   167,     3,   166,
   1891  1.1  christos        3,   166,     3,   166,     3,   165,   167,   169,     3,   165,
   1892  1.1  christos      167,     3,   259,   165,   165,   165,   167,     3,   165,   165,
   1893  1.1  christos        6,     3,   165,     3,   165,   165,   165,    15,   266,   167,
   1894  1.1  christos       11,   167,   266,   167,   266,   167,   266,   167,     3,     3,
   1895  1.1  christos      165,   165,   167,     7,   165,   165,   165,   265,   167,     3,
   1896  1.1  christos      167,     3,   167,     3,   167,     3,   167,   167,     3,   259,
   1897  1.1  christos      165,   166,     3,     3,     3,   165,     3,     3,   165,     3,
   1898  1.1  christos        3,     3,     3,    15,   165,   266,   266,    15,    15,     3,
   1899  1.1  christos        3,     3,     3,     3,   165,   167,   167,   167,   167,   166,
   1900  1.1  christos        3,     3,     3,     3,   164,     3,     3,   167,    11,   167,
   1901  1.1  christos      165,     3,   165,     3
   1902  1.1  christos };
   1903  1.1  christos 
   1904  1.1  christos /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
   1905  1.1  christos static const yytype_int16 yyr1[] =
   1906  1.1  christos {
   1907  1.1  christos        0,   170,   171,   171,   171,   171,   171,   171,   171,   171,
   1908  1.1  christos      171,   171,   171,   171,   171,   171,   171,   171,   171,   171,
   1909  1.1  christos      171,   171,   171,   171,   171,   171,   171,   171,   171,   171,
   1910  1.1  christos      171,   171,   171,   171,   171,   171,   171,   171,   171,   171,
   1911  1.1  christos      171,   172,   171,   173,   171,   174,   171,   171,   171,   171,
   1912  1.1  christos      171,   171,   171,   171,   171,   171,   171,   171,   171,   171,
   1913  1.1  christos      171,   171,   171,   171,   171,   171,   171,   171,   171,   171,
   1914  1.1  christos      171,   171,   171,   171,   171,   171,   171,   171,   171,   171,
   1915  1.1  christos      171,   171,   171,   171,   171,   171,   171,   171,   171,   171,
   1916  1.1  christos      171,   175,   171,   176,   171,   177,   171,   178,   171,   179,
   1917  1.1  christos      171,   180,   171,   181,   171,   182,   171,   183,   171,   184,
   1918  1.1  christos      171,   185,   171,   186,   171,   187,   171,   188,   171,   189,
   1919  1.1  christos      171,   190,   171,   191,   171,   192,   171,   193,   171,   194,
   1920  1.1  christos      171,   171,   171,   171,   171,   171,   171,   171,   171,   195,
   1921  1.1  christos      171,   196,   171,   197,   171,   198,   171,   199,   171,   200,
   1922  1.1  christos      171,   201,   171,   202,   171,   203,   171,   171,   171,   171,
   1923  1.1  christos      171,   171,   171,   171,   171,   171,   171,   171,   171,   171,
   1924  1.1  christos      171,   171,   171,   171,   204,   171,   171,   205,   171,   171,
   1925  1.1  christos      206,   171,   171,   171,   171,   171,   171,   171,   171,   171,
   1926  1.1  christos      207,   171,   208,   171,   209,   171,   210,   171,   171,   171,
   1927  1.1  christos      171,   171,   171,   171,   171,   171,   171,   171,   211,   171,
   1928  1.1  christos      212,   171,   213,   171,   214,   171,   215,   171,   171,   171,
   1929  1.1  christos      171,   171,   171,   171,   171,   171,   171,   171,   171,   216,
   1930  1.1  christos      171,   171,   171,   171,   171,   217,   171,   218,   171,   219,
   1931  1.1  christos      171,   220,   171,   221,   171,   222,   171,   223,   171,   224,
   1932  1.1  christos      171,   225,   171,   226,   171,   227,   171,   228,   171,   229,
   1933  1.1  christos      171,   230,   171,   231,   171,   171,   171,   171,   171,   171,
   1934  1.1  christos      171,   171,   171,   171,   171,   171,   171,   171,   171,   171,
   1935  1.1  christos      171,   171,   171,   171,   171,   171,   171,   171,   171,   232,
   1936  1.1  christos      232,   232,   232,   233,   233,   234,   234,   234,   235,   236,
   1937  1.1  christos      236,   237,   237,   238,   238,   239,   241,   240,   240,   242,
   1938  1.1  christos      242,   242,   243,   244,   244,   244,   245,   245,   245,   245,
   1939  1.1  christos      247,   246,   246,   249,   248,   250,   248,   252,   251,   253,
   1940  1.1  christos      253,   255,   254,   256,   256,   257,   258,   259,   259,   261,
   1941  1.1  christos      260,   262,   262,   262,   262,   262,   263,   263,   263,   263,
   1942  1.1  christos      264,   264,   264,   265,   265,   266,   266
   1943  1.1  christos };
   1944  1.1  christos 
   1945  1.1  christos /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
   1946  1.1  christos static const yytype_int8 yyr2[] =
   1947  1.1  christos {
   1948  1.1  christos        0,     2,     1,     1,     1,     1,     1,     2,     3,     3,
   1949  1.1  christos        2,     3,     3,     3,     3,     3,     3,     3,     2,     8,
   1950  1.1  christos        8,     8,     9,     9,     9,     7,     4,     8,     8,     5,
   1951  1.1  christos        7,     8,     5,     5,     5,     5,     5,     5,     6,     5,
   1952  1.1  christos        3,     0,     3,     0,     3,     0,     3,     4,     4,     7,
   1953  1.1  christos        3,     5,     5,     5,     2,     2,     2,     3,     2,     2,
   1954  1.1  christos        2,     2,     2,     2,     2,     3,     3,     1,     1,     1,
   1955  1.1  christos        1,     2,     2,     2,     2,     1,     1,     1,     1,     3,
   1956  1.1  christos        8,     8,     7,    10,    11,     5,     7,     9,     9,     9,
   1957  1.1  christos        6,     0,     3,     0,     3,     0,     3,     0,     3,     0,
   1958  1.1  christos        3,     0,     3,     0,     3,     0,     3,     0,     3,     0,
   1959  1.1  christos        3,     0,     3,     0,     3,     0,     3,     0,     3,     0,
   1960  1.1  christos        3,     0,     3,     0,     3,     0,     3,     0,     3,     0,
   1961  1.1  christos        3,     4,     4,     4,     4,     8,     8,     8,     8,     0,
   1962  1.1  christos        3,     0,     3,     0,     3,     0,     3,     0,     3,     0,
   1963  1.1  christos        3,     0,     3,     0,     3,     0,     3,     3,     6,     9,
   1964  1.1  christos        9,     4,     6,     4,     6,     4,     6,     4,     6,     2,
   1965  1.1  christos        4,     2,     4,     2,     0,     3,     2,     0,     3,     2,
   1966  1.1  christos        0,     3,     3,     5,     8,     8,     8,     8,     8,     8,
   1967  1.1  christos        0,     3,     0,     3,     0,     3,     0,     3,     4,     4,
   1968  1.1  christos        5,     5,     5,     5,     5,     9,     9,     9,     0,     3,
   1969  1.1  christos        0,     3,     0,     3,     0,     3,     0,     3,     5,     6,
   1970  1.1  christos        6,     6,     6,     6,     6,     6,     6,     6,     6,     0,
   1971  1.1  christos        3,     4,     5,     5,     5,     0,     3,     0,     3,     0,
   1972  1.1  christos        3,     0,     3,     0,     3,     0,     3,     0,     3,     0,
   1973  1.1  christos        3,     0,     3,     0,     3,     0,     3,     0,     3,     0,
   1974  1.1  christos        3,     0,     3,     0,     3,     4,     5,     5,     5,     5,
   1975  1.1  christos        5,     5,     7,     8,     7,     8,     6,     6,     6,     5,
   1976  1.1  christos        5,     5,     5,     4,     1,     4,     4,     4,     4,     3,
   1977  1.1  christos        7,     7,     5,     3,     7,     3,     7,     7,     4,     1,
   1978  1.1  christos        1,     1,     1,     3,     1,     3,     0,     2,     1,     3,
   1979  1.1  christos        7,     7,     3,     4,     6,     1,     4,     3,     7,     5,
   1980  1.1  christos        0,     5,     1,     0,     4,     0,     8,     0,     7,     1,
   1981  1.1  christos        5,     0,    13,     2,     1,     3,     5,     0,     1,     0,
   1982  1.1  christos        2,     1,     1,     0,     1,     1,     0,     1,     1,     1,
   1983  1.1  christos        0,     1,     1,     0,     1,     0,     1
   1984  1.1  christos };
   1985  1.1  christos 
   1986  1.1  christos 
   1987  1.1  christos enum { YYENOMEM = -2 };
   1988  1.1  christos 
   1989  1.1  christos #define yyerrok         (yyerrstatus = 0)
   1990  1.1  christos #define yyclearin       (yychar = YYEMPTY)
   1991  1.1  christos 
   1992  1.1  christos #define YYACCEPT        goto yyacceptlab
   1993  1.1  christos #define YYABORT         goto yyabortlab
   1994  1.1  christos #define YYERROR         goto yyerrorlab
   1995  1.1  christos #define YYNOMEM         goto yyexhaustedlab
   1996  1.1  christos 
   1997  1.1  christos 
   1998  1.1  christos #define YYRECOVERING()  (!!yyerrstatus)
   1999  1.1  christos 
   2000  1.1  christos #define YYBACKUP(Token, Value)                                    \
   2001  1.1  christos   do                                                              \
   2002  1.1  christos     if (yychar == YYEMPTY)                                        \
   2003  1.1  christos       {                                                           \
   2004  1.1  christos         yychar = (Token);                                         \
   2005  1.1  christos         yylval = (Value);                                         \
   2006  1.1  christos         YYPOPSTACK (yylen);                                       \
   2007  1.1  christos         yystate = *yyssp;                                         \
   2008  1.1  christos         goto yybackup;                                            \
   2009  1.1  christos       }                                                           \
   2010  1.1  christos     else                                                          \
   2011  1.1  christos       {                                                           \
   2012  1.1  christos         yyerror (YY_("syntax error: cannot back up")); \
   2013  1.1  christos         YYERROR;                                                  \
   2014  1.1  christos       }                                                           \
   2015  1.1  christos   while (0)
   2016  1.1  christos 
   2017  1.1  christos /* Backward compatibility with an undocumented macro.
   2018  1.1  christos    Use YYerror or YYUNDEF. */
   2019  1.1  christos #define YYERRCODE YYUNDEF
   2020  1.1  christos 
   2021  1.1  christos 
   2022  1.1  christos /* Enable debugging if requested.  */
   2023  1.1  christos #if YYDEBUG
   2024  1.1  christos 
   2025  1.1  christos # ifndef YYFPRINTF
   2026  1.1  christos #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
   2027  1.1  christos #  define YYFPRINTF fprintf
   2028  1.1  christos # endif
   2029  1.1  christos 
   2030  1.1  christos # define YYDPRINTF(Args)                        \
   2031  1.1  christos do {                                            \
   2032  1.1  christos   if (yydebug)                                  \
   2033  1.1  christos     YYFPRINTF Args;                             \
   2034  1.1  christos } while (0)
   2035  1.1  christos 
   2036  1.1  christos 
   2037  1.1  christos 
   2038  1.1  christos 
   2039  1.1  christos # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
   2040  1.1  christos do {                                                                      \
   2041  1.1  christos   if (yydebug)                                                            \
   2042  1.1  christos     {                                                                     \
   2043  1.1  christos       YYFPRINTF (stderr, "%s ", Title);                                   \
   2044  1.1  christos       yy_symbol_print (stderr,                                            \
   2045  1.1  christos                   Kind, Value); \
   2046  1.1  christos       YYFPRINTF (stderr, "\n");                                           \
   2047  1.1  christos     }                                                                     \
   2048  1.1  christos } while (0)
   2049  1.1  christos 
   2050  1.1  christos 
   2051  1.1  christos /*-----------------------------------.
   2052  1.1  christos | Print this symbol's value on YYO.  |
   2053  1.1  christos `-----------------------------------*/
   2054  1.1  christos 
   2055  1.1  christos static void
   2056  1.1  christos yy_symbol_value_print (FILE *yyo,
   2057  1.1  christos                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
   2058  1.1  christos {
   2059  1.1  christos   FILE *yyoutput = yyo;
   2060  1.1  christos   YY_USE (yyoutput);
   2061  1.1  christos   if (!yyvaluep)
   2062  1.1  christos     return;
   2063  1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   2064  1.1  christos   YY_USE (yykind);
   2065  1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_END
   2066  1.1  christos }
   2067  1.1  christos 
   2068  1.1  christos 
   2069  1.1  christos /*---------------------------.
   2070  1.1  christos | Print this symbol on YYO.  |
   2071  1.1  christos `---------------------------*/
   2072  1.1  christos 
   2073  1.1  christos static void
   2074  1.1  christos yy_symbol_print (FILE *yyo,
   2075  1.1  christos                  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
   2076  1.1  christos {
   2077  1.1  christos   YYFPRINTF (yyo, "%s %s (",
   2078  1.1  christos              yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
   2079  1.1  christos 
   2080  1.1  christos   yy_symbol_value_print (yyo, yykind, yyvaluep);
   2081  1.1  christos   YYFPRINTF (yyo, ")");
   2082  1.1  christos }
   2083  1.1  christos 
   2084  1.1  christos /*------------------------------------------------------------------.
   2085  1.1  christos | yy_stack_print -- Print the state stack from its BOTTOM up to its |
   2086  1.1  christos | TOP (included).                                                   |
   2087  1.1  christos `------------------------------------------------------------------*/
   2088  1.1  christos 
   2089  1.1  christos static void
   2090  1.1  christos yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
   2091  1.1  christos {
   2092  1.1  christos   YYFPRINTF (stderr, "Stack now");
   2093  1.1  christos   for (; yybottom <= yytop; yybottom++)
   2094  1.1  christos     {
   2095  1.1  christos       int yybot = *yybottom;
   2096  1.1  christos       YYFPRINTF (stderr, " %d", yybot);
   2097  1.1  christos     }
   2098  1.1  christos   YYFPRINTF (stderr, "\n");
   2099  1.1  christos }
   2100  1.1  christos 
   2101  1.1  christos # define YY_STACK_PRINT(Bottom, Top)                            \
   2102  1.1  christos do {                                                            \
   2103  1.1  christos   if (yydebug)                                                  \
   2104  1.1  christos     yy_stack_print ((Bottom), (Top));                           \
   2105  1.1  christos } while (0)
   2106  1.1  christos 
   2107  1.1  christos 
   2108  1.1  christos /*------------------------------------------------.
   2109  1.1  christos | Report that the YYRULE is going to be reduced.  |
   2110  1.1  christos `------------------------------------------------*/
   2111  1.1  christos 
   2112  1.1  christos static void
   2113  1.1  christos yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
   2114  1.1  christos                  int yyrule)
   2115  1.1  christos {
   2116  1.1  christos   int yylno = yyrline[yyrule];
   2117  1.1  christos   int yynrhs = yyr2[yyrule];
   2118  1.1  christos   int yyi;
   2119  1.1  christos   YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
   2120  1.1  christos              yyrule - 1, yylno);
   2121  1.1  christos   /* The symbols being reduced.  */
   2122  1.1  christos   for (yyi = 0; yyi < yynrhs; yyi++)
   2123  1.1  christos     {
   2124  1.1  christos       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
   2125  1.1  christos       yy_symbol_print (stderr,
   2126  1.1  christos                        YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
   2127  1.1  christos                        &yyvsp[(yyi + 1) - (yynrhs)]);
   2128  1.1  christos       YYFPRINTF (stderr, "\n");
   2129  1.1  christos     }
   2130  1.1  christos }
   2131  1.1  christos 
   2132  1.1  christos # define YY_REDUCE_PRINT(Rule)          \
   2133  1.1  christos do {                                    \
   2134  1.1  christos   if (yydebug)                          \
   2135  1.1  christos     yy_reduce_print (yyssp, yyvsp, Rule); \
   2136  1.1  christos } while (0)
   2137  1.1  christos 
   2138  1.1  christos /* Nonzero means print parse trace.  It is left uninitialized so that
   2139  1.1  christos    multiple parsers can coexist.  */
   2140  1.1  christos int yydebug;
   2141  1.1  christos #else /* !YYDEBUG */
   2142  1.1  christos # define YYDPRINTF(Args) ((void) 0)
   2143  1.1  christos # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
   2144  1.1  christos # define YY_STACK_PRINT(Bottom, Top)
   2145  1.1  christos # define YY_REDUCE_PRINT(Rule)
   2146  1.1  christos #endif /* !YYDEBUG */
   2147  1.1  christos 
   2148  1.1  christos 
   2149  1.1  christos /* YYINITDEPTH -- initial size of the parser's stacks.  */
   2150  1.1  christos #ifndef YYINITDEPTH
   2151  1.1  christos # define YYINITDEPTH 200
   2152  1.1  christos #endif
   2153  1.1  christos 
   2154  1.1  christos /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   2155  1.1  christos    if the built-in stack extension method is used).
   2156  1.1  christos 
   2157  1.1  christos    Do not make this value too large; the results are undefined if
   2158  1.1  christos    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
   2159  1.1  christos    evaluated with infinite-precision integer arithmetic.  */
   2160  1.1  christos 
   2161  1.1  christos #ifndef YYMAXDEPTH
   2162  1.1  christos # define YYMAXDEPTH 10000
   2163  1.1  christos #endif
   2164  1.1  christos 
   2165  1.1  christos 
   2166  1.1  christos 
   2167  1.1  christos 
   2168  1.1  christos 
   2169  1.1  christos 
   2170  1.1  christos /*-----------------------------------------------.
   2171  1.1  christos | Release the memory associated to this symbol.  |
   2172  1.1  christos `-----------------------------------------------*/
   2173  1.1  christos 
   2174  1.1  christos static void
   2175  1.1  christos yydestruct (const char *yymsg,
   2176  1.1  christos             yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
   2177  1.1  christos {
   2178  1.1  christos   YY_USE (yyvaluep);
   2179  1.1  christos   if (!yymsg)
   2180  1.1  christos     yymsg = "Deleting";
   2181  1.1  christos   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
   2182  1.1  christos 
   2183  1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   2184  1.1  christos   YY_USE (yykind);
   2185  1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_END
   2186  1.1  christos }
   2187  1.1  christos 
   2188  1.1  christos 
   2189  1.1  christos /* Lookahead token kind.  */
   2190  1.1  christos int yychar;
   2191  1.1  christos 
   2192  1.1  christos /* The semantic value of the lookahead symbol.  */
   2193  1.1  christos YYSTYPE yylval;
   2194  1.1  christos /* Number of syntax errors so far.  */
   2195  1.1  christos int yynerrs;
   2196  1.1  christos 
   2197  1.1  christos 
   2198  1.1  christos 
   2199  1.1  christos 
   2200  1.1  christos /*----------.
   2201  1.1  christos | yyparse.  |
   2202  1.1  christos `----------*/
   2203  1.1  christos 
   2204  1.1  christos int
   2205  1.1  christos yyparse (void)
   2206  1.1  christos {
   2207  1.1  christos     yy_state_fast_t yystate = 0;
   2208  1.1  christos     /* Number of tokens to shift before error messages enabled.  */
   2209  1.1  christos     int yyerrstatus = 0;
   2210  1.1  christos 
   2211  1.1  christos     /* Refer to the stacks through separate pointers, to allow yyoverflow
   2212  1.1  christos        to reallocate them elsewhere.  */
   2213  1.1  christos 
   2214  1.1  christos     /* Their size.  */
   2215  1.1  christos     YYPTRDIFF_T yystacksize = YYINITDEPTH;
   2216  1.1  christos 
   2217  1.1  christos     /* The state stack: array, bottom, top.  */
   2218  1.1  christos     yy_state_t yyssa[YYINITDEPTH];
   2219  1.1  christos     yy_state_t *yyss = yyssa;
   2220  1.1  christos     yy_state_t *yyssp = yyss;
   2221  1.1  christos 
   2222  1.1  christos     /* The semantic value stack: array, bottom, top.  */
   2223  1.1  christos     YYSTYPE yyvsa[YYINITDEPTH];
   2224  1.1  christos     YYSTYPE *yyvs = yyvsa;
   2225  1.1  christos     YYSTYPE *yyvsp = yyvs;
   2226  1.1  christos 
   2227  1.1  christos   int yyn;
   2228  1.1  christos   /* The return value of yyparse.  */
   2229  1.1  christos   int yyresult;
   2230  1.1  christos   /* Lookahead symbol kind.  */
   2231  1.1  christos   yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
   2232  1.1  christos   /* The variables used to return semantic value and location from the
   2233  1.1  christos      action routines.  */
   2234  1.1  christos   YYSTYPE yyval;
   2235  1.1  christos 
   2236  1.1  christos 
   2237  1.1  christos 
   2238  1.1  christos #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
   2239  1.1  christos 
   2240  1.1  christos   /* The number of symbols on the RHS of the reduced rule.
   2241  1.1  christos      Keep to zero when no symbol should be popped.  */
   2242  1.1  christos   int yylen = 0;
   2243  1.1  christos 
   2244  1.1  christos   YYDPRINTF ((stderr, "Starting parse\n"));
   2245  1.1  christos 
   2246  1.1  christos   yychar = YYEMPTY; /* Cause a token to be read.  */
   2247  1.1  christos 
   2248  1.1  christos   goto yysetstate;
   2249  1.1  christos 
   2250  1.1  christos 
   2251  1.1  christos /*------------------------------------------------------------.
   2252  1.1  christos | yynewstate -- push a new state, which is found in yystate.  |
   2253  1.1  christos `------------------------------------------------------------*/
   2254  1.1  christos yynewstate:
   2255  1.1  christos   /* In all cases, when you get here, the value and location stacks
   2256  1.1  christos      have just been pushed.  So pushing a state here evens the stacks.  */
   2257  1.1  christos   yyssp++;
   2258  1.1  christos 
   2259  1.1  christos 
   2260  1.1  christos /*--------------------------------------------------------------------.
   2261  1.1  christos | yysetstate -- set current state (the top of the stack) to yystate.  |
   2262  1.1  christos `--------------------------------------------------------------------*/
   2263  1.1  christos yysetstate:
   2264  1.1  christos   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
   2265  1.1  christos   YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
   2266  1.1  christos   YY_IGNORE_USELESS_CAST_BEGIN
   2267  1.1  christos   *yyssp = YY_CAST (yy_state_t, yystate);
   2268  1.1  christos   YY_IGNORE_USELESS_CAST_END
   2269  1.1  christos   YY_STACK_PRINT (yyss, yyssp);
   2270  1.1  christos 
   2271  1.1  christos   if (yyss + yystacksize - 1 <= yyssp)
   2272  1.1  christos #if !defined yyoverflow && !defined YYSTACK_RELOCATE
   2273  1.1  christos     YYNOMEM;
   2274  1.1  christos #else
   2275  1.1  christos     {
   2276  1.1  christos       /* Get the current used size of the three stacks, in elements.  */
   2277  1.1  christos       YYPTRDIFF_T yysize = yyssp - yyss + 1;
   2278  1.1  christos 
   2279  1.1  christos # if defined yyoverflow
   2280  1.1  christos       {
   2281  1.1  christos         /* Give user a chance to reallocate the stack.  Use copies of
   2282  1.1  christos            these so that the &'s don't force the real ones into
   2283  1.1  christos            memory.  */
   2284  1.1  christos         yy_state_t *yyss1 = yyss;
   2285  1.1  christos         YYSTYPE *yyvs1 = yyvs;
   2286  1.1  christos 
   2287  1.1  christos         /* Each stack pointer address is followed by the size of the
   2288  1.1  christos            data in use in that stack, in bytes.  This used to be a
   2289  1.1  christos            conditional around just the two extra args, but that might
   2290  1.1  christos            be undefined if yyoverflow is a macro.  */
   2291  1.1  christos         yyoverflow (YY_("memory exhausted"),
   2292  1.1  christos                     &yyss1, yysize * YYSIZEOF (*yyssp),
   2293  1.1  christos                     &yyvs1, yysize * YYSIZEOF (*yyvsp),
   2294  1.1  christos                     &yystacksize);
   2295  1.1  christos         yyss = yyss1;
   2296  1.1  christos         yyvs = yyvs1;
   2297  1.1  christos       }
   2298  1.1  christos # else /* defined YYSTACK_RELOCATE */
   2299  1.1  christos       /* Extend the stack our own way.  */
   2300  1.1  christos       if (YYMAXDEPTH <= yystacksize)
   2301  1.1  christos         YYNOMEM;
   2302  1.1  christos       yystacksize *= 2;
   2303  1.1  christos       if (YYMAXDEPTH < yystacksize)
   2304  1.1  christos         yystacksize = YYMAXDEPTH;
   2305  1.1  christos 
   2306  1.1  christos       {
   2307  1.1  christos         yy_state_t *yyss1 = yyss;
   2308  1.1  christos         union yyalloc *yyptr =
   2309  1.1  christos           YY_CAST (union yyalloc *,
   2310  1.1  christos                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
   2311  1.1  christos         if (! yyptr)
   2312  1.1  christos           YYNOMEM;
   2313  1.1  christos         YYSTACK_RELOCATE (yyss_alloc, yyss);
   2314  1.1  christos         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
   2315  1.1  christos #  undef YYSTACK_RELOCATE
   2316  1.1  christos         if (yyss1 != yyssa)
   2317  1.1  christos           YYSTACK_FREE (yyss1);
   2318  1.1  christos       }
   2319  1.1  christos # endif
   2320  1.1  christos 
   2321  1.1  christos       yyssp = yyss + yysize - 1;
   2322  1.1  christos       yyvsp = yyvs + yysize - 1;
   2323  1.1  christos 
   2324  1.1  christos       YY_IGNORE_USELESS_CAST_BEGIN
   2325  1.1  christos       YYDPRINTF ((stderr, "Stack size increased to %ld\n",
   2326  1.1  christos                   YY_CAST (long, yystacksize)));
   2327  1.1  christos       YY_IGNORE_USELESS_CAST_END
   2328  1.1  christos 
   2329  1.1  christos       if (yyss + yystacksize - 1 <= yyssp)
   2330  1.1  christos         YYABORT;
   2331  1.1  christos     }
   2332  1.1  christos #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
   2333  1.1  christos 
   2334  1.1  christos 
   2335  1.1  christos   if (yystate == YYFINAL)
   2336  1.1  christos     YYACCEPT;
   2337  1.1  christos 
   2338  1.1  christos   goto yybackup;
   2339  1.1  christos 
   2340  1.1  christos 
   2341  1.1  christos /*-----------.
   2342  1.1  christos | yybackup.  |
   2343  1.1  christos `-----------*/
   2344  1.1  christos yybackup:
   2345  1.1  christos   /* Do appropriate processing given the current state.  Read a
   2346  1.1  christos      lookahead token if we need one and don't already have one.  */
   2347  1.1  christos 
   2348  1.1  christos   /* First try to decide what to do without reference to lookahead token.  */
   2349  1.1  christos   yyn = yypact[yystate];
   2350  1.1  christos   if (yypact_value_is_default (yyn))
   2351  1.1  christos     goto yydefault;
   2352  1.1  christos 
   2353  1.1  christos   /* Not known => get a lookahead token if don't already have one.  */
   2354  1.1  christos 
   2355  1.1  christos   /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
   2356  1.1  christos   if (yychar == YYEMPTY)
   2357  1.1  christos     {
   2358  1.1  christos       YYDPRINTF ((stderr, "Reading a token\n"));
   2359  1.1  christos       yychar = yylex ();
   2360  1.1  christos     }
   2361  1.1  christos 
   2362  1.1  christos   if (yychar <= YYEOF)
   2363  1.1  christos     {
   2364  1.1  christos       yychar = YYEOF;
   2365  1.1  christos       yytoken = YYSYMBOL_YYEOF;
   2366  1.1  christos       YYDPRINTF ((stderr, "Now at end of input.\n"));
   2367  1.1  christos     }
   2368  1.1  christos   else if (yychar == YYerror)
   2369  1.1  christos     {
   2370  1.1  christos       /* The scanner already issued an error message, process directly
   2371  1.1  christos          to error recovery.  But do not keep the error token as
   2372  1.1  christos          lookahead, it is too special and may lead us to an endless
   2373  1.1  christos          loop in error recovery. */
   2374  1.1  christos       yychar = YYUNDEF;
   2375  1.1  christos       yytoken = YYSYMBOL_YYerror;
   2376  1.1  christos       goto yyerrlab1;
   2377  1.1  christos     }
   2378  1.1  christos   else
   2379  1.1  christos     {
   2380  1.1  christos       yytoken = YYTRANSLATE (yychar);
   2381  1.1  christos       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
   2382  1.1  christos     }
   2383  1.1  christos 
   2384  1.1  christos   /* If the proper action on seeing token YYTOKEN is to reduce or to
   2385  1.1  christos      detect an error, take that action.  */
   2386  1.1  christos   yyn += yytoken;
   2387  1.1  christos   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
   2388  1.1  christos     goto yydefault;
   2389  1.1  christos   yyn = yytable[yyn];
   2390  1.1  christos   if (yyn <= 0)
   2391  1.1  christos     {
   2392  1.1  christos       if (yytable_value_is_error (yyn))
   2393  1.1  christos         goto yyerrlab;
   2394  1.1  christos       yyn = -yyn;
   2395  1.1  christos       goto yyreduce;
   2396  1.1  christos     }
   2397  1.1  christos 
   2398  1.1  christos   /* Count tokens shifted since error; after three, turn off error
   2399  1.1  christos      status.  */
   2400  1.1  christos   if (yyerrstatus)
   2401  1.1  christos     yyerrstatus--;
   2402  1.1  christos 
   2403  1.1  christos   /* Shift the lookahead token.  */
   2404  1.1  christos   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
   2405  1.1  christos   yystate = yyn;
   2406  1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   2407  1.1  christos   *++yyvsp = yylval;
   2408  1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_END
   2409  1.1  christos 
   2410  1.1  christos   /* Discard the shifted token.  */
   2411  1.1  christos   yychar = YYEMPTY;
   2412  1.1  christos   goto yynewstate;
   2413  1.1  christos 
   2414  1.1  christos 
   2415  1.1  christos /*-----------------------------------------------------------.
   2416  1.1  christos | yydefault -- do the default action for the current state.  |
   2417  1.1  christos `-----------------------------------------------------------*/
   2418  1.1  christos yydefault:
   2419  1.1  christos   yyn = yydefact[yystate];
   2420  1.1  christos   if (yyn == 0)
   2421  1.1  christos     goto yyerrlab;
   2422  1.1  christos   goto yyreduce;
   2423  1.1  christos 
   2424  1.1  christos 
   2425  1.1  christos /*-----------------------------.
   2426  1.1  christos | yyreduce -- do a reduction.  |
   2427  1.1  christos `-----------------------------*/
   2428  1.1  christos yyreduce:
   2429  1.1  christos   /* yyn is the number of a rule to reduce with.  */
   2430  1.1  christos   yylen = yyr2[yyn];
   2431  1.1  christos 
   2432  1.1  christos   /* If YYLEN is nonzero, implement the default value of the action:
   2433  1.1  christos      '$$ = $1'.
   2434  1.1  christos 
   2435  1.1  christos      Otherwise, the following line sets YYVAL to garbage.
   2436  1.1  christos      This behavior is undocumented and Bison
   2437  1.1  christos      users should not rely upon it.  Assigning to YYVAL
   2438  1.1  christos      unconditionally makes the parser a bit smaller, and it avoids a
   2439  1.1  christos      GCC warning that YYVAL may be used uninitialized.  */
   2440  1.1  christos   yyval = yyvsp[1-yylen];
   2441  1.1  christos 
   2442  1.1  christos 
   2443  1.1  christos   YY_REDUCE_PRINT (yyn);
   2444  1.1  christos   switch (yyn)
   2445  1.1  christos     {
   2446  1.1  christos   case 2: /* statement: UNKNOWN_OPCODE  */
   2447  1.1  christos #line 185 "./config/rx-parse.y"
   2448  1.1  christos           { as_bad (_("Unknown opcode: %s"), rx_init_start); }
   2449  1.1  christos #line 2450 "config/rx-parse.c"
   2450  1.1  christos     break;
   2451  1.1  christos 
   2452  1.1  christos   case 3: /* statement: BRK  */
   2453  1.1  christos #line 190 "./config/rx-parse.y"
   2454  1.1  christos           { B1 (0x00); }
   2455  1.1  christos #line 2456 "config/rx-parse.c"
   2456  1.1  christos     break;
   2457  1.1  christos 
   2458  1.1  christos   case 4: /* statement: DBT  */
   2459  1.1  christos #line 193 "./config/rx-parse.y"
   2460  1.1  christos           { B1 (0x01); }
   2461  1.1  christos #line 2462 "config/rx-parse.c"
   2462  1.1  christos     break;
   2463  1.1  christos 
   2464  1.1  christos   case 5: /* statement: RTS  */
   2465  1.1  christos #line 196 "./config/rx-parse.y"
   2466  1.1  christos           { B1 (0x02); }
   2467  1.1  christos #line 2468 "config/rx-parse.c"
   2468  1.1  christos     break;
   2469  1.1  christos 
   2470  1.1  christos   case 6: /* statement: NOP  */
   2471  1.1  christos #line 199 "./config/rx-parse.y"
   2472  1.1  christos           { B1 (0x03); }
   2473  1.1  christos #line 2474 "config/rx-parse.c"
   2474  1.1  christos     break;
   2475  1.1  christos 
   2476  1.1  christos   case 7: /* statement: BRA EXPR  */
   2477  1.1  christos #line 204 "./config/rx-parse.y"
   2478  1.1  christos           { if (rx_disp3op ((yyvsp[0].exp)))
   2479  1.1  christos 	      { B1 (0x08); rx_disp3 ((yyvsp[0].exp), 5); }
   2480  1.1  christos 	    else if (rx_intop ((yyvsp[0].exp), 8, 8))
   2481  1.1  christos 	      { B1 (0x2e); PC1 ((yyvsp[0].exp)); }
   2482  1.1  christos 	    else if (rx_intop ((yyvsp[0].exp), 16, 16))
   2483  1.1  christos 	      { B1 (0x38); PC2 ((yyvsp[0].exp)); }
   2484  1.1  christos 	    else if (rx_intop ((yyvsp[0].exp), 24, 24))
   2485  1.1  christos 	      { B1 (0x04); PC3 ((yyvsp[0].exp)); }
   2486  1.1  christos 	    else
   2487  1.1  christos 	      { rx_relax (RX_RELAX_BRANCH, 0);
   2488  1.1  christos 		rx_linkrelax_branch ();
   2489  1.1  christos 		/* We'll convert this to a longer one later if needed.  */
   2490  1.1  christos 		B1 (0x08); rx_disp3 ((yyvsp[0].exp), 5); } }
   2491  1.1  christos #line 2492 "config/rx-parse.c"
   2492  1.1  christos     break;
   2493  1.1  christos 
   2494  1.1  christos   case 8: /* statement: BRA DOT_A EXPR  */
   2495  1.1  christos #line 219 "./config/rx-parse.y"
   2496  1.1  christos           { B1 (0x04); PC3 ((yyvsp[0].exp)); }
   2497  1.1  christos #line 2498 "config/rx-parse.c"
   2498  1.1  christos     break;
   2499  1.1  christos 
   2500  1.1  christos   case 9: /* statement: BRA DOT_S EXPR  */
   2501  1.1  christos #line 222 "./config/rx-parse.y"
   2502  1.1  christos           { B1 (0x08); rx_disp3 ((yyvsp[0].exp), 5); }
   2503  1.1  christos #line 2504 "config/rx-parse.c"
   2504  1.1  christos     break;
   2505  1.1  christos 
   2506  1.1  christos   case 10: /* statement: BSR EXPR  */
   2507  1.1  christos #line 227 "./config/rx-parse.y"
   2508  1.1  christos           { if (rx_intop ((yyvsp[0].exp), 16, 16))
   2509  1.1  christos 	      { B1 (0x39); PC2 ((yyvsp[0].exp)); }
   2510  1.1  christos 	    else if (rx_intop ((yyvsp[0].exp), 24, 24))
   2511  1.1  christos 	      { B1 (0x05); PC3 ((yyvsp[0].exp)); }
   2512  1.1  christos 	    else
   2513  1.1  christos 	      { rx_relax (RX_RELAX_BRANCH, 0);
   2514  1.1  christos 		rx_linkrelax_branch ();
   2515  1.1  christos 		B1 (0x39); PC2 ((yyvsp[0].exp)); } }
   2516  1.1  christos #line 2517 "config/rx-parse.c"
   2517  1.1  christos     break;
   2518  1.1  christos 
   2519  1.1  christos   case 11: /* statement: BSR DOT_A EXPR  */
   2520  1.1  christos #line 236 "./config/rx-parse.y"
   2521  1.1  christos           { B1 (0x05), PC3 ((yyvsp[0].exp)); }
   2522  1.1  christos #line 2523 "config/rx-parse.c"
   2523  1.1  christos     break;
   2524  1.1  christos 
   2525  1.1  christos   case 12: /* statement: BCND DOT_S EXPR  */
   2526  1.1  christos #line 241 "./config/rx-parse.y"
   2527  1.1  christos           { if ((yyvsp[-2].regno) == COND_EQ || (yyvsp[-2].regno) == COND_NE)
   2528  1.1  christos 	      { B1 ((yyvsp[-2].regno) == COND_EQ ? 0x10 : 0x18); rx_disp3 ((yyvsp[0].exp), 5); }
   2529  1.1  christos 	    else
   2530  1.1  christos 	      as_bad (_("Only BEQ and BNE may have .S")); }
   2531  1.1  christos #line 2532 "config/rx-parse.c"
   2532  1.1  christos     break;
   2533  1.1  christos 
   2534  1.1  christos   case 13: /* statement: BCND DOT_B EXPR  */
   2535  1.1  christos #line 249 "./config/rx-parse.y"
   2536  1.1  christos           { B1 (0x20); F ((yyvsp[-2].regno), 4, 4); PC1 ((yyvsp[0].exp)); }
   2537  1.1  christos #line 2538 "config/rx-parse.c"
   2538  1.1  christos     break;
   2539  1.1  christos 
   2540  1.1  christos   case 14: /* statement: BRA DOT_B EXPR  */
   2541  1.1  christos #line 252 "./config/rx-parse.y"
   2542  1.1  christos           { B1 (0x2e), PC1 ((yyvsp[0].exp)); }
   2543  1.1  christos #line 2544 "config/rx-parse.c"
   2544  1.1  christos     break;
   2545  1.1  christos 
   2546  1.1  christos   case 15: /* statement: BRA DOT_W EXPR  */
   2547  1.1  christos #line 257 "./config/rx-parse.y"
   2548  1.1  christos           { B1 (0x38), PC2 ((yyvsp[0].exp)); }
   2549  1.1  christos #line 2550 "config/rx-parse.c"
   2550  1.1  christos     break;
   2551  1.1  christos 
   2552  1.1  christos   case 16: /* statement: BSR DOT_W EXPR  */
   2553  1.1  christos #line 259 "./config/rx-parse.y"
   2554  1.1  christos           { B1 (0x39), PC2 ((yyvsp[0].exp)); }
   2555  1.1  christos #line 2556 "config/rx-parse.c"
   2556  1.1  christos     break;
   2557  1.1  christos 
   2558  1.1  christos   case 17: /* statement: BCND DOT_W EXPR  */
   2559  1.1  christos #line 261 "./config/rx-parse.y"
   2560  1.1  christos           { if ((yyvsp[-2].regno) == COND_EQ || (yyvsp[-2].regno) == COND_NE)
   2561  1.1  christos 	      { B1 ((yyvsp[-2].regno) == COND_EQ ? 0x3a : 0x3b); PC2 ((yyvsp[0].exp)); }
   2562  1.1  christos 	    else
   2563  1.1  christos 	      as_bad (_("Only BEQ and BNE may have .W")); }
   2564  1.1  christos #line 2565 "config/rx-parse.c"
   2565  1.1  christos     break;
   2566  1.1  christos 
   2567  1.1  christos   case 18: /* statement: BCND EXPR  */
   2568  1.1  christos #line 266 "./config/rx-parse.y"
   2569  1.1  christos           { if ((yyvsp[-1].regno) == COND_EQ || (yyvsp[-1].regno) == COND_NE)
   2570  1.1  christos 	      {
   2571  1.1  christos 		rx_relax (RX_RELAX_BRANCH, 0);
   2572  1.1  christos 		rx_linkrelax_branch ();
   2573  1.1  christos 		B1 ((yyvsp[-1].regno) == COND_EQ ? 0x10 : 0x18); rx_disp3 ((yyvsp[0].exp), 5);
   2574  1.1  christos 	      }
   2575  1.1  christos 	    else
   2576  1.1  christos 	      {
   2577  1.1  christos 		rx_relax (RX_RELAX_BRANCH, 0);
   2578  1.1  christos 		/* This is because we might turn it into a
   2579  1.1  christos 		   jump-over-jump long branch.  */
   2580  1.1  christos 		rx_linkrelax_branch ();
   2581  1.1  christos 	        B1 (0x20); F ((yyvsp[-1].regno), 4, 4); PC1 ((yyvsp[0].exp));
   2582  1.1  christos 	      } }
   2583  1.1  christos #line 2584 "config/rx-parse.c"
   2584  1.1  christos     break;
   2585  1.1  christos 
   2586  1.1  christos   case 19: /* statement: MOV DOT_B '#' EXPR ',' '[' REG ']'  */
   2587  1.1  christos #line 284 "./config/rx-parse.y"
   2588  1.1  christos           { B2 (0xf8, 0x04); F ((yyvsp[-1].regno), 8, 4); IMMB ((yyvsp[-4].exp), 12);}
   2589  1.1  christos #line 2590 "config/rx-parse.c"
   2590  1.1  christos     break;
   2591  1.1  christos 
   2592  1.1  christos   case 20: /* statement: MOV DOT_W '#' EXPR ',' '[' REG ']'  */
   2593  1.1  christos #line 287 "./config/rx-parse.y"
   2594  1.1  christos           { B2 (0xf8, 0x01); F ((yyvsp[-1].regno), 8, 4); IMMW ((yyvsp[-4].exp), 12);}
   2595  1.1  christos #line 2596 "config/rx-parse.c"
   2596  1.1  christos     break;
   2597  1.1  christos 
   2598  1.1  christos   case 21: /* statement: MOV DOT_L '#' EXPR ',' '[' REG ']'  */
   2599  1.1  christos #line 290 "./config/rx-parse.y"
   2600  1.1  christos           { B2 (0xf8, 0x02); F ((yyvsp[-1].regno), 8, 4); IMM ((yyvsp[-4].exp), 12);}
   2601  1.1  christos #line 2602 "config/rx-parse.c"
   2602  1.1  christos     break;
   2603  1.1  christos 
   2604  1.1  christos   case 22: /* statement: MOV DOT_B '#' EXPR ',' disp '[' REG ']'  */
   2605  1.1  christos #line 294 "./config/rx-parse.y"
   2606  1.1  christos           { if ((yyvsp[-1].regno) <= 7 && rx_uintop ((yyvsp[-5].exp), 8) && rx_disp5op0 (&(yyvsp[-3].exp), BSIZE))
   2607  1.1  christos 	      { B2 (0x3c, 0); rx_field5s2 ((yyvsp[-3].exp)); F ((yyvsp[-1].regno), 9, 3); O1 ((yyvsp[-5].exp)); }
   2608  1.1  christos 	    else
   2609  1.1  christos 	      { B2 (0xf8, 0x04); F ((yyvsp[-1].regno), 8, 4); DSP ((yyvsp[-3].exp), 6, BSIZE); O1 ((yyvsp[-5].exp));
   2610  1.1  christos 	      if ((yyvsp[-5].exp).X_op != O_constant && (yyvsp[-5].exp).X_op != O_big) rx_linkrelax_imm (12); } }
   2611  1.1  christos #line 2612 "config/rx-parse.c"
   2612  1.1  christos     break;
   2613  1.1  christos 
   2614  1.1  christos   case 23: /* statement: MOV DOT_W '#' EXPR ',' disp '[' REG ']'  */
   2615  1.1  christos #line 301 "./config/rx-parse.y"
   2616  1.1  christos           { if ((yyvsp[-1].regno) <= 7 && rx_uintop ((yyvsp[-5].exp), 8) && rx_disp5op0 (&(yyvsp[-3].exp), WSIZE))
   2617  1.1  christos 	      { B2 (0x3d, 0); rx_field5s2 ((yyvsp[-3].exp)); F ((yyvsp[-1].regno), 9, 3); O1 ((yyvsp[-5].exp)); }
   2618  1.1  christos 	    else
   2619  1.1  christos 	      { B2 (0xf8, 0x01); F ((yyvsp[-1].regno), 8, 4); DSP ((yyvsp[-3].exp), 6, WSIZE); IMMW ((yyvsp[-5].exp), 12); } }
   2620  1.1  christos #line 2621 "config/rx-parse.c"
   2621  1.1  christos     break;
   2622  1.1  christos 
   2623  1.1  christos   case 24: /* statement: MOV DOT_L '#' EXPR ',' disp '[' REG ']'  */
   2624  1.1  christos #line 307 "./config/rx-parse.y"
   2625  1.1  christos           { if ((yyvsp[-1].regno) <= 7 && rx_uintop ((yyvsp[-5].exp), 8) && rx_disp5op0 (&(yyvsp[-3].exp), LSIZE))
   2626  1.1  christos 	      { B2 (0x3e, 0); rx_field5s2 ((yyvsp[-3].exp)); F ((yyvsp[-1].regno), 9, 3); O1 ((yyvsp[-5].exp)); }
   2627  1.1  christos 	    else
   2628  1.1  christos 	      { B2 (0xf8, 0x02); F ((yyvsp[-1].regno), 8, 4); DSP ((yyvsp[-3].exp), 6, LSIZE); IMM ((yyvsp[-5].exp), 12); } }
   2629  1.1  christos #line 2630 "config/rx-parse.c"
   2630  1.1  christos     break;
   2631  1.1  christos 
   2632  1.1  christos   case 25: /* statement: RTSD '#' EXPR ',' REG '-' REG  */
   2633  1.1  christos #line 315 "./config/rx-parse.y"
   2634  1.1  christos           { B2 (0x3f, 0); F ((yyvsp[-2].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); rtsd_immediate ((yyvsp[-4].exp));
   2635  1.1  christos 	    if ((yyvsp[-2].regno) == 0)
   2636  1.1  christos 	      rx_error (_("RTSD cannot pop R0"));
   2637  1.1  christos 	    if ((yyvsp[-2].regno) > (yyvsp[0].regno))
   2638  1.1  christos 	      rx_error (_("RTSD first reg must be <= second reg")); }
   2639  1.1  christos #line 2640 "config/rx-parse.c"
   2640  1.1  christos     break;
   2641  1.1  christos 
   2642  1.1  christos   case 26: /* statement: CMP REG ',' REG  */
   2643  1.1  christos #line 324 "./config/rx-parse.y"
   2644  1.1  christos           { B2 (0x47, 0); F ((yyvsp[-2].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   2645  1.1  christos #line 2646 "config/rx-parse.c"
   2646  1.1  christos     break;
   2647  1.1  christos 
   2648  1.1  christos   case 27: /* statement: CMP disp '[' REG ']' DOT_UB ',' REG  */
   2649  1.1  christos #line 329 "./config/rx-parse.y"
   2650  1.1  christos           { B2 (0x44, 0); F ((yyvsp[-4].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); DSP ((yyvsp[-6].exp), 6, BSIZE); }
   2651  1.1  christos #line 2652 "config/rx-parse.c"
   2652  1.1  christos     break;
   2653  1.1  christos 
   2654  1.1  christos   case 28: /* statement: CMP disp '[' REG ']' memex ',' REG  */
   2655  1.1  christos #line 332 "./config/rx-parse.y"
   2656  1.1  christos           { B3 (MEMEX, 0x04, 0); F ((yyvsp[-2].regno), 8, 2);  F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); DSP ((yyvsp[-6].exp), 14, sizemap[(yyvsp[-2].regno)]); }
   2657  1.1  christos #line 2658 "config/rx-parse.c"
   2658  1.1  christos     break;
   2659  1.1  christos 
   2660  1.1  christos   case 29: /* statement: MOVU bw REG ',' REG  */
   2661  1.1  christos #line 337 "./config/rx-parse.y"
   2662  1.1  christos           { B2 (0x5b, 0x00); F ((yyvsp[-3].regno), 5, 1); F ((yyvsp[-2].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   2663  1.1  christos #line 2664 "config/rx-parse.c"
   2664  1.1  christos     break;
   2665  1.1  christos 
   2666  1.1  christos   case 30: /* statement: MOVU bw '[' REG ']' ',' REG  */
   2667  1.1  christos #line 342 "./config/rx-parse.y"
   2668  1.1  christos           { B2 (0x58, 0x00); F ((yyvsp[-5].regno), 5, 1); F ((yyvsp[-3].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   2669  1.1  christos #line 2670 "config/rx-parse.c"
   2670  1.1  christos     break;
   2671  1.1  christos 
   2672  1.1  christos   case 31: /* statement: MOVU bw EXPR '[' REG ']' ',' REG  */
   2673  1.1  christos #line 345 "./config/rx-parse.y"
   2674  1.1  christos           { if ((yyvsp[-3].regno) <= 7 && (yyvsp[0].regno) <= 7 && rx_disp5op (&(yyvsp[-5].exp), (yyvsp[-6].regno)))
   2675  1.1  christos 	      { B2 (0xb0, 0); F ((yyvsp[-6].regno), 4, 1); F ((yyvsp[-3].regno), 9, 3); F ((yyvsp[0].regno), 13, 3); rx_field5s ((yyvsp[-5].exp)); }
   2676  1.1  christos 	    else
   2677  1.1  christos 	      { B2 (0x58, 0x00); F ((yyvsp[-6].regno), 5, 1); F ((yyvsp[-3].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); DSP ((yyvsp[-5].exp), 6, (yyvsp[-6].regno)); } }
   2678  1.1  christos #line 2679 "config/rx-parse.c"
   2679  1.1  christos     break;
   2680  1.1  christos 
   2681  1.1  christos   case 32: /* statement: SUB '#' EXPR ',' REG  */
   2682  1.1  christos #line 353 "./config/rx-parse.y"
   2683  1.1  christos           { if (rx_uintop ((yyvsp[-2].exp), 4))
   2684  1.1  christos 	      { B2 (0x60, 0); FE ((yyvsp[-2].exp), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   2685  1.1  christos 	    else
   2686  1.1  christos 	      /* This is really an add, but we negate the immediate.  */
   2687  1.1  christos 	      { B2 (0x70, 0); F ((yyvsp[0].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); NIMM ((yyvsp[-2].exp), 6); } }
   2688  1.1  christos #line 2689 "config/rx-parse.c"
   2689  1.1  christos     break;
   2690  1.1  christos 
   2691  1.1  christos   case 33: /* statement: CMP '#' EXPR ',' REG  */
   2692  1.1  christos #line 360 "./config/rx-parse.y"
   2693  1.1  christos           { if (rx_uintop ((yyvsp[-2].exp), 4))
   2694  1.1  christos 	      { B2 (0x61, 0); FE ((yyvsp[-2].exp), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   2695  1.1  christos 	    else if (rx_uintop ((yyvsp[-2].exp), 8))
   2696  1.1  christos 	      { B2 (0x75, 0x50); F ((yyvsp[0].regno), 12, 4); UO1 ((yyvsp[-2].exp)); }
   2697  1.1  christos 	    else
   2698  1.1  christos 	      { B2 (0x74, 0x00); F ((yyvsp[0].regno), 12, 4); IMM ((yyvsp[-2].exp), 6); } }
   2699  1.1  christos #line 2700 "config/rx-parse.c"
   2700  1.1  christos     break;
   2701  1.1  christos 
   2702  1.1  christos   case 34: /* statement: ADD '#' EXPR ',' REG  */
   2703  1.1  christos #line 368 "./config/rx-parse.y"
   2704  1.1  christos           { if (rx_uintop ((yyvsp[-2].exp), 4))
   2705  1.1  christos 	      { B2 (0x62, 0); FE ((yyvsp[-2].exp), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   2706  1.1  christos 	    else
   2707  1.1  christos 	      { B2 (0x70, 0); F ((yyvsp[0].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); IMM ((yyvsp[-2].exp), 6); } }
   2708  1.1  christos #line 2709 "config/rx-parse.c"
   2709  1.1  christos     break;
   2710  1.1  christos 
   2711  1.1  christos   case 35: /* statement: MUL '#' EXPR ',' REG  */
   2712  1.1  christos #line 374 "./config/rx-parse.y"
   2713  1.1  christos           { if (rx_uintop ((yyvsp[-2].exp), 4))
   2714  1.1  christos 	      { B2 (0x63, 0); FE ((yyvsp[-2].exp), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   2715  1.1  christos 	    else
   2716  1.1  christos 	      { B2 (0x74, 0x10); F ((yyvsp[0].regno), 12, 4); IMM ((yyvsp[-2].exp), 6); } }
   2717  1.1  christos #line 2718 "config/rx-parse.c"
   2718  1.1  christos     break;
   2719  1.1  christos 
   2720  1.1  christos   case 36: /* statement: AND_ '#' EXPR ',' REG  */
   2721  1.1  christos #line 380 "./config/rx-parse.y"
   2722  1.1  christos           { if (rx_uintop ((yyvsp[-2].exp), 4))
   2723  1.1  christos 	      { B2 (0x64, 0); FE ((yyvsp[-2].exp), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   2724  1.1  christos 	    else
   2725  1.1  christos 	      { B2 (0x74, 0x20); F ((yyvsp[0].regno), 12, 4); IMM ((yyvsp[-2].exp), 6); } }
   2726  1.1  christos #line 2727 "config/rx-parse.c"
   2727  1.1  christos     break;
   2728  1.1  christos 
   2729  1.1  christos   case 37: /* statement: OR '#' EXPR ',' REG  */
   2730  1.1  christos #line 386 "./config/rx-parse.y"
   2731  1.1  christos           { if (rx_uintop ((yyvsp[-2].exp), 4))
   2732  1.1  christos 	      { B2 (0x65, 0); FE ((yyvsp[-2].exp), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   2733  1.1  christos 	    else
   2734  1.1  christos 	      { B2 (0x74, 0x30); F ((yyvsp[0].regno), 12, 4); IMM ((yyvsp[-2].exp), 6); } }
   2735  1.1  christos #line 2736 "config/rx-parse.c"
   2736  1.1  christos     break;
   2737  1.1  christos 
   2738  1.1  christos   case 38: /* statement: MOV DOT_L '#' EXPR ',' REG  */
   2739  1.1  christos #line 392 "./config/rx-parse.y"
   2740  1.1  christos           { if (rx_uintop ((yyvsp[-2].exp), 4))
   2741  1.1  christos 	      { B2 (0x66, 0); FE ((yyvsp[-2].exp), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   2742  1.1  christos 	    else if (rx_uintop ((yyvsp[-2].exp), 8))
   2743  1.1  christos 	      { B2 (0x75, 0x40); F ((yyvsp[0].regno), 12, 4); UO1 ((yyvsp[-2].exp)); }
   2744  1.1  christos 	    else
   2745  1.1  christos 	      { B2 (0xfb, 0x02); F ((yyvsp[0].regno), 8, 4); IMM ((yyvsp[-2].exp), 12); } }
   2746  1.1  christos #line 2747 "config/rx-parse.c"
   2747  1.1  christos     break;
   2748  1.1  christos 
   2749  1.1  christos   case 39: /* statement: MOV '#' EXPR ',' REG  */
   2750  1.1  christos #line 400 "./config/rx-parse.y"
   2751  1.1  christos           { if (rx_uintop ((yyvsp[-2].exp), 4))
   2752  1.1  christos 	      { B2 (0x66, 0); FE ((yyvsp[-2].exp), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   2753  1.1  christos 	    else if (rx_uintop ((yyvsp[-2].exp), 8))
   2754  1.1  christos 	      { B2 (0x75, 0x40); F ((yyvsp[0].regno), 12, 4); UO1 ((yyvsp[-2].exp)); }
   2755  1.1  christos 	    else
   2756  1.1  christos 	      { B2 (0xfb, 0x02); F ((yyvsp[0].regno), 8, 4); IMM ((yyvsp[-2].exp), 12); } }
   2757  1.1  christos #line 2758 "config/rx-parse.c"
   2758  1.1  christos     break;
   2759  1.1  christos 
   2760  1.1  christos   case 40: /* statement: RTSD '#' EXPR  */
   2761  1.1  christos #line 410 "./config/rx-parse.y"
   2762  1.1  christos           { B1 (0x67); rtsd_immediate ((yyvsp[0].exp)); }
   2763  1.1  christos #line 2764 "config/rx-parse.c"
   2764  1.1  christos     break;
   2765  1.1  christos 
   2766  1.1  christos   case 41: /* $@1: %empty  */
   2767  1.1  christos #line 414 "./config/rx-parse.y"
   2768  1.1  christos                { sub_op = 0; }
   2769  1.1  christos #line 2770 "config/rx-parse.c"
   2770  1.1  christos     break;
   2771  1.1  christos 
   2772  1.1  christos   case 43: /* $@2: %empty  */
   2773  1.1  christos #line 415 "./config/rx-parse.y"
   2774  1.1  christos                { sub_op = 1; }
   2775  1.1  christos #line 2776 "config/rx-parse.c"
   2776  1.1  christos     break;
   2777  1.1  christos 
   2778  1.1  christos   case 45: /* $@3: %empty  */
   2779  1.1  christos #line 416 "./config/rx-parse.y"
   2780  1.1  christos                { sub_op = 2; }
   2781  1.1  christos #line 2782 "config/rx-parse.c"
   2782  1.1  christos     break;
   2783  1.1  christos 
   2784  1.1  christos   case 47: /* statement: PUSHM REG '-' REG  */
   2785  1.1  christos #line 421 "./config/rx-parse.y"
   2786  1.1  christos           {
   2787  1.1  christos 	    if ((yyvsp[-2].regno) == (yyvsp[0].regno))
   2788  1.1  christos 	      { B2 (0x7e, 0x80); F (LSIZE, 10, 2); F ((yyvsp[-2].regno), 12, 4); }
   2789  1.1  christos 	    else
   2790  1.1  christos 	     { B2 (0x6e, 0); F ((yyvsp[-2].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   2791  1.1  christos 	    if ((yyvsp[-2].regno) == 0)
   2792  1.1  christos 	      rx_error (_("PUSHM cannot push R0"));
   2793  1.1  christos 	    if ((yyvsp[-2].regno) > (yyvsp[0].regno))
   2794  1.1  christos 	      rx_error (_("PUSHM first reg must be <= second reg")); }
   2795  1.1  christos #line 2796 "config/rx-parse.c"
   2796  1.1  christos     break;
   2797  1.1  christos 
   2798  1.1  christos   case 48: /* statement: POPM REG '-' REG  */
   2799  1.1  christos #line 434 "./config/rx-parse.y"
   2800  1.1  christos           {
   2801  1.1  christos 	    if ((yyvsp[-2].regno) == (yyvsp[0].regno))
   2802  1.1  christos 	      { B2 (0x7e, 0xb0); F ((yyvsp[-2].regno), 12, 4); }
   2803  1.1  christos 	    else
   2804  1.1  christos 	      { B2 (0x6f, 0); F ((yyvsp[-2].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   2805  1.1  christos 	    if ((yyvsp[-2].regno) == 0)
   2806  1.1  christos 	      rx_error (_("POPM cannot pop R0"));
   2807  1.1  christos 	    if ((yyvsp[-2].regno) > (yyvsp[0].regno))
   2808  1.1  christos 	      rx_error (_("POPM first reg must be <= second reg")); }
   2809  1.1  christos #line 2810 "config/rx-parse.c"
   2810  1.1  christos     break;
   2811  1.1  christos 
   2812  1.1  christos   case 49: /* statement: ADD '#' EXPR ',' REG ',' REG  */
   2813  1.1  christos #line 447 "./config/rx-parse.y"
   2814  1.1  christos           { B2 (0x70, 0x00); F ((yyvsp[-2].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); IMM ((yyvsp[-4].exp), 6); }
   2815  1.1  christos #line 2816 "config/rx-parse.c"
   2816  1.1  christos     break;
   2817  1.1  christos 
   2818  1.1  christos   case 50: /* statement: INT '#' EXPR  */
   2819  1.1  christos #line 452 "./config/rx-parse.y"
   2820  1.1  christos           { B2(0x75, 0x60), UO1 ((yyvsp[0].exp)); }
   2821  1.1  christos #line 2822 "config/rx-parse.c"
   2822  1.1  christos     break;
   2823  1.1  christos 
   2824  1.1  christos   case 51: /* statement: BSET '#' EXPR ',' REG  */
   2825  1.1  christos #line 457 "./config/rx-parse.y"
   2826  1.1  christos           { B2 (0x78, 0); FE ((yyvsp[-2].exp), 7, 5); F ((yyvsp[0].regno), 12, 4); }
   2827  1.1  christos #line 2828 "config/rx-parse.c"
   2828  1.1  christos     break;
   2829  1.1  christos 
   2830  1.1  christos   case 52: /* statement: BCLR '#' EXPR ',' REG  */
   2831  1.1  christos #line 459 "./config/rx-parse.y"
   2832  1.1  christos           { B2 (0x7a, 0); FE ((yyvsp[-2].exp), 7, 5); F ((yyvsp[0].regno), 12, 4); }
   2833  1.1  christos #line 2834 "config/rx-parse.c"
   2834  1.1  christos     break;
   2835  1.1  christos 
   2836  1.1  christos   case 53: /* statement: BTST '#' EXPR ',' REG  */
   2837  1.1  christos #line 464 "./config/rx-parse.y"
   2838  1.1  christos           { B2 (0x7c, 0x00); FE ((yyvsp[-2].exp), 7, 5); F ((yyvsp[0].regno), 12, 4); }
   2839  1.1  christos #line 2840 "config/rx-parse.c"
   2840  1.1  christos     break;
   2841  1.1  christos 
   2842  1.1  christos   case 54: /* statement: SAT REG  */
   2843  1.1  christos #line 469 "./config/rx-parse.y"
   2844  1.1  christos           { B2 (0x7e, 0x30); F ((yyvsp[0].regno), 12, 4); }
   2845  1.1  christos #line 2846 "config/rx-parse.c"
   2846  1.1  christos     break;
   2847  1.1  christos 
   2848  1.1  christos   case 55: /* statement: RORC REG  */
   2849  1.1  christos #line 471 "./config/rx-parse.y"
   2850  1.1  christos           { B2 (0x7e, 0x40); F ((yyvsp[0].regno), 12, 4); }
   2851  1.1  christos #line 2852 "config/rx-parse.c"
   2852  1.1  christos     break;
   2853  1.1  christos 
   2854  1.1  christos   case 56: /* statement: ROLC REG  */
   2855  1.1  christos #line 473 "./config/rx-parse.y"
   2856  1.1  christos           { B2 (0x7e, 0x50); F ((yyvsp[0].regno), 12, 4); }
   2857  1.1  christos #line 2858 "config/rx-parse.c"
   2858  1.1  christos     break;
   2859  1.1  christos 
   2860  1.1  christos   case 57: /* statement: PUSH bwl REG  */
   2861  1.1  christos #line 478 "./config/rx-parse.y"
   2862  1.1  christos           { B2 (0x7e, 0x80); F ((yyvsp[-1].regno), 10, 2); F ((yyvsp[0].regno), 12, 4); }
   2863  1.1  christos #line 2864 "config/rx-parse.c"
   2864  1.1  christos     break;
   2865  1.1  christos 
   2866  1.1  christos   case 58: /* statement: POP REG  */
   2867  1.1  christos #line 483 "./config/rx-parse.y"
   2868  1.1  christos           { B2 (0x7e, 0xb0); F ((yyvsp[0].regno), 12, 4); }
   2869  1.1  christos #line 2870 "config/rx-parse.c"
   2870  1.1  christos     break;
   2871  1.1  christos 
   2872  1.1  christos   case 59: /* statement: PUSHC CREG  */
   2873  1.1  christos #line 488 "./config/rx-parse.y"
   2874  1.1  christos           { if ((yyvsp[0].regno) == 13)
   2875  1.1  christos 	      { rx_check_v2 (); }
   2876  1.1  christos 	    if ((yyvsp[0].regno) < 16)
   2877  1.1  christos 	      { B2 (0x7e, 0xc0); F ((yyvsp[0].regno), 12, 4); }
   2878  1.1  christos 	    else
   2879  1.1  christos 	      as_bad (_("PUSHC can only push the first 16 control registers")); }
   2880  1.1  christos #line 2881 "config/rx-parse.c"
   2881  1.1  christos     break;
   2882  1.1  christos 
   2883  1.1  christos   case 60: /* statement: POPC CREG  */
   2884  1.1  christos #line 498 "./config/rx-parse.y"
   2885  1.1  christos           { if ((yyvsp[0].regno) == 13)
   2886  1.1  christos 	    { rx_check_v2 (); }
   2887  1.1  christos 	    if ((yyvsp[0].regno) < 16)
   2888  1.1  christos 	      { B2 (0x7e, 0xe0); F ((yyvsp[0].regno), 12, 4); }
   2889  1.1  christos 	    else
   2890  1.1  christos 	      as_bad (_("POPC can only pop the first 16 control registers")); }
   2891  1.1  christos #line 2892 "config/rx-parse.c"
   2892  1.1  christos     break;
   2893  1.1  christos 
   2894  1.1  christos   case 61: /* statement: SETPSW flag  */
   2895  1.1  christos #line 508 "./config/rx-parse.y"
   2896  1.1  christos           { B2 (0x7f, 0xa0); F ((yyvsp[0].regno), 12, 4); }
   2897  1.1  christos #line 2898 "config/rx-parse.c"
   2898  1.1  christos     break;
   2899  1.1  christos 
   2900  1.1  christos   case 62: /* statement: CLRPSW flag  */
   2901  1.1  christos #line 510 "./config/rx-parse.y"
   2902  1.1  christos           { B2 (0x7f, 0xb0); F ((yyvsp[0].regno), 12, 4); }
   2903  1.1  christos #line 2904 "config/rx-parse.c"
   2904  1.1  christos     break;
   2905  1.1  christos 
   2906  1.1  christos   case 63: /* statement: JMP REG  */
   2907  1.1  christos #line 515 "./config/rx-parse.y"
   2908  1.1  christos           { B2 (0x7f, 0x00); F ((yyvsp[0].regno), 12, 4); }
   2909  1.1  christos #line 2910 "config/rx-parse.c"
   2910  1.1  christos     break;
   2911  1.1  christos 
   2912  1.1  christos   case 64: /* statement: JSR REG  */
   2913  1.1  christos #line 517 "./config/rx-parse.y"
   2914  1.1  christos           { B2 (0x7f, 0x10); F ((yyvsp[0].regno), 12, 4); }
   2915  1.1  christos #line 2916 "config/rx-parse.c"
   2916  1.1  christos     break;
   2917  1.1  christos 
   2918  1.1  christos   case 65: /* statement: BRA opt_l REG  */
   2919  1.1  christos #line 519 "./config/rx-parse.y"
   2920  1.1  christos           { B2 (0x7f, 0x40); F ((yyvsp[0].regno), 12, 4); }
   2921  1.1  christos #line 2922 "config/rx-parse.c"
   2922  1.1  christos     break;
   2923  1.1  christos 
   2924  1.1  christos   case 66: /* statement: BSR opt_l REG  */
   2925  1.1  christos #line 521 "./config/rx-parse.y"
   2926  1.1  christos           { B2 (0x7f, 0x50); F ((yyvsp[0].regno), 12, 4); }
   2927  1.1  christos #line 2928 "config/rx-parse.c"
   2928  1.1  christos     break;
   2929  1.1  christos 
   2930  1.1  christos   case 67: /* statement: SCMPU  */
   2931  1.1  christos #line 526 "./config/rx-parse.y"
   2932  1.1  christos           { B2 (0x7f, 0x83); rx_note_string_insn_use (); }
   2933  1.1  christos #line 2934 "config/rx-parse.c"
   2934  1.1  christos     break;
   2935  1.1  christos 
   2936  1.1  christos   case 68: /* statement: SMOVU  */
   2937  1.1  christos #line 528 "./config/rx-parse.y"
   2938  1.1  christos           { B2 (0x7f, 0x87); rx_note_string_insn_use (); }
   2939  1.1  christos #line 2940 "config/rx-parse.c"
   2940  1.1  christos     break;
   2941  1.1  christos 
   2942  1.1  christos   case 69: /* statement: SMOVB  */
   2943  1.1  christos #line 530 "./config/rx-parse.y"
   2944  1.1  christos           { B2 (0x7f, 0x8b); rx_note_string_insn_use (); }
   2945  1.1  christos #line 2946 "config/rx-parse.c"
   2946  1.1  christos     break;
   2947  1.1  christos 
   2948  1.1  christos   case 70: /* statement: SMOVF  */
   2949  1.1  christos #line 532 "./config/rx-parse.y"
   2950  1.1  christos           { B2 (0x7f, 0x8f); rx_note_string_insn_use (); }
   2951  1.1  christos #line 2952 "config/rx-parse.c"
   2952  1.1  christos     break;
   2953  1.1  christos 
   2954  1.1  christos   case 71: /* statement: SUNTIL bwl  */
   2955  1.1  christos #line 537 "./config/rx-parse.y"
   2956  1.1  christos           { B2 (0x7f, 0x80); F ((yyvsp[0].regno), 14, 2); rx_note_string_insn_use (); }
   2957  1.1  christos #line 2958 "config/rx-parse.c"
   2958  1.1  christos     break;
   2959  1.1  christos 
   2960  1.1  christos   case 72: /* statement: SWHILE bwl  */
   2961  1.1  christos #line 539 "./config/rx-parse.y"
   2962  1.1  christos           { B2 (0x7f, 0x84); F ((yyvsp[0].regno), 14, 2); rx_note_string_insn_use (); }
   2963  1.1  christos #line 2964 "config/rx-parse.c"
   2964  1.1  christos     break;
   2965  1.1  christos 
   2966  1.1  christos   case 73: /* statement: SSTR bwl  */
   2967  1.1  christos #line 541 "./config/rx-parse.y"
   2968  1.1  christos           { B2 (0x7f, 0x88); F ((yyvsp[0].regno), 14, 2); }
   2969  1.1  christos #line 2970 "config/rx-parse.c"
   2970  1.1  christos     break;
   2971  1.1  christos 
   2972  1.1  christos   case 74: /* statement: RMPA bwl  */
   2973  1.1  christos #line 546 "./config/rx-parse.y"
   2974  1.1  christos           { B2 (0x7f, 0x8c); F ((yyvsp[0].regno), 14, 2); rx_note_string_insn_use (); }
   2975  1.1  christos #line 2976 "config/rx-parse.c"
   2976  1.1  christos     break;
   2977  1.1  christos 
   2978  1.1  christos   case 75: /* statement: RTFI  */
   2979  1.1  christos #line 551 "./config/rx-parse.y"
   2980  1.1  christos           { B2 (0x7f, 0x94); }
   2981  1.1  christos #line 2982 "config/rx-parse.c"
   2982  1.1  christos     break;
   2983  1.1  christos 
   2984  1.1  christos   case 76: /* statement: RTE  */
   2985  1.1  christos #line 553 "./config/rx-parse.y"
   2986  1.1  christos           { B2 (0x7f, 0x95); }
   2987  1.1  christos #line 2988 "config/rx-parse.c"
   2988  1.1  christos     break;
   2989  1.1  christos 
   2990  1.1  christos   case 77: /* statement: WAIT  */
   2991  1.1  christos #line 555 "./config/rx-parse.y"
   2992  1.1  christos           { B2 (0x7f, 0x96); }
   2993  1.1  christos #line 2994 "config/rx-parse.c"
   2994  1.1  christos     break;
   2995  1.1  christos 
   2996  1.1  christos   case 78: /* statement: SATR  */
   2997  1.1  christos #line 557 "./config/rx-parse.y"
   2998  1.1  christos           { B2 (0x7f, 0x93); }
   2999  1.1  christos #line 3000 "config/rx-parse.c"
   3000  1.1  christos     break;
   3001  1.1  christos 
   3002  1.1  christos   case 79: /* statement: MVTIPL '#' EXPR  */
   3003  1.1  christos #line 562 "./config/rx-parse.y"
   3004  1.1  christos           { B3 (0x75, 0x70, 0x00); FE ((yyvsp[0].exp), 20, 4); }
   3005  1.1  christos #line 3006 "config/rx-parse.c"
   3006  1.1  christos     break;
   3007  1.1  christos 
   3008  1.1  christos   case 80: /* statement: MOV bwl REG ',' EXPR '[' REG ']'  */
   3009  1.1  christos #line 568 "./config/rx-parse.y"
   3010  1.1  christos           { if ((yyvsp[-5].regno) <= 7 && (yyvsp[-1].regno) <= 7 && rx_disp5op (&(yyvsp[-3].exp), (yyvsp[-6].regno)))
   3011  1.1  christos 	      { B2 (0x80, 0); F ((yyvsp[-6].regno), 2, 2); F ((yyvsp[-1].regno), 9, 3); F ((yyvsp[-5].regno), 13, 3); rx_field5s ((yyvsp[-3].exp)); }
   3012  1.1  christos 	    else
   3013  1.1  christos 	      { B2 (0xc3, 0x00); F ((yyvsp[-6].regno), 2, 2); F ((yyvsp[-1].regno), 8, 4); F ((yyvsp[-5].regno), 12, 4); DSP ((yyvsp[-3].exp), 4, (yyvsp[-6].regno)); }}
   3014  1.1  christos #line 3015 "config/rx-parse.c"
   3015  1.1  christos     break;
   3016  1.1  christos 
   3017  1.1  christos   case 81: /* statement: MOV bwl EXPR '[' REG ']' ',' REG  */
   3018  1.1  christos #line 576 "./config/rx-parse.y"
   3019  1.1  christos           { if ((yyvsp[-3].regno) <= 7 && (yyvsp[0].regno) <= 7 && rx_disp5op (&(yyvsp[-5].exp), (yyvsp[-6].regno)))
   3020  1.1  christos 	      { B2 (0x88, 0); F ((yyvsp[-6].regno), 2, 2); F ((yyvsp[-3].regno), 9, 3); F ((yyvsp[0].regno), 13, 3); rx_field5s ((yyvsp[-5].exp)); }
   3021  1.1  christos 	    else
   3022  1.1  christos 	      { B2 (0xcc, 0x00); F ((yyvsp[-6].regno), 2, 2); F ((yyvsp[-3].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); DSP ((yyvsp[-5].exp), 6, (yyvsp[-6].regno)); } }
   3023  1.1  christos #line 3024 "config/rx-parse.c"
   3024  1.1  christos     break;
   3025  1.1  christos 
   3026  1.1  christos   case 82: /* statement: MOV bwl REG ',' '[' REG ']'  */
   3027  1.1  christos #line 590 "./config/rx-parse.y"
   3028  1.1  christos           { B2 (0xc3, 0x00); F ((yyvsp[-5].regno), 2, 2); F ((yyvsp[-1].regno), 8, 4); F ((yyvsp[-4].regno), 12, 4); }
   3029  1.1  christos #line 3030 "config/rx-parse.c"
   3030  1.1  christos     break;
   3031  1.1  christos 
   3032  1.1  christos   case 83: /* statement: MOV bwl '[' REG ']' ',' disp '[' REG ']'  */
   3033  1.1  christos #line 595 "./config/rx-parse.y"
   3034  1.1  christos           { B2 (0xc0, 0); F ((yyvsp[-8].regno), 2, 2); F ((yyvsp[-6].regno), 8, 4); F ((yyvsp[-1].regno), 12, 4); DSP ((yyvsp[-3].exp), 4, (yyvsp[-8].regno)); }
   3035  1.1  christos #line 3036 "config/rx-parse.c"
   3036  1.1  christos     break;
   3037  1.1  christos 
   3038  1.1  christos   case 84: /* statement: MOV bwl EXPR '[' REG ']' ',' disp '[' REG ']'  */
   3039  1.1  christos #line 600 "./config/rx-parse.y"
   3040  1.1  christos           { B2 (0xc0, 0x00); F ((yyvsp[-9].regno), 2, 2); F ((yyvsp[-6].regno), 8, 4); F ((yyvsp[-1].regno), 12, 4); DSP ((yyvsp[-8].exp), 6, (yyvsp[-9].regno)); DSP ((yyvsp[-3].exp), 4, (yyvsp[-9].regno)); }
   3041  1.1  christos #line 3042 "config/rx-parse.c"
   3042  1.1  christos     break;
   3043  1.1  christos 
   3044  1.1  christos   case 85: /* statement: MOV bwl REG ',' REG  */
   3045  1.1  christos #line 605 "./config/rx-parse.y"
   3046  1.1  christos           { B2 (0xcf, 0x00); F ((yyvsp[-3].regno), 2, 2); F ((yyvsp[-2].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   3047  1.1  christos #line 3048 "config/rx-parse.c"
   3048  1.1  christos     break;
   3049  1.1  christos 
   3050  1.1  christos   case 86: /* statement: MOV bwl '[' REG ']' ',' REG  */
   3051  1.1  christos #line 610 "./config/rx-parse.y"
   3052  1.1  christos           { B2 (0xcc, 0x00); F ((yyvsp[-5].regno), 2, 2); F ((yyvsp[-3].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   3053  1.1  christos #line 3054 "config/rx-parse.c"
   3054  1.1  christos     break;
   3055  1.1  christos 
   3056  1.1  christos   case 87: /* statement: BSET '#' EXPR ',' disp '[' REG ']' DOT_B  */
   3057  1.1  christos #line 615 "./config/rx-parse.y"
   3058  1.1  christos           { B2 (0xf0, 0x00); F ((yyvsp[-2].regno), 8, 4); FE ((yyvsp[-6].exp), 13, 3); DSP ((yyvsp[-4].exp), 6, BSIZE); }
   3059  1.1  christos #line 3060 "config/rx-parse.c"
   3060  1.1  christos     break;
   3061  1.1  christos 
   3062  1.1  christos   case 88: /* statement: BCLR '#' EXPR ',' disp '[' REG ']' DOT_B  */
   3063  1.1  christos #line 617 "./config/rx-parse.y"
   3064  1.1  christos           { B2 (0xf0, 0x08); F ((yyvsp[-2].regno), 8, 4); FE ((yyvsp[-6].exp), 13, 3); DSP ((yyvsp[-4].exp), 6, BSIZE); }
   3065  1.1  christos #line 3066 "config/rx-parse.c"
   3066  1.1  christos     break;
   3067  1.1  christos 
   3068  1.1  christos   case 89: /* statement: BTST '#' EXPR ',' disp '[' REG ']' DOT_B  */
   3069  1.1  christos #line 619 "./config/rx-parse.y"
   3070  1.1  christos           { B2 (0xf4, 0x00); F ((yyvsp[-2].regno), 8, 4); FE ((yyvsp[-6].exp), 13, 3); DSP ((yyvsp[-4].exp), 6, BSIZE); }
   3071  1.1  christos #line 3072 "config/rx-parse.c"
   3072  1.1  christos     break;
   3073  1.1  christos 
   3074  1.1  christos   case 90: /* statement: PUSH bwl disp '[' REG ']'  */
   3075  1.1  christos #line 624 "./config/rx-parse.y"
   3076  1.1  christos           { B2 (0xf4, 0x08); F ((yyvsp[-4].regno), 14, 2); F ((yyvsp[-1].regno), 8, 4); DSP ((yyvsp[-3].exp), 6, (yyvsp[-4].regno)); }
   3077  1.1  christos #line 3078 "config/rx-parse.c"
   3078  1.1  christos     break;
   3079  1.1  christos 
   3080  1.1  christos   case 91: /* $@4: %empty  */
   3081  1.1  christos #line 628 "./config/rx-parse.y"
   3082  1.1  christos                 { sub_op = 0; }
   3083  1.1  christos #line 3084 "config/rx-parse.c"
   3084  1.1  christos     break;
   3085  1.1  christos 
   3086  1.1  christos   case 93: /* $@5: %empty  */
   3087  1.1  christos #line 629 "./config/rx-parse.y"
   3088  1.1  christos                 { sub_op = 1; sub_op2 = 1; }
   3089  1.1  christos #line 3090 "config/rx-parse.c"
   3090  1.1  christos     break;
   3091  1.1  christos 
   3092  1.1  christos   case 95: /* $@6: %empty  */
   3093  1.1  christos #line 630 "./config/rx-parse.y"
   3094  1.1  christos                 { sub_op = 2; }
   3095  1.1  christos #line 3096 "config/rx-parse.c"
   3096  1.1  christos     break;
   3097  1.1  christos 
   3098  1.1  christos   case 97: /* $@7: %empty  */
   3099  1.1  christos #line 631 "./config/rx-parse.y"
   3100  1.1  christos                 { sub_op = 3; sub_op2 = 2; }
   3101  1.1  christos #line 3102 "config/rx-parse.c"
   3102  1.1  christos     break;
   3103  1.1  christos 
   3104  1.1  christos   case 99: /* $@8: %empty  */
   3105  1.1  christos #line 632 "./config/rx-parse.y"
   3106  1.1  christos                 { sub_op = 4; }
   3107  1.1  christos #line 3108 "config/rx-parse.c"
   3108  1.1  christos     break;
   3109  1.1  christos 
   3110  1.1  christos   case 101: /* $@9: %empty  */
   3111  1.1  christos #line 633 "./config/rx-parse.y"
   3112  1.1  christos                 { sub_op = 5; }
   3113  1.1  christos #line 3114 "config/rx-parse.c"
   3114  1.1  christos     break;
   3115  1.1  christos 
   3116  1.1  christos   case 103: /* $@10: %empty  */
   3117  1.1  christos #line 634 "./config/rx-parse.y"
   3118  1.1  christos                 { sub_op = 6; }
   3119  1.1  christos #line 3120 "config/rx-parse.c"
   3120  1.1  christos     break;
   3121  1.1  christos 
   3122  1.1  christos   case 105: /* $@11: %empty  */
   3123  1.1  christos #line 635 "./config/rx-parse.y"
   3124  1.1  christos                 { sub_op = 7; }
   3125  1.1  christos #line 3126 "config/rx-parse.c"
   3126  1.1  christos     break;
   3127  1.1  christos 
   3128  1.1  christos   case 107: /* $@12: %empty  */
   3129  1.1  christos #line 636 "./config/rx-parse.y"
   3130  1.1  christos                 { sub_op = 8; }
   3131  1.1  christos #line 3132 "config/rx-parse.c"
   3132  1.1  christos     break;
   3133  1.1  christos 
   3134  1.1  christos   case 109: /* $@13: %empty  */
   3135  1.1  christos #line 637 "./config/rx-parse.y"
   3136  1.1  christos                 { sub_op = 9; }
   3137  1.1  christos #line 3138 "config/rx-parse.c"
   3138  1.1  christos     break;
   3139  1.1  christos 
   3140  1.1  christos   case 111: /* $@14: %empty  */
   3141  1.1  christos #line 638 "./config/rx-parse.y"
   3142  1.1  christos                 { sub_op = 12; }
   3143  1.1  christos #line 3144 "config/rx-parse.c"
   3144  1.1  christos     break;
   3145  1.1  christos 
   3146  1.1  christos   case 113: /* $@15: %empty  */
   3147  1.1  christos #line 639 "./config/rx-parse.y"
   3148  1.1  christos                 { sub_op = 13; }
   3149  1.1  christos #line 3150 "config/rx-parse.c"
   3150  1.1  christos     break;
   3151  1.1  christos 
   3152  1.1  christos   case 115: /* $@16: %empty  */
   3153  1.1  christos #line 640 "./config/rx-parse.y"
   3154  1.1  christos                 { sub_op = 14; sub_op2 = 0; }
   3155  1.1  christos #line 3156 "config/rx-parse.c"
   3156  1.1  christos     break;
   3157  1.1  christos 
   3158  1.1  christos   case 117: /* $@17: %empty  */
   3159  1.1  christos #line 641 "./config/rx-parse.y"
   3160  1.1  christos                 { sub_op = 14; sub_op2 = 0; }
   3161  1.1  christos #line 3162 "config/rx-parse.c"
   3162  1.1  christos     break;
   3163  1.1  christos 
   3164  1.1  christos   case 119: /* $@18: %empty  */
   3165  1.1  christos #line 642 "./config/rx-parse.y"
   3166  1.1  christos                 { sub_op = 15; sub_op2 = 1; }
   3167  1.1  christos #line 3168 "config/rx-parse.c"
   3168  1.1  christos     break;
   3169  1.1  christos 
   3170  1.1  christos   case 121: /* $@19: %empty  */
   3171  1.1  christos #line 646 "./config/rx-parse.y"
   3172  1.1  christos                 { sub_op = 6; }
   3173  1.1  christos #line 3174 "config/rx-parse.c"
   3174  1.1  christos     break;
   3175  1.1  christos 
   3176  1.1  christos   case 123: /* $@20: %empty  */
   3177  1.1  christos #line 647 "./config/rx-parse.y"
   3178  1.1  christos                 { sub_op = 7; }
   3179  1.1  christos #line 3180 "config/rx-parse.c"
   3180  1.1  christos     break;
   3181  1.1  christos 
   3182  1.1  christos   case 125: /* $@21: %empty  */
   3183  1.1  christos #line 648 "./config/rx-parse.y"
   3184  1.1  christos                 { sub_op = 16; }
   3185  1.1  christos #line 3186 "config/rx-parse.c"
   3186  1.1  christos     break;
   3187  1.1  christos 
   3188  1.1  christos   case 127: /* $@22: %empty  */
   3189  1.1  christos #line 649 "./config/rx-parse.y"
   3190  1.1  christos                 { sub_op = 17; }
   3191  1.1  christos #line 3192 "config/rx-parse.c"
   3192  1.1  christos     break;
   3193  1.1  christos 
   3194  1.1  christos   case 129: /* $@23: %empty  */
   3195  1.1  christos #line 650 "./config/rx-parse.y"
   3196  1.1  christos                 { sub_op = 21; }
   3197  1.1  christos #line 3198 "config/rx-parse.c"
   3198  1.1  christos     break;
   3199  1.1  christos 
   3200  1.1  christos   case 131: /* statement: BSET REG ',' REG  */
   3201  1.1  christos #line 655 "./config/rx-parse.y"
   3202  1.1  christos           { id24 (1, 0x63, 0x00); F ((yyvsp[0].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); }
   3203  1.1  christos #line 3204 "config/rx-parse.c"
   3204  1.1  christos     break;
   3205  1.1  christos 
   3206  1.1  christos   case 132: /* statement: BCLR REG ',' REG  */
   3207  1.1  christos #line 657 "./config/rx-parse.y"
   3208  1.1  christos           { id24 (1, 0x67, 0x00); F ((yyvsp[0].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); }
   3209  1.1  christos #line 3210 "config/rx-parse.c"
   3210  1.1  christos     break;
   3211  1.1  christos 
   3212  1.1  christos   case 133: /* statement: BTST REG ',' REG  */
   3213  1.1  christos #line 659 "./config/rx-parse.y"
   3214  1.1  christos           { id24 (1, 0x6b, 0x00); F ((yyvsp[0].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); }
   3215  1.1  christos #line 3216 "config/rx-parse.c"
   3216  1.1  christos     break;
   3217  1.1  christos 
   3218  1.1  christos   case 134: /* statement: BNOT REG ',' REG  */
   3219  1.1  christos #line 661 "./config/rx-parse.y"
   3220  1.1  christos           { id24 (1, 0x6f, 0x00); F ((yyvsp[0].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); }
   3221  1.1  christos #line 3222 "config/rx-parse.c"
   3222  1.1  christos     break;
   3223  1.1  christos 
   3224  1.1  christos   case 135: /* statement: BSET REG ',' disp '[' REG ']' opt_b  */
   3225  1.1  christos #line 664 "./config/rx-parse.y"
   3226  1.1  christos           { id24 (1, 0x60, 0x00); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[-6].regno), 20, 4); DSP ((yyvsp[-4].exp), 14, BSIZE); }
   3227  1.1  christos #line 3228 "config/rx-parse.c"
   3228  1.1  christos     break;
   3229  1.1  christos 
   3230  1.1  christos   case 136: /* statement: BCLR REG ',' disp '[' REG ']' opt_b  */
   3231  1.1  christos #line 666 "./config/rx-parse.y"
   3232  1.1  christos           { id24 (1, 0x64, 0x00); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[-6].regno), 20, 4); DSP ((yyvsp[-4].exp), 14, BSIZE); }
   3233  1.1  christos #line 3234 "config/rx-parse.c"
   3234  1.1  christos     break;
   3235  1.1  christos 
   3236  1.1  christos   case 137: /* statement: BTST REG ',' disp '[' REG ']' opt_b  */
   3237  1.1  christos #line 668 "./config/rx-parse.y"
   3238  1.1  christos           { id24 (1, 0x68, 0x00); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[-6].regno), 20, 4); DSP ((yyvsp[-4].exp), 14, BSIZE); }
   3239  1.1  christos #line 3240 "config/rx-parse.c"
   3240  1.1  christos     break;
   3241  1.1  christos 
   3242  1.1  christos   case 138: /* statement: BNOT REG ',' disp '[' REG ']' opt_b  */
   3243  1.1  christos #line 670 "./config/rx-parse.y"
   3244  1.1  christos           { id24 (1, 0x6c, 0x00); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[-6].regno), 20, 4); DSP ((yyvsp[-4].exp), 14, BSIZE); }
   3245  1.1  christos #line 3246 "config/rx-parse.c"
   3246  1.1  christos     break;
   3247  1.1  christos 
   3248  1.1  christos   case 139: /* $@24: %empty  */
   3249  1.1  christos #line 674 "./config/rx-parse.y"
   3250  1.1  christos                 { sub_op = 0; }
   3251  1.1  christos #line 3252 "config/rx-parse.c"
   3252  1.1  christos     break;
   3253  1.1  christos 
   3254  1.1  christos   case 141: /* $@25: %empty  */
   3255  1.1  christos #line 675 "./config/rx-parse.y"
   3256  1.1  christos                 { sub_op = 1; }
   3257  1.1  christos #line 3258 "config/rx-parse.c"
   3258  1.1  christos     break;
   3259  1.1  christos 
   3260  1.1  christos   case 143: /* $@26: %empty  */
   3261  1.1  christos #line 676 "./config/rx-parse.y"
   3262  1.1  christos                 { sub_op = 2; }
   3263  1.1  christos #line 3264 "config/rx-parse.c"
   3264  1.1  christos     break;
   3265  1.1  christos 
   3266  1.1  christos   case 145: /* $@27: %empty  */
   3267  1.1  christos #line 677 "./config/rx-parse.y"
   3268  1.1  christos                 { sub_op = 3; }
   3269  1.1  christos #line 3270 "config/rx-parse.c"
   3270  1.1  christos     break;
   3271  1.1  christos 
   3272  1.1  christos   case 147: /* $@28: %empty  */
   3273  1.1  christos #line 678 "./config/rx-parse.y"
   3274  1.1  christos                 { sub_op = 4; }
   3275  1.1  christos #line 3276 "config/rx-parse.c"
   3276  1.1  christos     break;
   3277  1.1  christos 
   3278  1.1  christos   case 149: /* $@29: %empty  */
   3279  1.1  christos #line 679 "./config/rx-parse.y"
   3280  1.1  christos                 { sub_op = 8; }
   3281  1.1  christos #line 3282 "config/rx-parse.c"
   3282  1.1  christos     break;
   3283  1.1  christos 
   3284  1.1  christos   case 151: /* $@30: %empty  */
   3285  1.1  christos #line 680 "./config/rx-parse.y"
   3286  1.1  christos                 { sub_op = 5; }
   3287  1.1  christos #line 3288 "config/rx-parse.c"
   3288  1.1  christos     break;
   3289  1.1  christos 
   3290  1.1  christos   case 153: /* $@31: %empty  */
   3291  1.1  christos #line 681 "./config/rx-parse.y"
   3292  1.1  christos                 { sub_op = 9; }
   3293  1.1  christos #line 3294 "config/rx-parse.c"
   3294  1.1  christos     break;
   3295  1.1  christos 
   3296  1.1  christos   case 155: /* $@32: %empty  */
   3297  1.1  christos #line 682 "./config/rx-parse.y"
   3298  1.1  christos                 { sub_op = 6; }
   3299  1.1  christos #line 3300 "config/rx-parse.c"
   3300  1.1  christos     break;
   3301  1.1  christos 
   3302  1.1  christos   case 157: /* statement: SCCND DOT_L REG  */
   3303  1.1  christos #line 690 "./config/rx-parse.y"
   3304  1.1  christos           { id24 (1, 0xdb, 0x00); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 16, 4); }
   3305  1.1  christos #line 3306 "config/rx-parse.c"
   3306  1.1  christos     break;
   3307  1.1  christos 
   3308  1.1  christos   case 158: /* statement: SCCND bwl disp '[' REG ']'  */
   3309  1.1  christos #line 692 "./config/rx-parse.y"
   3310  1.1  christos           { id24 (1, 0xd0, 0x00); F ((yyvsp[-5].regno), 20, 4); F ((yyvsp[-4].regno), 12, 2); F ((yyvsp[-1].regno), 16, 4); DSP ((yyvsp[-3].exp), 14, (yyvsp[-4].regno)); }
   3311  1.1  christos #line 3312 "config/rx-parse.c"
   3312  1.1  christos     break;
   3313  1.1  christos 
   3314  1.1  christos   case 159: /* statement: BMCND '#' EXPR ',' disp '[' REG ']' opt_b  */
   3315  1.1  christos #line 697 "./config/rx-parse.y"
   3316  1.1  christos           { id24 (1, 0xe0, 0x00); F ((yyvsp[-8].regno), 20, 4); FE ((yyvsp[-6].exp), 11, 3);
   3317  1.1  christos 	      F ((yyvsp[-2].regno), 16, 4); DSP ((yyvsp[-4].exp), 14, BSIZE); }
   3318  1.1  christos #line 3319 "config/rx-parse.c"
   3319  1.1  christos     break;
   3320  1.1  christos 
   3321  1.1  christos   case 160: /* statement: BNOT '#' EXPR ',' disp '[' REG ']' opt_b  */
   3322  1.1  christos #line 703 "./config/rx-parse.y"
   3323  1.1  christos           { id24 (1, 0xe0, 0x0f); FE ((yyvsp[-6].exp), 11, 3); F ((yyvsp[-2].regno), 16, 4);
   3324  1.1  christos 	      DSP ((yyvsp[-4].exp), 14, BSIZE); }
   3325  1.1  christos #line 3326 "config/rx-parse.c"
   3326  1.1  christos     break;
   3327  1.1  christos 
   3328  1.1  christos   case 161: /* statement: MULHI REG ',' REG  */
   3329  1.1  christos #line 709 "./config/rx-parse.y"
   3330  1.1  christos           { id24 (2, 0x00, 0x00); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   3331  1.1  christos #line 3332 "config/rx-parse.c"
   3332  1.1  christos     break;
   3333  1.1  christos 
   3334  1.1  christos   case 162: /* statement: MULHI REG ',' REG ',' ACC  */
   3335  1.1  christos #line 711 "./config/rx-parse.y"
   3336  1.1  christos           { rx_check_v2 (); id24 (2, 0x00, 0x00); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 12, 1); }
   3337  1.1  christos #line 3338 "config/rx-parse.c"
   3338  1.1  christos     break;
   3339  1.1  christos 
   3340  1.1  christos   case 163: /* statement: MULLO REG ',' REG  */
   3341  1.1  christos #line 713 "./config/rx-parse.y"
   3342  1.1  christos           { id24 (2, 0x01, 0x00); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   3343  1.1  christos #line 3344 "config/rx-parse.c"
   3344  1.1  christos     break;
   3345  1.1  christos 
   3346  1.1  christos   case 164: /* statement: MULLO REG ',' REG ',' ACC  */
   3347  1.1  christos #line 715 "./config/rx-parse.y"
   3348  1.1  christos           { rx_check_v2 (); id24 (2, 0x01, 0x00); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 12, 1); }
   3349  1.1  christos #line 3350 "config/rx-parse.c"
   3350  1.1  christos     break;
   3351  1.1  christos 
   3352  1.1  christos   case 165: /* statement: MACHI REG ',' REG  */
   3353  1.1  christos #line 717 "./config/rx-parse.y"
   3354  1.1  christos           { id24 (2, 0x04, 0x00); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   3355  1.1  christos #line 3356 "config/rx-parse.c"
   3356  1.1  christos     break;
   3357  1.1  christos 
   3358  1.1  christos   case 166: /* statement: MACHI REG ',' REG ',' ACC  */
   3359  1.1  christos #line 719 "./config/rx-parse.y"
   3360  1.1  christos           { rx_check_v2 (); id24 (2, 0x04, 0x00); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 12, 1); }
   3361  1.1  christos #line 3362 "config/rx-parse.c"
   3362  1.1  christos     break;
   3363  1.1  christos 
   3364  1.1  christos   case 167: /* statement: MACLO REG ',' REG  */
   3365  1.1  christos #line 721 "./config/rx-parse.y"
   3366  1.1  christos           { id24 (2, 0x05, 0x00); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   3367  1.1  christos #line 3368 "config/rx-parse.c"
   3368  1.1  christos     break;
   3369  1.1  christos 
   3370  1.1  christos   case 168: /* statement: MACLO REG ',' REG ',' ACC  */
   3371  1.1  christos #line 723 "./config/rx-parse.y"
   3372  1.1  christos           { rx_check_v2 (); id24 (2, 0x05, 0x00); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 12, 1); }
   3373  1.1  christos #line 3374 "config/rx-parse.c"
   3374  1.1  christos     break;
   3375  1.1  christos 
   3376  1.1  christos   case 169: /* statement: MVTACHI REG  */
   3377  1.1  christos #line 729 "./config/rx-parse.y"
   3378  1.1  christos           { id24 (2, 0x17, 0x00); F ((yyvsp[0].regno), 20, 4); }
   3379  1.1  christos #line 3380 "config/rx-parse.c"
   3380  1.1  christos     break;
   3381  1.1  christos 
   3382  1.1  christos   case 170: /* statement: MVTACHI REG ',' ACC  */
   3383  1.1  christos #line 731 "./config/rx-parse.y"
   3384  1.1  christos           { rx_check_v2 (); id24 (2, 0x17, 0x00); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 16, 1); }
   3385  1.1  christos #line 3386 "config/rx-parse.c"
   3386  1.1  christos     break;
   3387  1.1  christos 
   3388  1.1  christos   case 171: /* statement: MVTACLO REG  */
   3389  1.1  christos #line 733 "./config/rx-parse.y"
   3390  1.1  christos           { id24 (2, 0x17, 0x10); F ((yyvsp[0].regno), 20, 4); }
   3391  1.1  christos #line 3392 "config/rx-parse.c"
   3392  1.1  christos     break;
   3393  1.1  christos 
   3394  1.1  christos   case 172: /* statement: MVTACLO REG ',' ACC  */
   3395  1.1  christos #line 735 "./config/rx-parse.y"
   3396  1.1  christos           { rx_check_v2 (); id24 (2, 0x17, 0x10); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 16, 1); }
   3397  1.1  christos #line 3398 "config/rx-parse.c"
   3398  1.1  christos     break;
   3399  1.1  christos 
   3400  1.1  christos   case 173: /* statement: MVFACHI REG  */
   3401  1.1  christos #line 737 "./config/rx-parse.y"
   3402  1.1  christos           { id24 (2, 0x1f, 0x00); F ((yyvsp[0].regno), 20, 4); }
   3403  1.1  christos #line 3404 "config/rx-parse.c"
   3404  1.1  christos     break;
   3405  1.1  christos 
   3406  1.1  christos   case 174: /* $@33: %empty  */
   3407  1.1  christos #line 738 "./config/rx-parse.y"
   3408  1.1  christos                   { sub_op = 0; }
   3409  1.1  christos #line 3410 "config/rx-parse.c"
   3410  1.1  christos     break;
   3411  1.1  christos 
   3412  1.1  christos   case 176: /* statement: MVFACMI REG  */
   3413  1.1  christos #line 740 "./config/rx-parse.y"
   3414  1.1  christos           { id24 (2, 0x1f, 0x20); F ((yyvsp[0].regno), 20, 4); }
   3415  1.1  christos #line 3416 "config/rx-parse.c"
   3416  1.1  christos     break;
   3417  1.1  christos 
   3418  1.1  christos   case 177: /* $@34: %empty  */
   3419  1.1  christos #line 741 "./config/rx-parse.y"
   3420  1.1  christos                   { sub_op = 2; }
   3421  1.1  christos #line 3422 "config/rx-parse.c"
   3422  1.1  christos     break;
   3423  1.1  christos 
   3424  1.1  christos   case 179: /* statement: MVFACLO REG  */
   3425  1.1  christos #line 743 "./config/rx-parse.y"
   3426  1.1  christos           { id24 (2, 0x1f, 0x10); F ((yyvsp[0].regno), 20, 4); }
   3427  1.1  christos #line 3428 "config/rx-parse.c"
   3428  1.1  christos     break;
   3429  1.1  christos 
   3430  1.1  christos   case 180: /* $@35: %empty  */
   3431  1.1  christos #line 744 "./config/rx-parse.y"
   3432  1.1  christos                   { sub_op = 1; }
   3433  1.1  christos #line 3434 "config/rx-parse.c"
   3434  1.1  christos     break;
   3435  1.1  christos 
   3436  1.1  christos   case 182: /* statement: RACW '#' EXPR  */
   3437  1.1  christos #line 746 "./config/rx-parse.y"
   3438  1.1  christos           { id24 (2, 0x18, 0x00);
   3439  1.1  christos 	    if (rx_uintop ((yyvsp[0].exp), 4) && exp_val((yyvsp[0].exp)) == 1)
   3440  1.1  christos 	      ;
   3441  1.1  christos 	    else if (rx_uintop ((yyvsp[0].exp), 4) && exp_val((yyvsp[0].exp)) == 2)
   3442  1.1  christos 	      F (1, 19, 1);
   3443  1.1  christos 	    else
   3444  1.1  christos 	      as_bad (_("RACW expects #1 or #2"));}
   3445  1.1  christos #line 3446 "config/rx-parse.c"
   3446  1.1  christos     break;
   3447  1.1  christos 
   3448  1.1  christos   case 183: /* statement: RACW '#' EXPR ',' ACC  */
   3449  1.1  christos #line 754 "./config/rx-parse.y"
   3450  1.1  christos             { rx_check_v2 (); id24 (2, 0x18, 0x00); F ((yyvsp[0].regno), 16, 1);
   3451  1.1  christos 	    if (rx_uintop ((yyvsp[-2].exp), 4) && exp_val((yyvsp[-2].exp)) == 1)
   3452  1.1  christos 	      ;
   3453  1.1  christos 	    else if (rx_uintop ((yyvsp[-2].exp), 4) && exp_val((yyvsp[-2].exp)) == 2)
   3454  1.1  christos 	      F (1, 19, 1);
   3455  1.1  christos 	    else
   3456  1.1  christos 	      as_bad (_("RACW expects #1 or #2"));}
   3457  1.1  christos #line 3458 "config/rx-parse.c"
   3458  1.1  christos     break;
   3459  1.1  christos 
   3460  1.1  christos   case 184: /* statement: MOV bwl REG ',' '[' REG '+' ']'  */
   3461  1.1  christos #line 765 "./config/rx-parse.y"
   3462  1.1  christos           { id24 (2, 0x20, 0); F ((yyvsp[-6].regno), 14, 2); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[-5].regno), 20, 4); }
   3463  1.1  christos #line 3464 "config/rx-parse.c"
   3464  1.1  christos     break;
   3465  1.1  christos 
   3466  1.1  christos   case 185: /* statement: MOV bwl REG ',' '[' '-' REG ']'  */
   3467  1.1  christos #line 767 "./config/rx-parse.y"
   3468  1.1  christos           { id24 (2, 0x24, 0); F ((yyvsp[-6].regno), 14, 2); F ((yyvsp[-1].regno), 16, 4); F ((yyvsp[-5].regno), 20, 4); }
   3469  1.1  christos #line 3470 "config/rx-parse.c"
   3470  1.1  christos     break;
   3471  1.1  christos 
   3472  1.1  christos   case 186: /* statement: MOV bwl '[' REG '+' ']' ',' REG  */
   3473  1.1  christos #line 772 "./config/rx-parse.y"
   3474  1.1  christos           { id24 (2, 0x28, 0); F ((yyvsp[-6].regno), 14, 2); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   3475  1.1  christos #line 3476 "config/rx-parse.c"
   3476  1.1  christos     break;
   3477  1.1  christos 
   3478  1.1  christos   case 187: /* statement: MOV bwl '[' '-' REG ']' ',' REG  */
   3479  1.1  christos #line 774 "./config/rx-parse.y"
   3480  1.1  christos           { id24 (2, 0x2c, 0); F ((yyvsp[-6].regno), 14, 2); F ((yyvsp[-3].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   3481  1.1  christos #line 3482 "config/rx-parse.c"
   3482  1.1  christos     break;
   3483  1.1  christos 
   3484  1.1  christos   case 188: /* statement: MOVU bw '[' REG '+' ']' ',' REG  */
   3485  1.1  christos #line 779 "./config/rx-parse.y"
   3486  1.1  christos           { id24 (2, 0x38, 0); F ((yyvsp[-6].regno), 15, 1); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   3487  1.1  christos #line 3488 "config/rx-parse.c"
   3488  1.1  christos     break;
   3489  1.1  christos 
   3490  1.1  christos   case 189: /* statement: MOVU bw '[' '-' REG ']' ',' REG  */
   3491  1.1  christos #line 781 "./config/rx-parse.y"
   3492  1.1  christos           { id24 (2, 0x3c, 0); F ((yyvsp[-6].regno), 15, 1); F ((yyvsp[-3].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   3493  1.1  christos #line 3494 "config/rx-parse.c"
   3494  1.1  christos     break;
   3495  1.1  christos 
   3496  1.1  christos   case 190: /* $@36: %empty  */
   3497  1.1  christos #line 785 "./config/rx-parse.y"
   3498  1.1  christos                { sub_op = 6; }
   3499  1.1  christos #line 3500 "config/rx-parse.c"
   3500  1.1  christos     break;
   3501  1.1  christos 
   3502  1.1  christos   case 192: /* $@37: %empty  */
   3503  1.1  christos #line 786 "./config/rx-parse.y"
   3504  1.1  christos                { sub_op = 4; }
   3505  1.1  christos #line 3506 "config/rx-parse.c"
   3506  1.1  christos     break;
   3507  1.1  christos 
   3508  1.1  christos   case 194: /* $@38: %empty  */
   3509  1.1  christos #line 787 "./config/rx-parse.y"
   3510  1.1  christos                { sub_op = 5; }
   3511  1.1  christos #line 3512 "config/rx-parse.c"
   3512  1.1  christos     break;
   3513  1.1  christos 
   3514  1.1  christos   case 196: /* $@39: %empty  */
   3515  1.1  christos #line 788 "./config/rx-parse.y"
   3516  1.1  christos                { sub_op = 7; }
   3517  1.1  christos #line 3518 "config/rx-parse.c"
   3518  1.1  christos     break;
   3519  1.1  christos 
   3520  1.1  christos   case 198: /* statement: MVTC REG ',' CREG  */
   3521  1.1  christos #line 793 "./config/rx-parse.y"
   3522  1.1  christos           { if ((yyvsp[0].regno) == 13)
   3523  1.1  christos 	      rx_check_v2 ();
   3524  1.1  christos 	  id24 (2, 0x68, 0x00); F ((yyvsp[0].regno) % 16, 20, 4); F ((yyvsp[0].regno) / 16, 15, 1);
   3525  1.1  christos 	    F ((yyvsp[-2].regno), 16, 4); }
   3526  1.1  christos #line 3527 "config/rx-parse.c"
   3527  1.1  christos     break;
   3528  1.1  christos 
   3529  1.1  christos   case 199: /* statement: MVFC CREG ',' REG  */
   3530  1.1  christos #line 801 "./config/rx-parse.y"
   3531  1.1  christos           { if ((yyvsp[-2].regno) == 13)
   3532  1.1  christos 	    rx_check_v2 ();
   3533  1.1  christos 	  id24 (2, 0x6a, 0); F ((yyvsp[-2].regno), 15, 5); F ((yyvsp[0].regno), 20, 4); }
   3534  1.1  christos #line 3535 "config/rx-parse.c"
   3535  1.1  christos     break;
   3536  1.1  christos 
   3537  1.1  christos   case 200: /* statement: ROTL '#' EXPR ',' REG  */
   3538  1.1  christos #line 808 "./config/rx-parse.y"
   3539  1.1  christos           { id24 (2, 0x6e, 0); FE ((yyvsp[-2].exp), 15, 5); F ((yyvsp[0].regno), 20, 4); }
   3540  1.1  christos #line 3541 "config/rx-parse.c"
   3541  1.1  christos     break;
   3542  1.1  christos 
   3543  1.1  christos   case 201: /* statement: ROTR '#' EXPR ',' REG  */
   3544  1.1  christos #line 810 "./config/rx-parse.y"
   3545  1.1  christos           { id24 (2, 0x6c, 0); FE ((yyvsp[-2].exp), 15, 5); F ((yyvsp[0].regno), 20, 4); }
   3546  1.1  christos #line 3547 "config/rx-parse.c"
   3547  1.1  christos     break;
   3548  1.1  christos 
   3549  1.1  christos   case 202: /* statement: MVTC '#' EXPR ',' CREG  */
   3550  1.1  christos #line 815 "./config/rx-parse.y"
   3551  1.1  christos           { if ((yyvsp[0].regno) == 13)
   3552  1.1  christos 	      rx_check_v2 ();
   3553  1.1  christos 	    id24 (2, 0x73, 0x00); F ((yyvsp[0].regno), 19, 5); IMM ((yyvsp[-2].exp), 12); }
   3554  1.1  christos #line 3555 "config/rx-parse.c"
   3555  1.1  christos     break;
   3556  1.1  christos 
   3557  1.1  christos   case 203: /* statement: BMCND '#' EXPR ',' REG  */
   3558  1.1  christos #line 822 "./config/rx-parse.y"
   3559  1.1  christos           { id24 (2, 0xe0, 0x00); F ((yyvsp[-4].regno), 16, 4); FE ((yyvsp[-2].exp), 11, 5);
   3560  1.1  christos 	      F ((yyvsp[0].regno), 20, 4); }
   3561  1.1  christos #line 3562 "config/rx-parse.c"
   3562  1.1  christos     break;
   3563  1.1  christos 
   3564  1.1  christos   case 204: /* statement: BNOT '#' EXPR ',' REG  */
   3565  1.1  christos #line 828 "./config/rx-parse.y"
   3566  1.1  christos           { id24 (2, 0xe0, 0xf0); FE ((yyvsp[-2].exp), 11, 5); F ((yyvsp[0].regno), 20, 4); }
   3567  1.1  christos #line 3568 "config/rx-parse.c"
   3568  1.1  christos     break;
   3569  1.1  christos 
   3570  1.1  christos   case 205: /* statement: MOV bwl REG ',' '[' REG ',' REG ']'  */
   3571  1.1  christos #line 833 "./config/rx-parse.y"
   3572  1.1  christos           { id24 (3, 0x00, 0); F ((yyvsp[-7].regno), 10, 2); F ((yyvsp[-3].regno), 12, 4); F ((yyvsp[-1].regno), 16, 4); F ((yyvsp[-6].regno), 20, 4); }
   3573  1.1  christos #line 3574 "config/rx-parse.c"
   3574  1.1  christos     break;
   3575  1.1  christos 
   3576  1.1  christos   case 206: /* statement: MOV bwl '[' REG ',' REG ']' ',' REG  */
   3577  1.1  christos #line 836 "./config/rx-parse.y"
   3578  1.1  christos           { id24 (3, 0x40, 0); F ((yyvsp[-7].regno), 10, 2); F ((yyvsp[-5].regno), 12, 4); F ((yyvsp[-3].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   3579  1.1  christos #line 3580 "config/rx-parse.c"
   3580  1.1  christos     break;
   3581  1.1  christos 
   3582  1.1  christos   case 207: /* statement: MOVU bw '[' REG ',' REG ']' ',' REG  */
   3583  1.1  christos #line 839 "./config/rx-parse.y"
   3584  1.1  christos           { id24 (3, 0xc0, 0); F ((yyvsp[-7].regno), 10, 2); F ((yyvsp[-5].regno), 12, 4); F ((yyvsp[-3].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   3585  1.1  christos #line 3586 "config/rx-parse.c"
   3586  1.1  christos     break;
   3587  1.1  christos 
   3588  1.1  christos   case 208: /* $@40: %empty  */
   3589  1.1  christos #line 843 "./config/rx-parse.y"
   3590  1.1  christos               { sub_op = 0; }
   3591  1.1  christos #line 3592 "config/rx-parse.c"
   3592  1.1  christos     break;
   3593  1.1  christos 
   3594  1.1  christos   case 210: /* $@41: %empty  */
   3595  1.1  christos #line 844 "./config/rx-parse.y"
   3596  1.1  christos               { sub_op = 2; }
   3597  1.1  christos #line 3598 "config/rx-parse.c"
   3598  1.1  christos     break;
   3599  1.1  christos 
   3600  1.1  christos   case 212: /* $@42: %empty  */
   3601  1.1  christos #line 845 "./config/rx-parse.y"
   3602  1.1  christos               { sub_op = 3; }
   3603  1.1  christos #line 3604 "config/rx-parse.c"
   3604  1.1  christos     break;
   3605  1.1  christos 
   3606  1.1  christos   case 214: /* $@43: %empty  */
   3607  1.1  christos #line 846 "./config/rx-parse.y"
   3608  1.1  christos                { sub_op = 4; }
   3609  1.1  christos #line 3610 "config/rx-parse.c"
   3610  1.1  christos     break;
   3611  1.1  christos 
   3612  1.1  christos   case 216: /* $@44: %empty  */
   3613  1.1  christos #line 847 "./config/rx-parse.y"
   3614  1.1  christos               { sub_op = 5; }
   3615  1.1  christos #line 3616 "config/rx-parse.c"
   3616  1.1  christos     break;
   3617  1.1  christos 
   3618  1.1  christos   case 218: /* statement: SBB '#' EXPR ',' REG  */
   3619  1.1  christos #line 853 "./config/rx-parse.y"
   3620  1.1  christos           { id24 (2, 0x70, 0x20); F ((yyvsp[0].regno), 20, 4); NBIMM ((yyvsp[-2].exp), 12); }
   3621  1.1  christos #line 3622 "config/rx-parse.c"
   3622  1.1  christos     break;
   3623  1.1  christos 
   3624  1.1  christos   case 219: /* statement: MOVCO REG ',' '[' REG ']'  */
   3625  1.1  christos #line 858 "./config/rx-parse.y"
   3626  1.1  christos           { rx_check_v2 (); B3 (0xfd, 0x27, 0x00); F ((yyvsp[-1].regno), 16, 4); F ((yyvsp[-4].regno), 20, 4); }
   3627  1.1  christos #line 3628 "config/rx-parse.c"
   3628  1.1  christos     break;
   3629  1.1  christos 
   3630  1.1  christos   case 220: /* statement: MOVLI '[' REG ']' ',' REG  */
   3631  1.1  christos #line 863 "./config/rx-parse.y"
   3632  1.1  christos           { rx_check_v2 (); B3 (0xfd, 0x2f, 0x00); F ((yyvsp[-3].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   3633  1.1  christos #line 3634 "config/rx-parse.c"
   3634  1.1  christos     break;
   3635  1.1  christos 
   3636  1.1  christos   case 221: /* statement: EMACA REG ',' REG ',' ACC  */
   3637  1.1  christos #line 868 "./config/rx-parse.y"
   3638  1.1  christos           { rx_check_v2 (); id24 (2, 0x07, 0x00); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 12, 1); }
   3639  1.1  christos #line 3640 "config/rx-parse.c"
   3640  1.1  christos     break;
   3641  1.1  christos 
   3642  1.1  christos   case 222: /* statement: EMSBA REG ',' REG ',' ACC  */
   3643  1.1  christos #line 870 "./config/rx-parse.y"
   3644  1.1  christos           { rx_check_v2 (); id24 (2, 0x47, 0x00); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 12, 1); }
   3645  1.1  christos #line 3646 "config/rx-parse.c"
   3646  1.1  christos     break;
   3647  1.1  christos 
   3648  1.1  christos   case 223: /* statement: EMULA REG ',' REG ',' ACC  */
   3649  1.1  christos #line 872 "./config/rx-parse.y"
   3650  1.1  christos           { rx_check_v2 (); id24 (2, 0x03, 0x00); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 12, 1); }
   3651  1.1  christos #line 3652 "config/rx-parse.c"
   3652  1.1  christos     break;
   3653  1.1  christos 
   3654  1.1  christos   case 224: /* statement: MACLH REG ',' REG ',' ACC  */
   3655  1.1  christos #line 874 "./config/rx-parse.y"
   3656  1.1  christos           { rx_check_v2 (); id24 (2, 0x06, 0x00); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 12, 1); }
   3657  1.1  christos #line 3658 "config/rx-parse.c"
   3658  1.1  christos     break;
   3659  1.1  christos 
   3660  1.1  christos   case 225: /* statement: MSBHI REG ',' REG ',' ACC  */
   3661  1.1  christos #line 876 "./config/rx-parse.y"
   3662  1.1  christos           { rx_check_v2 (); id24 (2, 0x44, 0x00); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 12, 1); }
   3663  1.1  christos #line 3664 "config/rx-parse.c"
   3664  1.1  christos     break;
   3665  1.1  christos 
   3666  1.1  christos   case 226: /* statement: MSBLH REG ',' REG ',' ACC  */
   3667  1.1  christos #line 878 "./config/rx-parse.y"
   3668  1.1  christos           { rx_check_v2 (); id24 (2, 0x46, 0x00); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 12, 1); }
   3669  1.1  christos #line 3670 "config/rx-parse.c"
   3670  1.1  christos     break;
   3671  1.1  christos 
   3672  1.1  christos   case 227: /* statement: MSBLO REG ',' REG ',' ACC  */
   3673  1.1  christos #line 880 "./config/rx-parse.y"
   3674  1.1  christos           { rx_check_v2 (); id24 (2, 0x45, 0x00); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 12, 1); }
   3675  1.1  christos #line 3676 "config/rx-parse.c"
   3676  1.1  christos     break;
   3677  1.1  christos 
   3678  1.1  christos   case 228: /* statement: MULLH REG ',' REG ',' ACC  */
   3679  1.1  christos #line 882 "./config/rx-parse.y"
   3680  1.1  christos           { rx_check_v2 (); id24 (2, 0x02, 0x00); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 12, 1); }
   3681  1.1  christos #line 3682 "config/rx-parse.c"
   3682  1.1  christos     break;
   3683  1.1  christos 
   3684  1.1  christos   case 229: /* $@45: %empty  */
   3685  1.1  christos #line 883 "./config/rx-parse.y"
   3686  1.1  christos                   { sub_op = 3; }
   3687  1.1  christos #line 3688 "config/rx-parse.c"
   3688  1.1  christos     break;
   3689  1.1  christos 
   3690  1.1  christos   case 231: /* statement: MVTACGU REG ',' ACC  */
   3691  1.1  christos #line 885 "./config/rx-parse.y"
   3692  1.1  christos           { rx_check_v2 (); id24 (2, 0x17, 0x30); F ((yyvsp[0].regno), 16, 1); F ((yyvsp[-2].regno), 20, 4); }
   3693  1.1  christos #line 3694 "config/rx-parse.c"
   3694  1.1  christos     break;
   3695  1.1  christos 
   3696  1.1  christos   case 232: /* statement: RACL '#' EXPR ',' ACC  */
   3697  1.1  christos #line 887 "./config/rx-parse.y"
   3698  1.1  christos         { rx_check_v2 (); id24 (2, 0x19, 0x00); F ((yyvsp[0].regno), 16, 1);
   3699  1.1  christos 	    if (rx_uintop ((yyvsp[-2].exp), 4) && (yyvsp[-2].exp).X_add_number == 1)
   3700  1.1  christos 	      ;
   3701  1.1  christos 	    else if (rx_uintop ((yyvsp[-2].exp), 4) && (yyvsp[-2].exp).X_add_number == 2)
   3702  1.1  christos 	      F (1, 19, 1);
   3703  1.1  christos 	    else
   3704  1.1  christos 	      as_bad (_("RACL expects #1 or #2"));}
   3705  1.1  christos #line 3706 "config/rx-parse.c"
   3706  1.1  christos     break;
   3707  1.1  christos 
   3708  1.1  christos   case 233: /* statement: RDACL '#' EXPR ',' ACC  */
   3709  1.1  christos #line 895 "./config/rx-parse.y"
   3710  1.1  christos         { rx_check_v2 (); id24 (2, 0x19, 0x40); F ((yyvsp[0].regno), 16, 1);
   3711  1.1  christos 	    if (rx_uintop ((yyvsp[-2].exp), 4) && (yyvsp[-2].exp).X_add_number == 1)
   3712  1.1  christos 	      ;
   3713  1.1  christos 	    else if (rx_uintop ((yyvsp[-2].exp), 4) && (yyvsp[-2].exp).X_add_number == 2)
   3714  1.1  christos 	      F (1, 19, 1);
   3715  1.1  christos 	    else
   3716  1.1  christos 	      as_bad (_("RDACL expects #1 or #2"));}
   3717  1.1  christos #line 3718 "config/rx-parse.c"
   3718  1.1  christos     break;
   3719  1.1  christos 
   3720  1.1  christos   case 234: /* statement: RDACW '#' EXPR ',' ACC  */
   3721  1.1  christos #line 903 "./config/rx-parse.y"
   3722  1.1  christos         { rx_check_v2 (); id24 (2, 0x18, 0x40); F ((yyvsp[0].regno), 16, 1);
   3723  1.1  christos 	    if (rx_uintop ((yyvsp[-2].exp), 4) && (yyvsp[-2].exp).X_add_number == 1)
   3724  1.1  christos 	      ;
   3725  1.1  christos 	    else if (rx_uintop ((yyvsp[-2].exp), 4) && (yyvsp[-2].exp).X_add_number == 2)
   3726  1.1  christos 	      F (1, 19, 1);
   3727  1.1  christos 	    else
   3728  1.1  christos 	      as_bad (_("RDACW expects #1 or #2"));}
   3729  1.1  christos #line 3730 "config/rx-parse.c"
   3730  1.1  christos     break;
   3731  1.1  christos 
   3732  1.1  christos   case 235: /* $@46: %empty  */
   3733  1.1  christos #line 912 "./config/rx-parse.y"
   3734  1.1  christos                 { rx_check_v3(); sub_op = 1; }
   3735  1.1  christos #line 3736 "config/rx-parse.c"
   3736  1.1  christos     break;
   3737  1.1  christos 
   3738  1.1  christos   case 237: /* $@47: %empty  */
   3739  1.1  christos #line 913 "./config/rx-parse.y"
   3740  1.1  christos                  { rx_check_v3(); sub_op = 0; }
   3741  1.1  christos #line 3742 "config/rx-parse.c"
   3742  1.1  christos     break;
   3743  1.1  christos 
   3744  1.1  christos   case 239: /* $@48: %empty  */
   3745  1.1  christos #line 916 "./config/rx-parse.y"
   3746  1.1  christos                { rx_check_v3(); sub_op = 1; }
   3747  1.1  christos #line 3748 "config/rx-parse.c"
   3748  1.1  christos     break;
   3749  1.1  christos 
   3750  1.1  christos   case 241: /* $@49: %empty  */
   3751  1.1  christos #line 917 "./config/rx-parse.y"
   3752  1.1  christos                { rx_check_v3(); sub_op = 0; }
   3753  1.1  christos #line 3754 "config/rx-parse.c"
   3754  1.1  christos     break;
   3755  1.1  christos 
   3756  1.1  christos   case 243: /* $@50: %empty  */
   3757  1.1  christos #line 920 "./config/rx-parse.y"
   3758  1.1  christos                { rx_check_dfpu(); sub_op = 0x0c; sub_op2 = 0x01; }
   3759  1.1  christos #line 3760 "config/rx-parse.c"
   3760  1.1  christos     break;
   3761  1.1  christos 
   3762  1.1  christos   case 245: /* $@51: %empty  */
   3763  1.1  christos #line 921 "./config/rx-parse.y"
   3764  1.1  christos                { rx_check_dfpu(); sub_op = 0x0c; sub_op2 = 0x02; }
   3765  1.1  christos #line 3766 "config/rx-parse.c"
   3766  1.1  christos     break;
   3767  1.1  christos 
   3768  1.1  christos   case 247: /* $@52: %empty  */
   3769  1.1  christos #line 922 "./config/rx-parse.y"
   3770  1.1  christos                  { rx_check_dfpu(); sub_op = 0x0d; sub_op2 = 0x0d; }
   3771  1.1  christos #line 3772 "config/rx-parse.c"
   3772  1.1  christos     break;
   3773  1.1  christos 
   3774  1.1  christos   case 249: /* $@53: %empty  */
   3775  1.1  christos #line 923 "./config/rx-parse.y"
   3776  1.1  christos                 { rx_check_dfpu(); sub_op = 0x0d; sub_op2 = 0x00; }
   3777  1.1  christos #line 3778 "config/rx-parse.c"
   3778  1.1  christos     break;
   3779  1.1  christos 
   3780  1.1  christos   case 251: /* $@54: %empty  */
   3781  1.1  christos #line 924 "./config/rx-parse.y"
   3782  1.1  christos                { rx_check_dfpu(); sub_op = 0x0d; sub_op2 = 0x0c; }
   3783  1.1  christos #line 3784 "config/rx-parse.c"
   3784  1.1  christos     break;
   3785  1.1  christos 
   3786  1.1  christos   case 253: /* $@55: %empty  */
   3787  1.1  christos #line 925 "./config/rx-parse.y"
   3788  1.1  christos                { rx_check_dfpu(); sub_op = 0x0d; sub_op2 = 0x08;}
   3789  1.1  christos #line 3790 "config/rx-parse.c"
   3790  1.1  christos     break;
   3791  1.1  christos 
   3792  1.1  christos   case 255: /* $@56: %empty  */
   3793  1.1  christos #line 926 "./config/rx-parse.y"
   3794  1.1  christos                { rx_check_dfpu(); sub_op = 0x0d; sub_op2 = 0x09; }
   3795  1.1  christos #line 3796 "config/rx-parse.c"
   3796  1.1  christos     break;
   3797  1.1  christos 
   3798  1.1  christos   case 257: /* $@57: %empty  */
   3799  1.1  christos #line 927 "./config/rx-parse.y"
   3800  1.1  christos                { rx_check_dfpu(); sub_op = 0x00; }
   3801  1.1  christos #line 3802 "config/rx-parse.c"
   3802  1.1  christos     break;
   3803  1.1  christos 
   3804  1.1  christos   case 259: /* $@58: %empty  */
   3805  1.1  christos #line 928 "./config/rx-parse.y"
   3806  1.1  christos                { rx_check_dfpu(); sub_op = 0x05; }
   3807  1.1  christos #line 3808 "config/rx-parse.c"
   3808  1.1  christos     break;
   3809  1.1  christos 
   3810  1.1  christos   case 261: /* $@59: %empty  */
   3811  1.1  christos #line 929 "./config/rx-parse.y"
   3812  1.1  christos                { rx_check_dfpu(); sub_op = 0x02; }
   3813  1.1  christos #line 3814 "config/rx-parse.c"
   3814  1.1  christos     break;
   3815  1.1  christos 
   3816  1.1  christos   case 263: /* $@60: %empty  */
   3817  1.1  christos #line 930 "./config/rx-parse.y"
   3818  1.1  christos                { rx_check_dfpu(); sub_op = 0x01; }
   3819  1.1  christos #line 3820 "config/rx-parse.c"
   3820  1.1  christos     break;
   3821  1.1  christos 
   3822  1.1  christos   case 265: /* statement: DCMP DREG ',' DREG  */
   3823  1.1  christos #line 931 "./config/rx-parse.y"
   3824  1.1  christos                              { rx_check_dfpu();
   3825  1.1  christos 	    B4(0x76, 0x90, 0x08, 0x00); F((yyvsp[-3].regno), 24, 4); F((yyvsp[-2].regno), 28, 4); F((yyvsp[0].regno), 16, 4); }
   3826  1.1  christos #line 3827 "config/rx-parse.c"
   3827  1.1  christos     break;
   3828  1.1  christos 
   3829  1.1  christos   case 266: /* statement: DMOV DOT_D REG ',' DREGH  */
   3830  1.1  christos #line 934 "./config/rx-parse.y"
   3831  1.1  christos         { rx_check_dfpu();
   3832  1.1  christos 	  B4(0xfd, 0x77, 0x80, 0x03); F((yyvsp[-2].regno), 20, 4); F((yyvsp[0].regno), 24, 4); }
   3833  1.1  christos #line 3834 "config/rx-parse.c"
   3834  1.1  christos     break;
   3835  1.1  christos 
   3836  1.1  christos   case 267: /* statement: DMOV DOT_L REG ',' DREGH  */
   3837  1.1  christos #line 937 "./config/rx-parse.y"
   3838  1.1  christos         { rx_check_dfpu();
   3839  1.1  christos 	  B4(0xfd, 0x77, 0x80, 0x02); F((yyvsp[-2].regno), 20, 4); F((yyvsp[0].regno), 24, 4); }
   3840  1.1  christos #line 3841 "config/rx-parse.c"
   3841  1.1  christos     break;
   3842  1.1  christos 
   3843  1.1  christos   case 268: /* statement: DMOV DOT_L REG ',' DREGL  */
   3844  1.1  christos #line 940 "./config/rx-parse.y"
   3845  1.1  christos         { rx_check_dfpu();
   3846  1.1  christos 	  B4(0xfd, 0x77, 0x80, 0x00); F((yyvsp[-2].regno), 20, 4); F((yyvsp[0].regno), 24, 4); }
   3847  1.1  christos #line 3848 "config/rx-parse.c"
   3848  1.1  christos     break;
   3849  1.1  christos 
   3850  1.1  christos   case 269: /* statement: DMOV DOT_L DREGH ',' REG  */
   3851  1.1  christos #line 943 "./config/rx-parse.y"
   3852  1.1  christos         { rx_check_dfpu();
   3853  1.1  christos 	  B4(0xfd, 0x75, 0x80, 0x02); F((yyvsp[-2].regno), 24, 4); F((yyvsp[0].regno), 20, 4); }
   3854  1.1  christos #line 3855 "config/rx-parse.c"
   3855  1.1  christos     break;
   3856  1.1  christos 
   3857  1.1  christos   case 270: /* statement: DMOV DOT_L DREGL ',' REG  */
   3858  1.1  christos #line 946 "./config/rx-parse.y"
   3859  1.1  christos         { rx_check_dfpu();
   3860  1.1  christos 	  B4(0xfd, 0x75, 0x80, 0x00); F((yyvsp[-2].regno), 24, 4); F((yyvsp[0].regno), 20, 4); }
   3861  1.1  christos #line 3862 "config/rx-parse.c"
   3862  1.1  christos     break;
   3863  1.1  christos 
   3864  1.1  christos   case 271: /* statement: DMOV DOT_D DREG ',' DREG  */
   3865  1.1  christos #line 949 "./config/rx-parse.y"
   3866  1.1  christos         { rx_check_dfpu();
   3867  1.1  christos 	  B4(0x76, 0x90, 0x0c, 0x00); F((yyvsp[-2].regno), 16, 4); F((yyvsp[0].regno), 24, 4); }
   3868  1.1  christos #line 3869 "config/rx-parse.c"
   3869  1.1  christos     break;
   3870  1.1  christos 
   3871  1.1  christos   case 272: /* statement: DMOV DOT_D DREG ',' '[' REG ']'  */
   3872  1.1  christos #line 952 "./config/rx-parse.y"
   3873  1.1  christos         { rx_check_dfpu();
   3874  1.1  christos 	  B4(0xfc, 0x78, 0x08, 0x00); F((yyvsp[-1].regno), 16, 4); F((yyvsp[-4].regno), 24, 4); }
   3875  1.1  christos #line 3876 "config/rx-parse.c"
   3876  1.1  christos     break;
   3877  1.1  christos 
   3878  1.1  christos   case 273: /* statement: DMOV DOT_D DREG ',' disp '[' REG ']'  */
   3879  1.1  christos #line 955 "./config/rx-parse.y"
   3880  1.1  christos         { rx_check_dfpu();
   3881  1.1  christos 	  B3(0xfc, 0x78, 0x08); F((yyvsp[-1].regno), 16, 4); DSP((yyvsp[-3].exp), 14, DSIZE);
   3882  1.1  christos 	  POST((yyvsp[-5].regno) << 4); }
   3883  1.1  christos #line 3884 "config/rx-parse.c"
   3884  1.1  christos     break;
   3885  1.1  christos 
   3886  1.1  christos   case 274: /* statement: DMOV DOT_D '[' REG ']' ',' DREG  */
   3887  1.1  christos #line 959 "./config/rx-parse.y"
   3888  1.1  christos         { rx_check_dfpu();
   3889  1.1  christos 	  B4(0xfc, 0xc8, 0x08, 0x00); F((yyvsp[-3].regno), 16, 4); F((yyvsp[0].regno), 24, 4); }
   3890  1.1  christos #line 3891 "config/rx-parse.c"
   3891  1.1  christos     break;
   3892  1.1  christos 
   3893  1.1  christos   case 275: /* statement: DMOV DOT_D disp '[' REG ']' ',' DREG  */
   3894  1.1  christos #line 962 "./config/rx-parse.y"
   3895  1.1  christos         { rx_check_dfpu();
   3896  1.1  christos 	  B3(0xfc, 0xc8, 0x08); F((yyvsp[-3].regno), 16, 4); DSP((yyvsp[-5].exp), 14, DSIZE);
   3897  1.1  christos 	  POST((yyvsp[0].regno) << 4); }
   3898  1.1  christos #line 3899 "config/rx-parse.c"
   3899  1.1  christos     break;
   3900  1.1  christos 
   3901  1.1  christos   case 276: /* statement: DMOV DOT_D '#' EXPR ',' DREGH  */
   3902  1.1  christos #line 966 "./config/rx-parse.y"
   3903  1.1  christos         { rx_check_dfpu();
   3904  1.1  christos 	  B3(0xf9, 0x03, 0x03); F((yyvsp[0].regno), 16, 4); IMM((yyvsp[-2].exp), -1); }
   3905  1.1  christos #line 3906 "config/rx-parse.c"
   3906  1.1  christos     break;
   3907  1.1  christos 
   3908  1.1  christos   case 277: /* statement: DMOV DOT_L '#' EXPR ',' DREGH  */
   3909  1.1  christos #line 969 "./config/rx-parse.y"
   3910  1.1  christos         { rx_check_dfpu();
   3911  1.1  christos 	  B3(0xf9, 0x03, 0x02); F((yyvsp[0].regno), 16, 4); IMM((yyvsp[-2].exp), -1); }
   3912  1.1  christos #line 3913 "config/rx-parse.c"
   3913  1.1  christos     break;
   3914  1.1  christos 
   3915  1.1  christos   case 278: /* statement: DMOV DOT_L '#' EXPR ',' DREGL  */
   3916  1.1  christos #line 972 "./config/rx-parse.y"
   3917  1.1  christos         { rx_check_dfpu();
   3918  1.1  christos 	  B3(0xf9, 0x03, 0x00); F((yyvsp[0].regno), 16, 4); IMM((yyvsp[-2].exp), -1); }
   3919  1.1  christos #line 3920 "config/rx-parse.c"
   3920  1.1  christos     break;
   3921  1.1  christos 
   3922  1.1  christos   case 279: /* statement: DPOPM DOT_D DREG '-' DREG  */
   3923  1.1  christos #line 975 "./config/rx-parse.y"
   3924  1.1  christos         { rx_check_dfpu();
   3925  1.1  christos 	  B3(0x75, 0xb8, 0x00); F((yyvsp[-2].regno), 16, 4); F((yyvsp[0].regno) - (yyvsp[-2].regno), 20, 4); }
   3926  1.1  christos #line 3927 "config/rx-parse.c"
   3927  1.1  christos     break;
   3928  1.1  christos 
   3929  1.1  christos   case 280: /* statement: DPOPM DOT_L DCREG '-' DCREG  */
   3930  1.1  christos #line 978 "./config/rx-parse.y"
   3931  1.1  christos         { rx_check_dfpu();
   3932  1.1  christos 	  B3(0x75, 0xa8, 0x00); F((yyvsp[-2].regno), 16, 4); F((yyvsp[0].regno) - (yyvsp[-2].regno), 20, 4); }
   3933  1.1  christos #line 3934 "config/rx-parse.c"
   3934  1.1  christos     break;
   3935  1.1  christos 
   3936  1.1  christos   case 281: /* statement: DPUSHM DOT_D DREG '-' DREG  */
   3937  1.1  christos #line 981 "./config/rx-parse.y"
   3938  1.1  christos         { rx_check_dfpu();
   3939  1.1  christos 	  B3(0x75, 0xb0, 0x00); F((yyvsp[-2].regno), 16, 4); F((yyvsp[0].regno) - (yyvsp[-2].regno), 20, 4); }
   3940  1.1  christos #line 3941 "config/rx-parse.c"
   3941  1.1  christos     break;
   3942  1.1  christos 
   3943  1.1  christos   case 282: /* statement: DPUSHM DOT_L DCREG '-' DCREG  */
   3944  1.1  christos #line 984 "./config/rx-parse.y"
   3945  1.1  christos         { rx_check_dfpu();
   3946  1.1  christos 	  B3(0x75, 0xa0, 0x00); F((yyvsp[-2].regno), 16, 4); F((yyvsp[0].regno) - (yyvsp[-2].regno), 20, 4); }
   3947  1.1  christos #line 3948 "config/rx-parse.c"
   3948  1.1  christos     break;
   3949  1.1  christos 
   3950  1.1  christos   case 283: /* statement: MVFDC DCREG ',' REG  */
   3951  1.1  christos #line 987 "./config/rx-parse.y"
   3952  1.1  christos         { rx_check_dfpu();
   3953  1.1  christos 	  B4(0xfd, 0x75, 0x80, 0x04); F((yyvsp[-2].regno), 24, 4); F((yyvsp[0].regno), 20, 4); }
   3954  1.1  christos #line 3955 "config/rx-parse.c"
   3955  1.1  christos     break;
   3956  1.1  christos 
   3957  1.1  christos   case 284: /* statement: MVFDR  */
   3958  1.1  christos #line 990 "./config/rx-parse.y"
   3959  1.1  christos         { rx_check_dfpu(); B3(0x75, 0x90, 0x1b); }
   3960  1.1  christos #line 3961 "config/rx-parse.c"
   3961  1.1  christos     break;
   3962  1.1  christos 
   3963  1.1  christos   case 285: /* statement: MVTDC REG ',' DCREG  */
   3964  1.1  christos #line 992 "./config/rx-parse.y"
   3965  1.1  christos         { rx_check_dfpu();
   3966  1.1  christos 	  B4(0xfd, 0x77, 0x80, 0x04); F((yyvsp[-2].regno), 24, 4); F((yyvsp[0].regno), 20, 4); }
   3967  1.1  christos #line 3968 "config/rx-parse.c"
   3968  1.1  christos     break;
   3969  1.1  christos 
   3970  1.1  christos   case 286: /* statement: FTOD REG ',' DREG  */
   3971  1.1  christos #line 995 "./config/rx-parse.y"
   3972  1.1  christos         { rx_check_dfpu();
   3973  1.1  christos 	  B4(0xfd, 0x77, 0x80, 0x0a); F((yyvsp[-2].regno), 24, 4); F((yyvsp[0].regno), 20, 4); }
   3974  1.1  christos #line 3975 "config/rx-parse.c"
   3975  1.1  christos     break;
   3976  1.1  christos 
   3977  1.1  christos   case 287: /* statement: ITOD REG ',' DREG  */
   3978  1.1  christos #line 998 "./config/rx-parse.y"
   3979  1.1  christos         { rx_check_dfpu();
   3980  1.1  christos 	  B4(0xfd, 0x77, 0x80, 0x09); F((yyvsp[-2].regno), 24, 4); F((yyvsp[0].regno), 20, 4); }
   3981  1.1  christos #line 3982 "config/rx-parse.c"
   3982  1.1  christos     break;
   3983  1.1  christos 
   3984  1.1  christos   case 288: /* statement: UTOD REG ',' DREG  */
   3985  1.1  christos #line 1001 "./config/rx-parse.y"
   3986  1.1  christos         { rx_check_dfpu();
   3987  1.1  christos 	  B4(0xfd, 0x77, 0x80, 0x0d); F((yyvsp[-2].regno), 24, 4); F((yyvsp[0].regno), 20, 4); }
   3988  1.1  christos #line 3989 "config/rx-parse.c"
   3989  1.1  christos     break;
   3990  1.1  christos 
   3991  1.1  christos   case 289: /* op_subadd: REG ',' REG  */
   3992  1.1  christos #line 1012 "./config/rx-parse.y"
   3993  1.1  christos           { B2 (0x43 + (sub_op<<2), 0); F ((yyvsp[-2].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); }
   3994  1.1  christos #line 3995 "config/rx-parse.c"
   3995  1.1  christos     break;
   3996  1.1  christos 
   3997  1.1  christos   case 290: /* op_subadd: disp '[' REG ']' DOT_UB ',' REG  */
   3998  1.1  christos #line 1014 "./config/rx-parse.y"
   3999  1.1  christos           { B2 (0x40 + (sub_op<<2), 0); F ((yyvsp[-4].regno), 8, 4); F ((yyvsp[0].regno), 12, 4); DSP ((yyvsp[-6].exp), 6, BSIZE); }
   4000  1.1  christos #line 4001 "config/rx-parse.c"
   4001  1.1  christos     break;
   4002  1.1  christos 
   4003  1.1  christos   case 291: /* op_subadd: disp '[' REG ']' memex ',' REG  */
   4004  1.1  christos #line 1016 "./config/rx-parse.y"
   4005  1.1  christos           { B3 (MEMEX, sub_op<<2, 0); F ((yyvsp[-2].regno), 8, 2); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); DSP ((yyvsp[-6].exp), 14, sizemap[(yyvsp[-2].regno)]); }
   4006  1.1  christos #line 4007 "config/rx-parse.c"
   4007  1.1  christos     break;
   4008  1.1  christos 
   4009  1.1  christos   case 292: /* op_subadd: REG ',' REG ',' REG  */
   4010  1.1  christos #line 1018 "./config/rx-parse.y"
   4011  1.1  christos           { id24 (4, sub_op<<4, 0), F ((yyvsp[0].regno), 12, 4), F ((yyvsp[-4].regno), 16, 4), F ((yyvsp[-2].regno), 20, 4); }
   4012  1.1  christos #line 4013 "config/rx-parse.c"
   4013  1.1  christos     break;
   4014  1.1  christos 
   4015  1.1  christos   case 293: /* op_dp20_rm_l: REG ',' REG  */
   4016  1.1  christos #line 1025 "./config/rx-parse.y"
   4017  1.1  christos           { id24 (1, 0x03 + (sub_op<<2), 0x00); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   4018  1.1  christos #line 4019 "config/rx-parse.c"
   4019  1.1  christos     break;
   4020  1.1  christos 
   4021  1.1  christos   case 294: /* op_dp20_rm_l: disp '[' REG ']' opt_l ',' REG  */
   4022  1.1  christos #line 1027 "./config/rx-parse.y"
   4023  1.1  christos           { B4 (MEMEX, 0xa0, 0x00 + sub_op, 0x00);
   4024  1.1  christos 	  F ((yyvsp[-4].regno), 24, 4); F ((yyvsp[0].regno), 28, 4); DSP ((yyvsp[-6].exp), 14, LSIZE); }
   4025  1.1  christos #line 4026 "config/rx-parse.c"
   4026  1.1  christos     break;
   4027  1.1  christos 
   4028  1.1  christos   case 295: /* op_dp20_rm: REG ',' REG  */
   4029  1.1  christos #line 1035 "./config/rx-parse.y"
   4030  1.1  christos           { id24 (1, 0x03 + (sub_op<<2), 0x00); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   4031  1.1  christos #line 4032 "config/rx-parse.c"
   4032  1.1  christos     break;
   4033  1.1  christos 
   4034  1.1  christos   case 296: /* op_dp20_rm: disp '[' REG ']' DOT_UB ',' REG  */
   4035  1.1  christos #line 1037 "./config/rx-parse.y"
   4036  1.1  christos           { id24 (1, 0x00 + (sub_op<<2), 0x00); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); DSP ((yyvsp[-6].exp), 14, BSIZE); }
   4037  1.1  christos #line 4038 "config/rx-parse.c"
   4038  1.1  christos     break;
   4039  1.1  christos 
   4040  1.1  christos   case 297: /* op_dp20_rm: disp '[' REG ']' memex ',' REG  */
   4041  1.1  christos #line 1039 "./config/rx-parse.y"
   4042  1.1  christos           { B4 (MEMEX, 0x20 + ((yyvsp[-2].regno) << 6), 0x00 + sub_op, 0x00);
   4043  1.1  christos 	  F ((yyvsp[-4].regno), 24, 4); F ((yyvsp[0].regno), 28, 4); DSP ((yyvsp[-6].exp), 14, sizemap[(yyvsp[-2].regno)]); }
   4044  1.1  christos #line 4045 "config/rx-parse.c"
   4045  1.1  christos     break;
   4046  1.1  christos 
   4047  1.1  christos   case 298: /* op_dp20_i: '#' EXPR ',' REG  */
   4048  1.1  christos #line 1045 "./config/rx-parse.y"
   4049  1.1  christos           { id24 (2, 0x70, sub_op<<4); F ((yyvsp[0].regno), 20, 4); IMM ((yyvsp[-2].exp), 12); }
   4050  1.1  christos #line 4051 "config/rx-parse.c"
   4051  1.1  christos     break;
   4052  1.1  christos 
   4053  1.1  christos   case 303: /* op_dp20_rr: REG ',' REG  */
   4054  1.1  christos #line 1060 "./config/rx-parse.y"
   4055  1.1  christos           { id24 (1, 0x03 + (sub_op<<2), 0x00); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   4056  1.1  christos #line 4057 "config/rx-parse.c"
   4057  1.1  christos     break;
   4058  1.1  christos 
   4059  1.1  christos   case 304: /* op_dp20_rr: REG  */
   4060  1.1  christos #line 1062 "./config/rx-parse.y"
   4061  1.1  christos           { B2 (0x7e, sub_op2 << 4); F ((yyvsp[0].regno), 12, 4); }
   4062  1.1  christos #line 4063 "config/rx-parse.c"
   4063  1.1  christos     break;
   4064  1.1  christos 
   4065  1.1  christos   case 305: /* op_dp20_r: REG ',' REG  */
   4066  1.1  christos #line 1067 "./config/rx-parse.y"
   4067  1.1  christos           { id24 (1, 0x4b + (sub_op2<<2), 0x00); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   4068  1.1  christos #line 4069 "config/rx-parse.c"
   4069  1.1  christos     break;
   4070  1.1  christos 
   4071  1.1  christos   case 306: /* $@61: %empty  */
   4072  1.1  christos #line 1071 "./config/rx-parse.y"
   4073  1.1  christos           { rx_check_v2 (); }
   4074  1.1  christos #line 4075 "config/rx-parse.c"
   4075  1.1  christos     break;
   4076  1.1  christos 
   4077  1.1  christos   case 309: /* op_xchg: REG ',' REG  */
   4078  1.1  christos #line 1079 "./config/rx-parse.y"
   4079  1.1  christos           { id24 (1, 0x03 + (sub_op<<2), 0); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   4080  1.1  christos #line 4081 "config/rx-parse.c"
   4081  1.1  christos     break;
   4082  1.1  christos 
   4083  1.1  christos   case 310: /* op_xchg: disp '[' REG ']' DOT_UB ',' REG  */
   4084  1.1  christos #line 1081 "./config/rx-parse.y"
   4085  1.1  christos           { id24 (1, 0x00 + (sub_op<<2), 0); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); DSP ((yyvsp[-6].exp), 14, BSIZE); }
   4086  1.1  christos #line 4087 "config/rx-parse.c"
   4087  1.1  christos     break;
   4088  1.1  christos 
   4089  1.1  christos   case 311: /* op_xchg: disp '[' REG ']' memex ',' REG  */
   4090  1.1  christos #line 1083 "./config/rx-parse.y"
   4091  1.1  christos           { B4 (MEMEX, 0x20, 0x00 + sub_op, 0); F ((yyvsp[-2].regno), 8, 2); F ((yyvsp[-4].regno), 24, 4); F ((yyvsp[0].regno), 28, 4);
   4092  1.1  christos 	    DSP ((yyvsp[-6].exp), 14, sizemap[(yyvsp[-2].regno)]); }
   4093  1.1  christos #line 4094 "config/rx-parse.c"
   4094  1.1  christos     break;
   4095  1.1  christos 
   4096  1.1  christos   case 312: /* op_shift_rot: REG ',' REG  */
   4097  1.1  christos #line 1090 "./config/rx-parse.y"
   4098  1.1  christos           { id24 (2, 0x60 + sub_op, 0); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   4099  1.1  christos #line 4100 "config/rx-parse.c"
   4100  1.1  christos     break;
   4101  1.1  christos 
   4102  1.1  christos   case 313: /* op_shift: '#' EXPR ',' REG  */
   4103  1.1  christos #line 1094 "./config/rx-parse.y"
   4104  1.1  christos           { B2 (0x68 + (sub_op<<1), 0); FE ((yyvsp[-2].exp), 7, 5); F ((yyvsp[0].regno), 12, 4); }
   4105  1.1  christos #line 4106 "config/rx-parse.c"
   4106  1.1  christos     break;
   4107  1.1  christos 
   4108  1.1  christos   case 314: /* op_shift: '#' EXPR ',' REG ',' REG  */
   4109  1.1  christos #line 1096 "./config/rx-parse.y"
   4110  1.1  christos           { id24 (2, 0x80 + (sub_op << 5), 0); FE ((yyvsp[-4].exp), 11, 5); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   4111  1.1  christos #line 4112 "config/rx-parse.c"
   4112  1.1  christos     break;
   4113  1.1  christos 
   4114  1.1  christos   case 316: /* float3_op: '#' EXPR ',' REG  */
   4115  1.1  christos #line 1102 "./config/rx-parse.y"
   4116  1.1  christos           { rx_check_float_support (); id24 (2, 0x72, sub_op << 4); F ((yyvsp[0].regno), 20, 4); O4 ((yyvsp[-2].exp)); }
   4117  1.1  christos #line 4118 "config/rx-parse.c"
   4118  1.1  christos     break;
   4119  1.1  christos 
   4120  1.1  christos   case 317: /* float3_op: REG ',' REG  */
   4121  1.1  christos #line 1104 "./config/rx-parse.y"
   4122  1.1  christos           { rx_check_float_support (); id24 (1, 0x83 + (sub_op << 2), 0); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   4123  1.1  christos #line 4124 "config/rx-parse.c"
   4124  1.1  christos     break;
   4125  1.1  christos 
   4126  1.1  christos   case 318: /* float3_op: disp '[' REG ']' opt_l ',' REG  */
   4127  1.1  christos #line 1106 "./config/rx-parse.y"
   4128  1.1  christos           { rx_check_float_support (); id24 (1, 0x80 + (sub_op << 2), 0); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); DSP ((yyvsp[-6].exp), 14, LSIZE); }
   4129  1.1  christos #line 4130 "config/rx-parse.c"
   4130  1.1  christos     break;
   4131  1.1  christos 
   4132  1.1  christos   case 319: /* float3_op: REG ',' REG ',' REG  */
   4133  1.1  christos #line 1108 "./config/rx-parse.y"
   4134  1.1  christos           { rx_check_v2 (); id24 (4, 0x80 + (sub_op << 4), 0 ); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[-2].regno), 20, 4); F ((yyvsp[0].regno), 12, 4); }
   4135  1.1  christos #line 4136 "config/rx-parse.c"
   4136  1.1  christos     break;
   4137  1.1  christos 
   4138  1.1  christos   case 320: /* $@62: %empty  */
   4139  1.1  christos #line 1112 "./config/rx-parse.y"
   4140  1.1  christos           { rx_check_float_support (); }
   4141  1.1  christos #line 4142 "config/rx-parse.c"
   4142  1.1  christos     break;
   4143  1.1  christos 
   4144  1.1  christos   case 321: /* float2_op: $@62 '#' EXPR ',' REG  */
   4145  1.1  christos #line 1114 "./config/rx-parse.y"
   4146  1.1  christos           { id24 (2, 0x72, sub_op << 4); F ((yyvsp[0].regno), 20, 4); O4 ((yyvsp[-2].exp)); }
   4147  1.1  christos #line 4148 "config/rx-parse.c"
   4148  1.1  christos     break;
   4149  1.1  christos 
   4150  1.1  christos   case 323: /* $@63: %empty  */
   4151  1.1  christos #line 1119 "./config/rx-parse.y"
   4152  1.1  christos           { rx_check_float_support (); }
   4153  1.1  christos #line 4154 "config/rx-parse.c"
   4154  1.1  christos     break;
   4155  1.1  christos 
   4156  1.1  christos   case 324: /* float2_op_ni: $@63 REG ',' REG  */
   4157  1.1  christos #line 1121 "./config/rx-parse.y"
   4158  1.1  christos           { id24 (1, 0x83 + (sub_op << 2), 0); F ((yyvsp[-2].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); }
   4159  1.1  christos #line 4160 "config/rx-parse.c"
   4160  1.1  christos     break;
   4161  1.1  christos 
   4162  1.1  christos   case 325: /* $@64: %empty  */
   4163  1.1  christos #line 1122 "./config/rx-parse.y"
   4164  1.1  christos           { rx_check_float_support (); }
   4165  1.1  christos #line 4166 "config/rx-parse.c"
   4166  1.1  christos     break;
   4167  1.1  christos 
   4168  1.1  christos   case 326: /* float2_op_ni: $@64 disp '[' REG ']' opt_l ',' REG  */
   4169  1.1  christos #line 1124 "./config/rx-parse.y"
   4170  1.1  christos           { id24 (1, 0x80 + (sub_op << 2), 0); F ((yyvsp[-4].regno), 16, 4); F ((yyvsp[0].regno), 20, 4); DSP ((yyvsp[-6].exp), 14, LSIZE); }
   4171  1.1  christos #line 4172 "config/rx-parse.c"
   4172  1.1  christos     break;
   4173  1.1  christos 
   4174  1.1  christos   case 327: /* $@65: %empty  */
   4175  1.1  christos #line 1128 "./config/rx-parse.y"
   4176  1.1  christos           { rx_check_v2 (); }
   4177  1.1  christos #line 4178 "config/rx-parse.c"
   4178  1.1  christos     break;
   4179  1.1  christos 
   4180  1.1  christos   case 328: /* mvfa_op: $@65 '#' EXPR ',' ACC ',' REG  */
   4181  1.1  christos #line 1130 "./config/rx-parse.y"
   4182  1.1  christos           { id24 (2, 0x1e, sub_op << 4); F ((yyvsp[0].regno), 20, 4); F ((yyvsp[-2].regno), 16, 1);
   4183  1.1  christos 	    if (rx_uintop ((yyvsp[-4].exp), 4))
   4184  1.1  christos 	      {
   4185  1.1  christos 		switch (exp_val ((yyvsp[-4].exp)))
   4186  1.1  christos 		  {
   4187  1.1  christos 		  case 0:
   4188  1.1  christos 		    F (1, 15, 1);
   4189  1.1  christos 		    break;
   4190  1.1  christos 		  case 1:
   4191  1.1  christos 		    F (1, 15, 1);
   4192  1.1  christos 		    F (1, 17, 1);
   4193  1.1  christos 		    break;
   4194  1.1  christos 		  case 2:
   4195  1.1  christos 		    break;
   4196  1.1  christos 		  default:
   4197  1.1  christos 		    as_bad (_("IMM expects #0 to #2"));}
   4198  1.1  christos 	      } else
   4199  1.1  christos 	        as_bad (_("IMM expects #0 to #2"));}
   4200  1.1  christos #line 4201 "config/rx-parse.c"
   4201  1.1  christos     break;
   4202  1.1  christos 
   4203  1.1  christos   case 330: /* op_xor: REG ',' REG ',' REG  */
   4204  1.1  christos #line 1153 "./config/rx-parse.y"
   4205  1.1  christos           { rx_check_v3(); B3(0xff,0x60,0x00), F ((yyvsp[0].regno), 12, 4), F ((yyvsp[-4].regno), 16, 4), F ((yyvsp[-2].regno), 20, 4); }
   4206  1.1  christos #line 4207 "config/rx-parse.c"
   4207  1.1  christos     break;
   4208  1.1  christos 
   4209  1.1  christos   case 331: /* $@66: %empty  */
   4210  1.1  christos #line 1157 "./config/rx-parse.y"
   4211  1.1  christos           { rx_check_v3(); }
   4212  1.1  christos #line 4213 "config/rx-parse.c"
   4213  1.1  christos     break;
   4214  1.1  christos 
   4215  1.1  christos   case 332: /* op_bfield: $@66 '#' EXPR ',' '#' EXPR ',' '#' EXPR ',' REG ',' REG  */
   4216  1.1  christos #line 1159 "./config/rx-parse.y"
   4217  1.1  christos           { rx_range((yyvsp[-10].exp), 0, 31); rx_range((yyvsp[-7].exp), 0, 31); rx_range((yyvsp[-4].exp), 1, 31);
   4218  1.1  christos 	    B3(0xfc, 0x5a + (sub_op << 2), 0); F((yyvsp[-2].regno), 16, 4); F((yyvsp[0].regno), 20, 4);
   4219  1.1  christos 	  rx_bfield((yyvsp[-10].exp), (yyvsp[-7].exp), (yyvsp[-4].exp));}
   4220  1.1  christos #line 4221 "config/rx-parse.c"
   4221  1.1  christos     break;
   4222  1.1  christos 
   4223  1.1  christos   case 333: /* op_save_rstr: '#' EXPR  */
   4224  1.1  christos #line 1166 "./config/rx-parse.y"
   4225  1.1  christos           { B3(0xfd,0x76,0xe0 + (sub_op << 4)); UO1((yyvsp[0].exp)); }
   4226  1.1  christos #line 4227 "config/rx-parse.c"
   4227  1.1  christos     break;
   4228  1.1  christos 
   4229  1.1  christos   case 334: /* op_save_rstr: REG  */
   4230  1.1  christos #line 1168 "./config/rx-parse.y"
   4231  1.1  christos           { B4(0xfd,0x76,0xc0 + (sub_op << 4), 0x00); F((yyvsp[0].regno), 20, 4); }
   4232  1.1  christos #line 4233 "config/rx-parse.c"
   4233  1.1  christos     break;
   4234  1.1  christos 
   4235  1.1  christos   case 335: /* double2_op: DREG ',' DREG  */
   4236  1.1  christos #line 1173 "./config/rx-parse.y"
   4237  1.1  christos         { B4(0x76, 0x90, sub_op, sub_op2); F((yyvsp[-2].regno), 16, 4); F((yyvsp[0].regno), 24, 4);}
   4238  1.1  christos #line 4239 "config/rx-parse.c"
   4239  1.1  christos     break;
   4240  1.1  christos 
   4241  1.1  christos   case 336: /* double3_op: DREG ',' DREG ',' DREG  */
   4242  1.1  christos #line 1177 "./config/rx-parse.y"
   4243  1.1  christos         { B4(0x76, 0x90, sub_op, 0x00); F((yyvsp[-4].regno), 28, 4); F((yyvsp[-2].regno), 16,4); F((yyvsp[0].regno), 24, 4);}
   4244  1.1  christos #line 4245 "config/rx-parse.c"
   4245  1.1  christos     break;
   4246  1.1  christos 
   4247  1.1  christos   case 337: /* disp: %empty  */
   4248  1.1  christos #line 1181 "./config/rx-parse.y"
   4249  1.1  christos                { (yyval.exp) = zero_expr (); }
   4250  1.1  christos #line 4251 "config/rx-parse.c"
   4251  1.1  christos     break;
   4252  1.1  christos 
   4253  1.1  christos   case 338: /* disp: EXPR  */
   4254  1.1  christos #line 1182 "./config/rx-parse.y"
   4255  1.1  christos                { (yyval.exp) = (yyvsp[0].exp); }
   4256  1.1  christos #line 4257 "config/rx-parse.c"
   4257  1.1  christos     break;
   4258  1.1  christos 
   4259  1.1  christos   case 339: /* $@67: %empty  */
   4260  1.1  christos #line 1185 "./config/rx-parse.y"
   4261  1.1  christos           { need_flag = 1; }
   4262  1.1  christos #line 4263 "config/rx-parse.c"
   4263  1.1  christos     break;
   4264  1.1  christos 
   4265  1.1  christos   case 340: /* flag: $@67 FLAG  */
   4266  1.1  christos #line 1185 "./config/rx-parse.y"
   4267  1.1  christos                                   { need_flag = 0; (yyval.regno) = (yyvsp[0].regno); }
   4268  1.1  christos #line 4269 "config/rx-parse.c"
   4269  1.1  christos     break;
   4270  1.1  christos 
   4271  1.1  christos   case 341: /* memex: DOT_B  */
   4272  1.1  christos #line 1190 "./config/rx-parse.y"
   4273  1.1  christos                  { (yyval.regno) = 0; }
   4274  1.1  christos #line 4275 "config/rx-parse.c"
   4275  1.1  christos     break;
   4276  1.1  christos 
   4277  1.1  christos   case 342: /* memex: DOT_W  */
   4278  1.1  christos #line 1191 "./config/rx-parse.y"
   4279  1.1  christos                  { (yyval.regno) = 1; }
   4280  1.1  christos #line 4281 "config/rx-parse.c"
   4281  1.1  christos     break;
   4282  1.1  christos 
   4283  1.1  christos   case 343: /* memex: %empty  */
   4284  1.1  christos #line 1192 "./config/rx-parse.y"
   4285  1.1  christos                  { (yyval.regno) = 2; }
   4286  1.1  christos #line 4287 "config/rx-parse.c"
   4287  1.1  christos     break;
   4288  1.1  christos 
   4289  1.1  christos   case 344: /* memex: DOT_L  */
   4290  1.1  christos #line 1193 "./config/rx-parse.y"
   4291  1.1  christos                  { (yyval.regno) = 2; }
   4292  1.1  christos #line 4293 "config/rx-parse.c"
   4293  1.1  christos     break;
   4294  1.1  christos 
   4295  1.1  christos   case 345: /* memex: DOT_UW  */
   4296  1.1  christos #line 1194 "./config/rx-parse.y"
   4297  1.1  christos                  { (yyval.regno) = 3; }
   4298  1.1  christos #line 4299 "config/rx-parse.c"
   4299  1.1  christos     break;
   4300  1.1  christos 
   4301  1.1  christos   case 346: /* bwl: %empty  */
   4302  1.1  christos #line 1197 "./config/rx-parse.y"
   4303  1.1  christos                 { (yyval.regno) = LSIZE; }
   4304  1.1  christos #line 4305 "config/rx-parse.c"
   4305  1.1  christos     break;
   4306  1.1  christos 
   4307  1.1  christos   case 347: /* bwl: DOT_B  */
   4308  1.1  christos #line 1198 "./config/rx-parse.y"
   4309  1.1  christos                 { (yyval.regno) = BSIZE; }
   4310  1.1  christos #line 4311 "config/rx-parse.c"
   4311  1.1  christos     break;
   4312  1.1  christos 
   4313  1.1  christos   case 348: /* bwl: DOT_W  */
   4314  1.1  christos #line 1199 "./config/rx-parse.y"
   4315  1.1  christos                 { (yyval.regno) = WSIZE; }
   4316  1.1  christos #line 4317 "config/rx-parse.c"
   4317  1.1  christos     break;
   4318  1.1  christos 
   4319  1.1  christos   case 349: /* bwl: DOT_L  */
   4320  1.1  christos #line 1200 "./config/rx-parse.y"
   4321  1.1  christos                 { (yyval.regno) = LSIZE; }
   4322  1.1  christos #line 4323 "config/rx-parse.c"
   4323  1.1  christos     break;
   4324  1.1  christos 
   4325  1.1  christos   case 350: /* bw: %empty  */
   4326  1.1  christos #line 1203 "./config/rx-parse.y"
   4327  1.1  christos                 { (yyval.regno) = 1; }
   4328  1.1  christos #line 4329 "config/rx-parse.c"
   4329  1.1  christos     break;
   4330  1.1  christos 
   4331  1.1  christos   case 351: /* bw: DOT_B  */
   4332  1.1  christos #line 1204 "./config/rx-parse.y"
   4333  1.1  christos                 { (yyval.regno) = 0; }
   4334  1.1  christos #line 4335 "config/rx-parse.c"
   4335  1.1  christos     break;
   4336  1.1  christos 
   4337  1.1  christos   case 352: /* bw: DOT_W  */
   4338  1.1  christos #line 1205 "./config/rx-parse.y"
   4339  1.1  christos                 { (yyval.regno) = 1; }
   4340  1.1  christos #line 4341 "config/rx-parse.c"
   4341  1.1  christos     break;
   4342  1.1  christos 
   4343  1.1  christos   case 353: /* opt_l: %empty  */
   4344  1.1  christos #line 1208 "./config/rx-parse.y"
   4345  1.1  christos                 {}
   4346  1.1  christos #line 4347 "config/rx-parse.c"
   4347  1.1  christos     break;
   4348  1.1  christos 
   4349  1.1  christos   case 354: /* opt_l: DOT_L  */
   4350  1.1  christos #line 1209 "./config/rx-parse.y"
   4351  1.1  christos                 {}
   4352  1.1  christos #line 4353 "config/rx-parse.c"
   4353  1.1  christos     break;
   4354  1.1  christos 
   4355  1.1  christos   case 355: /* opt_b: %empty  */
   4356  1.1  christos #line 1212 "./config/rx-parse.y"
   4357  1.1  christos                 {}
   4358  1.1  christos #line 4359 "config/rx-parse.c"
   4359  1.1  christos     break;
   4360  1.1  christos 
   4361  1.1  christos   case 356: /* opt_b: DOT_B  */
   4362  1.1  christos #line 1213 "./config/rx-parse.y"
   4363  1.1  christos                 {}
   4364  1.1  christos #line 4365 "config/rx-parse.c"
   4365  1.1  christos     break;
   4366  1.1  christos 
   4367  1.1  christos 
   4368  1.1  christos #line 4369 "config/rx-parse.c"
   4369  1.1  christos 
   4370  1.1  christos       default: break;
   4371  1.1  christos     }
   4372  1.1  christos   /* User semantic actions sometimes alter yychar, and that requires
   4373  1.1  christos      that yytoken be updated with the new translation.  We take the
   4374  1.1  christos      approach of translating immediately before every use of yytoken.
   4375  1.1  christos      One alternative is translating here after every semantic action,
   4376  1.1  christos      but that translation would be missed if the semantic action invokes
   4377  1.1  christos      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
   4378  1.1  christos      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
   4379  1.1  christos      incorrect destructor might then be invoked immediately.  In the
   4380  1.1  christos      case of YYERROR or YYBACKUP, subsequent parser actions might lead
   4381  1.1  christos      to an incorrect destructor call or verbose syntax error message
   4382  1.1  christos      before the lookahead is translated.  */
   4383  1.1  christos   YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
   4384  1.1  christos 
   4385  1.1  christos   YYPOPSTACK (yylen);
   4386  1.1  christos   yylen = 0;
   4387  1.1  christos 
   4388  1.1  christos   *++yyvsp = yyval;
   4389  1.1  christos 
   4390  1.1  christos   /* Now 'shift' the result of the reduction.  Determine what state
   4391  1.1  christos      that goes to, based on the state we popped back to and the rule
   4392  1.1  christos      number reduced by.  */
   4393  1.1  christos   {
   4394  1.1  christos     const int yylhs = yyr1[yyn] - YYNTOKENS;
   4395  1.1  christos     const int yyi = yypgoto[yylhs] + *yyssp;
   4396  1.1  christos     yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
   4397  1.1  christos                ? yytable[yyi]
   4398  1.1  christos                : yydefgoto[yylhs]);
   4399  1.1  christos   }
   4400  1.1  christos 
   4401  1.1  christos   goto yynewstate;
   4402  1.1  christos 
   4403  1.1  christos 
   4404  1.1  christos /*--------------------------------------.
   4405  1.1  christos | yyerrlab -- here on detecting error.  |
   4406  1.1  christos `--------------------------------------*/
   4407  1.1  christos yyerrlab:
   4408  1.1  christos   /* Make sure we have latest lookahead translation.  See comments at
   4409  1.1  christos      user semantic actions for why this is necessary.  */
   4410  1.1  christos   yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
   4411  1.1  christos   /* If not already recovering from an error, report this error.  */
   4412  1.1  christos   if (!yyerrstatus)
   4413  1.1  christos     {
   4414  1.1  christos       ++yynerrs;
   4415  1.1  christos       yyerror (YY_("syntax error"));
   4416  1.1  christos     }
   4417  1.1  christos 
   4418  1.1  christos   if (yyerrstatus == 3)
   4419  1.1  christos     {
   4420  1.1  christos       /* If just tried and failed to reuse lookahead token after an
   4421  1.1  christos          error, discard it.  */
   4422  1.1  christos 
   4423  1.1  christos       if (yychar <= YYEOF)
   4424  1.1  christos         {
   4425  1.1  christos           /* Return failure if at end of input.  */
   4426  1.1  christos           if (yychar == YYEOF)
   4427  1.1  christos             YYABORT;
   4428  1.1  christos         }
   4429  1.1  christos       else
   4430  1.1  christos         {
   4431  1.1  christos           yydestruct ("Error: discarding",
   4432  1.1  christos                       yytoken, &yylval);
   4433  1.1  christos           yychar = YYEMPTY;
   4434  1.1  christos         }
   4435  1.1  christos     }
   4436  1.1  christos 
   4437  1.1  christos   /* Else will try to reuse lookahead token after shifting the error
   4438  1.1  christos      token.  */
   4439  1.1  christos   goto yyerrlab1;
   4440  1.1  christos 
   4441  1.1  christos 
   4442  1.1  christos /*---------------------------------------------------.
   4443  1.1  christos | yyerrorlab -- error raised explicitly by YYERROR.  |
   4444  1.1  christos `---------------------------------------------------*/
   4445  1.1  christos yyerrorlab:
   4446  1.1  christos   /* Pacify compilers when the user code never invokes YYERROR and the
   4447  1.1  christos      label yyerrorlab therefore never appears in user code.  */
   4448  1.1  christos   if (0)
   4449  1.1  christos     YYERROR;
   4450  1.1  christos   ++yynerrs;
   4451  1.1  christos 
   4452  1.1  christos   /* Do not reclaim the symbols of the rule whose action triggered
   4453  1.1  christos      this YYERROR.  */
   4454  1.1  christos   YYPOPSTACK (yylen);
   4455  1.1  christos   yylen = 0;
   4456  1.1  christos   YY_STACK_PRINT (yyss, yyssp);
   4457  1.1  christos   yystate = *yyssp;
   4458  1.1  christos   goto yyerrlab1;
   4459  1.1  christos 
   4460  1.1  christos 
   4461  1.1  christos /*-------------------------------------------------------------.
   4462  1.1  christos | yyerrlab1 -- common code for both syntax error and YYERROR.  |
   4463  1.1  christos `-------------------------------------------------------------*/
   4464  1.1  christos yyerrlab1:
   4465  1.1  christos   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
   4466  1.1  christos 
   4467  1.1  christos   /* Pop stack until we find a state that shifts the error token.  */
   4468  1.1  christos   for (;;)
   4469  1.1  christos     {
   4470  1.1  christos       yyn = yypact[yystate];
   4471  1.1  christos       if (!yypact_value_is_default (yyn))
   4472  1.1  christos         {
   4473  1.1  christos           yyn += YYSYMBOL_YYerror;
   4474  1.1  christos           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
   4475  1.1  christos             {
   4476  1.1  christos               yyn = yytable[yyn];
   4477  1.1  christos               if (0 < yyn)
   4478  1.1  christos                 break;
   4479  1.1  christos             }
   4480  1.1  christos         }
   4481  1.1  christos 
   4482  1.1  christos       /* Pop the current state because it cannot handle the error token.  */
   4483  1.1  christos       if (yyssp == yyss)
   4484  1.1  christos         YYABORT;
   4485  1.1  christos 
   4486  1.1  christos 
   4487  1.1  christos       yydestruct ("Error: popping",
   4488  1.1  christos                   YY_ACCESSING_SYMBOL (yystate), yyvsp);
   4489  1.1  christos       YYPOPSTACK (1);
   4490  1.1  christos       yystate = *yyssp;
   4491  1.1  christos       YY_STACK_PRINT (yyss, yyssp);
   4492  1.1  christos     }
   4493  1.1  christos 
   4494  1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   4495  1.1  christos   *++yyvsp = yylval;
   4496  1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_END
   4497  1.1  christos 
   4498  1.1  christos 
   4499  1.1  christos   /* Shift the error token.  */
   4500  1.1  christos   YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
   4501  1.1  christos 
   4502  1.1  christos   yystate = yyn;
   4503  1.1  christos   goto yynewstate;
   4504  1.1  christos 
   4505  1.1  christos 
   4506  1.1  christos /*-------------------------------------.
   4507  1.1  christos | yyacceptlab -- YYACCEPT comes here.  |
   4508  1.1  christos `-------------------------------------*/
   4509  1.1  christos yyacceptlab:
   4510  1.1  christos   yyresult = 0;
   4511  1.1  christos   goto yyreturnlab;
   4512  1.1  christos 
   4513  1.1  christos 
   4514  1.1  christos /*-----------------------------------.
   4515  1.1  christos | yyabortlab -- YYABORT comes here.  |
   4516  1.1  christos `-----------------------------------*/
   4517  1.1  christos yyabortlab:
   4518  1.1  christos   yyresult = 1;
   4519  1.1  christos   goto yyreturnlab;
   4520  1.1  christos 
   4521  1.1  christos 
   4522  1.1  christos /*-----------------------------------------------------------.
   4523  1.1  christos | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
   4524  1.1  christos `-----------------------------------------------------------*/
   4525  1.1  christos yyexhaustedlab:
   4526  1.1  christos   yyerror (YY_("memory exhausted"));
   4527  1.1  christos   yyresult = 2;
   4528  1.1  christos   goto yyreturnlab;
   4529  1.1  christos 
   4530  1.1  christos 
   4531  1.1  christos /*----------------------------------------------------------.
   4532  1.1  christos | yyreturnlab -- parsing is finished, clean up and return.  |
   4533  1.1  christos `----------------------------------------------------------*/
   4534  1.1  christos yyreturnlab:
   4535  1.1  christos   if (yychar != YYEMPTY)
   4536  1.1  christos     {
   4537  1.1  christos       /* Make sure we have latest lookahead translation.  See comments at
   4538  1.1  christos          user semantic actions for why this is necessary.  */
   4539  1.1  christos       yytoken = YYTRANSLATE (yychar);
   4540  1.1  christos       yydestruct ("Cleanup: discarding lookahead",
   4541  1.1  christos                   yytoken, &yylval);
   4542  1.1  christos     }
   4543  1.1  christos   /* Do not reclaim the symbols of the rule whose action triggered
   4544  1.1  christos      this YYABORT or YYACCEPT.  */
   4545  1.1  christos   YYPOPSTACK (yylen);
   4546  1.1  christos   YY_STACK_PRINT (yyss, yyssp);
   4547  1.1  christos   while (yyssp != yyss)
   4548  1.1  christos     {
   4549  1.1  christos       yydestruct ("Cleanup: popping",
   4550  1.1  christos                   YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
   4551  1.1  christos       YYPOPSTACK (1);
   4552  1.1  christos     }
   4553  1.1  christos #ifndef yyoverflow
   4554  1.1  christos   if (yyss != yyssa)
   4555  1.1  christos     YYSTACK_FREE (yyss);
   4556  1.1  christos #endif
   4557  1.1  christos 
   4558  1.1  christos   return yyresult;
   4559  1.1  christos }
   4560  1.1  christos 
   4561  1.1  christos #line 1216 "./config/rx-parse.y"
   4562  1.1  christos 
   4563  1.1  christos /* ====================================================================== */
   4564  1.1  christos 
   4565  1.1  christos static struct
   4566  1.1  christos {
   4567  1.1  christos   const char * string;
   4568  1.1  christos   int          token;
   4569  1.1  christos   int          val;
   4570  1.1  christos }
   4571  1.1  christos token_table[] =
   4572  1.1  christos {
   4573  1.1  christos   { "r0", REG, 0 },
   4574  1.1  christos   { "r1", REG, 1 },
   4575  1.1  christos   { "r2", REG, 2 },
   4576  1.1  christos   { "r3", REG, 3 },
   4577  1.1  christos   { "r4", REG, 4 },
   4578  1.1  christos   { "r5", REG, 5 },
   4579  1.1  christos   { "r6", REG, 6 },
   4580  1.1  christos   { "r7", REG, 7 },
   4581  1.1  christos   { "r8", REG, 8 },
   4582  1.1  christos   { "r9", REG, 9 },
   4583  1.1  christos   { "r10", REG, 10 },
   4584  1.1  christos   { "r11", REG, 11 },
   4585  1.1  christos   { "r12", REG, 12 },
   4586  1.1  christos   { "r13", REG, 13 },
   4587  1.1  christos   { "r14", REG, 14 },
   4588  1.1  christos   { "r15", REG, 15 },
   4589  1.1  christos 
   4590  1.1  christos   { "psw", CREG, 0 },
   4591  1.1  christos   { "pc", CREG, 1 },
   4592  1.1  christos   { "usp", CREG, 2 },
   4593  1.1  christos   { "fpsw", CREG, 3 },
   4594  1.1  christos   /* reserved */
   4595  1.1  christos   /* reserved */
   4596  1.1  christos   /* reserved */
   4597  1.1  christos   { "wr", CREG, 7 },
   4598  1.1  christos 
   4599  1.1  christos   { "bpsw", CREG, 8 },
   4600  1.1  christos   { "bpc", CREG, 9 },
   4601  1.1  christos   { "isp", CREG, 10 },
   4602  1.1  christos   { "fintv", CREG, 11 },
   4603  1.1  christos   { "intb", CREG, 12 },
   4604  1.1  christos   { "extb", CREG, 13 },
   4605  1.1  christos 
   4606  1.1  christos   { "pbp", CREG, 16 },
   4607  1.1  christos   { "pben", CREG, 17 },
   4608  1.1  christos 
   4609  1.1  christos   { "bbpsw", CREG, 24 },
   4610  1.1  christos   { "bbpc", CREG, 25 },
   4611  1.1  christos 
   4612  1.1  christos   { "dr0", DREG, 0 },
   4613  1.1  christos   { "dr1", DREG, 1 },
   4614  1.1  christos   { "dr2", DREG, 2 },
   4615  1.1  christos   { "dr3", DREG, 3 },
   4616  1.1  christos   { "dr4", DREG, 4 },
   4617  1.1  christos   { "dr5", DREG, 5 },
   4618  1.1  christos   { "dr6", DREG, 6 },
   4619  1.1  christos   { "dr7", DREG, 7 },
   4620  1.1  christos   { "dr8", DREG, 8 },
   4621  1.1  christos   { "dr9", DREG, 9 },
   4622  1.1  christos   { "dr10", DREG, 10 },
   4623  1.1  christos   { "dr11", DREG, 11 },
   4624  1.1  christos   { "dr12", DREG, 12 },
   4625  1.1  christos   { "dr13", DREG, 13 },
   4626  1.1  christos   { "dr14", DREG, 14 },
   4627  1.1  christos   { "dr15", DREG, 15 },
   4628  1.1  christos 
   4629  1.1  christos   { "drh0", DREGH, 0 },
   4630  1.1  christos   { "drh1", DREGH, 1 },
   4631  1.1  christos   { "drh2", DREGH, 2 },
   4632  1.1  christos   { "drh3", DREGH, 3 },
   4633  1.1  christos   { "drh4", DREGH, 4 },
   4634  1.1  christos   { "drh5", DREGH, 5 },
   4635  1.1  christos   { "drh6", DREGH, 6 },
   4636  1.1  christos   { "drh7", DREGH, 7 },
   4637  1.1  christos   { "drh8", DREGH, 8 },
   4638  1.1  christos   { "drh9", DREGH, 9 },
   4639  1.1  christos   { "drh10", DREGH, 10 },
   4640  1.1  christos   { "drh11", DREGH, 11 },
   4641  1.1  christos   { "drh12", DREGH, 12 },
   4642  1.1  christos   { "drh13", DREGH, 13 },
   4643  1.1  christos   { "drh14", DREGH, 14 },
   4644  1.1  christos   { "drh15", DREGH, 15 },
   4645  1.1  christos 
   4646  1.1  christos   { "drl0", DREGL, 0 },
   4647  1.1  christos   { "drl1", DREGL, 1 },
   4648  1.1  christos   { "drl2", DREGL, 2 },
   4649  1.1  christos   { "drl3", DREGL, 3 },
   4650  1.1  christos   { "drl4", DREGL, 4 },
   4651  1.1  christos   { "drl5", DREGL, 5 },
   4652  1.1  christos   { "drl6", DREGL, 6 },
   4653  1.1  christos   { "drl7", DREGL, 7 },
   4654  1.1  christos   { "drl8", DREGL, 8 },
   4655  1.1  christos   { "drl9", DREGL, 9 },
   4656  1.1  christos   { "drl10", DREGL, 10 },
   4657  1.1  christos   { "drl11", DREGL, 11 },
   4658  1.1  christos   { "drl12", DREGL, 12 },
   4659  1.1  christos   { "drl13", DREGL, 13 },
   4660  1.1  christos   { "drl14", DREGL, 14 },
   4661  1.1  christos   { "drl15", DREGL, 15 },
   4662  1.1  christos 
   4663  1.1  christos   { "DPSW", DCREG, 0 },
   4664  1.1  christos   { "DCMR", DCREG, 1 },
   4665  1.1  christos   { "DECNT", DCREG, 2 },
   4666  1.1  christos   { "DEPC", DCREG, 3 },
   4667  1.1  christos   { "DCR0", DCREG, 0 },
   4668  1.1  christos   { "DCR1", DCREG, 1 },
   4669  1.1  christos   { "DCR2", DCREG, 2 },
   4670  1.1  christos   { "DCR3", DCREG, 3 },
   4671  1.1  christos 
   4672  1.1  christos   { ".s", DOT_S, 0 },
   4673  1.1  christos   { ".b", DOT_B, 0 },
   4674  1.1  christos   { ".w", DOT_W, 0 },
   4675  1.1  christos   { ".l", DOT_L, 0 },
   4676  1.1  christos   { ".a", DOT_A , 0},
   4677  1.1  christos   { ".ub", DOT_UB, 0 },
   4678  1.1  christos   { ".uw", DOT_UW , 0},
   4679  1.1  christos   { ".d", DOT_D , 0},
   4680  1.1  christos 
   4681  1.1  christos   { "c", FLAG, 0 },
   4682  1.1  christos   { "z", FLAG, 1 },
   4683  1.1  christos   { "s", FLAG, 2 },
   4684  1.1  christos   { "o", FLAG, 3 },
   4685  1.1  christos   { "i", FLAG, 8 },
   4686  1.1  christos   { "u", FLAG, 9 },
   4687  1.1  christos 
   4688  1.1  christos   { "a0", ACC, 0 },
   4689  1.1  christos   { "a1", ACC, 1 },
   4690  1.1  christos 
   4691  1.1  christos #define OPC(x) { #x, x, IS_OPCODE }
   4692  1.1  christos   OPC(ABS),
   4693  1.1  christos   OPC(ADC),
   4694  1.1  christos   OPC(ADD),
   4695  1.1  christos   { "and", AND_, IS_OPCODE },
   4696  1.1  christos   OPC(BCLR),
   4697  1.1  christos   OPC(BCND),
   4698  1.1  christos   OPC(BFMOV),
   4699  1.1  christos   OPC(BFMOVZ),
   4700  1.1  christos   OPC(BMCND),
   4701  1.1  christos   OPC(BNOT),
   4702  1.1  christos   OPC(BRA),
   4703  1.1  christos   OPC(BRK),
   4704  1.1  christos   OPC(BSET),
   4705  1.1  christos   OPC(BSR),
   4706  1.1  christos   OPC(BTST),
   4707  1.1  christos   OPC(CLRPSW),
   4708  1.1  christos   OPC(CMP),
   4709  1.1  christos   OPC(DABS),
   4710  1.1  christos   OPC(DADD),
   4711  1.1  christos   OPC(DBT),
   4712  1.1  christos   OPC(DDIV),
   4713  1.1  christos   OPC(DIV),
   4714  1.1  christos   OPC(DIVU),
   4715  1.1  christos   OPC(DMOV),
   4716  1.1  christos   OPC(DMUL),
   4717  1.1  christos   OPC(DNEG),
   4718  1.1  christos   OPC(DPOPM),
   4719  1.1  christos   OPC(DPUSHM),
   4720  1.1  christos   OPC(DROUND),
   4721  1.1  christos   OPC(DSQRT),
   4722  1.1  christos   OPC(DSUB),
   4723  1.1  christos   OPC(DTOF),
   4724  1.1  christos   OPC(DTOI),
   4725  1.1  christos   OPC(DTOU),
   4726  1.1  christos   OPC(EDIV),
   4727  1.1  christos   OPC(EDIVU),
   4728  1.1  christos   OPC(EMACA),
   4729  1.1  christos   OPC(EMSBA),
   4730  1.1  christos   OPC(EMUL),
   4731  1.1  christos   OPC(EMULA),
   4732  1.1  christos   OPC(EMULU),
   4733  1.1  christos   OPC(FADD),
   4734  1.1  christos   OPC(FCMP),
   4735  1.1  christos   OPC(FDIV),
   4736  1.1  christos   OPC(FMUL),
   4737  1.1  christos   OPC(FREIT),
   4738  1.1  christos   OPC(FSQRT),
   4739  1.1  christos   OPC(FTOD),
   4740  1.1  christos   OPC(FTOU),
   4741  1.1  christos   OPC(FSUB),
   4742  1.1  christos   OPC(FTOI),
   4743  1.1  christos   OPC(INT),
   4744  1.1  christos   OPC(ITOD),
   4745  1.1  christos   OPC(ITOF),
   4746  1.1  christos   OPC(JMP),
   4747  1.1  christos   OPC(JSR),
   4748  1.1  christos   OPC(MVFACGU),
   4749  1.1  christos   OPC(MVFACHI),
   4750  1.1  christos   OPC(MVFACMI),
   4751  1.1  christos   OPC(MVFACLO),
   4752  1.1  christos   OPC(MVFC),
   4753  1.1  christos   OPC(MVFDC),
   4754  1.1  christos   OPC(MVFDR),
   4755  1.1  christos   OPC(MVTDC),
   4756  1.1  christos   OPC(MVTACGU),
   4757  1.1  christos   OPC(MVTACHI),
   4758  1.1  christos   OPC(MVTACLO),
   4759  1.1  christos   OPC(MVTC),
   4760  1.1  christos   OPC(MVTIPL),
   4761  1.1  christos   OPC(MACHI),
   4762  1.1  christos   OPC(MACLO),
   4763  1.1  christos   OPC(MACLH),
   4764  1.1  christos   OPC(MAX),
   4765  1.1  christos   OPC(MIN),
   4766  1.1  christos   OPC(MOV),
   4767  1.1  christos   OPC(MOVCO),
   4768  1.1  christos   OPC(MOVLI),
   4769  1.1  christos   OPC(MOVU),
   4770  1.1  christos   OPC(MSBHI),
   4771  1.1  christos   OPC(MSBLH),
   4772  1.1  christos   OPC(MSBLO),
   4773  1.1  christos   OPC(MUL),
   4774  1.1  christos   OPC(MULHI),
   4775  1.1  christos   OPC(MULLH),
   4776  1.1  christos   OPC(MULLO),
   4777  1.1  christos   OPC(MULU),
   4778  1.1  christos   OPC(NEG),
   4779  1.1  christos   OPC(NOP),
   4780  1.1  christos   OPC(NOT),
   4781  1.1  christos   OPC(OR),
   4782  1.1  christos   OPC(POP),
   4783  1.1  christos   OPC(POPC),
   4784  1.1  christos   OPC(POPM),
   4785  1.1  christos   OPC(PUSH),
   4786  1.1  christos   OPC(PUSHA),
   4787  1.1  christos   OPC(PUSHC),
   4788  1.1  christos   OPC(PUSHM),
   4789  1.1  christos   OPC(RACL),
   4790  1.1  christos   OPC(RACW),
   4791  1.1  christos   OPC(RDACL),
   4792  1.1  christos   OPC(RDACW),
   4793  1.1  christos   OPC(REIT),
   4794  1.1  christos   OPC(REVL),
   4795  1.1  christos   OPC(REVW),
   4796  1.1  christos   OPC(RMPA),
   4797  1.1  christos   OPC(ROLC),
   4798  1.1  christos   OPC(RORC),
   4799  1.1  christos   OPC(ROTL),
   4800  1.1  christos   OPC(ROTR),
   4801  1.1  christos   OPC(ROUND),
   4802  1.1  christos   OPC(RSTR),
   4803  1.1  christos   OPC(RTE),
   4804  1.1  christos   OPC(RTFI),
   4805  1.1  christos   OPC(RTS),
   4806  1.1  christos   OPC(RTSD),
   4807  1.1  christos   OPC(SAT),
   4808  1.1  christos   OPC(SATR),
   4809  1.1  christos   OPC(SAVE),
   4810  1.1  christos   OPC(SBB),
   4811  1.1  christos   OPC(SCCND),
   4812  1.1  christos   OPC(SCMPU),
   4813  1.1  christos   OPC(SETPSW),
   4814  1.1  christos   OPC(SHAR),
   4815  1.1  christos   OPC(SHLL),
   4816  1.1  christos   OPC(SHLR),
   4817  1.1  christos   OPC(SMOVB),
   4818  1.1  christos   OPC(SMOVF),
   4819  1.1  christos   OPC(SMOVU),
   4820  1.1  christos   OPC(SSTR),
   4821  1.1  christos   OPC(STNZ),
   4822  1.1  christos   OPC(STOP),
   4823  1.1  christos   OPC(STZ),
   4824  1.1  christos   OPC(SUB),
   4825  1.1  christos   OPC(SUNTIL),
   4826  1.1  christos   OPC(SWHILE),
   4827  1.1  christos   OPC(TST),
   4828  1.1  christos   OPC(UTOD),
   4829  1.1  christos   OPC(UTOF),
   4830  1.1  christos   OPC(WAIT),
   4831  1.1  christos   OPC(XCHG),
   4832  1.1  christos   OPC(XOR),
   4833  1.1  christos };
   4834  1.1  christos 
   4835  1.1  christos #define NUM_TOKENS (sizeof (token_table) / sizeof (token_table[0]))
   4836  1.1  christos 
   4837  1.1  christos static struct
   4838  1.1  christos {
   4839  1.1  christos   const char * string;
   4840  1.1  christos   int    token;
   4841  1.1  christos }
   4842  1.1  christos condition_opcode_table[] =
   4843  1.1  christos {
   4844  1.1  christos   { "b", BCND },
   4845  1.1  christos   { "bm", BMCND },
   4846  1.1  christos   { "sc", SCCND },
   4847  1.1  christos };
   4848  1.1  christos 
   4849  1.1  christos #define NUM_CONDITION_OPCODES (sizeof (condition_opcode_table) / sizeof (condition_opcode_table[0]))
   4850  1.1  christos 
   4851  1.1  christos struct condition_symbol
   4852  1.1  christos {
   4853  1.1  christos   const char * string;
   4854  1.1  christos   int    val;
   4855  1.1  christos };
   4856  1.1  christos 
   4857  1.1  christos static struct condition_symbol condition_table[] =
   4858  1.1  christos {
   4859  1.1  christos   { "z", 0 },
   4860  1.1  christos   { "eq", 0 },
   4861  1.1  christos   { "geu",  2 },
   4862  1.1  christos   { "c",  2 },
   4863  1.1  christos   { "gtu", 4 },
   4864  1.1  christos   { "pz", 6 },
   4865  1.1  christos   { "ge", 8 },
   4866  1.1  christos   { "gt", 10 },
   4867  1.1  christos   { "o",  12},
   4868  1.1  christos   /* always = 14 */
   4869  1.1  christos   { "nz", 1 },
   4870  1.1  christos   { "ne", 1 },
   4871  1.1  christos   { "ltu", 3 },
   4872  1.1  christos   { "nc", 3 },
   4873  1.1  christos   { "leu", 5 },
   4874  1.1  christos   { "n", 7 },
   4875  1.1  christos   { "lt", 9 },
   4876  1.1  christos   { "le", 11 },
   4877  1.1  christos   { "no", 13 },
   4878  1.1  christos   /* never = 15 */
   4879  1.1  christos };
   4880  1.1  christos 
   4881  1.1  christos static struct condition_symbol double_condition_table[] =
   4882  1.1  christos {
   4883  1.1  christos   { "un", 1 },
   4884  1.1  christos   { "eq", 2 },
   4885  1.1  christos   { "lt", 4 },
   4886  1.1  christos   { "le", 6 },
   4887  1.1  christos };
   4888  1.1  christos 
   4889  1.1  christos #define NUM_CONDITIONS (sizeof (condition_table) / sizeof (condition_table[0]))
   4890  1.1  christos #define NUM_DOUBLE_CONDITIONS (sizeof (double_condition_table) / sizeof (double_condition_table[0]))
   4891  1.1  christos 
   4892  1.1  christos void
   4893  1.1  christos rx_lex_init (char * beginning, char * ending)
   4894  1.1  christos {
   4895  1.1  christos   rx_init_start = beginning;
   4896  1.1  christos   rx_lex_start = beginning;
   4897  1.1  christos   rx_lex_end = ending;
   4898  1.1  christos   rx_in_brackets = 0;
   4899  1.1  christos   rx_last_token = 0;
   4900  1.1  christos 
   4901  1.1  christos   setbuf (stdout, 0);
   4902  1.1  christos }
   4903  1.1  christos 
   4904  1.1  christos static int
   4905  1.1  christos check_condition (const char * base, struct condition_symbol *t, unsigned int num)
   4906  1.1  christos {
   4907  1.1  christos   char * cp;
   4908  1.1  christos   unsigned int i;
   4909  1.1  christos 
   4910  1.1  christos   if ((unsigned) (rx_lex_end - rx_lex_start) < strlen (base) + 1)
   4911  1.1  christos     return 0;
   4912  1.1  christos   if (memcmp (rx_lex_start, base, strlen (base)))
   4913  1.1  christos     return 0;
   4914  1.1  christos   cp = rx_lex_start + strlen (base);
   4915  1.1  christos   for (i = 0; i < num; i ++)
   4916  1.1  christos     {
   4917  1.1  christos       if (strcasecmp (cp, t[i].string) == 0)
   4918  1.1  christos 	{
   4919  1.1  christos 	  rx_lval.regno = t[i].val;
   4920  1.1  christos 	  return 1;
   4921  1.1  christos 	}
   4922  1.1  christos     }
   4923  1.1  christos   return 0;
   4924  1.1  christos }
   4925  1.1  christos 
   4926  1.1  christos static int
   4927  1.1  christos rx_lex (void)
   4928  1.1  christos {
   4929  1.1  christos   unsigned int ci;
   4930  1.1  christos   char * save_input_pointer;
   4931  1.1  christos 
   4932  1.1  christos   while (ISSPACE (*rx_lex_start)
   4933  1.1  christos 	 && rx_lex_start != rx_lex_end)
   4934  1.1  christos     rx_lex_start ++;
   4935  1.1  christos 
   4936  1.1  christos   rx_last_exp_start = rx_lex_start;
   4937  1.1  christos 
   4938  1.1  christos   if (rx_lex_start == rx_lex_end)
   4939  1.1  christos     return 0;
   4940  1.1  christos 
   4941  1.1  christos   if (ISALPHA (*rx_lex_start)
   4942  1.1  christos       || (rx_pid_register != -1 && memcmp (rx_lex_start, "%pidreg", 7) == 0)
   4943  1.1  christos       || (rx_gp_register != -1 && memcmp (rx_lex_start, "%gpreg", 6) == 0)
   4944  1.1  christos       || (*rx_lex_start == '.' && ISALPHA (rx_lex_start[1])))
   4945  1.1  christos     {
   4946  1.1  christos       unsigned int i;
   4947  1.1  christos       char * e;
   4948  1.1  christos       char save;
   4949  1.1  christos 
   4950  1.1  christos       for (e = rx_lex_start + 1;
   4951  1.1  christos 	   e < rx_lex_end && ISALNUM (*e);
   4952  1.1  christos 	   e ++)
   4953  1.1  christos 	;
   4954  1.1  christos       save = *e;
   4955  1.1  christos       *e = 0;
   4956  1.1  christos 
   4957  1.1  christos       if (strcmp (rx_lex_start, "%pidreg") == 0)
   4958  1.1  christos 	{
   4959  1.1  christos 	  {
   4960  1.1  christos 	    rx_lval.regno = rx_pid_register;
   4961  1.1  christos 	    *e = save;
   4962  1.1  christos 	    rx_lex_start = e;
   4963  1.1  christos 	    rx_last_token = REG;
   4964  1.1  christos 	    return REG;
   4965  1.1  christos 	  }
   4966  1.1  christos 	}
   4967  1.1  christos 
   4968  1.1  christos       if (strcmp (rx_lex_start, "%gpreg") == 0)
   4969  1.1  christos 	{
   4970  1.1  christos 	  {
   4971  1.1  christos 	    rx_lval.regno = rx_gp_register;
   4972  1.1  christos 	    *e = save;
   4973  1.1  christos 	    rx_lex_start = e;
   4974  1.1  christos 	    rx_last_token = REG;
   4975  1.1  christos 	    return REG;
   4976  1.1  christos 	  }
   4977  1.1  christos 	}
   4978  1.1  christos 
   4979  1.1  christos       if (rx_last_token == 0)
   4980  1.1  christos 	{
   4981  1.1  christos 	  for (ci = 0; ci < NUM_CONDITION_OPCODES; ci ++)
   4982  1.1  christos 	    if (check_condition (condition_opcode_table[ci].string,
   4983  1.1  christos 				 condition_table, NUM_CONDITIONS))
   4984  1.1  christos 	      {
   4985  1.1  christos 		*e = save;
   4986  1.1  christos 		rx_lex_start = e;
   4987  1.1  christos 		rx_last_token = condition_opcode_table[ci].token;
   4988  1.1  christos 		return condition_opcode_table[ci].token;
   4989  1.1  christos 	      }
   4990  1.1  christos 	  if  (check_condition ("dcmp", double_condition_table,
   4991  1.1  christos 				NUM_DOUBLE_CONDITIONS))
   4992  1.1  christos 	    {
   4993  1.1  christos 	      *e = save;
   4994  1.1  christos 	      rx_lex_start = e;
   4995  1.1  christos 	      rx_last_token = DCMP;
   4996  1.1  christos 	      return DCMP;
   4997  1.1  christos 	    }
   4998  1.1  christos 	}
   4999  1.1  christos 
   5000  1.1  christos       for (i = 0; i < NUM_TOKENS; i++)
   5001  1.1  christos 	if (strcasecmp (rx_lex_start, token_table[i].string) == 0
   5002  1.1  christos 	    && !(token_table[i].val == IS_OPCODE && rx_last_token != 0)
   5003  1.1  christos 	    && !(token_table[i].token == FLAG && !need_flag))
   5004  1.1  christos 	  {
   5005  1.1  christos 	    rx_lval.regno = token_table[i].val;
   5006  1.1  christos 	    *e = save;
   5007  1.1  christos 	    rx_lex_start = e;
   5008  1.1  christos 	    rx_last_token = token_table[i].token;
   5009  1.1  christos 	    return token_table[i].token;
   5010  1.1  christos 	  }
   5011  1.1  christos       *e = save;
   5012  1.1  christos     }
   5013  1.1  christos 
   5014  1.1  christos   if (rx_last_token == 0)
   5015  1.1  christos     {
   5016  1.1  christos       rx_last_token = UNKNOWN_OPCODE;
   5017  1.1  christos       return UNKNOWN_OPCODE;
   5018  1.1  christos     }
   5019  1.1  christos 
   5020  1.1  christos   if (rx_last_token == UNKNOWN_OPCODE)
   5021  1.1  christos     return 0;
   5022  1.1  christos 
   5023  1.1  christos   if (*rx_lex_start == '[')
   5024  1.1  christos     rx_in_brackets = 1;
   5025  1.1  christos   if (*rx_lex_start == ']')
   5026  1.1  christos     rx_in_brackets = 0;
   5027  1.1  christos 
   5028  1.1  christos   if (rx_in_brackets
   5029  1.1  christos       || rx_last_token == REG || rx_last_token == DREG || rx_last_token == DCREG
   5030  1.1  christos       || strchr ("[],#", *rx_lex_start))
   5031  1.1  christos     {
   5032  1.1  christos       rx_last_token = *rx_lex_start;
   5033  1.1  christos       return *rx_lex_start ++;
   5034  1.1  christos     }
   5035  1.1  christos 
   5036  1.1  christos   save_input_pointer = input_line_pointer;
   5037  1.1  christos   input_line_pointer = rx_lex_start;
   5038  1.1  christos   rx_lval.exp.X_md = 0;
   5039  1.1  christos   expression (&rx_lval.exp);
   5040  1.1  christos 
   5041  1.1  christos   /* We parse but ignore any :<size> modifier on expressions.  */
   5042  1.1  christos   if (*input_line_pointer == ':')
   5043  1.1  christos     {
   5044  1.1  christos       char *cp;
   5045  1.1  christos 
   5046  1.1  christos       for (cp  = input_line_pointer + 1; *cp && cp < rx_lex_end; cp++)
   5047  1.1  christos 	if (!ISDIGIT (*cp))
   5048  1.1  christos 	  break;
   5049  1.1  christos       if (cp > input_line_pointer+1)
   5050  1.1  christos 	input_line_pointer = cp;
   5051  1.1  christos     }
   5052  1.1  christos 
   5053  1.1  christos   rx_lex_start = input_line_pointer;
   5054  1.1  christos   input_line_pointer = save_input_pointer;
   5055  1.1  christos   rx_last_token = EXPR;
   5056  1.1  christos   return EXPR;
   5057  1.1  christos }
   5058  1.1  christos 
   5059  1.1  christos int
   5060  1.1  christos rx_error (const char * str)
   5061  1.1  christos {
   5062  1.1  christos   int len;
   5063  1.1  christos 
   5064  1.1  christos   len = rx_last_exp_start - rx_init_start;
   5065  1.1  christos 
   5066  1.1  christos   as_bad ("%s", rx_init_start);
   5067  1.1  christos   as_bad ("%*s^ %s", len, "", str);
   5068  1.1  christos   return 0;
   5069  1.1  christos }
   5070  1.1  christos 
   5071  1.1  christos static int
   5072  1.1  christos rx_intop (expressionS exp, int nbits, int opbits)
   5073  1.1  christos {
   5074  1.1  christos   valueT v;
   5075  1.1  christos   valueT mask, msb;
   5076  1.1  christos 
   5077  1.1  christos   if (exp.X_op == O_big)
   5078  1.1  christos     {
   5079  1.1  christos       if (nbits == 32)
   5080  1.1  christos 	return 1;
   5081  1.1  christos       if (exp.X_add_number == -1)
   5082  1.1  christos 	return 0;
   5083  1.1  christos     }
   5084  1.1  christos   else if (exp.X_op != O_constant)
   5085  1.1  christos     return 0;
   5086  1.1  christos   v = exp.X_add_number;
   5087  1.1  christos 
   5088  1.1  christos   msb = (valueT) 1 << (opbits - 1);
   5089  1.1  christos   mask = (msb << 1) - 1;
   5090  1.1  christos 
   5091  1.1  christos   if ((v & msb) && ! (v & ~mask))
   5092  1.1  christos     v -= mask + 1;
   5093  1.1  christos 
   5094  1.1  christos   switch (nbits)
   5095  1.1  christos     {
   5096  1.1  christos     case 4:
   5097  1.1  christos       return v + 0x8 <= 0x7 + 0x8;
   5098  1.1  christos     case 5:
   5099  1.1  christos       return v + 0x10 <= 0xf + 0x10;
   5100  1.1  christos     case 8:
   5101  1.1  christos       return v + 0x80 <= 0x7f + 0x80;
   5102  1.1  christos     case 16:
   5103  1.1  christos       return v + 0x8000 <= 0x7fff + 0x8000;
   5104  1.1  christos     case 24:
   5105  1.1  christos       return v + 0x800000 <= 0x7fffff + 0x800000;
   5106  1.1  christos     case 32:
   5107  1.1  christos       return 1;
   5108  1.1  christos     default:
   5109  1.1  christos       printf ("rx_intop passed %d\n", nbits);
   5110  1.1  christos       abort ();
   5111  1.1  christos     }
   5112  1.1  christos   return 1;
   5113  1.1  christos }
   5114  1.1  christos 
   5115  1.1  christos static int
   5116  1.1  christos rx_uintop (expressionS exp, int nbits)
   5117  1.1  christos {
   5118  1.1  christos   valueT v;
   5119  1.1  christos 
   5120  1.1  christos   if (exp.X_op != O_constant)
   5121  1.1  christos     return 0;
   5122  1.1  christos   v = exp.X_add_number;
   5123  1.1  christos 
   5124  1.1  christos   switch (nbits)
   5125  1.1  christos     {
   5126  1.1  christos     case 4:
   5127  1.1  christos       return v <= 0xf;
   5128  1.1  christos     case 8:
   5129  1.1  christos       return v <= 0xff;
   5130  1.1  christos     case 16:
   5131  1.1  christos       return v <= 0xffff;
   5132  1.1  christos     case 24:
   5133  1.1  christos       return v <= 0xffffff;
   5134  1.1  christos     default:
   5135  1.1  christos       printf ("rx_uintop passed %d\n", nbits);
   5136  1.1  christos       abort ();
   5137  1.1  christos     }
   5138  1.1  christos   return 1;
   5139  1.1  christos }
   5140  1.1  christos 
   5141  1.1  christos static int
   5142  1.1  christos rx_disp3op (expressionS exp)
   5143  1.1  christos {
   5144  1.1  christos   valueT v;
   5145  1.1  christos 
   5146  1.1  christos   if (exp.X_op != O_constant)
   5147  1.1  christos     return 0;
   5148  1.1  christos   v = exp.X_add_number;
   5149  1.1  christos   if (v < 3 || v > 10)
   5150  1.1  christos     return 0;
   5151  1.1  christos   return 1;
   5152  1.1  christos }
   5153  1.1  christos 
   5154  1.1  christos static int
   5155  1.1  christos rx_disp5op (expressionS * exp, int msize)
   5156  1.1  christos {
   5157  1.1  christos   valueT v;
   5158  1.1  christos 
   5159  1.1  christos   if (exp->X_op != O_constant)
   5160  1.1  christos     return 0;
   5161  1.1  christos   v = exp->X_add_number;
   5162  1.1  christos 
   5163  1.1  christos   switch (msize)
   5164  1.1  christos     {
   5165  1.1  christos     case BSIZE:
   5166  1.1  christos       if (v <= 31)
   5167  1.1  christos 	return 1;
   5168  1.1  christos       break;
   5169  1.1  christos     case WSIZE:
   5170  1.1  christos       if (v & 1)
   5171  1.1  christos 	return 0;
   5172  1.1  christos       if (v <= 63)
   5173  1.1  christos 	{
   5174  1.1  christos 	  exp->X_add_number >>= 1;
   5175  1.1  christos 	  return 1;
   5176  1.1  christos 	}
   5177  1.1  christos       break;
   5178  1.1  christos     case LSIZE:
   5179  1.1  christos       if (v & 3)
   5180  1.1  christos 	return 0;
   5181  1.1  christos       if (v <= 127)
   5182  1.1  christos 	{
   5183  1.1  christos 	  exp->X_add_number >>= 2;
   5184  1.1  christos 	  return 1;
   5185  1.1  christos 	}
   5186  1.1  christos       break;
   5187  1.1  christos     }
   5188  1.1  christos   return 0;
   5189  1.1  christos }
   5190  1.1  christos 
   5191  1.1  christos /* Just like the above, but allows a zero displacement.  */
   5192  1.1  christos 
   5193  1.1  christos static int
   5194  1.1  christos rx_disp5op0 (expressionS * exp, int msize)
   5195  1.1  christos {
   5196  1.1  christos   if (exp->X_op != O_constant)
   5197  1.1  christos     return 0;
   5198  1.1  christos   if (exp->X_add_number == 0)
   5199  1.1  christos     return 1;
   5200  1.1  christos   return rx_disp5op (exp, msize);
   5201  1.1  christos }
   5202  1.1  christos 
   5203  1.1  christos static int
   5204  1.1  christos exp_val (expressionS exp)
   5205  1.1  christos {
   5206  1.1  christos   if (exp.X_op != O_constant)
   5207  1.1  christos   {
   5208  1.1  christos     rx_error (_("constant expected"));
   5209  1.1  christos     return 0;
   5210  1.1  christos   }
   5211  1.1  christos   return exp.X_add_number;
   5212  1.1  christos }
   5213  1.1  christos 
   5214  1.1  christos static expressionS
   5215  1.1  christos zero_expr (void)
   5216  1.1  christos {
   5217  1.1  christos   /* Static, so program load sets it to all zeros, which is what we want.  */
   5218  1.1  christos   static expressionS zero;
   5219  1.1  christos   zero.X_op = O_constant;
   5220  1.1  christos   return zero;
   5221  1.1  christos }
   5222  1.1  christos 
   5223  1.1  christos static int
   5224  1.1  christos immediate (expressionS exp, int type, int pos, int bits)
   5225  1.1  christos {
   5226  1.1  christos   /* We will emit constants ourselves here, so negate them.  */
   5227  1.1  christos   if (type == RXREL_NEGATIVE && exp.X_op == O_constant)
   5228  1.1  christos     exp.X_add_number = - exp.X_add_number;
   5229  1.1  christos   if (type == RXREL_NEGATIVE_BORROW)
   5230  1.1  christos     {
   5231  1.1  christos       if (exp.X_op == O_constant)
   5232  1.1  christos 	exp.X_add_number = - exp.X_add_number - 1;
   5233  1.1  christos       else
   5234  1.1  christos 	rx_error (_("sbb cannot use symbolic immediates"));
   5235  1.1  christos     }
   5236  1.1  christos 
   5237  1.1  christos   if (pos >= 0 && rx_intop (exp, 8, bits))
   5238  1.1  christos     {
   5239  1.1  christos       rx_op (exp, 1, type);
   5240  1.1  christos       return 1;
   5241  1.1  christos     }
   5242  1.1  christos   else if (pos >= 0 && rx_intop (exp, 16, bits))
   5243  1.1  christos     {
   5244  1.1  christos       rx_op (exp, 2, type);
   5245  1.1  christos       return 2;
   5246  1.1  christos     }
   5247  1.1  christos   else if (pos >= 0 && rx_uintop (exp, 16) && bits == 16)
   5248  1.1  christos     {
   5249  1.1  christos       rx_op (exp, 2, type);
   5250  1.1  christos       return 2;
   5251  1.1  christos     }
   5252  1.1  christos   else if (pos >= 0 && rx_intop (exp, 24, bits))
   5253  1.1  christos     {
   5254  1.1  christos       rx_op (exp, 3, type);
   5255  1.1  christos       return 3;
   5256  1.1  christos     }
   5257  1.1  christos   else if (pos < 0 || rx_intop (exp, 32, bits))
   5258  1.1  christos     {
   5259  1.1  christos       rx_op (exp, 4, type);
   5260  1.1  christos       return 0;
   5261  1.1  christos     }
   5262  1.1  christos   else if (type == RXREL_SIGNED && pos >= 0)
   5263  1.1  christos     {
   5264  1.1  christos       /* This is a symbolic immediate, we will relax it later.  */
   5265  1.1  christos       rx_relax (RX_RELAX_IMM, pos);
   5266  1.1  christos       rx_op (exp, linkrelax ? 4 : 1, type);
   5267  1.1  christos       return 1;
   5268  1.1  christos     }
   5269  1.1  christos   else
   5270  1.1  christos     {
   5271  1.1  christos       /* Let the linker deal with it.  */
   5272  1.1  christos       rx_op (exp, 4, type);
   5273  1.1  christos       return 0;
   5274  1.1  christos     }
   5275  1.1  christos }
   5276  1.1  christos 
   5277  1.1  christos static int
   5278  1.1  christos displacement (expressionS exp, int msize)
   5279  1.1  christos {
   5280  1.1  christos   valueT val;
   5281  1.1  christos   int vshift = 0;
   5282  1.1  christos 
   5283  1.1  christos   if (exp.X_op == O_symbol
   5284  1.1  christos       && exp.X_md)
   5285  1.1  christos     {
   5286  1.1  christos       switch (exp.X_md)
   5287  1.1  christos 	{
   5288  1.1  christos 	case BFD_RELOC_GPREL16:
   5289  1.1  christos 	  switch (msize)
   5290  1.1  christos 	    {
   5291  1.1  christos 	    case BSIZE:
   5292  1.1  christos 	      exp.X_md = BFD_RELOC_RX_GPRELB;
   5293  1.1  christos 	      break;
   5294  1.1  christos 	    case WSIZE:
   5295  1.1  christos 	      exp.X_md = BFD_RELOC_RX_GPRELW;
   5296  1.1  christos 	      break;
   5297  1.1  christos 	    case LSIZE:
   5298  1.1  christos 	      exp.X_md = BFD_RELOC_RX_GPRELL;
   5299  1.1  christos 	      break;
   5300  1.1  christos 	    }
   5301  1.1  christos 	  O2 (exp);
   5302  1.1  christos 	  return 2;
   5303  1.1  christos 	}
   5304  1.1  christos     }
   5305  1.1  christos 
   5306  1.1  christos   if (exp.X_op == O_subtract)
   5307  1.1  christos     {
   5308  1.1  christos       exp.X_md = BFD_RELOC_RX_DIFF;
   5309  1.1  christos       O2 (exp);
   5310  1.1  christos       return 2;
   5311  1.1  christos     }
   5312  1.1  christos 
   5313  1.1  christos   if (exp.X_op != O_constant)
   5314  1.1  christos     {
   5315  1.1  christos       rx_error (_("displacements must be constants"));
   5316  1.1  christos       return -1;
   5317  1.1  christos     }
   5318  1.1  christos   val = exp.X_add_number;
   5319  1.1  christos 
   5320  1.1  christos   if (val == 0)
   5321  1.1  christos     return 0;
   5322  1.1  christos 
   5323  1.1  christos   switch (msize)
   5324  1.1  christos     {
   5325  1.1  christos     case BSIZE:
   5326  1.1  christos       break;
   5327  1.1  christos     case WSIZE:
   5328  1.1  christos       if (val & 1)
   5329  1.1  christos 	rx_error (_("word displacement not word-aligned"));
   5330  1.1  christos       vshift = 1;
   5331  1.1  christos       break;
   5332  1.1  christos     case LSIZE:
   5333  1.1  christos       if (val & 3)
   5334  1.1  christos 	rx_error (_("long displacement not long-aligned"));
   5335  1.1  christos       vshift = 2;
   5336  1.1  christos       break;
   5337  1.1  christos     case DSIZE:
   5338  1.1  christos       if (val & 7)
   5339  1.1  christos 	rx_error (_("double displacement not double-aligned"));
   5340  1.1  christos       vshift = 3;
   5341  1.1  christos       break;
   5342  1.1  christos     default:
   5343  1.1  christos       as_bad (_("displacement with unknown size (internal bug?)\n"));
   5344  1.1  christos       break;
   5345  1.1  christos     }
   5346  1.1  christos 
   5347  1.1  christos   val >>= vshift;
   5348  1.1  christos   exp.X_add_number = val;
   5349  1.1  christos 
   5350  1.1  christos   if (val <= 255 )
   5351  1.1  christos     {
   5352  1.1  christos       O1 (exp);
   5353  1.1  christos       return 1;
   5354  1.1  christos     }
   5355  1.1  christos 
   5356  1.1  christos   if (val <= 65535)
   5357  1.1  christos     {
   5358  1.1  christos       O2 (exp);
   5359  1.1  christos       return 2;
   5360  1.1  christos     }
   5361  1.1  christos   if ((offsetT) val < 0)
   5362  1.1  christos     rx_error (_("negative displacements not allowed"));
   5363  1.1  christos   else
   5364  1.1  christos     rx_error (_("displacement too large"));
   5365  1.1  christos   return -1;
   5366  1.1  christos }
   5367  1.1  christos 
   5368  1.1  christos static void
   5369  1.1  christos rtsd_immediate (expressionS exp)
   5370  1.1  christos {
   5371  1.1  christos   valueT val;
   5372  1.1  christos 
   5373  1.1  christos   if (exp.X_op != O_constant)
   5374  1.1  christos     {
   5375  1.1  christos       rx_error (_("rtsd size must be constant"));
   5376  1.1  christos       return;
   5377  1.1  christos     }
   5378  1.1  christos   val = exp.X_add_number;
   5379  1.1  christos   if (val & 3)
   5380  1.1  christos     rx_error (_("rtsd size must be multiple of 4"));
   5381  1.1  christos 
   5382  1.1  christos   if (val > 1020)
   5383  1.1  christos     rx_error (_("rtsd size must be 0..1020"));
   5384  1.1  christos 
   5385  1.1  christos   val >>= 2;
   5386  1.1  christos   exp.X_add_number = val;
   5387  1.1  christos   O1 (exp);
   5388  1.1  christos }
   5389  1.1  christos 
   5390  1.1  christos static void
   5391  1.1  christos rx_range (expressionS exp, int minv, int maxv)
   5392  1.1  christos {
   5393  1.1  christos   offsetT val;
   5394  1.1  christos 
   5395  1.1  christos   if (exp.X_op != O_constant)
   5396  1.1  christos     return;
   5397  1.1  christos 
   5398  1.1  christos   val = exp.X_add_number;
   5399  1.1  christos   if (val < minv || val > maxv)
   5400  1.1  christos     as_warn (_("Value %ld out of range %d..%d"), (long) val, minv, maxv);
   5401  1.1  christos }
   5402  1.1  christos 
   5403  1.1  christos static void
   5404  1.1  christos rx_check_float_support (void)
   5405  1.1  christos {
   5406  1.1  christos   if (rx_cpu == RX100 || rx_cpu == RX200)
   5407  1.1  christos     rx_error (_("target CPU type does not support floating point instructions"));
   5408  1.1  christos }
   5409  1.1  christos 
   5410  1.1  christos static void
   5411  1.1  christos rx_check_v2 (void)
   5412  1.1  christos {
   5413  1.1  christos   if (rx_cpu < RXV2)
   5414  1.1  christos     rx_error (_("target CPU type does not support v2 instructions"));
   5415  1.1  christos }
   5416  1.1  christos 
   5417  1.1  christos static void
   5418  1.1  christos rx_check_v3 (void)
   5419  1.1  christos {
   5420  1.1  christos   if (rx_cpu < RXV3)
   5421  1.1  christos     rx_error (_("target CPU type does not support v3 instructions"));
   5422  1.1  christos }
   5423  1.1  christos 
   5424  1.1  christos static void
   5425  1.1  christos rx_check_dfpu (void)
   5426  1.1  christos {
   5427  1.1  christos   if (rx_cpu != RXV3FPU)
   5428  1.1  christos     rx_error (_("target CPU type does not support double float instructions"));
   5429  1.1  christos }
   5430