Home | History | Annotate | Line # | Download | only in config
      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         rl78_parse
     69      1.1  christos #define yylex           rl78_lex
     70      1.1  christos #define yyerror         rl78_error
     71      1.1  christos #define yydebug         rl78_debug
     72      1.1  christos #define yynerrs         rl78_nerrs
     73      1.1  christos #define yylval          rl78_lval
     74      1.1  christos #define yychar          rl78_char
     75      1.1  christos 
     76      1.1  christos /* First part of user prologue.  */
     77      1.1  christos #line 20 "./config/rl78-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 "rl78-defs.h"
     83      1.1  christos 
     84      1.1  christos static int rl78_lex (void);
     85      1.1  christos 
     86      1.1  christos /* Ok, here are the rules for using these macros...
     87      1.1  christos 
     88      1.1  christos    B*() is used to specify the base opcode bytes.  Fields to be filled
     89      1.1  christos         in later, leave zero.  Call this first.
     90      1.1  christos 
     91      1.1  christos    F() and FE() are used to fill in fields within the base opcode bytes.  You MUST
     92      1.1  christos         call B*() before any F() or FE().
     93      1.1  christos 
     94      1.1  christos    [UN]*O*(), PC*() appends operands to the end of the opcode.  You
     95      1.1  christos         must call P() and B*() before any of these, so that the fixups
     96      1.1  christos         have the right byte location.
     97      1.1  christos         O = signed, UO = unsigned, NO = negated, PC = pcrel
     98      1.1  christos 
     99      1.1  christos    IMM() adds an immediate and fills in the field for it.
    100      1.1  christos    NIMM() same, but negates the immediate.
    101      1.1  christos    NBIMM() same, but negates the immediate, for sbb.
    102      1.1  christos    DSP() adds a displacement, and fills in the field for it.
    103      1.1  christos 
    104      1.1  christos    Note that order is significant for the O, IMM, and DSP macros, as
    105      1.1  christos    they append their data to the operand buffer in the order that you
    106      1.1  christos    call them.
    107      1.1  christos 
    108      1.1  christos    Use "disp" for displacements whenever possible; this handles the
    109      1.1  christos    "0" case properly.  */
    110      1.1  christos 
    111      1.1  christos #define B1(b1)             rl78_base1 (b1)
    112      1.1  christos #define B2(b1, b2)         rl78_base2 (b1, b2)
    113      1.1  christos #define B3(b1, b2, b3)     rl78_base3 (b1, b2, b3)
    114      1.1  christos #define B4(b1, b2, b3, b4) rl78_base4 (b1, b2, b3, b4)
    115      1.1  christos 
    116      1.1  christos /* POS is bits from the MSB of the first byte to the LSB of the last byte.  */
    117      1.1  christos #define F(val,pos,sz)      rl78_field (val, pos, sz)
    118      1.1  christos #define FE(exp,pos,sz)	   rl78_field (exp_val (exp), pos, sz);
    119      1.1  christos 
    120      1.1  christos #define O1(v)              rl78_op (v, 1, RL78REL_DATA)
    121      1.1  christos #define O2(v)              rl78_op (v, 2, RL78REL_DATA)
    122      1.1  christos #define O3(v)              rl78_op (v, 3, RL78REL_DATA)
    123      1.1  christos #define O4(v)              rl78_op (v, 4, RL78REL_DATA)
    124      1.1  christos 
    125      1.1  christos #define PC1(v)             rl78_op (v, 1, RL78REL_PCREL)
    126      1.1  christos #define PC2(v)             rl78_op (v, 2, RL78REL_PCREL)
    127      1.1  christos #define PC3(v)             rl78_op (v, 3, RL78REL_PCREL)
    128      1.1  christos 
    129      1.1  christos #define IMM(v,pos)	   F (immediate (v, RL78REL_SIGNED, pos), pos, 2); \
    130      1.1  christos 			   if (v.X_op != O_constant && v.X_op != O_big) rl78_linkrelax_imm (pos)
    131      1.1  christos #define NIMM(v,pos)	   F (immediate (v, RL78REL_NEGATIVE, pos), pos, 2)
    132      1.1  christos #define NBIMM(v,pos)	   F (immediate (v, RL78REL_NEGATIVE_BORROW, pos), pos, 2)
    133      1.1  christos #define DSP(v,pos,msz)	   if (!v.X_md) rl78_relax (RL78_RELAX_DISP, pos); \
    134      1.1  christos 			   else rl78_linkrelax_dsp (pos); \
    135      1.1  christos 			   F (displacement (v, msz), pos, 2)
    136      1.1  christos 
    137      1.1  christos #define id24(a,b2,b3)	   B3 (0xfb+a, b2, b3)
    138      1.1  christos 
    139      1.1  christos static int         expr_is_sfr (expressionS);
    140      1.1  christos static int         expr_is_saddr (expressionS);
    141      1.1  christos static int         expr_is_word_aligned (expressionS);
    142      1.1  christos static int         exp_val (expressionS exp);
    143      1.1  christos 
    144      1.1  christos static int    need_flag = 0;
    145      1.1  christos static int    rl78_in_brackets = 0;
    146      1.1  christos static int    rl78_last_token = 0;
    147      1.1  christos static char * rl78_init_start;
    148      1.1  christos static char * rl78_last_exp_start = 0;
    149      1.1  christos static int    rl78_bit_insn = 0;
    150      1.1  christos 
    151      1.1  christos #define YYDEBUG 1
    152      1.1  christos #define YYERROR_VERBOSE 1
    153      1.1  christos 
    154      1.1  christos #define NOT_SADDR  rl78_error ("Expression not 0xFFE20 to 0xFFF1F")
    155      1.1  christos #define SA(e) if (!expr_is_saddr (e)) NOT_SADDR;
    156      1.1  christos 
    157      1.1  christos #define SET_SA(e) e.X_md = BFD_RELOC_RL78_SADDR
    158      1.1  christos 
    159      1.1  christos #define NOT_SFR  rl78_error ("Expression not 0xFFF00 to 0xFFFFF")
    160      1.1  christos #define SFR(e) if (!expr_is_sfr (e)) NOT_SFR;
    161      1.1  christos 
    162      1.1  christos #define NOT_SFR_OR_SADDR  rl78_error ("Expression not 0xFFE20 to 0xFFFFF")
    163      1.1  christos 
    164      1.1  christos #define NOT_ES if (rl78_has_prefix()) rl78_error ("ES: prefix not allowed here");
    165      1.1  christos 
    166      1.1  christos #define WA(x) if (!expr_is_word_aligned (x)) rl78_error ("Expression not word-aligned");
    167      1.1  christos 
    168      1.1  christos #define ISA_G10(s) if (!rl78_isa_g10()) rl78_error (s " is only supported on the G10")
    169      1.1  christos #define ISA_G13(s) if (!rl78_isa_g13()) rl78_error (s " is only supported on the G13")
    170      1.1  christos #define ISA_G14(s) if (!rl78_isa_g14()) rl78_error (s " is only supported on the G14")
    171      1.1  christos 
    172      1.1  christos static void check_expr_is_bit_index (expressionS);
    173      1.1  christos #define Bit(e) check_expr_is_bit_index (e);
    174      1.1  christos 
    175      1.1  christos /* Returns TRUE (non-zero) if the expression is a constant in the
    176      1.1  christos    given range.  */
    177      1.1  christos static int check_expr_is_const (expressionS, int vmin, int vmax);
    178      1.1  christos 
    179      1.1  christos /* Convert a "regb" value to a "reg_xbc" value.  Error if other
    180      1.1  christos    registers are passed.  Needed to avoid reduce-reduce conflicts.  */
    181      1.1  christos static int
    182      1.1  christos reg_xbc (int reg)
    183      1.1  christos {
    184      1.1  christos   switch (reg)
    185      1.1  christos     {
    186      1.1  christos       case 0: /* X */
    187      1.1  christos         return 0x10;
    188      1.1  christos       case 3: /* B */
    189      1.1  christos         return 0x20;
    190      1.1  christos       case 2: /* C */
    191      1.1  christos         return 0x30;
    192      1.1  christos       default:
    193      1.1  christos         rl78_error ("Only X, B, or C allowed here");
    194      1.1  christos 	return 0;
    195      1.1  christos     }
    196      1.1  christos }
    197      1.1  christos 
    198      1.1  christos 
    199      1.1  christos #line 200 "config/rl78-parse.c"
    200      1.1  christos 
    201      1.1  christos # ifndef YY_CAST
    202      1.1  christos #  ifdef __cplusplus
    203      1.1  christos #   define YY_CAST(Type, Val) static_cast<Type> (Val)
    204      1.1  christos #   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
    205      1.1  christos #  else
    206      1.1  christos #   define YY_CAST(Type, Val) ((Type) (Val))
    207      1.1  christos #   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
    208      1.1  christos #  endif
    209      1.1  christos # endif
    210      1.1  christos # ifndef YY_NULLPTR
    211      1.1  christos #  if defined __cplusplus
    212      1.1  christos #   if 201103L <= __cplusplus
    213      1.1  christos #    define YY_NULLPTR nullptr
    214      1.1  christos #   else
    215      1.1  christos #    define YY_NULLPTR 0
    216      1.1  christos #   endif
    217      1.1  christos #  else
    218      1.1  christos #   define YY_NULLPTR ((void*)0)
    219      1.1  christos #  endif
    220      1.1  christos # endif
    221      1.1  christos 
    222      1.1  christos /* Use api.header.include to #include this header
    223      1.1  christos    instead of duplicating it here.  */
    224      1.1  christos #ifndef YY_RL78_CONFIG_RL_PARSE_H_INCLUDED
    225      1.1  christos # define YY_RL78_CONFIG_RL_PARSE_H_INCLUDED
    226      1.1  christos /* Debug traces.  */
    227      1.1  christos #ifndef YYDEBUG
    228      1.1  christos # define YYDEBUG 0
    229      1.1  christos #endif
    230      1.1  christos #if YYDEBUG
    231      1.1  christos extern int rl78_debug;
    232      1.1  christos #endif
    233      1.1  christos 
    234      1.1  christos /* Token kinds.  */
    235      1.1  christos #ifndef YYTOKENTYPE
    236      1.1  christos # define YYTOKENTYPE
    237      1.1  christos   enum yytokentype
    238      1.1  christos   {
    239      1.1  christos     YYEMPTY = -2,
    240      1.1  christos     YYEOF = 0,                     /* "end of file"  */
    241      1.1  christos     YYerror = 256,                 /* error  */
    242      1.1  christos     YYUNDEF = 257,                 /* "invalid token"  */
    243      1.1  christos     A = 258,                       /* A  */
    244      1.1  christos     X = 259,                       /* X  */
    245      1.1  christos     B = 260,                       /* B  */
    246      1.1  christos     C = 261,                       /* C  */
    247      1.1  christos     D = 262,                       /* D  */
    248      1.1  christos     E = 263,                       /* E  */
    249      1.1  christos     H = 264,                       /* H  */
    250      1.1  christos     L = 265,                       /* L  */
    251      1.1  christos     AX = 266,                      /* AX  */
    252      1.1  christos     BC = 267,                      /* BC  */
    253      1.1  christos     DE = 268,                      /* DE  */
    254      1.1  christos     HL = 269,                      /* HL  */
    255      1.1  christos     SPL = 270,                     /* SPL  */
    256      1.1  christos     SPH = 271,                     /* SPH  */
    257      1.1  christos     PSW = 272,                     /* PSW  */
    258      1.1  christos     CS = 273,                      /* CS  */
    259      1.1  christos     ES = 274,                      /* ES  */
    260      1.1  christos     PMC = 275,                     /* PMC  */
    261      1.1  christos     MEM = 276,                     /* MEM  */
    262      1.1  christos     FLAG = 277,                    /* FLAG  */
    263      1.1  christos     SP = 278,                      /* SP  */
    264      1.1  christos     CY = 279,                      /* CY  */
    265      1.1  christos     RB0 = 280,                     /* RB0  */
    266      1.1  christos     RB1 = 281,                     /* RB1  */
    267      1.1  christos     RB2 = 282,                     /* RB2  */
    268      1.1  christos     RB3 = 283,                     /* RB3  */
    269      1.1  christos     EXPR = 284,                    /* EXPR  */
    270      1.1  christos     UNKNOWN_OPCODE = 285,          /* UNKNOWN_OPCODE  */
    271      1.1  christos     IS_OPCODE = 286,               /* IS_OPCODE  */
    272      1.1  christos     DOT_S = 287,                   /* DOT_S  */
    273      1.1  christos     DOT_B = 288,                   /* DOT_B  */
    274      1.1  christos     DOT_W = 289,                   /* DOT_W  */
    275      1.1  christos     DOT_L = 290,                   /* DOT_L  */
    276      1.1  christos     DOT_A = 291,                   /* DOT_A  */
    277      1.1  christos     DOT_UB = 292,                  /* DOT_UB  */
    278      1.1  christos     DOT_UW = 293,                  /* DOT_UW  */
    279      1.1  christos     ADD = 294,                     /* ADD  */
    280      1.1  christos     ADDC = 295,                    /* ADDC  */
    281      1.1  christos     ADDW = 296,                    /* ADDW  */
    282      1.1  christos     AND_ = 297,                    /* AND_  */
    283      1.1  christos     AND1 = 298,                    /* AND1  */
    284      1.1  christos     BF = 299,                      /* BF  */
    285      1.1  christos     BH = 300,                      /* BH  */
    286      1.1  christos     BNC = 301,                     /* BNC  */
    287      1.1  christos     BNH = 302,                     /* BNH  */
    288      1.1  christos     BNZ = 303,                     /* BNZ  */
    289      1.1  christos     BR = 304,                      /* BR  */
    290      1.1  christos     BRK = 305,                     /* BRK  */
    291      1.1  christos     BRK1 = 306,                    /* BRK1  */
    292      1.1  christos     BT = 307,                      /* BT  */
    293      1.1  christos     BTCLR = 308,                   /* BTCLR  */
    294      1.1  christos     BZ = 309,                      /* BZ  */
    295      1.1  christos     CALL = 310,                    /* CALL  */
    296      1.1  christos     CALLT = 311,                   /* CALLT  */
    297      1.1  christos     CLR1 = 312,                    /* CLR1  */
    298      1.1  christos     CLRB = 313,                    /* CLRB  */
    299      1.1  christos     CLRW = 314,                    /* CLRW  */
    300      1.1  christos     CMP = 315,                     /* CMP  */
    301      1.1  christos     CMP0 = 316,                    /* CMP0  */
    302      1.1  christos     CMPS = 317,                    /* CMPS  */
    303      1.1  christos     CMPW = 318,                    /* CMPW  */
    304      1.1  christos     DEC = 319,                     /* DEC  */
    305      1.1  christos     DECW = 320,                    /* DECW  */
    306      1.1  christos     DI = 321,                      /* DI  */
    307      1.1  christos     DIVHU = 322,                   /* DIVHU  */
    308      1.1  christos     DIVWU = 323,                   /* DIVWU  */
    309      1.1  christos     EI = 324,                      /* EI  */
    310      1.1  christos     HALT = 325,                    /* HALT  */
    311      1.1  christos     INC = 326,                     /* INC  */
    312      1.1  christos     INCW = 327,                    /* INCW  */
    313      1.1  christos     MACH = 328,                    /* MACH  */
    314      1.1  christos     MACHU = 329,                   /* MACHU  */
    315      1.1  christos     MOV = 330,                     /* MOV  */
    316      1.1  christos     MOV1 = 331,                    /* MOV1  */
    317      1.1  christos     MOVS = 332,                    /* MOVS  */
    318      1.1  christos     MOVW = 333,                    /* MOVW  */
    319      1.1  christos     MULH = 334,                    /* MULH  */
    320      1.1  christos     MULHU = 335,                   /* MULHU  */
    321      1.1  christos     MULU = 336,                    /* MULU  */
    322      1.1  christos     NOP = 337,                     /* NOP  */
    323      1.1  christos     NOT1 = 338,                    /* NOT1  */
    324      1.1  christos     ONEB = 339,                    /* ONEB  */
    325      1.1  christos     ONEW = 340,                    /* ONEW  */
    326      1.1  christos     OR = 341,                      /* OR  */
    327      1.1  christos     OR1 = 342,                     /* OR1  */
    328      1.1  christos     POP = 343,                     /* POP  */
    329      1.1  christos     PUSH = 344,                    /* PUSH  */
    330      1.1  christos     RET = 345,                     /* RET  */
    331      1.1  christos     RETI = 346,                    /* RETI  */
    332      1.1  christos     RETB = 347,                    /* RETB  */
    333      1.1  christos     ROL = 348,                     /* ROL  */
    334      1.1  christos     ROLC = 349,                    /* ROLC  */
    335      1.1  christos     ROLWC = 350,                   /* ROLWC  */
    336      1.1  christos     ROR = 351,                     /* ROR  */
    337      1.1  christos     RORC = 352,                    /* RORC  */
    338      1.1  christos     SAR = 353,                     /* SAR  */
    339      1.1  christos     SARW = 354,                    /* SARW  */
    340      1.1  christos     SEL = 355,                     /* SEL  */
    341      1.1  christos     SET1 = 356,                    /* SET1  */
    342      1.1  christos     SHL = 357,                     /* SHL  */
    343      1.1  christos     SHLW = 358,                    /* SHLW  */
    344      1.1  christos     SHR = 359,                     /* SHR  */
    345      1.1  christos     SHRW = 360,                    /* SHRW  */
    346      1.1  christos     SKC = 361,                     /* SKC  */
    347      1.1  christos     SKH = 362,                     /* SKH  */
    348      1.1  christos     SKNC = 363,                    /* SKNC  */
    349      1.1  christos     SKNH = 364,                    /* SKNH  */
    350      1.1  christos     SKNZ = 365,                    /* SKNZ  */
    351      1.1  christos     SKZ = 366,                     /* SKZ  */
    352      1.1  christos     STOP = 367,                    /* STOP  */
    353      1.1  christos     SUB = 368,                     /* SUB  */
    354      1.1  christos     SUBC = 369,                    /* SUBC  */
    355      1.1  christos     SUBW = 370,                    /* SUBW  */
    356      1.1  christos     XCH = 371,                     /* XCH  */
    357      1.1  christos     XCHW = 372,                    /* XCHW  */
    358      1.1  christos     XOR = 373,                     /* XOR  */
    359      1.1  christos     XOR1 = 374                     /* XOR1  */
    360      1.1  christos   };
    361      1.1  christos   typedef enum yytokentype yytoken_kind_t;
    362      1.1  christos #endif
    363      1.1  christos /* Token kinds.  */
    364      1.1  christos #define YYEMPTY -2
    365      1.1  christos #define YYEOF 0
    366      1.1  christos #define YYerror 256
    367      1.1  christos #define YYUNDEF 257
    368      1.1  christos #define A 258
    369      1.1  christos #define X 259
    370      1.1  christos #define B 260
    371      1.1  christos #define C 261
    372      1.1  christos #define D 262
    373      1.1  christos #define E 263
    374      1.1  christos #define H 264
    375      1.1  christos #define L 265
    376      1.1  christos #define AX 266
    377      1.1  christos #define BC 267
    378      1.1  christos #define DE 268
    379      1.1  christos #define HL 269
    380      1.1  christos #define SPL 270
    381      1.1  christos #define SPH 271
    382      1.1  christos #define PSW 272
    383      1.1  christos #define CS 273
    384      1.1  christos #define ES 274
    385      1.1  christos #define PMC 275
    386      1.1  christos #define MEM 276
    387      1.1  christos #define FLAG 277
    388      1.1  christos #define SP 278
    389      1.1  christos #define CY 279
    390      1.1  christos #define RB0 280
    391      1.1  christos #define RB1 281
    392      1.1  christos #define RB2 282
    393      1.1  christos #define RB3 283
    394      1.1  christos #define EXPR 284
    395      1.1  christos #define UNKNOWN_OPCODE 285
    396      1.1  christos #define IS_OPCODE 286
    397      1.1  christos #define DOT_S 287
    398      1.1  christos #define DOT_B 288
    399      1.1  christos #define DOT_W 289
    400      1.1  christos #define DOT_L 290
    401      1.1  christos #define DOT_A 291
    402      1.1  christos #define DOT_UB 292
    403      1.1  christos #define DOT_UW 293
    404      1.1  christos #define ADD 294
    405      1.1  christos #define ADDC 295
    406      1.1  christos #define ADDW 296
    407      1.1  christos #define AND_ 297
    408      1.1  christos #define AND1 298
    409      1.1  christos #define BF 299
    410      1.1  christos #define BH 300
    411      1.1  christos #define BNC 301
    412      1.1  christos #define BNH 302
    413      1.1  christos #define BNZ 303
    414      1.1  christos #define BR 304
    415      1.1  christos #define BRK 305
    416      1.1  christos #define BRK1 306
    417      1.1  christos #define BT 307
    418      1.1  christos #define BTCLR 308
    419      1.1  christos #define BZ 309
    420      1.1  christos #define CALL 310
    421      1.1  christos #define CALLT 311
    422      1.1  christos #define CLR1 312
    423      1.1  christos #define CLRB 313
    424      1.1  christos #define CLRW 314
    425      1.1  christos #define CMP 315
    426      1.1  christos #define CMP0 316
    427      1.1  christos #define CMPS 317
    428      1.1  christos #define CMPW 318
    429      1.1  christos #define DEC 319
    430      1.1  christos #define DECW 320
    431      1.1  christos #define DI 321
    432      1.1  christos #define DIVHU 322
    433      1.1  christos #define DIVWU 323
    434      1.1  christos #define EI 324
    435      1.1  christos #define HALT 325
    436      1.1  christos #define INC 326
    437      1.1  christos #define INCW 327
    438      1.1  christos #define MACH 328
    439      1.1  christos #define MACHU 329
    440      1.1  christos #define MOV 330
    441      1.1  christos #define MOV1 331
    442      1.1  christos #define MOVS 332
    443      1.1  christos #define MOVW 333
    444      1.1  christos #define MULH 334
    445      1.1  christos #define MULHU 335
    446      1.1  christos #define MULU 336
    447      1.1  christos #define NOP 337
    448      1.1  christos #define NOT1 338
    449      1.1  christos #define ONEB 339
    450      1.1  christos #define ONEW 340
    451      1.1  christos #define OR 341
    452      1.1  christos #define OR1 342
    453      1.1  christos #define POP 343
    454      1.1  christos #define PUSH 344
    455      1.1  christos #define RET 345
    456      1.1  christos #define RETI 346
    457      1.1  christos #define RETB 347
    458      1.1  christos #define ROL 348
    459      1.1  christos #define ROLC 349
    460      1.1  christos #define ROLWC 350
    461      1.1  christos #define ROR 351
    462      1.1  christos #define RORC 352
    463      1.1  christos #define SAR 353
    464      1.1  christos #define SARW 354
    465      1.1  christos #define SEL 355
    466      1.1  christos #define SET1 356
    467      1.1  christos #define SHL 357
    468      1.1  christos #define SHLW 358
    469      1.1  christos #define SHR 359
    470      1.1  christos #define SHRW 360
    471      1.1  christos #define SKC 361
    472      1.1  christos #define SKH 362
    473      1.1  christos #define SKNC 363
    474      1.1  christos #define SKNH 364
    475      1.1  christos #define SKNZ 365
    476      1.1  christos #define SKZ 366
    477      1.1  christos #define STOP 367
    478      1.1  christos #define SUB 368
    479      1.1  christos #define SUBC 369
    480      1.1  christos #define SUBW 370
    481      1.1  christos #define XCH 371
    482      1.1  christos #define XCHW 372
    483      1.1  christos #define XOR 373
    484      1.1  christos #define XOR1 374
    485      1.1  christos 
    486      1.1  christos /* Value type.  */
    487      1.1  christos #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    488      1.1  christos union YYSTYPE
    489      1.1  christos {
    490      1.1  christos #line 144 "./config/rl78-parse.y"
    491      1.1  christos 
    492      1.1  christos   int regno;
    493      1.1  christos   expressionS exp;
    494      1.1  christos 
    495      1.1  christos #line 496 "config/rl78-parse.c"
    496      1.1  christos 
    497      1.1  christos };
    498      1.1  christos typedef union YYSTYPE YYSTYPE;
    499      1.1  christos # define YYSTYPE_IS_TRIVIAL 1
    500      1.1  christos # define YYSTYPE_IS_DECLARED 1
    501      1.1  christos #endif
    502      1.1  christos 
    503      1.1  christos 
    504      1.1  christos extern YYSTYPE rl78_lval;
    505      1.1  christos 
    506      1.1  christos 
    507      1.1  christos int rl78_parse (void);
    508      1.1  christos 
    509      1.1  christos 
    510      1.1  christos #endif /* !YY_RL78_CONFIG_RL_PARSE_H_INCLUDED  */
    511      1.1  christos /* Symbol kind.  */
    512      1.1  christos enum yysymbol_kind_t
    513      1.1  christos {
    514      1.1  christos   YYSYMBOL_YYEMPTY = -2,
    515      1.1  christos   YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
    516      1.1  christos   YYSYMBOL_YYerror = 1,                    /* error  */
    517      1.1  christos   YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
    518      1.1  christos   YYSYMBOL_A = 3,                          /* A  */
    519      1.1  christos   YYSYMBOL_X = 4,                          /* X  */
    520      1.1  christos   YYSYMBOL_B = 5,                          /* B  */
    521      1.1  christos   YYSYMBOL_C = 6,                          /* C  */
    522      1.1  christos   YYSYMBOL_D = 7,                          /* D  */
    523      1.1  christos   YYSYMBOL_E = 8,                          /* E  */
    524      1.1  christos   YYSYMBOL_H = 9,                          /* H  */
    525      1.1  christos   YYSYMBOL_L = 10,                         /* L  */
    526      1.1  christos   YYSYMBOL_AX = 11,                        /* AX  */
    527      1.1  christos   YYSYMBOL_BC = 12,                        /* BC  */
    528      1.1  christos   YYSYMBOL_DE = 13,                        /* DE  */
    529      1.1  christos   YYSYMBOL_HL = 14,                        /* HL  */
    530      1.1  christos   YYSYMBOL_SPL = 15,                       /* SPL  */
    531      1.1  christos   YYSYMBOL_SPH = 16,                       /* SPH  */
    532      1.1  christos   YYSYMBOL_PSW = 17,                       /* PSW  */
    533      1.1  christos   YYSYMBOL_CS = 18,                        /* CS  */
    534      1.1  christos   YYSYMBOL_ES = 19,                        /* ES  */
    535      1.1  christos   YYSYMBOL_PMC = 20,                       /* PMC  */
    536      1.1  christos   YYSYMBOL_MEM = 21,                       /* MEM  */
    537      1.1  christos   YYSYMBOL_FLAG = 22,                      /* FLAG  */
    538      1.1  christos   YYSYMBOL_SP = 23,                        /* SP  */
    539      1.1  christos   YYSYMBOL_CY = 24,                        /* CY  */
    540      1.1  christos   YYSYMBOL_RB0 = 25,                       /* RB0  */
    541      1.1  christos   YYSYMBOL_RB1 = 26,                       /* RB1  */
    542      1.1  christos   YYSYMBOL_RB2 = 27,                       /* RB2  */
    543      1.1  christos   YYSYMBOL_RB3 = 28,                       /* RB3  */
    544      1.1  christos   YYSYMBOL_EXPR = 29,                      /* EXPR  */
    545      1.1  christos   YYSYMBOL_UNKNOWN_OPCODE = 30,            /* UNKNOWN_OPCODE  */
    546      1.1  christos   YYSYMBOL_IS_OPCODE = 31,                 /* IS_OPCODE  */
    547      1.1  christos   YYSYMBOL_DOT_S = 32,                     /* DOT_S  */
    548      1.1  christos   YYSYMBOL_DOT_B = 33,                     /* DOT_B  */
    549      1.1  christos   YYSYMBOL_DOT_W = 34,                     /* DOT_W  */
    550      1.1  christos   YYSYMBOL_DOT_L = 35,                     /* DOT_L  */
    551      1.1  christos   YYSYMBOL_DOT_A = 36,                     /* DOT_A  */
    552      1.1  christos   YYSYMBOL_DOT_UB = 37,                    /* DOT_UB  */
    553      1.1  christos   YYSYMBOL_DOT_UW = 38,                    /* DOT_UW  */
    554      1.1  christos   YYSYMBOL_ADD = 39,                       /* ADD  */
    555      1.1  christos   YYSYMBOL_ADDC = 40,                      /* ADDC  */
    556      1.1  christos   YYSYMBOL_ADDW = 41,                      /* ADDW  */
    557      1.1  christos   YYSYMBOL_AND_ = 42,                      /* AND_  */
    558      1.1  christos   YYSYMBOL_AND1 = 43,                      /* AND1  */
    559      1.1  christos   YYSYMBOL_BF = 44,                        /* BF  */
    560      1.1  christos   YYSYMBOL_BH = 45,                        /* BH  */
    561      1.1  christos   YYSYMBOL_BNC = 46,                       /* BNC  */
    562      1.1  christos   YYSYMBOL_BNH = 47,                       /* BNH  */
    563      1.1  christos   YYSYMBOL_BNZ = 48,                       /* BNZ  */
    564      1.1  christos   YYSYMBOL_BR = 49,                        /* BR  */
    565      1.1  christos   YYSYMBOL_BRK = 50,                       /* BRK  */
    566      1.1  christos   YYSYMBOL_BRK1 = 51,                      /* BRK1  */
    567      1.1  christos   YYSYMBOL_BT = 52,                        /* BT  */
    568      1.1  christos   YYSYMBOL_BTCLR = 53,                     /* BTCLR  */
    569      1.1  christos   YYSYMBOL_BZ = 54,                        /* BZ  */
    570      1.1  christos   YYSYMBOL_CALL = 55,                      /* CALL  */
    571      1.1  christos   YYSYMBOL_CALLT = 56,                     /* CALLT  */
    572      1.1  christos   YYSYMBOL_CLR1 = 57,                      /* CLR1  */
    573      1.1  christos   YYSYMBOL_CLRB = 58,                      /* CLRB  */
    574      1.1  christos   YYSYMBOL_CLRW = 59,                      /* CLRW  */
    575      1.1  christos   YYSYMBOL_CMP = 60,                       /* CMP  */
    576      1.1  christos   YYSYMBOL_CMP0 = 61,                      /* CMP0  */
    577      1.1  christos   YYSYMBOL_CMPS = 62,                      /* CMPS  */
    578      1.1  christos   YYSYMBOL_CMPW = 63,                      /* CMPW  */
    579      1.1  christos   YYSYMBOL_DEC = 64,                       /* DEC  */
    580      1.1  christos   YYSYMBOL_DECW = 65,                      /* DECW  */
    581      1.1  christos   YYSYMBOL_DI = 66,                        /* DI  */
    582      1.1  christos   YYSYMBOL_DIVHU = 67,                     /* DIVHU  */
    583      1.1  christos   YYSYMBOL_DIVWU = 68,                     /* DIVWU  */
    584      1.1  christos   YYSYMBOL_EI = 69,                        /* EI  */
    585      1.1  christos   YYSYMBOL_HALT = 70,                      /* HALT  */
    586      1.1  christos   YYSYMBOL_INC = 71,                       /* INC  */
    587      1.1  christos   YYSYMBOL_INCW = 72,                      /* INCW  */
    588      1.1  christos   YYSYMBOL_MACH = 73,                      /* MACH  */
    589      1.1  christos   YYSYMBOL_MACHU = 74,                     /* MACHU  */
    590      1.1  christos   YYSYMBOL_MOV = 75,                       /* MOV  */
    591      1.1  christos   YYSYMBOL_MOV1 = 76,                      /* MOV1  */
    592      1.1  christos   YYSYMBOL_MOVS = 77,                      /* MOVS  */
    593      1.1  christos   YYSYMBOL_MOVW = 78,                      /* MOVW  */
    594      1.1  christos   YYSYMBOL_MULH = 79,                      /* MULH  */
    595      1.1  christos   YYSYMBOL_MULHU = 80,                     /* MULHU  */
    596      1.1  christos   YYSYMBOL_MULU = 81,                      /* MULU  */
    597      1.1  christos   YYSYMBOL_NOP = 82,                       /* NOP  */
    598      1.1  christos   YYSYMBOL_NOT1 = 83,                      /* NOT1  */
    599      1.1  christos   YYSYMBOL_ONEB = 84,                      /* ONEB  */
    600      1.1  christos   YYSYMBOL_ONEW = 85,                      /* ONEW  */
    601      1.1  christos   YYSYMBOL_OR = 86,                        /* OR  */
    602      1.1  christos   YYSYMBOL_OR1 = 87,                       /* OR1  */
    603      1.1  christos   YYSYMBOL_POP = 88,                       /* POP  */
    604      1.1  christos   YYSYMBOL_PUSH = 89,                      /* PUSH  */
    605      1.1  christos   YYSYMBOL_RET = 90,                       /* RET  */
    606      1.1  christos   YYSYMBOL_RETI = 91,                      /* RETI  */
    607      1.1  christos   YYSYMBOL_RETB = 92,                      /* RETB  */
    608      1.1  christos   YYSYMBOL_ROL = 93,                       /* ROL  */
    609      1.1  christos   YYSYMBOL_ROLC = 94,                      /* ROLC  */
    610      1.1  christos   YYSYMBOL_ROLWC = 95,                     /* ROLWC  */
    611      1.1  christos   YYSYMBOL_ROR = 96,                       /* ROR  */
    612      1.1  christos   YYSYMBOL_RORC = 97,                      /* RORC  */
    613      1.1  christos   YYSYMBOL_SAR = 98,                       /* SAR  */
    614      1.1  christos   YYSYMBOL_SARW = 99,                      /* SARW  */
    615      1.1  christos   YYSYMBOL_SEL = 100,                      /* SEL  */
    616      1.1  christos   YYSYMBOL_SET1 = 101,                     /* SET1  */
    617      1.1  christos   YYSYMBOL_SHL = 102,                      /* SHL  */
    618      1.1  christos   YYSYMBOL_SHLW = 103,                     /* SHLW  */
    619      1.1  christos   YYSYMBOL_SHR = 104,                      /* SHR  */
    620      1.1  christos   YYSYMBOL_SHRW = 105,                     /* SHRW  */
    621      1.1  christos   YYSYMBOL_SKC = 106,                      /* SKC  */
    622      1.1  christos   YYSYMBOL_SKH = 107,                      /* SKH  */
    623      1.1  christos   YYSYMBOL_SKNC = 108,                     /* SKNC  */
    624      1.1  christos   YYSYMBOL_SKNH = 109,                     /* SKNH  */
    625      1.1  christos   YYSYMBOL_SKNZ = 110,                     /* SKNZ  */
    626      1.1  christos   YYSYMBOL_SKZ = 111,                      /* SKZ  */
    627      1.1  christos   YYSYMBOL_STOP = 112,                     /* STOP  */
    628      1.1  christos   YYSYMBOL_SUB = 113,                      /* SUB  */
    629      1.1  christos   YYSYMBOL_SUBC = 114,                     /* SUBC  */
    630      1.1  christos   YYSYMBOL_SUBW = 115,                     /* SUBW  */
    631      1.1  christos   YYSYMBOL_XCH = 116,                      /* XCH  */
    632      1.1  christos   YYSYMBOL_XCHW = 117,                     /* XCHW  */
    633      1.1  christos   YYSYMBOL_XOR = 118,                      /* XOR  */
    634      1.1  christos   YYSYMBOL_XOR1 = 119,                     /* XOR1  */
    635      1.1  christos   YYSYMBOL_120_ = 120,                     /* ','  */
    636      1.1  christos   YYSYMBOL_121_ = 121,                     /* '#'  */
    637      1.1  christos   YYSYMBOL_122_ = 122,                     /* '!'  */
    638      1.1  christos   YYSYMBOL_123_ = 123,                     /* '['  */
    639      1.1  christos   YYSYMBOL_124_ = 124,                     /* ']'  */
    640      1.1  christos   YYSYMBOL_125_ = 125,                     /* '+'  */
    641      1.1  christos   YYSYMBOL_126_ = 126,                     /* '.'  */
    642      1.1  christos   YYSYMBOL_127_ = 127,                     /* '$'  */
    643      1.1  christos   YYSYMBOL_128_ = 128,                     /* ':'  */
    644      1.1  christos   YYSYMBOL_YYACCEPT = 129,                 /* $accept  */
    645      1.1  christos   YYSYMBOL_statement = 130,                /* statement  */
    646      1.1  christos   YYSYMBOL_131_1 = 131,                    /* $@1  */
    647      1.1  christos   YYSYMBOL_132_2 = 132,                    /* $@2  */
    648      1.1  christos   YYSYMBOL_133_3 = 133,                    /* $@3  */
    649      1.1  christos   YYSYMBOL_134_4 = 134,                    /* $@4  */
    650      1.1  christos   YYSYMBOL_135_5 = 135,                    /* $@5  */
    651      1.1  christos   YYSYMBOL_136_6 = 136,                    /* $@6  */
    652      1.1  christos   YYSYMBOL_137_7 = 137,                    /* $@7  */
    653      1.1  christos   YYSYMBOL_138_8 = 138,                    /* $@8  */
    654      1.1  christos   YYSYMBOL_139_9 = 139,                    /* $@9  */
    655      1.1  christos   YYSYMBOL_140_10 = 140,                   /* $@10  */
    656      1.1  christos   YYSYMBOL_141_11 = 141,                   /* $@11  */
    657      1.1  christos   YYSYMBOL_142_12 = 142,                   /* $@12  */
    658      1.1  christos   YYSYMBOL_143_13 = 143,                   /* $@13  */
    659      1.1  christos   YYSYMBOL_144_14 = 144,                   /* $@14  */
    660      1.1  christos   YYSYMBOL_145_15 = 145,                   /* $@15  */
    661      1.1  christos   YYSYMBOL_146_16 = 146,                   /* $@16  */
    662      1.1  christos   YYSYMBOL_147_17 = 147,                   /* $@17  */
    663      1.1  christos   YYSYMBOL_148_18 = 148,                   /* $@18  */
    664      1.1  christos   YYSYMBOL_149_19 = 149,                   /* $@19  */
    665      1.1  christos   YYSYMBOL_150_20 = 150,                   /* $@20  */
    666      1.1  christos   YYSYMBOL_151_21 = 151,                   /* $@21  */
    667      1.1  christos   YYSYMBOL_152_22 = 152,                   /* $@22  */
    668      1.1  christos   YYSYMBOL_153_23 = 153,                   /* $@23  */
    669      1.1  christos   YYSYMBOL_154_24 = 154,                   /* $@24  */
    670      1.1  christos   YYSYMBOL_155_25 = 155,                   /* $@25  */
    671      1.1  christos   YYSYMBOL_156_26 = 156,                   /* $@26  */
    672      1.1  christos   YYSYMBOL_157_27 = 157,                   /* $@27  */
    673      1.1  christos   YYSYMBOL_158_28 = 158,                   /* $@28  */
    674      1.1  christos   YYSYMBOL_159_29 = 159,                   /* $@29  */
    675      1.1  christos   YYSYMBOL_160_30 = 160,                   /* $@30  */
    676      1.1  christos   YYSYMBOL_161_31 = 161,                   /* $@31  */
    677      1.1  christos   YYSYMBOL_162_32 = 162,                   /* $@32  */
    678      1.1  christos   YYSYMBOL_163_33 = 163,                   /* $@33  */
    679      1.1  christos   YYSYMBOL_164_34 = 164,                   /* $@34  */
    680      1.1  christos   YYSYMBOL_165_35 = 165,                   /* $@35  */
    681      1.1  christos   YYSYMBOL_166_36 = 166,                   /* $@36  */
    682      1.1  christos   YYSYMBOL_167_37 = 167,                   /* $@37  */
    683      1.1  christos   YYSYMBOL_168_38 = 168,                   /* $@38  */
    684      1.1  christos   YYSYMBOL_opt_es = 169,                   /* opt_es  */
    685      1.1  christos   YYSYMBOL_regb = 170,                     /* regb  */
    686      1.1  christos   YYSYMBOL_regb_na = 171,                  /* regb_na  */
    687      1.1  christos   YYSYMBOL_regw = 172,                     /* regw  */
    688      1.1  christos   YYSYMBOL_regw_na = 173,                  /* regw_na  */
    689      1.1  christos   YYSYMBOL_sfr = 174,                      /* sfr  */
    690      1.1  christos   YYSYMBOL_addsub = 175,                   /* addsub  */
    691      1.1  christos   YYSYMBOL_addsubw = 176,                  /* addsubw  */
    692      1.1  christos   YYSYMBOL_andor1 = 177,                   /* andor1  */
    693      1.1  christos   YYSYMBOL_bt_bf = 178,                    /* bt_bf  */
    694      1.1  christos   YYSYMBOL_setclr1 = 179,                  /* setclr1  */
    695      1.1  christos   YYSYMBOL_oneclrb = 180,                  /* oneclrb  */
    696      1.1  christos   YYSYMBOL_oneclrw = 181,                  /* oneclrw  */
    697      1.1  christos   YYSYMBOL_incdec = 182,                   /* incdec  */
    698      1.1  christos   YYSYMBOL_incdecw = 183,                  /* incdecw  */
    699      1.1  christos   YYSYMBOL_mov1 = 184                      /* mov1  */
    700      1.1  christos };
    701      1.1  christos typedef enum yysymbol_kind_t yysymbol_kind_t;
    702      1.1  christos 
    703      1.1  christos 
    704      1.1  christos 
    705      1.1  christos 
    706      1.1  christos #ifdef short
    707      1.1  christos # undef short
    708      1.1  christos #endif
    709      1.1  christos 
    710      1.1  christos /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
    711      1.1  christos    <limits.h> and (if available) <stdint.h> are included
    712      1.1  christos    so that the code can choose integer types of a good width.  */
    713      1.1  christos 
    714      1.1  christos #ifndef __PTRDIFF_MAX__
    715      1.1  christos # include <limits.h> /* INFRINGES ON USER NAME SPACE */
    716      1.1  christos # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
    717      1.1  christos #  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
    718      1.1  christos #  define YY_STDINT_H
    719      1.1  christos # endif
    720      1.1  christos #endif
    721      1.1  christos 
    722      1.1  christos /* Narrow types that promote to a signed type and that can represent a
    723      1.1  christos    signed or unsigned integer of at least N bits.  In tables they can
    724      1.1  christos    save space and decrease cache pressure.  Promoting to a signed type
    725      1.1  christos    helps avoid bugs in integer arithmetic.  */
    726      1.1  christos 
    727      1.1  christos #ifdef __INT_LEAST8_MAX__
    728      1.1  christos typedef __INT_LEAST8_TYPE__ yytype_int8;
    729      1.1  christos #elif defined YY_STDINT_H
    730      1.1  christos typedef int_least8_t yytype_int8;
    731      1.1  christos #else
    732      1.1  christos typedef signed char yytype_int8;
    733      1.1  christos #endif
    734      1.1  christos 
    735      1.1  christos #ifdef __INT_LEAST16_MAX__
    736      1.1  christos typedef __INT_LEAST16_TYPE__ yytype_int16;
    737      1.1  christos #elif defined YY_STDINT_H
    738      1.1  christos typedef int_least16_t yytype_int16;
    739      1.1  christos #else
    740      1.1  christos typedef short yytype_int16;
    741      1.1  christos #endif
    742      1.1  christos 
    743      1.1  christos /* Work around bug in HP-UX 11.23, which defines these macros
    744      1.1  christos    incorrectly for preprocessor constants.  This workaround can likely
    745      1.1  christos    be removed in 2023, as HPE has promised support for HP-UX 11.23
    746      1.1  christos    (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
    747      1.1  christos    <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
    748      1.1  christos #ifdef __hpux
    749      1.1  christos # undef UINT_LEAST8_MAX
    750      1.1  christos # undef UINT_LEAST16_MAX
    751      1.1  christos # define UINT_LEAST8_MAX 255
    752      1.1  christos # define UINT_LEAST16_MAX 65535
    753      1.1  christos #endif
    754      1.1  christos 
    755      1.1  christos #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
    756      1.1  christos typedef __UINT_LEAST8_TYPE__ yytype_uint8;
    757      1.1  christos #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
    758      1.1  christos        && UINT_LEAST8_MAX <= INT_MAX)
    759      1.1  christos typedef uint_least8_t yytype_uint8;
    760      1.1  christos #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
    761      1.1  christos typedef unsigned char yytype_uint8;
    762      1.1  christos #else
    763      1.1  christos typedef short yytype_uint8;
    764      1.1  christos #endif
    765      1.1  christos 
    766      1.1  christos #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
    767      1.1  christos typedef __UINT_LEAST16_TYPE__ yytype_uint16;
    768      1.1  christos #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
    769      1.1  christos        && UINT_LEAST16_MAX <= INT_MAX)
    770      1.1  christos typedef uint_least16_t yytype_uint16;
    771      1.1  christos #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
    772      1.1  christos typedef unsigned short yytype_uint16;
    773      1.1  christos #else
    774      1.1  christos typedef int yytype_uint16;
    775      1.1  christos #endif
    776      1.1  christos 
    777      1.1  christos #ifndef YYPTRDIFF_T
    778      1.1  christos # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
    779      1.1  christos #  define YYPTRDIFF_T __PTRDIFF_TYPE__
    780      1.1  christos #  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
    781      1.1  christos # elif defined PTRDIFF_MAX
    782      1.1  christos #  ifndef ptrdiff_t
    783      1.1  christos #   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    784      1.1  christos #  endif
    785      1.1  christos #  define YYPTRDIFF_T ptrdiff_t
    786      1.1  christos #  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
    787      1.1  christos # else
    788      1.1  christos #  define YYPTRDIFF_T long
    789      1.1  christos #  define YYPTRDIFF_MAXIMUM LONG_MAX
    790      1.1  christos # endif
    791      1.1  christos #endif
    792      1.1  christos 
    793      1.1  christos #ifndef YYSIZE_T
    794      1.1  christos # ifdef __SIZE_TYPE__
    795      1.1  christos #  define YYSIZE_T __SIZE_TYPE__
    796      1.1  christos # elif defined size_t
    797      1.1  christos #  define YYSIZE_T size_t
    798      1.1  christos # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
    799      1.1  christos #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    800      1.1  christos #  define YYSIZE_T size_t
    801      1.1  christos # else
    802      1.1  christos #  define YYSIZE_T unsigned
    803      1.1  christos # endif
    804      1.1  christos #endif
    805      1.1  christos 
    806      1.1  christos #define YYSIZE_MAXIMUM                                  \
    807      1.1  christos   YY_CAST (YYPTRDIFF_T,                                 \
    808      1.1  christos            (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
    809      1.1  christos             ? YYPTRDIFF_MAXIMUM                         \
    810      1.1  christos             : YY_CAST (YYSIZE_T, -1)))
    811      1.1  christos 
    812      1.1  christos #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
    813      1.1  christos 
    814      1.1  christos 
    815      1.1  christos /* Stored state numbers (used for stacks). */
    816      1.1  christos typedef yytype_int16 yy_state_t;
    817      1.1  christos 
    818      1.1  christos /* State numbers in computations.  */
    819      1.1  christos typedef int yy_state_fast_t;
    820      1.1  christos 
    821      1.1  christos #ifndef YY_
    822      1.1  christos # if defined YYENABLE_NLS && YYENABLE_NLS
    823      1.1  christos #  if ENABLE_NLS
    824      1.1  christos #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    825      1.1  christos #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
    826      1.1  christos #  endif
    827      1.1  christos # endif
    828      1.1  christos # ifndef YY_
    829      1.1  christos #  define YY_(Msgid) Msgid
    830      1.1  christos # endif
    831      1.1  christos #endif
    832      1.1  christos 
    833      1.1  christos 
    834      1.1  christos #ifndef YY_ATTRIBUTE_PURE
    835      1.1  christos # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
    836      1.1  christos #  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
    837      1.1  christos # else
    838      1.1  christos #  define YY_ATTRIBUTE_PURE
    839      1.1  christos # endif
    840      1.1  christos #endif
    841      1.1  christos 
    842      1.1  christos #ifndef YY_ATTRIBUTE_UNUSED
    843      1.1  christos # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
    844      1.1  christos #  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
    845      1.1  christos # else
    846      1.1  christos #  define YY_ATTRIBUTE_UNUSED
    847      1.1  christos # endif
    848      1.1  christos #endif
    849      1.1  christos 
    850      1.1  christos /* Suppress unused-variable warnings by "using" E.  */
    851      1.1  christos #if ! defined lint || defined __GNUC__
    852      1.1  christos # define YY_USE(E) ((void) (E))
    853      1.1  christos #else
    854      1.1  christos # define YY_USE(E) /* empty */
    855      1.1  christos #endif
    856      1.1  christos 
    857      1.1  christos /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
    858      1.1  christos #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
    859      1.1  christos # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
    860      1.1  christos #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
    861      1.1  christos     _Pragma ("GCC diagnostic push")                                     \
    862      1.1  christos     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
    863      1.1  christos # else
    864      1.1  christos #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
    865      1.1  christos     _Pragma ("GCC diagnostic push")                                     \
    866      1.1  christos     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
    867      1.1  christos     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
    868      1.1  christos # endif
    869      1.1  christos # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
    870      1.1  christos     _Pragma ("GCC diagnostic pop")
    871      1.1  christos #else
    872      1.1  christos # define YY_INITIAL_VALUE(Value) Value
    873      1.1  christos #endif
    874      1.1  christos #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    875      1.1  christos # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    876      1.1  christos # define YY_IGNORE_MAYBE_UNINITIALIZED_END
    877      1.1  christos #endif
    878      1.1  christos #ifndef YY_INITIAL_VALUE
    879      1.1  christos # define YY_INITIAL_VALUE(Value) /* Nothing. */
    880      1.1  christos #endif
    881      1.1  christos 
    882      1.1  christos #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
    883      1.1  christos # define YY_IGNORE_USELESS_CAST_BEGIN                          \
    884      1.1  christos     _Pragma ("GCC diagnostic push")                            \
    885      1.1  christos     _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
    886      1.1  christos # define YY_IGNORE_USELESS_CAST_END            \
    887      1.1  christos     _Pragma ("GCC diagnostic pop")
    888      1.1  christos #endif
    889      1.1  christos #ifndef YY_IGNORE_USELESS_CAST_BEGIN
    890      1.1  christos # define YY_IGNORE_USELESS_CAST_BEGIN
    891      1.1  christos # define YY_IGNORE_USELESS_CAST_END
    892      1.1  christos #endif
    893      1.1  christos 
    894      1.1  christos 
    895      1.1  christos #define YY_ASSERT(E) ((void) (0 && (E)))
    896      1.1  christos 
    897      1.1  christos #if !defined yyoverflow
    898      1.1  christos 
    899      1.1  christos /* The parser invokes alloca or malloc; define the necessary symbols.  */
    900      1.1  christos 
    901      1.1  christos # ifdef YYSTACK_USE_ALLOCA
    902      1.1  christos #  if YYSTACK_USE_ALLOCA
    903      1.1  christos #   ifdef __GNUC__
    904      1.1  christos #    define YYSTACK_ALLOC __builtin_alloca
    905      1.1  christos #   elif defined __BUILTIN_VA_ARG_INCR
    906      1.1  christos #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
    907      1.1  christos #   elif defined _AIX
    908      1.1  christos #    define YYSTACK_ALLOC __alloca
    909      1.1  christos #   elif defined _MSC_VER
    910      1.1  christos #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
    911      1.1  christos #    define alloca _alloca
    912      1.1  christos #   else
    913      1.1  christos #    define YYSTACK_ALLOC alloca
    914      1.1  christos #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
    915      1.1  christos #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    916      1.1  christos       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
    917      1.1  christos #     ifndef EXIT_SUCCESS
    918      1.1  christos #      define EXIT_SUCCESS 0
    919      1.1  christos #     endif
    920      1.1  christos #    endif
    921      1.1  christos #   endif
    922      1.1  christos #  endif
    923      1.1  christos # endif
    924      1.1  christos 
    925      1.1  christos # ifdef YYSTACK_ALLOC
    926      1.1  christos    /* Pacify GCC's 'empty if-body' warning.  */
    927      1.1  christos #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
    928      1.1  christos #  ifndef YYSTACK_ALLOC_MAXIMUM
    929      1.1  christos     /* The OS might guarantee only one guard page at the bottom of the stack,
    930      1.1  christos        and a page size can be as small as 4096 bytes.  So we cannot safely
    931      1.1  christos        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
    932      1.1  christos        to allow for a few compiler-allocated temporary stack slots.  */
    933      1.1  christos #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
    934      1.1  christos #  endif
    935      1.1  christos # else
    936      1.1  christos #  define YYSTACK_ALLOC YYMALLOC
    937      1.1  christos #  define YYSTACK_FREE YYFREE
    938      1.1  christos #  ifndef YYSTACK_ALLOC_MAXIMUM
    939      1.1  christos #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
    940      1.1  christos #  endif
    941      1.1  christos #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
    942      1.1  christos        && ! ((defined YYMALLOC || defined malloc) \
    943      1.1  christos              && (defined YYFREE || defined free)))
    944      1.1  christos #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    945      1.1  christos #   ifndef EXIT_SUCCESS
    946      1.1  christos #    define EXIT_SUCCESS 0
    947      1.1  christos #   endif
    948      1.1  christos #  endif
    949      1.1  christos #  ifndef YYMALLOC
    950      1.1  christos #   define YYMALLOC malloc
    951      1.1  christos #   if ! defined malloc && ! defined EXIT_SUCCESS
    952      1.1  christos void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    953      1.1  christos #   endif
    954      1.1  christos #  endif
    955      1.1  christos #  ifndef YYFREE
    956      1.1  christos #   define YYFREE free
    957      1.1  christos #   if ! defined free && ! defined EXIT_SUCCESS
    958      1.1  christos void free (void *); /* INFRINGES ON USER NAME SPACE */
    959      1.1  christos #   endif
    960      1.1  christos #  endif
    961      1.1  christos # endif
    962      1.1  christos #endif /* !defined yyoverflow */
    963      1.1  christos 
    964      1.1  christos #if (! defined yyoverflow \
    965      1.1  christos      && (! defined __cplusplus \
    966      1.1  christos          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    967      1.1  christos 
    968      1.1  christos /* A type that is properly aligned for any stack member.  */
    969      1.1  christos union yyalloc
    970      1.1  christos {
    971      1.1  christos   yy_state_t yyss_alloc;
    972      1.1  christos   YYSTYPE yyvs_alloc;
    973      1.1  christos };
    974      1.1  christos 
    975      1.1  christos /* The size of the maximum gap between one aligned stack and the next.  */
    976      1.1  christos # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
    977      1.1  christos 
    978      1.1  christos /* The size of an array large to enough to hold all stacks, each with
    979      1.1  christos    N elements.  */
    980      1.1  christos # define YYSTACK_BYTES(N) \
    981      1.1  christos      ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
    982      1.1  christos       + YYSTACK_GAP_MAXIMUM)
    983      1.1  christos 
    984      1.1  christos # define YYCOPY_NEEDED 1
    985      1.1  christos 
    986      1.1  christos /* Relocate STACK from its old location to the new one.  The
    987      1.1  christos    local variables YYSIZE and YYSTACKSIZE give the old and new number of
    988      1.1  christos    elements in the stack, and YYPTR gives the new location of the
    989      1.1  christos    stack.  Advance YYPTR to a properly aligned location for the next
    990      1.1  christos    stack.  */
    991      1.1  christos # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
    992      1.1  christos     do                                                                  \
    993      1.1  christos       {                                                                 \
    994      1.1  christos         YYPTRDIFF_T yynewbytes;                                         \
    995      1.1  christos         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
    996      1.1  christos         Stack = &yyptr->Stack_alloc;                                    \
    997      1.1  christos         yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
    998      1.1  christos         yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
    999      1.1  christos       }                                                                 \
   1000      1.1  christos     while (0)
   1001      1.1  christos 
   1002      1.1  christos #endif
   1003      1.1  christos 
   1004      1.1  christos #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
   1005      1.1  christos /* Copy COUNT objects from SRC to DST.  The source and destination do
   1006      1.1  christos    not overlap.  */
   1007      1.1  christos # ifndef YYCOPY
   1008      1.1  christos #  if defined __GNUC__ && 1 < __GNUC__
   1009      1.1  christos #   define YYCOPY(Dst, Src, Count) \
   1010      1.1  christos       __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
   1011      1.1  christos #  else
   1012      1.1  christos #   define YYCOPY(Dst, Src, Count)              \
   1013      1.1  christos       do                                        \
   1014      1.1  christos         {                                       \
   1015      1.1  christos           YYPTRDIFF_T yyi;                      \
   1016      1.1  christos           for (yyi = 0; yyi < (Count); yyi++)   \
   1017      1.1  christos             (Dst)[yyi] = (Src)[yyi];            \
   1018      1.1  christos         }                                       \
   1019      1.1  christos       while (0)
   1020      1.1  christos #  endif
   1021      1.1  christos # endif
   1022      1.1  christos #endif /* !YYCOPY_NEEDED */
   1023      1.1  christos 
   1024      1.1  christos /* YYFINAL -- State number of the termination state.  */
   1025      1.1  christos #define YYFINAL  180
   1026      1.1  christos /* YYLAST -- Last index in YYTABLE.  */
   1027      1.1  christos #define YYLAST   844
   1028      1.1  christos 
   1029      1.1  christos /* YYNTOKENS -- Number of terminals.  */
   1030      1.1  christos #define YYNTOKENS  129
   1031      1.1  christos /* YYNNTS -- Number of nonterminals.  */
   1032      1.1  christos #define YYNNTS  56
   1033      1.1  christos /* YYNRULES -- Number of rules.  */
   1034      1.1  christos #define YYNRULES  324
   1035      1.1  christos /* YYNSTATES -- Number of states.  */
   1036      1.1  christos #define YYNSTATES  744
   1037      1.1  christos 
   1038      1.1  christos /* YYMAXUTOK -- Last valid token kind.  */
   1039      1.1  christos #define YYMAXUTOK   374
   1040      1.1  christos 
   1041      1.1  christos 
   1042      1.1  christos /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
   1043      1.1  christos    as returned by yylex, with out-of-bounds checking.  */
   1044      1.1  christos #define YYTRANSLATE(YYX)                                \
   1045      1.1  christos   (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
   1046      1.1  christos    ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
   1047      1.1  christos    : YYSYMBOL_YYUNDEF)
   1048      1.1  christos 
   1049      1.1  christos /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
   1050      1.1  christos    as returned by yylex.  */
   1051      1.1  christos static const yytype_uint8 yytranslate[] =
   1052      1.1  christos {
   1053      1.1  christos        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1054      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1055      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1056      1.1  christos        2,     2,     2,   122,     2,   121,   127,     2,     2,     2,
   1057      1.1  christos        2,     2,     2,   125,   120,     2,   126,     2,     2,     2,
   1058      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,   128,     2,
   1059      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1060      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1061      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1062      1.1  christos        2,   123,     2,   124,     2,     2,     2,     2,     2,     2,
   1063      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1064      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1065      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1066      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1067      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1068      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1069      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1070      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1071      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1072      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1073      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1074      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1075      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1076      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1077      1.1  christos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   1078      1.1  christos        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
   1079      1.1  christos        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
   1080      1.1  christos       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
   1081      1.1  christos       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
   1082      1.1  christos       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
   1083      1.1  christos       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
   1084      1.1  christos       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
   1085      1.1  christos       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
   1086      1.1  christos       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
   1087      1.1  christos       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
   1088      1.1  christos       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
   1089      1.1  christos      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
   1090      1.1  christos      115,   116,   117,   118,   119
   1091      1.1  christos };
   1092      1.1  christos 
   1093      1.1  christos #if YYDEBUG
   1094      1.1  christos /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
   1095      1.1  christos static const yytype_int16 yyrline[] =
   1096      1.1  christos {
   1097      1.1  christos        0,   187,   187,   208,   211,   211,   214,   217,   220,   223,
   1098      1.1  christos      223,   226,   229,   232,   235,   238,   241,   250,   253,   256,
   1099      1.1  christos      256,   259,   262,   265,   268,   276,   276,   279,   279,   288,
   1100      1.1  christos      288,   291,   291,   296,   299,   302,   305,   308,   311,   316,
   1101      1.1  christos      319,   328,   331,   336,   339,   342,   345,   348,   353,   356,
   1102      1.1  christos      361,   364,   367,   370,   373,   394,   397,   400,   409,   412,
   1103      1.1  christos      415,   420,   422,   424,   426,   429,   429,   432,   437,   439,
   1104      1.1  christos      444,   447,   450,   453,   456,   456,   459,   464,   469,   472,
   1105      1.1  christos      472,   474,   476,   478,   480,   485,   488,   488,   491,   494,
   1106      1.1  christos      499,   502,   507,   507,   510,   510,   513,   516,   516,   524,
   1107      1.1  christos      524,   527,   527,   530,   530,   535,   543,   545,   548,   555,
   1108      1.1  christos      555,   564,   567,   570,   573,   576,   576,   585,   588,   591,
   1109      1.1  christos      594,   597,   597,   606,   606,   606,   609,   612,   619,   619,
   1110      1.1  christos      619,   626,   629,   632,   635,   638,   641,   644,   647,   650,
   1111      1.1  christos      653,   656,   659,   662,   665,   668,   671,   674,   677,   680,
   1112      1.1  christos      683,   686,   689,   692,   695,   698,   701,   704,   704,   707,
   1113      1.1  christos      707,   710,   710,   713,   713,   716,   716,   719,   719,   724,
   1114      1.1  christos      733,   736,   739,   742,   751,   754,   757,   762,   767,   770,
   1115      1.1  christos      773,   773,   782,   782,   791,   791,   800,   803,   806,   809,
   1116      1.1  christos      812,   815,   818,   821,   824,   827,   830,   833,   836,   839,
   1117      1.1  christos      842,   845,   848,   851,   854,   857,   860,   860,   863,   863,
   1118      1.1  christos      866,   866,   869,   869,   872,   872,   875,   878,   881,   884,
   1119      1.1  christos      887,   892,   897,   902,   905,   908,   911,   916,   919,   922,
   1120      1.1  christos      927,   932,   937,   942,   947,   952,   959,   964,   971,   974,
   1121      1.1  christos      977,   980,   985,   990,   995,  1000,  1005,  1012,  1017,  1024,
   1122      1.1  christos     1027,  1030,  1033,  1036,  1039,  1044,  1049,  1056,  1059,  1062,
   1123      1.1  christos     1065,  1068,  1071,  1074,  1077,  1088,  1097,  1098,  1102,  1103,
   1124      1.1  christos     1104,  1105,  1106,  1107,  1108,  1109,  1112,  1113,  1114,  1115,
   1125      1.1  christos     1116,  1117,  1118,  1121,  1122,  1123,  1124,  1127,  1128,  1129,
   1126      1.1  christos     1132,  1133,  1134,  1135,  1136,  1137,  1138,  1144,  1145,  1146,
   1127      1.1  christos     1147,  1148,  1149,  1150,  1151,  1154,  1155,  1156,  1159,  1160,
   1128      1.1  christos     1161,  1164,  1165,  1166,  1169,  1170,  1173,  1174,  1177,  1178,
   1129      1.1  christos     1181,  1182,  1185,  1186,  1189
   1130      1.1  christos };
   1131      1.1  christos #endif
   1132      1.1  christos 
   1133      1.1  christos /** Accessing symbol of state STATE.  */
   1134      1.1  christos #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
   1135      1.1  christos 
   1136      1.1  christos #if YYDEBUG || 0
   1137      1.1  christos /* The user-facing name of the symbol whose (internal) number is
   1138      1.1  christos    YYSYMBOL.  No bounds checking.  */
   1139      1.1  christos static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
   1140      1.1  christos 
   1141      1.1  christos /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
   1142      1.1  christos    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
   1143      1.1  christos static const char *const yytname[] =
   1144      1.1  christos {
   1145      1.1  christos   "\"end of file\"", "error", "\"invalid token\"", "A", "X", "B", "C",
   1146      1.1  christos   "D", "E", "H", "L", "AX", "BC", "DE", "HL", "SPL", "SPH", "PSW", "CS",
   1147      1.1  christos   "ES", "PMC", "MEM", "FLAG", "SP", "CY", "RB0", "RB1", "RB2", "RB3",
   1148      1.1  christos   "EXPR", "UNKNOWN_OPCODE", "IS_OPCODE", "DOT_S", "DOT_B", "DOT_W",
   1149      1.1  christos   "DOT_L", "DOT_A", "DOT_UB", "DOT_UW", "ADD", "ADDC", "ADDW", "AND_",
   1150      1.1  christos   "AND1", "BF", "BH", "BNC", "BNH", "BNZ", "BR", "BRK", "BRK1", "BT",
   1151      1.1  christos   "BTCLR", "BZ", "CALL", "CALLT", "CLR1", "CLRB", "CLRW", "CMP", "CMP0",
   1152      1.1  christos   "CMPS", "CMPW", "DEC", "DECW", "DI", "DIVHU", "DIVWU", "EI", "HALT",
   1153      1.1  christos   "INC", "INCW", "MACH", "MACHU", "MOV", "MOV1", "MOVS", "MOVW", "MULH",
   1154      1.1  christos   "MULHU", "MULU", "NOP", "NOT1", "ONEB", "ONEW", "OR", "OR1", "POP",
   1155      1.1  christos   "PUSH", "RET", "RETI", "RETB", "ROL", "ROLC", "ROLWC", "ROR", "RORC",
   1156      1.1  christos   "SAR", "SARW", "SEL", "SET1", "SHL", "SHLW", "SHR", "SHRW", "SKC", "SKH",
   1157      1.1  christos   "SKNC", "SKNH", "SKNZ", "SKZ", "STOP", "SUB", "SUBC", "SUBW", "XCH",
   1158      1.1  christos   "XCHW", "XOR", "XOR1", "','", "'#'", "'!'", "'['", "']'", "'+'", "'.'",
   1159      1.1  christos   "'$'", "':'", "$accept", "statement", "$@1", "$@2", "$@3", "$@4", "$@5",
   1160      1.1  christos   "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "$@12", "$@13", "$@14",
   1161      1.1  christos   "$@15", "$@16", "$@17", "$@18", "$@19", "$@20", "$@21", "$@22", "$@23",
   1162      1.1  christos   "$@24", "$@25", "$@26", "$@27", "$@28", "$@29", "$@30", "$@31", "$@32",
   1163      1.1  christos   "$@33", "$@34", "$@35", "$@36", "$@37", "$@38", "opt_es", "regb",
   1164      1.1  christos   "regb_na", "regw", "regw_na", "sfr", "addsub", "addsubw", "andor1",
   1165      1.1  christos   "bt_bf", "setclr1", "oneclrb", "oneclrw", "incdec", "incdecw", "mov1", YY_NULLPTR
   1166      1.1  christos };
   1167      1.1  christos 
   1168      1.1  christos static const char *
   1169      1.1  christos yysymbol_name (yysymbol_kind_t yysymbol)
   1170      1.1  christos {
   1171      1.1  christos   return yytname[yysymbol];
   1172      1.1  christos }
   1173      1.1  christos #endif
   1174      1.1  christos 
   1175      1.1  christos #define YYPACT_NINF (-212)
   1176      1.1  christos 
   1177      1.1  christos #define yypact_value_is_default(Yyn) \
   1178      1.1  christos   ((Yyn) == YYPACT_NINF)
   1179      1.1  christos 
   1180      1.1  christos #define YYTABLE_NINF (-1)
   1181      1.1  christos 
   1182      1.1  christos #define yytable_value_is_error(Yyn) \
   1183      1.1  christos   0
   1184      1.1  christos 
   1185      1.1  christos /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   1186      1.1  christos    STATE-NUM.  */
   1187      1.1  christos static const yytype_int16 yypact[] =
   1188      1.1  christos {
   1189      1.1  christos      226,   -44,  -212,  -212,  -212,  -212,  -212,  -212,  -212,   -34,
   1190      1.1  christos      -15,    14,    20,    42,  -212,  -212,  -212,  -212,    45,    91,
   1191      1.1  christos      -80,  -212,  -212,  -212,  -212,   347,   134,  -212,  -212,  -212,
   1192      1.1  christos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,    53,
   1193      1.1  christos     -212,   136,   430,  -212,  -212,   153,  -212,   150,  -212,  -212,
   1194      1.1  christos     -212,  -212,   413,   451,  -212,  -212,  -212,   181,   186,   198,
   1195      1.1  christos      192,   212,   214,   225,   232,  -212,   368,   210,   236,   231,
   1196      1.1  christos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
   1197      1.1  christos      242,   244,  -212,  -212,   261,   221,   107,   325,   162,   343,
   1198      1.1  christos      403,   222,    10,   235,   362,   328,   341,   385,   394,   402,
   1199      1.1  christos     -212,    38,    81,   411,  -212,  -212,  -212,  -212,    82,   263,
   1200      1.1  christos     -212,   428,  -212,  -212,  -212,  -212,   300,  -212,   273,   351,
   1201      1.1  christos     -212,  -212,  -212,  -212,   367,  -212,  -212,  -212,  -212,  -212,
   1202      1.1  christos     -212,  -212,  -212,  -212,  -212,  -212,   376,  -212,  -212,   457,
   1203      1.1  christos       11,   372,   383,   384,   386,  -212,  -212,  -212,   388,    36,
   1204      1.1  christos      389,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,   390,
   1205      1.1  christos      391,   392,   393,   395,   396,   397,   398,  -212,  -212,  -212,
   1206      1.1  christos     -212,   401,   404,   405,   406,   407,   408,   409,   410,   412,
   1207      1.1  christos     -212,   414,  -212,   415,   416,   418,   419,   420,   379,   300,
   1208      1.1  christos      417,   421,   422,   423,  -212,   424,     0,   425,  -212,  -212,
   1209      1.1  christos     -212,  -212,  -212,   431,  -212,  -212,  -212,  -212,  -212,  -212,
   1210      1.1  christos     -212,  -212,  -212,  -212,   426,  -212,   485,   505,  -212,  -212,
   1211      1.1  christos      233,  -212,   432,   427,   434,   436,   435,  -212,  -212,  -212,
   1212      1.1  christos     -212,  -212,  -212,   491,  -212,   493,  -212,  -212,   494,   502,
   1213      1.1  christos      439,  -212,  -212,   504,   136,    80,   440,   437,   -79,   184,
   1214      1.1  christos       29,    72,   521,   123,    41,    79,   512,   239,   102,   513,
   1215      1.1  christos      516,   517,   523,   526,   527,   535,   536,   537,   538,   539,
   1216      1.1  christos      540,   541,   542,   543,   429,   399,    18,   453,   545,   572,
   1217      1.1  christos       95,   455,   381,   548,   549,   565,   551,   552,   553,   554,
   1218      1.1  christos      570,   556,  -212,   557,   267,  -212,  -212,   462,  -212,   559,
   1219      1.1  christos      575,   561,   400,   562,   578,   564,  -212,  -212,  -212,  -212,
   1220      1.1  christos     -212,  -212,   471,   566,    63,  -212,  -212,   567,     5,     6,
   1221      1.1  christos      161,   473,   268,   280,   330,  -212,   569,    86,   571,   573,
   1222      1.1  christos     -212,   474,  -212,   574,    65,  -212,  -212,   576,    55,   342,
   1223      1.1  christos      481,   480,   335,   345,   348,  -212,  -212,  -212,   577,   486,
   1224      1.1  christos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
   1225      1.1  christos     -212,  -212,  -212,  -212,  -212,  -212,   344,  -212,  -212,  -212,
   1226      1.1  christos     -212,   580,   352,  -212,   489,   487,  -212,  -212,   582,   354,
   1227      1.1  christos     -212,   583,   488,   490,   492,   495,   497,   498,   496,   499,
   1228      1.1  christos     -212,  -212,   500,   501,  -212,  -212,   584,   608,   594,  -212,
   1229      1.1  christos      503,   507,   506,   508,   510,   509,   511,   514,   519,   610,
   1230      1.1  christos     -212,   518,   600,   433,   520,  -212,   601,  -212,   607,   522,
   1231      1.1  christos      524,   525,   530,   531,   613,   532,   111,   533,   614,  -212,
   1232      1.1  christos     -212,   615,  -212,  -212,   616,  -212,   534,   618,   438,  -212,
   1233      1.1  christos     -212,   625,   544,   546,   547,   626,   555,   558,   627,   560,
   1234      1.1  christos      629,   563,   630,  -212,  -212,   631,   632,   465,  -212,  -212,
   1235      1.1  christos      633,   641,   634,   568,  -212,  -212,   635,   651,  -212,   637,
   1236      1.1  christos      638,   655,   643,   550,   579,   581,   585,   644,   587,  -212,
   1237      1.1  christos      586,   590,   645,   652,   650,   653,   667,   656,   660,   589,
   1238      1.1  christos      662,   591,   363,  -212,  -212,   593,   356,   358,   360,     7,
   1239      1.1  christos     -212,  -212,  -212,   588,   598,   599,     8,   684,   596,   685,
   1240      1.1  christos      597,   602,   603,    27,   604,  -212,  -212,  -212,   605,   382,
   1241      1.1  christos     -212,  -212,   606,   364,   366,   369,  -212,  -212,   611,   612,
   1242      1.1  christos      617,  -212,   679,   680,   609,   681,   619,   682,   620,  -212,
   1243      1.1  christos     -212,   371,   373,  -212,   375,  -212,   665,  -212,   377,  -212,
   1244      1.1  christos     -212,   621,  -212,   666,   668,   669,   670,  -212,   671,   672,
   1245      1.1  christos     -212,   622,  -212,  -212,  -212,   623,  -212,  -212,   673,  -212,
   1246      1.1  christos      674,   624,   628,   636,  -212,  -212,   675,  -212,   114,  -212,
   1247      1.1  christos      676,  -212,   693,  -212,    28,    30,    31,  -212,   694,  -212,
   1248      1.1  christos      639,  -212,   642,   646,   647,  -212,   695,   648,  -212,  -212,
   1249      1.1  christos      649,   640,   654,   657,  -212,  -212,   696,  -212,   705,  -212,
   1250      1.1  christos      706,  -212,   698,   699,   725,  -212,  -212,   659,  -212,   663,
   1251      1.1  christos     -212,   664,  -212,   709,  -212,   139,  -212,   165,  -212,  -212,
   1252      1.1  christos      710,  -212,  -212,   661,  -212,  -212,  -212,   677,  -212,  -212,
   1253      1.1  christos      658,  -212,   678,   683,   686,  -212,  -212,  -212,   687,   688,
   1254      1.1  christos      689,   690,  -212,   691,  -212,  -212,   711,  -212,   712,  -212,
   1255      1.1  christos      713,  -212,    32,   746,   747,    33,  -212,  -212,    35,   692,
   1256      1.1  christos     -212,  -212,  -212,   697,   700,  -212,   701,  -212,  -212,  -212,
   1257      1.1  christos      740,   742,  -212,   743,   702,   703,   704,   707,   708,   714,
   1258      1.1  christos      715,   716,   726,   717,  -212,   727,   733,  -212,  -212,  -212,
   1259      1.1  christos     -212,  -212,  -212,  -212,  -212,  -212,  -212,   729,  -212,  -212,
   1260      1.1  christos     -212,   732,  -212,  -212,   734,  -212,  -212,  -212,  -212,  -212,
   1261      1.1  christos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
   1262      1.1  christos     -212,   736,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
   1263      1.1  christos     -212,  -212,  -212,  -212
   1264      1.1  christos };
   1265      1.1  christos 
   1266      1.1  christos /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
   1267      1.1  christos    Performed when YYTABLE does not specify something else to do.  Zero
   1268      1.1  christos    means the default is an error.  */
   1269      1.1  christos static const yytype_int16 yydefact[] =
   1270      1.1  christos {
   1271      1.1  christos        0,     0,     2,   297,   298,   305,   302,   308,   312,     0,
   1272      1.1  christos        0,     0,     0,     0,    48,    49,   311,   313,     0,     0,
   1273      1.1  christos        0,   315,   317,   319,   301,   266,     0,   307,   321,   323,
   1274      1.1  christos       90,    97,    99,    91,   105,   320,   322,   103,   101,   266,
   1275      1.1  christos      324,   266,   266,    94,    92,     0,   221,     0,   316,   318,
   1276      1.1  christos      303,   309,     0,     0,   227,   228,   229,     0,     0,     0,
   1277      1.1  christos        0,     0,     0,     0,     0,   314,     0,     0,     0,     0,
   1278      1.1  christos      249,   250,   251,   252,   253,   254,   255,   299,   300,   306,
   1279      1.1  christos        0,     0,   304,   310,     0,   266,     0,     0,   266,   266,
   1280      1.1  christos      266,     0,     0,   266,   266,     0,     0,     0,     0,     0,
   1281      1.1  christos       43,     0,     0,     0,   283,   284,   285,   286,     0,     0,
   1282      1.1  christos       50,     0,    70,    71,    72,    73,     0,    74,     0,     0,
   1283      1.1  christos       98,   100,   104,   102,     0,   276,   278,   277,   280,   279,
   1284      1.1  christos      282,   281,   290,   291,   292,   293,   294,   295,   296,     0,
   1285      1.1  christos        0,     0,     0,     0,     0,   287,   288,   289,     0,     0,
   1286      1.1  christos        0,    95,    93,    96,   222,   224,   223,   226,   225,     0,
   1287      1.1  christos        0,     0,     0,     0,     0,     0,     0,   238,   239,   240,
   1288      1.1  christos      241,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1289      1.1  christos        1,     0,     4,     0,     0,     0,     0,     0,     0,   294,
   1290      1.1  christos        0,     0,     0,     0,    55,     0,     0,     0,    61,    62,
   1291      1.1  christos       63,    64,    65,     0,    68,    69,   269,   268,   271,   270,
   1292      1.1  christos      273,   272,   275,   274,     0,    79,     0,     0,    78,    86,
   1293      1.1  christos        0,    85,     0,     0,     0,     0,     0,    33,    37,    34,
   1294      1.1  christos       38,    36,    46,     0,    44,     0,    35,    52,     0,     0,
   1295      1.1  christos        0,   267,    75,     0,   266,   266,   267,     0,     0,     0,
   1296      1.1  christos      266,   266,     0,   266,     0,     0,     0,     0,   266,     0,
   1297      1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1298      1.1  christos        0,     0,     0,     0,   266,     0,   266,     0,     0,     0,
   1299      1.1  christos      266,     0,   266,     0,     0,     0,     0,     0,     0,     0,
   1300      1.1  christos        0,     0,    66,     0,     0,    80,    81,     0,    87,     0,
   1301      1.1  christos        0,     0,   266,     0,     0,     0,    47,    45,    53,    51,
   1302      1.1  christos       54,    76,     0,     0,     0,   114,   126,     0,     0,     0,
   1303      1.1  christos        0,     0,     0,     0,     0,   113,     0,     0,     0,     0,
   1304      1.1  christos      127,     0,   219,     0,     0,   186,   218,     0,     0,     0,
   1305      1.1  christos        0,     0,     0,     0,     0,   187,   220,   214,     0,     0,
   1306      1.1  christos      230,   231,   232,   233,   234,   235,   236,   237,   242,   243,
   1307      1.1  christos      244,   245,   246,   247,   248,   264,     0,   256,   265,     6,
   1308      1.1  christos        9,     0,     0,     7,     0,     0,     8,    19,     0,     0,
   1309      1.1  christos       18,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1310      1.1  christos       58,    57,     0,     0,    56,    67,     0,     0,     0,    88,
   1311      1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1312      1.1  christos      106,   121,     0,     0,     0,   118,     0,   115,     0,     0,
   1313      1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,     0,   107,
   1314      1.1  christos      123,     0,   108,   128,     0,   178,   182,     0,     0,   217,
   1315      1.1  christos      184,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1316      1.1  christos        0,     0,     0,   215,   179,     0,     0,     0,    10,     3,
   1317      1.1  christos        0,     0,     0,     0,    20,    17,     0,     0,    24,     0,
   1318      1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,     0,    82,
   1319      1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   1320      1.1  christos        0,     0,     0,   122,   117,     0,     0,     0,     0,     0,
   1321      1.1  christos      111,   116,   109,     0,     0,     0,     0,     0,     0,     0,
   1322      1.1  christos        0,     0,     0,     0,     0,   124,   120,   129,     0,     0,
   1323      1.1  christos      183,   188,     0,     0,     0,     0,   185,   180,     0,     0,
   1324      1.1  christos        0,   189,     0,     0,     0,     0,     0,     0,     0,   216,
   1325      1.1  christos      257,     0,     0,    11,     0,     5,     0,    21,     0,    29,
   1326      1.1  christos       27,     0,    25,     0,     0,     0,     0,    59,     0,     0,
   1327      1.1  christos       83,     0,   174,   170,   169,     0,   171,   173,     0,   175,
   1328      1.1  christos        0,     0,     0,     0,   154,   131,     0,   136,     0,   163,
   1329      1.1  christos        0,   119,     0,   110,     0,     0,     0,   156,     0,   132,
   1330      1.1  christos        0,   137,     0,     0,     0,   167,     0,     0,   125,   130,
   1331      1.1  christos        0,     0,     0,     0,   203,   190,     0,   194,     0,   208,
   1332      1.1  christos        0,   181,     0,     0,     0,   205,   191,     0,   195,     0,
   1333      1.1  christos      212,     0,   258,     0,   260,     0,    12,     0,    16,    23,
   1334      1.1  christos        0,    30,    28,     0,    26,    41,    40,     0,    39,    60,
   1335      1.1  christos        0,    89,     0,     0,     0,   146,   149,   153,     0,     0,
   1336      1.1  christos        0,     0,   164,     0,   112,   147,     0,   150,     0,   155,
   1337      1.1  christos        0,   152,     0,     0,     0,     0,   168,   159,     0,     0,
   1338      1.1  christos      198,   200,   202,     0,     0,   209,     0,   199,   201,   204,
   1339      1.1  christos        0,     0,   213,     0,     0,     0,     0,     0,     0,     0,
   1340      1.1  christos        0,     0,     0,     0,    84,     0,     0,    77,   134,   141,
   1341      1.1  christos      143,   139,   161,   145,   148,   151,   135,     0,   142,   144,
   1342      1.1  christos      140,     0,   160,   165,     0,   177,   192,   196,   206,   193,
   1343      1.1  christos      197,   210,   259,   262,   263,   261,    14,    15,    13,    22,
   1344      1.1  christos       31,     0,   172,   176,   162,   133,   138,   166,   157,   207,
   1345      1.1  christos      211,    32,    42,   158
   1346      1.1  christos };
   1347      1.1  christos 
   1348      1.1  christos /* YYPGOTO[NTERM-NUM].  */
   1349      1.1  christos static const yytype_int16 yypgoto[] =
   1350      1.1  christos {
   1351      1.1  christos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
   1352      1.1  christos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
   1353      1.1  christos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
   1354      1.1  christos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
   1355      1.1  christos      -39,   529,   -84,   -48,  -211,   -82,  -212,  -212,  -212,  -212,
   1356      1.1  christos     -212,  -212,  -212,  -212,  -212,  -212
   1357      1.1  christos };
   1358      1.1  christos 
   1359      1.1  christos /* YYDEFGOTO[NTERM-NUM].  */
   1360      1.1  christos static const yytype_int16 yydefgoto[] =
   1361      1.1  christos {
   1362      1.1  christos        0,    84,   277,   458,   464,   634,   632,   631,   741,   292,
   1363      1.1  christos      242,   295,   298,   152,   151,   120,   121,   123,   122,   583,
   1364      1.1  christos      501,   493,   515,   598,   517,   599,   743,   712,   734,   652,
   1365      1.1  christos      737,   666,   611,   520,   526,   739,   675,   740,   682,   453,
   1366      1.1  christos      118,   218,   141,   110,   150,   142,    85,    86,    87,    88,
   1367      1.1  christos       89,    90,    91,    92,    93,    94
   1368      1.1  christos };
   1369      1.1  christos 
   1370      1.1  christos /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
   1371      1.1  christos    positive, shift that token.  If negative, reduce the rule whose
   1372      1.1  christos    number is the opposite.  If YYTABLE_NINF, syntax error.  */
   1373      1.1  christos static const yytype_int16 yytable[] =
   1374      1.1  christos {
   1375      1.1  christos      140,   184,   143,   149,   156,   158,   192,   197,   415,   417,
   1376      1.1  christos      581,   587,   226,   206,   207,   208,   209,   210,   211,   212,
   1377      1.1  christos      213,   369,   125,   126,   127,   128,   129,   130,   131,   214,
   1378      1.1  christos      595,   655,   325,   657,   659,   706,   710,   116,   713,   215,
   1379      1.1  christos      248,   319,   335,   111,   320,   221,   183,   370,   116,   191,
   1380      1.1  christos      196,   203,   336,   100,   220,   225,   124,   125,   126,   127,
   1381      1.1  christos      128,   129,   130,   131,   368,   255,   440,   232,   132,   133,
   1382      1.1  christos      134,   135,   136,   137,   138,   206,   207,   208,   209,   210,
   1383      1.1  christos      211,   212,   213,    95,   125,   126,   127,   128,   129,   130,
   1384      1.1  christos      131,   116,   411,    96,   436,   132,   133,   134,   135,   189,
   1385      1.1  christos      137,   138,   104,   105,   106,   107,   104,   105,   106,   107,
   1386      1.1  christos      234,   237,    97,   345,   116,   430,   510,   511,   185,   649,
   1387      1.1  christos      650,   116,   289,   290,   377,   346,   416,   418,   582,   588,
   1388      1.1  christos      186,   347,   216,   217,   249,   145,   146,   147,   119,   371,
   1389      1.1  christos      512,    98,   116,   651,   685,   686,   332,    99,   596,   656,
   1390      1.1  christos      326,   658,   660,   707,   711,   116,   714,   153,   256,   257,
   1391      1.1  christos      233,   315,   337,   316,   101,   188,   419,   420,   687,   102,
   1392      1.1  christos      688,   689,   103,   421,   154,   139,   441,   132,   133,   134,
   1393      1.1  christos      135,   189,   137,   138,   159,   412,   413,   437,   438,   160,
   1394      1.1  christos      367,   190,   373,   328,   690,   163,   321,   322,   323,   338,
   1395      1.1  christos      385,   313,   339,   235,   238,   312,   314,   324,   431,   161,
   1396      1.1  christos      162,   327,   329,   108,   334,   164,   378,   165,   109,   349,
   1397      1.1  christos      405,   174,   175,   348,   181,   125,   126,   127,   128,   129,
   1398      1.1  christos      130,   131,   380,   204,   205,   366,   166,   372,     1,   176,
   1399      1.1  christos      116,   379,   177,   384,   333,   178,   104,   105,   106,   107,
   1400      1.1  christos      182,   341,   342,   343,   116,   179,     2,   167,   168,   169,
   1401      1.1  christos      170,   180,   344,   404,   219,     3,     4,     5,     6,     7,
   1402      1.1  christos        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
   1403      1.1  christos       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
   1404      1.1  christos       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
   1405      1.1  christos       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
   1406      1.1  christos       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
   1407      1.1  christos       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
   1408      1.1  christos       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
   1409      1.1  christos       78,    79,    80,    81,    82,    83,   193,   442,   443,   187,
   1410      1.1  christos      112,   113,   114,   115,   444,   299,   300,   227,   132,   133,
   1411      1.1  christos      134,   135,   189,   137,   138,   222,   116,   194,   571,   572,
   1412      1.1  christos      228,   171,   195,   172,   173,   573,   117,   132,   133,   134,
   1413      1.1  christos      135,   189,   137,   138,   382,   239,   223,   601,   602,   396,
   1414      1.1  christos      397,   224,   423,   424,   603,   243,   132,   133,   134,   135,
   1415      1.1  christos      189,   137,   138,   402,   425,   426,   198,   199,   200,   201,
   1416      1.1  christos      383,   145,   146,   147,   229,   132,   133,   134,   135,   189,
   1417      1.1  christos      137,   138,   116,   230,   104,   105,   106,   107,   241,   403,
   1418      1.1  christos      155,   231,   202,   125,   126,   127,   128,   129,   130,   131,
   1419      1.1  christos      236,   144,   145,   146,   147,   495,   496,   497,   116,   116,
   1420      1.1  christos      522,   523,   524,   148,   427,   428,   498,   240,   365,   447,
   1421      1.1  christos      448,   525,   104,   105,   106,   107,   456,   457,   157,   449,
   1422      1.1  christos      450,   244,   451,   452,   460,   461,   466,   467,   541,   542,
   1423      1.1  christos      575,   576,   577,   578,   579,   580,   247,   245,   605,   606,
   1424      1.1  christos      607,   608,   250,   609,   610,   622,   623,   624,   625,   626,
   1425      1.1  christos      627,   629,   630,   251,   246,   283,   253,   252,   254,   258,
   1426      1.1  christos      259,   260,   261,   262,   296,   263,   264,   265,   266,   297,
   1427      1.1  christos      306,   267,   307,   308,   268,   269,   270,   271,   272,   273,
   1428      1.1  christos      274,   309,   275,   311,   276,   331,   279,   278,   280,   281,
   1429      1.1  christos      282,   340,   350,   284,   285,   351,   352,   302,   286,   287,
   1430      1.1  christos      288,   291,   353,   293,   294,   354,   355,   318,   301,   304,
   1431      1.1  christos      303,   305,   317,   310,   356,   357,   358,   359,   360,   361,
   1432      1.1  christos      362,   363,   364,   374,   375,   376,   381,   386,   387,   388,
   1433      1.1  christos      389,   390,   391,   392,   393,   394,   395,   398,   399,   400,
   1434      1.1  christos      401,   406,   407,   408,   409,   410,   414,   422,   429,   434,
   1435      1.1  christos      432,   445,   433,   435,   446,   439,   454,   463,   455,   459,
   1436      1.1  christos      462,   465,   468,   479,   469,   471,   470,   473,   474,   476,
   1437      1.1  christos      475,   472,   480,   481,   491,   478,   477,   483,   482,   494,
   1438      1.1  christos      500,   488,   484,   486,   485,   487,   502,   531,   489,   490,
   1439      1.1  christos      499,   492,   508,   514,   516,   518,   503,   521,   504,   505,
   1440      1.1  christos      506,   507,   509,   513,   527,   544,   534,   519,   536,   538,
   1441      1.1  christos      539,   540,   543,   545,   547,   548,   549,   550,   528,   551,
   1442      1.1  christos      529,   530,   552,   557,   561,   532,   562,   553,   533,   563,
   1443      1.1  christos      535,   565,   564,   537,   567,   566,   569,   589,   591,   546,
   1444      1.1  christos      615,   616,   618,   620,   628,   635,   715,   636,   637,   638,
   1445      1.1  christos      639,   640,   643,   644,   648,   653,   554,   555,   584,   677,
   1446      1.1  christos      678,   559,   556,   558,   560,   568,   570,   574,   585,   586,
   1447      1.1  christos      590,   592,   654,   661,   667,   673,   593,   594,   597,   600,
   1448      1.1  christos      604,   612,   613,   617,   674,   676,   679,   614,   684,   691,
   1449      1.1  christos      703,   704,   705,   619,   621,   633,   641,   642,   645,   708,
   1450      1.1  christos      709,   719,   646,   720,   721,   730,   732,   733,   735,   662,
   1451      1.1  christos      647,   736,   663,   738,   670,   742,   664,   665,   668,   669,
   1452      1.1  christos        0,     0,     0,     0,     0,     0,     0,     0,   671,   680,
   1453      1.1  christos      330,   672,   694,   681,   683,     0,     0,   692,     0,     0,
   1454      1.1  christos        0,     0,     0,     0,     0,     0,     0,   693,     0,     0,
   1455      1.1  christos        0,     0,     0,   696,   695,     0,     0,     0,     0,     0,
   1456      1.1  christos      697,   698,   699,   700,   701,   702,     0,     0,     0,     0,
   1457      1.1  christos        0,   716,     0,     0,   717,   718,   722,   723,   724,     0,
   1458      1.1  christos        0,   725,   726,     0,     0,     0,     0,     0,   727,   728,
   1459      1.1  christos      729,     0,     0,     0,   731
   1460      1.1  christos };
   1461      1.1  christos 
   1462      1.1  christos static const yytype_int16 yycheck[] =
   1463      1.1  christos {
   1464      1.1  christos       39,    85,    41,    42,    52,    53,    88,    89,     3,     3,
   1465      1.1  christos        3,     3,    94,     3,     4,     5,     6,     7,     8,     9,
   1466      1.1  christos       10,     3,     4,     5,     6,     7,     8,     9,    10,    19,
   1467      1.1  christos        3,     3,     3,     3,     3,     3,     3,    19,     3,    29,
   1468      1.1  christos       29,   120,   253,   123,   123,    93,    85,    29,    19,    88,
   1469      1.1  christos       89,    90,    11,    11,    93,    94,     3,     4,     5,     6,
   1470      1.1  christos        7,     8,     9,    10,   275,    29,    11,    29,    15,    16,
   1471      1.1  christos       17,    18,    19,    20,    21,     3,     4,     5,     6,     7,
   1472      1.1  christos        8,     9,    10,   127,     4,     5,     6,     7,     8,     9,
   1473      1.1  christos       10,    19,    29,   127,    29,    15,    16,    17,    18,    19,
   1474      1.1  christos       20,    21,    11,    12,    13,    14,    11,    12,    13,    14,
   1475      1.1  christos       29,    29,   127,    11,    19,    29,     5,     6,    11,     5,
   1476      1.1  christos        6,    19,   122,   123,    29,    23,   121,   121,   121,   121,
   1477      1.1  christos       23,    29,   122,   123,   123,    12,    13,    14,     4,   121,
   1478      1.1  christos       29,   127,    19,    29,     5,     6,    23,   127,   121,   121,
   1479      1.1  christos      121,   121,   121,   121,   121,    19,   121,     4,   122,   123,
   1480      1.1  christos      122,   245,   121,   245,   122,     3,     5,     6,    29,   127,
   1481      1.1  christos        5,     6,   127,    12,    24,   122,   121,    15,    16,    17,
   1482      1.1  christos       18,    19,    20,    21,     3,   122,   123,   122,   123,     3,
   1483      1.1  christos      274,    29,   276,   121,    29,     3,    12,    13,    14,   120,
   1484      1.1  christos      282,   121,   123,   122,   122,   244,   245,    23,   122,    11,
   1485      1.1  christos       12,   250,   251,   122,   253,     3,   121,     3,   127,   258,
   1486      1.1  christos      302,    11,    12,   121,     3,     4,     5,     6,     7,     8,
   1487      1.1  christos        9,    10,   280,    11,    12,   274,    11,   276,    12,     3,
   1488      1.1  christos       19,   280,    11,   282,   121,     3,    11,    12,    13,    14,
   1489      1.1  christos       29,    12,    13,    14,    19,    11,    30,    25,    26,    27,
   1490      1.1  christos       28,     0,    23,   302,    29,    39,    40,    41,    42,    43,
   1491      1.1  christos       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
   1492      1.1  christos       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
   1493      1.1  christos       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
   1494      1.1  christos       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
   1495      1.1  christos       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
   1496      1.1  christos       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
   1497      1.1  christos      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
   1498      1.1  christos      114,   115,   116,   117,   118,   119,     3,     5,     6,    24,
   1499      1.1  christos        3,     4,     5,     6,    12,   122,   123,    29,    15,    16,
   1500      1.1  christos       17,    18,    19,    20,    21,     3,    19,    24,     5,     6,
   1501      1.1  christos       29,     3,    29,     5,     6,    12,    29,    15,    16,    17,
   1502      1.1  christos       18,    19,    20,    21,     3,   122,    24,     5,     6,   122,
   1503      1.1  christos      123,    29,   124,   125,    12,   122,    15,    16,    17,    18,
   1504      1.1  christos       19,    20,    21,     3,   124,   125,     3,     4,     5,     6,
   1505      1.1  christos       29,    12,    13,    14,    29,    15,    16,    17,    18,    19,
   1506      1.1  christos       20,    21,    19,    29,    11,    12,    13,    14,   128,    29,
   1507      1.1  christos       17,    29,    29,     4,     5,     6,     7,     8,     9,    10,
   1508      1.1  christos       29,    11,    12,    13,    14,    12,    13,    14,    19,    19,
   1509      1.1  christos       12,    13,    14,    23,   124,   125,    23,    29,    29,   124,
   1510      1.1  christos      125,    23,    11,    12,    13,    14,   122,   123,    17,   124,
   1511      1.1  christos      125,   120,   124,   125,   122,   123,   122,   123,    13,    14,
   1512      1.1  christos      124,   125,   124,   125,   124,   125,    29,   120,   124,   125,
   1513      1.1  christos      124,   125,   120,   124,   125,   124,   125,   124,   125,   124,
   1514      1.1  christos      125,   124,   125,   120,   128,   126,   120,   123,   120,   120,
   1515      1.1  christos      120,   120,   120,   120,    29,   120,   120,   120,   120,    14,
   1516      1.1  christos       29,   120,    29,    29,   120,   120,   120,   120,   120,   120,
   1517      1.1  christos      120,    29,   120,    29,   120,    14,   120,   122,   120,   120,
   1518      1.1  christos      120,    29,    29,   126,   123,    29,    29,   120,   126,   126,
   1519      1.1  christos      126,   126,    29,   122,   128,    29,    29,   120,   126,   123,
   1520      1.1  christos      126,   126,   122,   124,    29,    29,    29,    29,    29,    29,
   1521      1.1  christos       29,    29,    29,   120,    29,     3,   121,    29,    29,    14,
   1522      1.1  christos       29,    29,    29,    29,    14,    29,    29,   125,    29,    14,
   1523      1.1  christos       29,    29,    14,    29,   123,    29,    29,   124,    29,   125,
   1524      1.1  christos       29,   120,    29,    29,   124,    29,    29,   120,   122,    29,
   1525      1.1  christos      121,    29,    29,    29,   126,   123,   126,   120,   120,   120,
   1526      1.1  christos      124,   126,    14,    29,    14,   124,   126,   120,   125,    29,
   1527      1.1  christos       29,   120,   126,   123,   126,   126,    29,    11,   124,   120,
   1528      1.1  christos      120,   123,    29,    29,    29,    29,   124,    29,   124,   124,
   1529      1.1  christos      120,   120,   120,   120,    29,    14,    29,   123,    29,    29,
   1530      1.1  christos       29,    29,    29,    29,    29,    14,    29,    29,   124,    14,
   1531      1.1  christos      124,   124,    29,    29,    29,   120,    24,   127,   120,    29,
   1532      1.1  christos      120,    14,    29,   120,    24,    29,    24,     3,     3,   121,
   1533      1.1  christos       11,    11,    11,    11,    29,    29,     4,    29,    29,    29,
   1534      1.1  christos       29,    29,    29,    29,    29,    29,   127,   126,   120,    11,
   1535      1.1  christos       11,   125,   127,   126,   124,   126,   125,   124,   120,   120,
   1536      1.1  christos      124,   124,    29,    29,    29,    29,   124,   124,   124,   124,
   1537      1.1  christos      124,   120,   120,   124,    29,    29,    11,   120,    29,    29,
   1538      1.1  christos       29,    29,    29,   124,   124,   124,   124,   124,   124,     3,
   1539      1.1  christos        3,    11,   124,    11,    11,    29,    29,    24,    29,   120,
   1540      1.1  christos      124,    29,   120,    29,   124,    29,   120,   120,   120,   120,
   1541      1.1  christos       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   124,   120,
   1542      1.1  christos      251,   124,   124,   120,   120,    -1,    -1,   126,    -1,    -1,
   1543      1.1  christos       -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
   1544      1.1  christos       -1,    -1,    -1,   120,   126,    -1,    -1,    -1,    -1,    -1,
   1545      1.1  christos      124,   124,   124,   124,   124,   124,    -1,    -1,    -1,    -1,
   1546      1.1  christos       -1,   124,    -1,    -1,   124,   124,   124,   124,   124,    -1,
   1547      1.1  christos       -1,   124,   124,    -1,    -1,    -1,    -1,    -1,   124,   124,
   1548      1.1  christos      124,    -1,    -1,    -1,   127
   1549      1.1  christos };
   1550      1.1  christos 
   1551      1.1  christos /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
   1552      1.1  christos    state STATE-NUM.  */
   1553      1.1  christos static const yytype_uint8 yystos[] =
   1554      1.1  christos {
   1555      1.1  christos        0,    12,    30,    39,    40,    41,    42,    43,    44,    45,
   1556      1.1  christos       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
   1557      1.1  christos       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
   1558      1.1  christos       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
   1559      1.1  christos       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
   1560      1.1  christos       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
   1561      1.1  christos       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   1562      1.1  christos      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
   1563      1.1  christos      116,   117,   118,   119,   130,   175,   176,   177,   178,   179,
   1564      1.1  christos      180,   181,   182,   183,   184,   127,   127,   127,   127,   127,
   1565      1.1  christos       11,   122,   127,   127,    11,    12,    13,    14,   122,   127,
   1566      1.1  christos      172,   123,     3,     4,     5,     6,    19,    29,   169,     4,
   1567      1.1  christos      144,   145,   147,   146,     3,     4,     5,     6,     7,     8,
   1568      1.1  christos        9,    10,    15,    16,    17,    18,    19,    20,    21,   122,
   1569      1.1  christos      169,   171,   174,   169,    11,    12,    13,    14,    23,   169,
   1570      1.1  christos      173,   143,   142,     4,    24,    17,   172,    17,   172,     3,
   1571      1.1  christos        3,    11,    12,     3,     3,     3,    11,    25,    26,    27,
   1572      1.1  christos       28,     3,     5,     6,    11,    12,     3,    11,     3,    11,
   1573      1.1  christos        0,     3,    29,   169,   171,    11,    23,    24,     3,    19,
   1574      1.1  christos       29,   169,   174,     3,    24,    29,   169,   174,     3,     4,
   1575      1.1  christos        5,     6,    29,   169,    11,    12,     3,     4,     5,     6,
   1576      1.1  christos        7,     8,     9,    10,    19,    29,   122,   123,   170,    29,
   1577      1.1  christos      169,   172,     3,    24,    29,   169,   174,    29,    29,    29,
   1578      1.1  christos       29,    29,    29,   122,    29,   122,    29,    29,   122,   122,
   1579      1.1  christos       29,   128,   139,   122,   120,   120,   128,    29,    29,   123,
   1580      1.1  christos      120,   120,   123,   120,   120,    29,   122,   123,   120,   120,
   1581      1.1  christos      120,   120,   120,   120,   120,   120,   120,   120,   120,   120,
   1582      1.1  christos      120,   120,   120,   120,   120,   120,   120,   131,   122,   120,
   1583      1.1  christos      120,   120,   120,   126,   126,   123,   126,   126,   126,   122,
   1584      1.1  christos      123,   126,   138,   122,   128,   140,    29,    14,   141,   122,
   1585      1.1  christos      123,   126,   120,   126,   123,   126,    29,    29,    29,    29,
   1586      1.1  christos      124,    29,   169,   121,   169,   171,   174,   122,   120,   120,
   1587      1.1  christos      123,    12,    13,    14,    23,     3,   121,   169,   121,   169,
   1588      1.1  christos      170,    14,    23,   121,   169,   173,    11,   121,   120,   123,
   1589      1.1  christos       29,    12,    13,    14,    23,    11,    23,    29,   121,   169,
   1590      1.1  christos       29,    29,    29,    29,    29,    29,    29,    29,    29,    29,
   1591      1.1  christos       29,    29,    29,    29,    29,    29,   169,   171,   173,     3,
   1592      1.1  christos       29,   121,   169,   171,   120,    29,     3,    29,   121,   169,
   1593      1.1  christos      172,   121,     3,    29,   169,   174,    29,    29,    14,    29,
   1594      1.1  christos       29,    29,    29,    14,    29,    29,   122,   123,   125,    29,
   1595      1.1  christos       14,    29,     3,    29,   169,   174,    29,    14,    29,   123,
   1596      1.1  christos       29,    29,   122,   123,    29,     3,   121,     3,   121,     5,
   1597      1.1  christos        6,    12,   124,   124,   125,   124,   125,   124,   125,    29,
   1598      1.1  christos       29,   122,    29,    29,   125,    29,    29,   122,   123,    29,
   1599      1.1  christos       11,   121,     5,     6,    12,   120,   124,   124,   125,   124,
   1600      1.1  christos      125,   124,   125,   168,    29,   122,   122,   123,   132,    29,
   1601      1.1  christos      122,   123,   121,   120,   133,    29,   122,   123,    29,   126,
   1602      1.1  christos      126,   123,   126,   120,   120,   124,   120,   126,   124,    29,
   1603      1.1  christos       14,    29,   125,   120,   126,   126,   123,   126,   120,   124,
   1604      1.1  christos      120,    14,   123,   150,    29,    12,    13,    14,    23,   120,
   1605      1.1  christos       29,   149,    29,   124,   124,   124,   120,   120,    29,   120,
   1606      1.1  christos        5,     6,    29,   120,    29,   151,    29,   153,    29,   123,
   1607      1.1  christos      162,    29,    12,    13,    14,    23,   163,    29,   124,   124,
   1608      1.1  christos      124,    11,   120,   120,    29,   120,    29,   120,    29,    29,
   1609      1.1  christos       29,    13,    14,    29,    14,    29,   121,    29,    14,    29,
   1610      1.1  christos       29,    14,    29,   127,   127,   126,   127,    29,   126,   125,
   1611      1.1  christos      124,    29,    24,    29,    29,    14,    29,    24,   126,    24,
   1612      1.1  christos      125,     5,     6,    12,   124,   124,   125,   124,   125,   124,
   1613      1.1  christos      125,     3,   121,   148,   120,   120,   120,     3,   121,     3,
   1614      1.1  christos      124,     3,   124,   124,   124,     3,   121,   124,   152,   154,
   1615      1.1  christos      124,     5,     6,    12,   124,   124,   125,   124,   125,   124,
   1616      1.1  christos      125,   161,   120,   120,   120,    11,    11,   124,    11,   124,
   1617      1.1  christos       11,   124,   124,   125,   124,   125,   124,   125,    29,   124,
   1618      1.1  christos      125,   136,   135,   124,   134,    29,    29,    29,    29,    29,
   1619      1.1  christos       29,   124,   124,    29,    29,   124,   124,   124,    29,     5,
   1620      1.1  christos        6,    29,   158,    29,    29,     3,   121,     3,   121,     3,
   1621      1.1  christos      121,    29,   120,   120,   120,   120,   160,    29,   120,   120,
   1622      1.1  christos      124,   124,   124,    29,    29,   165,    29,    11,    11,    11,
   1623      1.1  christos      120,   120,   167,   120,    29,     5,     6,    29,     5,     6,
   1624      1.1  christos       29,    29,   126,   120,   124,   126,   120,   124,   124,   124,
   1625      1.1  christos      124,   124,   124,    29,    29,    29,     3,   121,     3,     3,
   1626      1.1  christos        3,   121,   156,     3,   121,     4,   124,   124,   124,    11,
   1627      1.1  christos       11,    11,   124,   124,   124,   124,   124,   124,   124,   124,
   1628      1.1  christos       29,   127,    29,    24,   157,    29,    29,   159,    29,   164,
   1629      1.1  christos      166,   137,    29,   155
   1630      1.1  christos };
   1631      1.1  christos 
   1632      1.1  christos /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
   1633      1.1  christos static const yytype_uint8 yyr1[] =
   1634      1.1  christos {
   1635      1.1  christos        0,   129,   130,   130,   131,   130,   130,   130,   130,   132,
   1636      1.1  christos      130,   130,   130,   130,   130,   130,   130,   130,   130,   133,
   1637      1.1  christos      130,   130,   130,   130,   130,   134,   130,   135,   130,   136,
   1638      1.1  christos      130,   137,   130,   130,   130,   130,   130,   130,   130,   130,
   1639      1.1  christos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
   1640      1.1  christos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
   1641      1.1  christos      130,   130,   130,   130,   130,   138,   130,   130,   130,   130,
   1642      1.1  christos      130,   130,   130,   130,   139,   130,   130,   130,   130,   140,
   1643      1.1  christos      130,   130,   130,   130,   130,   130,   141,   130,   130,   130,
   1644      1.1  christos      130,   130,   142,   130,   143,   130,   130,   144,   130,   145,
   1645      1.1  christos      130,   146,   130,   147,   130,   130,   130,   130,   130,   148,
   1646      1.1  christos      130,   130,   130,   130,   130,   149,   130,   130,   130,   130,
   1647      1.1  christos      130,   150,   130,   151,   152,   130,   130,   130,   153,   154,
   1648      1.1  christos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
   1649      1.1  christos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
   1650      1.1  christos      130,   130,   130,   130,   130,   130,   130,   155,   130,   156,
   1651      1.1  christos      130,   157,   130,   158,   130,   159,   130,   160,   130,   130,
   1652      1.1  christos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
   1653      1.1  christos      161,   130,   162,   130,   163,   130,   130,   130,   130,   130,
   1654      1.1  christos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
   1655      1.1  christos      130,   130,   130,   130,   130,   130,   164,   130,   165,   130,
   1656      1.1  christos      166,   130,   167,   130,   168,   130,   130,   130,   130,   130,
   1657      1.1  christos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
   1658      1.1  christos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
   1659      1.1  christos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
   1660      1.1  christos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
   1661      1.1  christos      130,   130,   130,   130,   130,   130,   169,   169,   170,   170,
   1662      1.1  christos      170,   170,   170,   170,   170,   170,   171,   171,   171,   171,
   1663      1.1  christos      171,   171,   171,   172,   172,   172,   172,   173,   173,   173,
   1664      1.1  christos      174,   174,   174,   174,   174,   174,   174,   175,   175,   175,
   1665      1.1  christos      175,   175,   175,   175,   175,   176,   176,   176,   177,   177,
   1666      1.1  christos      177,   178,   178,   178,   179,   179,   180,   180,   181,   181,
   1667      1.1  christos      182,   182,   183,   183,   184
   1668      1.1  christos };
   1669      1.1  christos 
   1670      1.1  christos /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
   1671      1.1  christos static const yytype_int8 yyr2[] =
   1672      1.1  christos {
   1673      1.1  christos        0,     2,     1,     5,     0,     6,     4,     4,     4,     0,
   1674      1.1  christos        5,     6,     7,     9,     9,     9,     7,     5,     4,     0,
   1675      1.1  christos        5,     6,     9,     7,     5,     0,     7,     0,     7,     0,
   1676      1.1  christos        7,     0,    10,     3,     3,     3,     3,     3,     3,     7,
   1677      1.1  christos        7,     7,    10,     2,     3,     4,     3,     4,     1,     1,
   1678      1.1  christos        2,     4,     3,     4,     4,     2,     4,     4,     4,     6,
   1679      1.1  christos        7,     2,     2,     2,     2,     0,     3,     4,     2,     2,
   1680      1.1  christos        2,     2,     2,     2,     0,     3,     4,     9,     2,     0,
   1681      1.1  christos        3,     3,     5,     6,     8,     2,     0,     3,     4,     7,
   1682      1.1  christos        1,     1,     0,     2,     0,     2,     2,     0,     2,     0,
   1683      1.1  christos        2,     0,     2,     0,     2,     1,     5,     5,     5,     0,
   1684      1.1  christos        7,     6,     8,     4,     4,     0,     6,     6,     5,     7,
   1685      1.1  christos        6,     0,     6,     0,     0,     7,     4,     4,     0,     0,
   1686      1.1  christos        7,     7,     7,    10,     9,     9,     7,     7,    10,     9,
   1687      1.1  christos        9,     9,     9,     9,     9,     9,     8,     8,     9,     8,
   1688      1.1  christos        8,     9,     8,     8,     7,     8,     7,     0,    11,     0,
   1689      1.1  christos        9,     0,    10,     0,     8,     0,    10,     0,     8,     6,
   1690      1.1  christos        6,     6,     9,     6,     6,     6,     9,     9,     5,     5,
   1691      1.1  christos        0,     7,     0,     6,     0,     6,     4,     4,     6,     6,
   1692      1.1  christos        7,     7,     9,     9,     7,     7,     9,     9,     8,     8,
   1693      1.1  christos        8,     8,     8,     7,     8,     7,     0,    10,     0,     8,
   1694      1.1  christos        0,    10,     0,     8,     0,     5,     6,     5,     4,     4,
   1695      1.1  christos        4,     1,     2,     2,     2,     2,     2,     1,     1,     1,
   1696      1.1  christos        4,     4,     4,     4,     4,     4,     4,     4,     2,     2,
   1697      1.1  christos        2,     2,     4,     4,     4,     4,     4,     4,     4,     1,
   1698      1.1  christos        1,     1,     1,     1,     1,     1,     4,     6,     7,     9,
   1699      1.1  christos        7,     9,     9,     9,     4,     4,     0,     2,     1,     1,
   1700      1.1  christos        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   1701      1.1  christos        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   1702      1.1  christos        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   1703      1.1  christos        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   1704      1.1  christos        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
   1705      1.1  christos        1,     1,     1,     1,     1
   1706      1.1  christos };
   1707      1.1  christos 
   1708      1.1  christos 
   1709      1.1  christos enum { YYENOMEM = -2 };
   1710      1.1  christos 
   1711      1.1  christos #define yyerrok         (yyerrstatus = 0)
   1712      1.1  christos #define yyclearin       (yychar = YYEMPTY)
   1713      1.1  christos 
   1714      1.1  christos #define YYACCEPT        goto yyacceptlab
   1715      1.1  christos #define YYABORT         goto yyabortlab
   1716      1.1  christos #define YYERROR         goto yyerrorlab
   1717      1.1  christos #define YYNOMEM         goto yyexhaustedlab
   1718      1.1  christos 
   1719      1.1  christos 
   1720      1.1  christos #define YYRECOVERING()  (!!yyerrstatus)
   1721      1.1  christos 
   1722      1.1  christos #define YYBACKUP(Token, Value)                                    \
   1723      1.1  christos   do                                                              \
   1724      1.1  christos     if (yychar == YYEMPTY)                                        \
   1725      1.1  christos       {                                                           \
   1726      1.1  christos         yychar = (Token);                                         \
   1727      1.1  christos         yylval = (Value);                                         \
   1728      1.1  christos         YYPOPSTACK (yylen);                                       \
   1729      1.1  christos         yystate = *yyssp;                                         \
   1730      1.1  christos         goto yybackup;                                            \
   1731      1.1  christos       }                                                           \
   1732      1.1  christos     else                                                          \
   1733      1.1  christos       {                                                           \
   1734      1.1  christos         yyerror (YY_("syntax error: cannot back up")); \
   1735      1.1  christos         YYERROR;                                                  \
   1736      1.1  christos       }                                                           \
   1737      1.1  christos   while (0)
   1738      1.1  christos 
   1739      1.1  christos /* Backward compatibility with an undocumented macro.
   1740      1.1  christos    Use YYerror or YYUNDEF. */
   1741      1.1  christos #define YYERRCODE YYUNDEF
   1742      1.1  christos 
   1743      1.1  christos 
   1744      1.1  christos /* Enable debugging if requested.  */
   1745      1.1  christos #if YYDEBUG
   1746      1.1  christos 
   1747      1.1  christos # ifndef YYFPRINTF
   1748      1.1  christos #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
   1749      1.1  christos #  define YYFPRINTF fprintf
   1750      1.1  christos # endif
   1751      1.1  christos 
   1752      1.1  christos # define YYDPRINTF(Args)                        \
   1753      1.1  christos do {                                            \
   1754      1.1  christos   if (yydebug)                                  \
   1755      1.1  christos     YYFPRINTF Args;                             \
   1756      1.1  christos } while (0)
   1757      1.1  christos 
   1758      1.1  christos 
   1759      1.1  christos 
   1760      1.1  christos 
   1761      1.1  christos # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
   1762      1.1  christos do {                                                                      \
   1763      1.1  christos   if (yydebug)                                                            \
   1764      1.1  christos     {                                                                     \
   1765      1.1  christos       YYFPRINTF (stderr, "%s ", Title);                                   \
   1766      1.1  christos       yy_symbol_print (stderr,                                            \
   1767      1.1  christos                   Kind, Value); \
   1768      1.1  christos       YYFPRINTF (stderr, "\n");                                           \
   1769      1.1  christos     }                                                                     \
   1770      1.1  christos } while (0)
   1771      1.1  christos 
   1772      1.1  christos 
   1773      1.1  christos /*-----------------------------------.
   1774      1.1  christos | Print this symbol's value on YYO.  |
   1775      1.1  christos `-----------------------------------*/
   1776      1.1  christos 
   1777      1.1  christos static void
   1778      1.1  christos yy_symbol_value_print (FILE *yyo,
   1779      1.1  christos                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
   1780      1.1  christos {
   1781      1.1  christos   FILE *yyoutput = yyo;
   1782      1.1  christos   YY_USE (yyoutput);
   1783      1.1  christos   if (!yyvaluep)
   1784      1.1  christos     return;
   1785      1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   1786      1.1  christos   YY_USE (yykind);
   1787      1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_END
   1788      1.1  christos }
   1789      1.1  christos 
   1790      1.1  christos 
   1791      1.1  christos /*---------------------------.
   1792      1.1  christos | Print this symbol on YYO.  |
   1793      1.1  christos `---------------------------*/
   1794      1.1  christos 
   1795      1.1  christos static void
   1796      1.1  christos yy_symbol_print (FILE *yyo,
   1797      1.1  christos                  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
   1798      1.1  christos {
   1799      1.1  christos   YYFPRINTF (yyo, "%s %s (",
   1800      1.1  christos              yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
   1801      1.1  christos 
   1802      1.1  christos   yy_symbol_value_print (yyo, yykind, yyvaluep);
   1803      1.1  christos   YYFPRINTF (yyo, ")");
   1804      1.1  christos }
   1805      1.1  christos 
   1806      1.1  christos /*------------------------------------------------------------------.
   1807      1.1  christos | yy_stack_print -- Print the state stack from its BOTTOM up to its |
   1808      1.1  christos | TOP (included).                                                   |
   1809      1.1  christos `------------------------------------------------------------------*/
   1810      1.1  christos 
   1811      1.1  christos static void
   1812      1.1  christos yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
   1813      1.1  christos {
   1814      1.1  christos   YYFPRINTF (stderr, "Stack now");
   1815      1.1  christos   for (; yybottom <= yytop; yybottom++)
   1816      1.1  christos     {
   1817      1.1  christos       int yybot = *yybottom;
   1818      1.1  christos       YYFPRINTF (stderr, " %d", yybot);
   1819      1.1  christos     }
   1820      1.1  christos   YYFPRINTF (stderr, "\n");
   1821      1.1  christos }
   1822      1.1  christos 
   1823      1.1  christos # define YY_STACK_PRINT(Bottom, Top)                            \
   1824      1.1  christos do {                                                            \
   1825      1.1  christos   if (yydebug)                                                  \
   1826      1.1  christos     yy_stack_print ((Bottom), (Top));                           \
   1827      1.1  christos } while (0)
   1828      1.1  christos 
   1829      1.1  christos 
   1830      1.1  christos /*------------------------------------------------.
   1831      1.1  christos | Report that the YYRULE is going to be reduced.  |
   1832      1.1  christos `------------------------------------------------*/
   1833      1.1  christos 
   1834      1.1  christos static void
   1835      1.1  christos yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
   1836      1.1  christos                  int yyrule)
   1837      1.1  christos {
   1838      1.1  christos   int yylno = yyrline[yyrule];
   1839      1.1  christos   int yynrhs = yyr2[yyrule];
   1840      1.1  christos   int yyi;
   1841      1.1  christos   YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
   1842      1.1  christos              yyrule - 1, yylno);
   1843      1.1  christos   /* The symbols being reduced.  */
   1844      1.1  christos   for (yyi = 0; yyi < yynrhs; yyi++)
   1845      1.1  christos     {
   1846      1.1  christos       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
   1847      1.1  christos       yy_symbol_print (stderr,
   1848      1.1  christos                        YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
   1849      1.1  christos                        &yyvsp[(yyi + 1) - (yynrhs)]);
   1850      1.1  christos       YYFPRINTF (stderr, "\n");
   1851      1.1  christos     }
   1852      1.1  christos }
   1853      1.1  christos 
   1854      1.1  christos # define YY_REDUCE_PRINT(Rule)          \
   1855      1.1  christos do {                                    \
   1856      1.1  christos   if (yydebug)                          \
   1857      1.1  christos     yy_reduce_print (yyssp, yyvsp, Rule); \
   1858      1.1  christos } while (0)
   1859      1.1  christos 
   1860      1.1  christos /* Nonzero means print parse trace.  It is left uninitialized so that
   1861      1.1  christos    multiple parsers can coexist.  */
   1862      1.1  christos int yydebug;
   1863      1.1  christos #else /* !YYDEBUG */
   1864      1.1  christos # define YYDPRINTF(Args) ((void) 0)
   1865      1.1  christos # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
   1866      1.1  christos # define YY_STACK_PRINT(Bottom, Top)
   1867      1.1  christos # define YY_REDUCE_PRINT(Rule)
   1868      1.1  christos #endif /* !YYDEBUG */
   1869      1.1  christos 
   1870      1.1  christos 
   1871      1.1  christos /* YYINITDEPTH -- initial size of the parser's stacks.  */
   1872      1.1  christos #ifndef YYINITDEPTH
   1873      1.1  christos # define YYINITDEPTH 200
   1874      1.1  christos #endif
   1875      1.1  christos 
   1876      1.1  christos /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   1877      1.1  christos    if the built-in stack extension method is used).
   1878      1.1  christos 
   1879      1.1  christos    Do not make this value too large; the results are undefined if
   1880      1.1  christos    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
   1881      1.1  christos    evaluated with infinite-precision integer arithmetic.  */
   1882      1.1  christos 
   1883      1.1  christos #ifndef YYMAXDEPTH
   1884      1.1  christos # define YYMAXDEPTH 10000
   1885      1.1  christos #endif
   1886      1.1  christos 
   1887      1.1  christos 
   1888      1.1  christos 
   1889      1.1  christos 
   1890      1.1  christos 
   1891      1.1  christos 
   1892      1.1  christos /*-----------------------------------------------.
   1893      1.1  christos | Release the memory associated to this symbol.  |
   1894      1.1  christos `-----------------------------------------------*/
   1895      1.1  christos 
   1896      1.1  christos static void
   1897      1.1  christos yydestruct (const char *yymsg,
   1898      1.1  christos             yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
   1899      1.1  christos {
   1900      1.1  christos   YY_USE (yyvaluep);
   1901      1.1  christos   if (!yymsg)
   1902      1.1  christos     yymsg = "Deleting";
   1903      1.1  christos   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
   1904      1.1  christos 
   1905      1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   1906      1.1  christos   YY_USE (yykind);
   1907      1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_END
   1908      1.1  christos }
   1909      1.1  christos 
   1910      1.1  christos 
   1911      1.1  christos /* Lookahead token kind.  */
   1912      1.1  christos int yychar;
   1913      1.1  christos 
   1914      1.1  christos /* The semantic value of the lookahead symbol.  */
   1915      1.1  christos YYSTYPE yylval;
   1916      1.1  christos /* Number of syntax errors so far.  */
   1917      1.1  christos int yynerrs;
   1918      1.1  christos 
   1919      1.1  christos 
   1920      1.1  christos 
   1921      1.1  christos 
   1922      1.1  christos /*----------.
   1923      1.1  christos | yyparse.  |
   1924      1.1  christos `----------*/
   1925      1.1  christos 
   1926      1.1  christos int
   1927      1.1  christos yyparse (void)
   1928      1.1  christos {
   1929      1.1  christos     yy_state_fast_t yystate = 0;
   1930      1.1  christos     /* Number of tokens to shift before error messages enabled.  */
   1931      1.1  christos     int yyerrstatus = 0;
   1932      1.1  christos 
   1933      1.1  christos     /* Refer to the stacks through separate pointers, to allow yyoverflow
   1934      1.1  christos        to reallocate them elsewhere.  */
   1935      1.1  christos 
   1936      1.1  christos     /* Their size.  */
   1937      1.1  christos     YYPTRDIFF_T yystacksize = YYINITDEPTH;
   1938      1.1  christos 
   1939      1.1  christos     /* The state stack: array, bottom, top.  */
   1940      1.1  christos     yy_state_t yyssa[YYINITDEPTH];
   1941      1.1  christos     yy_state_t *yyss = yyssa;
   1942      1.1  christos     yy_state_t *yyssp = yyss;
   1943      1.1  christos 
   1944      1.1  christos     /* The semantic value stack: array, bottom, top.  */
   1945      1.1  christos     YYSTYPE yyvsa[YYINITDEPTH];
   1946      1.1  christos     YYSTYPE *yyvs = yyvsa;
   1947      1.1  christos     YYSTYPE *yyvsp = yyvs;
   1948      1.1  christos 
   1949      1.1  christos   int yyn;
   1950      1.1  christos   /* The return value of yyparse.  */
   1951      1.1  christos   int yyresult;
   1952      1.1  christos   /* Lookahead symbol kind.  */
   1953      1.1  christos   yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
   1954      1.1  christos   /* The variables used to return semantic value and location from the
   1955      1.1  christos      action routines.  */
   1956      1.1  christos   YYSTYPE yyval;
   1957      1.1  christos 
   1958      1.1  christos 
   1959      1.1  christos 
   1960      1.1  christos #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
   1961      1.1  christos 
   1962      1.1  christos   /* The number of symbols on the RHS of the reduced rule.
   1963      1.1  christos      Keep to zero when no symbol should be popped.  */
   1964      1.1  christos   int yylen = 0;
   1965      1.1  christos 
   1966      1.1  christos   YYDPRINTF ((stderr, "Starting parse\n"));
   1967      1.1  christos 
   1968      1.1  christos   yychar = YYEMPTY; /* Cause a token to be read.  */
   1969      1.1  christos 
   1970      1.1  christos   goto yysetstate;
   1971      1.1  christos 
   1972      1.1  christos 
   1973      1.1  christos /*------------------------------------------------------------.
   1974      1.1  christos | yynewstate -- push a new state, which is found in yystate.  |
   1975      1.1  christos `------------------------------------------------------------*/
   1976      1.1  christos yynewstate:
   1977      1.1  christos   /* In all cases, when you get here, the value and location stacks
   1978      1.1  christos      have just been pushed.  So pushing a state here evens the stacks.  */
   1979      1.1  christos   yyssp++;
   1980      1.1  christos 
   1981      1.1  christos 
   1982      1.1  christos /*--------------------------------------------------------------------.
   1983      1.1  christos | yysetstate -- set current state (the top of the stack) to yystate.  |
   1984      1.1  christos `--------------------------------------------------------------------*/
   1985      1.1  christos yysetstate:
   1986      1.1  christos   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
   1987      1.1  christos   YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
   1988      1.1  christos   YY_IGNORE_USELESS_CAST_BEGIN
   1989      1.1  christos   *yyssp = YY_CAST (yy_state_t, yystate);
   1990      1.1  christos   YY_IGNORE_USELESS_CAST_END
   1991      1.1  christos   YY_STACK_PRINT (yyss, yyssp);
   1992      1.1  christos 
   1993      1.1  christos   if (yyss + yystacksize - 1 <= yyssp)
   1994      1.1  christos #if !defined yyoverflow && !defined YYSTACK_RELOCATE
   1995      1.1  christos     YYNOMEM;
   1996      1.1  christos #else
   1997      1.1  christos     {
   1998      1.1  christos       /* Get the current used size of the three stacks, in elements.  */
   1999      1.1  christos       YYPTRDIFF_T yysize = yyssp - yyss + 1;
   2000      1.1  christos 
   2001      1.1  christos # if defined yyoverflow
   2002      1.1  christos       {
   2003      1.1  christos         /* Give user a chance to reallocate the stack.  Use copies of
   2004      1.1  christos            these so that the &'s don't force the real ones into
   2005      1.1  christos            memory.  */
   2006      1.1  christos         yy_state_t *yyss1 = yyss;
   2007      1.1  christos         YYSTYPE *yyvs1 = yyvs;
   2008      1.1  christos 
   2009      1.1  christos         /* Each stack pointer address is followed by the size of the
   2010      1.1  christos            data in use in that stack, in bytes.  This used to be a
   2011      1.1  christos            conditional around just the two extra args, but that might
   2012      1.1  christos            be undefined if yyoverflow is a macro.  */
   2013      1.1  christos         yyoverflow (YY_("memory exhausted"),
   2014      1.1  christos                     &yyss1, yysize * YYSIZEOF (*yyssp),
   2015      1.1  christos                     &yyvs1, yysize * YYSIZEOF (*yyvsp),
   2016      1.1  christos                     &yystacksize);
   2017      1.1  christos         yyss = yyss1;
   2018      1.1  christos         yyvs = yyvs1;
   2019      1.1  christos       }
   2020      1.1  christos # else /* defined YYSTACK_RELOCATE */
   2021      1.1  christos       /* Extend the stack our own way.  */
   2022      1.1  christos       if (YYMAXDEPTH <= yystacksize)
   2023      1.1  christos         YYNOMEM;
   2024      1.1  christos       yystacksize *= 2;
   2025      1.1  christos       if (YYMAXDEPTH < yystacksize)
   2026      1.1  christos         yystacksize = YYMAXDEPTH;
   2027      1.1  christos 
   2028      1.1  christos       {
   2029      1.1  christos         yy_state_t *yyss1 = yyss;
   2030      1.1  christos         union yyalloc *yyptr =
   2031      1.1  christos           YY_CAST (union yyalloc *,
   2032      1.1  christos                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
   2033      1.1  christos         if (! yyptr)
   2034      1.1  christos           YYNOMEM;
   2035      1.1  christos         YYSTACK_RELOCATE (yyss_alloc, yyss);
   2036      1.1  christos         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
   2037      1.1  christos #  undef YYSTACK_RELOCATE
   2038      1.1  christos         if (yyss1 != yyssa)
   2039      1.1  christos           YYSTACK_FREE (yyss1);
   2040      1.1  christos       }
   2041      1.1  christos # endif
   2042      1.1  christos 
   2043      1.1  christos       yyssp = yyss + yysize - 1;
   2044      1.1  christos       yyvsp = yyvs + yysize - 1;
   2045      1.1  christos 
   2046      1.1  christos       YY_IGNORE_USELESS_CAST_BEGIN
   2047      1.1  christos       YYDPRINTF ((stderr, "Stack size increased to %ld\n",
   2048      1.1  christos                   YY_CAST (long, yystacksize)));
   2049      1.1  christos       YY_IGNORE_USELESS_CAST_END
   2050      1.1  christos 
   2051      1.1  christos       if (yyss + yystacksize - 1 <= yyssp)
   2052      1.1  christos         YYABORT;
   2053      1.1  christos     }
   2054      1.1  christos #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
   2055      1.1  christos 
   2056      1.1  christos 
   2057      1.1  christos   if (yystate == YYFINAL)
   2058      1.1  christos     YYACCEPT;
   2059      1.1  christos 
   2060      1.1  christos   goto yybackup;
   2061      1.1  christos 
   2062      1.1  christos 
   2063      1.1  christos /*-----------.
   2064      1.1  christos | yybackup.  |
   2065      1.1  christos `-----------*/
   2066      1.1  christos yybackup:
   2067      1.1  christos   /* Do appropriate processing given the current state.  Read a
   2068      1.1  christos      lookahead token if we need one and don't already have one.  */
   2069      1.1  christos 
   2070      1.1  christos   /* First try to decide what to do without reference to lookahead token.  */
   2071      1.1  christos   yyn = yypact[yystate];
   2072      1.1  christos   if (yypact_value_is_default (yyn))
   2073      1.1  christos     goto yydefault;
   2074      1.1  christos 
   2075      1.1  christos   /* Not known => get a lookahead token if don't already have one.  */
   2076      1.1  christos 
   2077      1.1  christos   /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
   2078      1.1  christos   if (yychar == YYEMPTY)
   2079      1.1  christos     {
   2080      1.1  christos       YYDPRINTF ((stderr, "Reading a token\n"));
   2081      1.1  christos       yychar = yylex ();
   2082      1.1  christos     }
   2083      1.1  christos 
   2084      1.1  christos   if (yychar <= YYEOF)
   2085      1.1  christos     {
   2086      1.1  christos       yychar = YYEOF;
   2087      1.1  christos       yytoken = YYSYMBOL_YYEOF;
   2088      1.1  christos       YYDPRINTF ((stderr, "Now at end of input.\n"));
   2089      1.1  christos     }
   2090      1.1  christos   else if (yychar == YYerror)
   2091      1.1  christos     {
   2092      1.1  christos       /* The scanner already issued an error message, process directly
   2093      1.1  christos          to error recovery.  But do not keep the error token as
   2094      1.1  christos          lookahead, it is too special and may lead us to an endless
   2095      1.1  christos          loop in error recovery. */
   2096      1.1  christos       yychar = YYUNDEF;
   2097      1.1  christos       yytoken = YYSYMBOL_YYerror;
   2098      1.1  christos       goto yyerrlab1;
   2099      1.1  christos     }
   2100      1.1  christos   else
   2101      1.1  christos     {
   2102      1.1  christos       yytoken = YYTRANSLATE (yychar);
   2103      1.1  christos       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
   2104      1.1  christos     }
   2105      1.1  christos 
   2106      1.1  christos   /* If the proper action on seeing token YYTOKEN is to reduce or to
   2107      1.1  christos      detect an error, take that action.  */
   2108      1.1  christos   yyn += yytoken;
   2109      1.1  christos   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
   2110      1.1  christos     goto yydefault;
   2111      1.1  christos   yyn = yytable[yyn];
   2112      1.1  christos   if (yyn <= 0)
   2113      1.1  christos     {
   2114      1.1  christos       if (yytable_value_is_error (yyn))
   2115      1.1  christos         goto yyerrlab;
   2116      1.1  christos       yyn = -yyn;
   2117      1.1  christos       goto yyreduce;
   2118      1.1  christos     }
   2119      1.1  christos 
   2120      1.1  christos   /* Count tokens shifted since error; after three, turn off error
   2121      1.1  christos      status.  */
   2122      1.1  christos   if (yyerrstatus)
   2123      1.1  christos     yyerrstatus--;
   2124      1.1  christos 
   2125      1.1  christos   /* Shift the lookahead token.  */
   2126      1.1  christos   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
   2127      1.1  christos   yystate = yyn;
   2128      1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   2129      1.1  christos   *++yyvsp = yylval;
   2130      1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_END
   2131      1.1  christos 
   2132      1.1  christos   /* Discard the shifted token.  */
   2133      1.1  christos   yychar = YYEMPTY;
   2134      1.1  christos   goto yynewstate;
   2135      1.1  christos 
   2136      1.1  christos 
   2137      1.1  christos /*-----------------------------------------------------------.
   2138      1.1  christos | yydefault -- do the default action for the current state.  |
   2139      1.1  christos `-----------------------------------------------------------*/
   2140      1.1  christos yydefault:
   2141      1.1  christos   yyn = yydefact[yystate];
   2142      1.1  christos   if (yyn == 0)
   2143      1.1  christos     goto yyerrlab;
   2144      1.1  christos   goto yyreduce;
   2145      1.1  christos 
   2146      1.1  christos 
   2147      1.1  christos /*-----------------------------.
   2148      1.1  christos | yyreduce -- do a reduction.  |
   2149      1.1  christos `-----------------------------*/
   2150      1.1  christos yyreduce:
   2151      1.1  christos   /* yyn is the number of a rule to reduce with.  */
   2152      1.1  christos   yylen = yyr2[yyn];
   2153      1.1  christos 
   2154      1.1  christos   /* If YYLEN is nonzero, implement the default value of the action:
   2155      1.1  christos      '$$ = $1'.
   2156      1.1  christos 
   2157      1.1  christos      Otherwise, the following line sets YYVAL to garbage.
   2158      1.1  christos      This behavior is undocumented and Bison
   2159      1.1  christos      users should not rely upon it.  Assigning to YYVAL
   2160      1.1  christos      unconditionally makes the parser a bit smaller, and it avoids a
   2161      1.1  christos      GCC warning that YYVAL may be used uninitialized.  */
   2162      1.1  christos   yyval = yyvsp[1-yylen];
   2163      1.1  christos 
   2164      1.1  christos 
   2165      1.1  christos   YY_REDUCE_PRINT (yyn);
   2166      1.1  christos   switch (yyn)
   2167      1.1  christos     {
   2168      1.1  christos   case 2: /* statement: UNKNOWN_OPCODE  */
   2169      1.1  christos #line 188 "./config/rl78-parse.y"
   2170      1.1  christos           { as_bad (_("Unknown opcode: %s"), rl78_init_start); }
   2171      1.1  christos #line 2172 "config/rl78-parse.c"
   2172      1.1  christos     break;
   2173      1.1  christos 
   2174      1.1  christos   case 3: /* statement: addsub A ',' '#' EXPR  */
   2175      1.1  christos #line 209 "./config/rl78-parse.y"
   2176      1.1  christos           { B1 (0x0c|(yyvsp[-4].regno)); O1 ((yyvsp[0].exp)); }
   2177      1.1  christos #line 2178 "config/rl78-parse.c"
   2178      1.1  christos     break;
   2179      1.1  christos 
   2180      1.1  christos   case 4: /* $@1: %empty  */
   2181      1.1  christos #line 211 "./config/rl78-parse.y"
   2182      1.1  christos                       {SA((yyvsp[0].exp))}
   2183      1.1  christos #line 2184 "config/rl78-parse.c"
   2184      1.1  christos     break;
   2185      1.1  christos 
   2186      1.1  christos   case 5: /* statement: addsub EXPR $@1 ',' '#' EXPR  */
   2187      1.1  christos #line 212 "./config/rl78-parse.y"
   2188      1.1  christos           { B1 (0x0a|(yyvsp[-5].regno)); SET_SA ((yyvsp[-4].exp)); O1 ((yyvsp[-4].exp)); O1 ((yyvsp[0].exp)); }
   2189      1.1  christos #line 2190 "config/rl78-parse.c"
   2190      1.1  christos     break;
   2191      1.1  christos 
   2192      1.1  christos   case 6: /* statement: addsub A ',' A  */
   2193      1.1  christos #line 215 "./config/rl78-parse.y"
   2194      1.1  christos           { B2 (0x61, 0x01|(yyvsp[-3].regno)); }
   2195      1.1  christos #line 2196 "config/rl78-parse.c"
   2196      1.1  christos     break;
   2197      1.1  christos 
   2198      1.1  christos   case 7: /* statement: addsub A ',' regb_na  */
   2199      1.1  christos #line 218 "./config/rl78-parse.y"
   2200      1.1  christos           { B2 (0x61, 0x08|(yyvsp[-3].regno)); F ((yyvsp[0].regno), 13, 3); }
   2201      1.1  christos #line 2202 "config/rl78-parse.c"
   2202      1.1  christos     break;
   2203      1.1  christos 
   2204      1.1  christos   case 8: /* statement: addsub regb_na ',' A  */
   2205      1.1  christos #line 221 "./config/rl78-parse.y"
   2206      1.1  christos           { B2 (0x61, 0x00|(yyvsp[-3].regno)); F ((yyvsp[-2].regno), 13, 3); }
   2207      1.1  christos #line 2208 "config/rl78-parse.c"
   2208      1.1  christos     break;
   2209      1.1  christos 
   2210      1.1  christos   case 9: /* $@2: %empty  */
   2211      1.1  christos #line 223 "./config/rl78-parse.y"
   2212      1.1  christos                             {SA((yyvsp[0].exp))}
   2213      1.1  christos #line 2214 "config/rl78-parse.c"
   2214      1.1  christos     break;
   2215      1.1  christos 
   2216      1.1  christos   case 10: /* statement: addsub A ',' EXPR $@2  */
   2217      1.1  christos #line 224 "./config/rl78-parse.y"
   2218      1.1  christos           { B1 (0x0b|(yyvsp[-4].regno)); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); }
   2219      1.1  christos #line 2220 "config/rl78-parse.c"
   2220      1.1  christos     break;
   2221      1.1  christos 
   2222      1.1  christos   case 11: /* statement: addsub A ',' opt_es '!' EXPR  */
   2223      1.1  christos #line 227 "./config/rl78-parse.y"
   2224      1.1  christos           { B1 (0x0f|(yyvsp[-5].regno)); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
   2225      1.1  christos #line 2226 "config/rl78-parse.c"
   2226      1.1  christos     break;
   2227      1.1  christos 
   2228      1.1  christos   case 12: /* statement: addsub A ',' opt_es '[' HL ']'  */
   2229      1.1  christos #line 230 "./config/rl78-parse.y"
   2230      1.1  christos           { B1 (0x0d|(yyvsp[-6].regno)); }
   2231      1.1  christos #line 2232 "config/rl78-parse.c"
   2232      1.1  christos     break;
   2233      1.1  christos 
   2234      1.1  christos   case 13: /* statement: addsub A ',' opt_es '[' HL '+' EXPR ']'  */
   2235      1.1  christos #line 233 "./config/rl78-parse.y"
   2236      1.1  christos           { B1 (0x0e|(yyvsp[-8].regno)); O1 ((yyvsp[-1].exp)); }
   2237      1.1  christos #line 2238 "config/rl78-parse.c"
   2238      1.1  christos     break;
   2239      1.1  christos 
   2240      1.1  christos   case 14: /* statement: addsub A ',' opt_es '[' HL '+' B ']'  */
   2241      1.1  christos #line 236 "./config/rl78-parse.y"
   2242      1.1  christos           { B2 (0x61, 0x80|(yyvsp[-8].regno)); }
   2243      1.1  christos #line 2244 "config/rl78-parse.c"
   2244      1.1  christos     break;
   2245      1.1  christos 
   2246      1.1  christos   case 15: /* statement: addsub A ',' opt_es '[' HL '+' C ']'  */
   2247      1.1  christos #line 239 "./config/rl78-parse.y"
   2248      1.1  christos           { B2 (0x61, 0x82|(yyvsp[-8].regno)); }
   2249      1.1  christos #line 2250 "config/rl78-parse.c"
   2250      1.1  christos     break;
   2251      1.1  christos 
   2252      1.1  christos   case 16: /* statement: addsub opt_es '!' EXPR ',' '#' EXPR  */
   2253      1.1  christos #line 242 "./config/rl78-parse.y"
   2254      1.1  christos           { if ((yyvsp[-6].regno) != 0x40)
   2255      1.1  christos 	      { rl78_error ("Only CMP takes these operands"); }
   2256      1.1  christos 	    else
   2257      1.1  christos 	      { B1 (0x00|(yyvsp[-6].regno)); O2 ((yyvsp[-3].exp)); O1 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
   2258      1.1  christos 	  }
   2259      1.1  christos #line 2260 "config/rl78-parse.c"
   2260      1.1  christos     break;
   2261      1.1  christos 
   2262      1.1  christos   case 17: /* statement: addsubw AX ',' '#' EXPR  */
   2263      1.1  christos #line 251 "./config/rl78-parse.y"
   2264      1.1  christos           { B1 (0x04|(yyvsp[-4].regno)); O2 ((yyvsp[0].exp)); }
   2265      1.1  christos #line 2266 "config/rl78-parse.c"
   2266      1.1  christos     break;
   2267      1.1  christos 
   2268      1.1  christos   case 18: /* statement: addsubw AX ',' regw  */
   2269      1.1  christos #line 254 "./config/rl78-parse.y"
   2270      1.1  christos           { B1 (0x01|(yyvsp[-3].regno)); F ((yyvsp[0].regno), 5, 2); }
   2271      1.1  christos #line 2272 "config/rl78-parse.c"
   2272      1.1  christos     break;
   2273      1.1  christos 
   2274      1.1  christos   case 19: /* $@3: %empty  */
   2275      1.1  christos #line 256 "./config/rl78-parse.y"
   2276      1.1  christos                               {SA((yyvsp[0].exp))}
   2277      1.1  christos #line 2278 "config/rl78-parse.c"
   2278      1.1  christos     break;
   2279      1.1  christos 
   2280      1.1  christos   case 20: /* statement: addsubw AX ',' EXPR $@3  */
   2281      1.1  christos #line 257 "./config/rl78-parse.y"
   2282      1.1  christos           { B1 (0x06|(yyvsp[-4].regno)); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); }
   2283      1.1  christos #line 2284 "config/rl78-parse.c"
   2284      1.1  christos     break;
   2285      1.1  christos 
   2286      1.1  christos   case 21: /* statement: addsubw AX ',' opt_es '!' EXPR  */
   2287      1.1  christos #line 260 "./config/rl78-parse.y"
   2288      1.1  christos           { B1 (0x02|(yyvsp[-5].regno)); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
   2289      1.1  christos #line 2290 "config/rl78-parse.c"
   2290      1.1  christos     break;
   2291      1.1  christos 
   2292      1.1  christos   case 22: /* statement: addsubw AX ',' opt_es '[' HL '+' EXPR ']'  */
   2293      1.1  christos #line 263 "./config/rl78-parse.y"
   2294      1.1  christos           { B2 (0x61, 0x09|(yyvsp[-8].regno)); O1 ((yyvsp[-1].exp)); }
   2295      1.1  christos #line 2296 "config/rl78-parse.c"
   2296      1.1  christos     break;
   2297      1.1  christos 
   2298      1.1  christos   case 23: /* statement: addsubw AX ',' opt_es '[' HL ']'  */
   2299      1.1  christos #line 266 "./config/rl78-parse.y"
   2300      1.1  christos           { B3 (0x61, 0x09|(yyvsp[-6].regno), 0); }
   2301      1.1  christos #line 2302 "config/rl78-parse.c"
   2302      1.1  christos     break;
   2303      1.1  christos 
   2304      1.1  christos   case 24: /* statement: addsubw SP ',' '#' EXPR  */
   2305      1.1  christos #line 269 "./config/rl78-parse.y"
   2306      1.1  christos           { B1 ((yyvsp[-4].regno) ? 0x20 : 0x10); O1 ((yyvsp[0].exp));
   2307      1.1  christos 	    if ((yyvsp[-4].regno) == 0x40)
   2308      1.1  christos 	      rl78_error ("CMPW SP,#imm not allowed");
   2309      1.1  christos 	  }
   2310      1.1  christos #line 2311 "config/rl78-parse.c"
   2311      1.1  christos     break;
   2312      1.1  christos 
   2313      1.1  christos   case 25: /* $@4: %empty  */
   2314      1.1  christos #line 276 "./config/rl78-parse.y"
   2315      1.1  christos                                      {Bit((yyvsp[0].exp))}
   2316      1.1  christos #line 2317 "config/rl78-parse.c"
   2317      1.1  christos     break;
   2318      1.1  christos 
   2319      1.1  christos   case 26: /* statement: andor1 CY ',' sfr '.' EXPR $@4  */
   2320      1.1  christos #line 277 "./config/rl78-parse.y"
   2321      1.1  christos           { B3 (0x71, 0x08|(yyvsp[-6].regno), (yyvsp[-3].regno)); FE ((yyvsp[-1].exp), 9, 3); }
   2322      1.1  christos #line 2323 "config/rl78-parse.c"
   2323      1.1  christos     break;
   2324      1.1  christos 
   2325      1.1  christos   case 27: /* $@5: %empty  */
   2326      1.1  christos #line 279 "./config/rl78-parse.y"
   2327      1.1  christos                                       {Bit((yyvsp[0].exp))}
   2328      1.1  christos #line 2329 "config/rl78-parse.c"
   2329      1.1  christos     break;
   2330      1.1  christos 
   2331      1.1  christos   case 28: /* statement: andor1 CY ',' EXPR '.' EXPR $@5  */
   2332      1.1  christos #line 280 "./config/rl78-parse.y"
   2333      1.1  christos           { if (expr_is_sfr ((yyvsp[-3].exp)))
   2334      1.1  christos 	      { B2 (0x71, 0x08|(yyvsp[-6].regno)); FE ((yyvsp[-1].exp), 9, 3); O1 ((yyvsp[-3].exp)); }
   2335      1.1  christos 	    else if (expr_is_saddr ((yyvsp[-3].exp)))
   2336      1.1  christos 	      { B2 (0x71, 0x00|(yyvsp[-6].regno)); FE ((yyvsp[-1].exp), 9, 3); SET_SA ((yyvsp[-3].exp)); O1 ((yyvsp[-3].exp)); }
   2337      1.1  christos 	    else
   2338      1.1  christos 	      NOT_SFR_OR_SADDR;
   2339      1.1  christos 	  }
   2340      1.1  christos #line 2341 "config/rl78-parse.c"
   2341      1.1  christos     break;
   2342      1.1  christos 
   2343      1.1  christos   case 29: /* $@6: %empty  */
   2344      1.1  christos #line 288 "./config/rl78-parse.y"
   2345      1.1  christos                                    {Bit((yyvsp[0].exp))}
   2346      1.1  christos #line 2347 "config/rl78-parse.c"
   2347      1.1  christos     break;
   2348      1.1  christos 
   2349      1.1  christos   case 30: /* statement: andor1 CY ',' A '.' EXPR $@6  */
   2350      1.1  christos #line 289 "./config/rl78-parse.y"
   2351      1.1  christos           { B2 (0x71, 0x88|(yyvsp[-6].regno));  FE ((yyvsp[-1].exp), 9, 3); }
   2352      1.1  christos #line 2353 "config/rl78-parse.c"
   2353      1.1  christos     break;
   2354      1.1  christos 
   2355      1.1  christos   case 31: /* $@7: %empty  */
   2356      1.1  christos #line 291 "./config/rl78-parse.y"
   2357      1.1  christos                                                    {Bit((yyvsp[0].exp))}
   2358      1.1  christos #line 2359 "config/rl78-parse.c"
   2359      1.1  christos     break;
   2360      1.1  christos 
   2361      1.1  christos   case 32: /* statement: andor1 CY ',' opt_es '[' HL ']' '.' EXPR $@7  */
   2362      1.1  christos #line 292 "./config/rl78-parse.y"
   2363      1.1  christos           { B2 (0x71, 0x80|(yyvsp[-9].regno));  FE ((yyvsp[-1].exp), 9, 3); }
   2364      1.1  christos #line 2365 "config/rl78-parse.c"
   2365      1.1  christos     break;
   2366      1.1  christos 
   2367      1.1  christos   case 33: /* statement: BC '$' EXPR  */
   2368      1.1  christos #line 297 "./config/rl78-parse.y"
   2369      1.1  christos           { B1 (0xdc); PC1 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
   2370      1.1  christos #line 2371 "config/rl78-parse.c"
   2371      1.1  christos     break;
   2372      1.1  christos 
   2373      1.1  christos   case 34: /* statement: BNC '$' EXPR  */
   2374      1.1  christos #line 300 "./config/rl78-parse.y"
   2375      1.1  christos           { B1 (0xde); PC1 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
   2376      1.1  christos #line 2377 "config/rl78-parse.c"
   2377      1.1  christos     break;
   2378      1.1  christos 
   2379      1.1  christos   case 35: /* statement: BZ '$' EXPR  */
   2380      1.1  christos #line 303 "./config/rl78-parse.y"
   2381      1.1  christos           { B1 (0xdd); PC1 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
   2382      1.1  christos #line 2383 "config/rl78-parse.c"
   2383      1.1  christos     break;
   2384      1.1  christos 
   2385      1.1  christos   case 36: /* statement: BNZ '$' EXPR  */
   2386      1.1  christos #line 306 "./config/rl78-parse.y"
   2387      1.1  christos           { B1 (0xdf); PC1 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
   2388      1.1  christos #line 2389 "config/rl78-parse.c"
   2389      1.1  christos     break;
   2390      1.1  christos 
   2391      1.1  christos   case 37: /* statement: BH '$' EXPR  */
   2392      1.1  christos #line 309 "./config/rl78-parse.y"
   2393      1.1  christos           { B2 (0x61, 0xc3); PC1 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
   2394      1.1  christos #line 2395 "config/rl78-parse.c"
   2395      1.1  christos     break;
   2396      1.1  christos 
   2397      1.1  christos   case 38: /* statement: BNH '$' EXPR  */
   2398      1.1  christos #line 312 "./config/rl78-parse.y"
   2399      1.1  christos           { B2 (0x61, 0xd3); PC1 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
   2400      1.1  christos #line 2401 "config/rl78-parse.c"
   2401      1.1  christos     break;
   2402      1.1  christos 
   2403      1.1  christos   case 39: /* statement: bt_bf sfr '.' EXPR ',' '$' EXPR  */
   2404      1.1  christos #line 317 "./config/rl78-parse.y"
   2405      1.1  christos           { B3 (0x31, 0x80|(yyvsp[-6].regno), (yyvsp[-5].regno)); FE ((yyvsp[-3].exp), 9, 3); PC1 ((yyvsp[0].exp)); }
   2406      1.1  christos #line 2407 "config/rl78-parse.c"
   2407      1.1  christos     break;
   2408      1.1  christos 
   2409      1.1  christos   case 40: /* statement: bt_bf EXPR '.' EXPR ',' '$' EXPR  */
   2410      1.1  christos #line 320 "./config/rl78-parse.y"
   2411      1.1  christos           { if (expr_is_sfr ((yyvsp[-5].exp)))
   2412      1.1  christos 	      { B2 (0x31, 0x80|(yyvsp[-6].regno)); FE ((yyvsp[-3].exp), 9, 3); O1 ((yyvsp[-5].exp)); PC1 ((yyvsp[0].exp)); }
   2413      1.1  christos 	    else if (expr_is_saddr ((yyvsp[-5].exp)))
   2414      1.1  christos 	      { B2 (0x31, 0x00|(yyvsp[-6].regno)); FE ((yyvsp[-3].exp), 9, 3); SET_SA ((yyvsp[-5].exp)); O1 ((yyvsp[-5].exp)); PC1 ((yyvsp[0].exp)); }
   2415      1.1  christos 	    else
   2416      1.1  christos 	      NOT_SFR_OR_SADDR;
   2417      1.1  christos 	  }
   2418      1.1  christos #line 2419 "config/rl78-parse.c"
   2419      1.1  christos     break;
   2420      1.1  christos 
   2421      1.1  christos   case 41: /* statement: bt_bf A '.' EXPR ',' '$' EXPR  */
   2422      1.1  christos #line 329 "./config/rl78-parse.y"
   2423      1.1  christos           { B2 (0x31, 0x01|(yyvsp[-6].regno)); FE ((yyvsp[-3].exp), 9, 3); PC1 ((yyvsp[0].exp)); }
   2424      1.1  christos #line 2425 "config/rl78-parse.c"
   2425      1.1  christos     break;
   2426      1.1  christos 
   2427      1.1  christos   case 42: /* statement: bt_bf opt_es '[' HL ']' '.' EXPR ',' '$' EXPR  */
   2428      1.1  christos #line 332 "./config/rl78-parse.y"
   2429      1.1  christos           { B2 (0x31, 0x81|(yyvsp[-9].regno)); FE ((yyvsp[-3].exp), 9, 3); PC1 ((yyvsp[0].exp)); }
   2430      1.1  christos #line 2431 "config/rl78-parse.c"
   2431      1.1  christos     break;
   2432      1.1  christos 
   2433      1.1  christos   case 43: /* statement: BR AX  */
   2434      1.1  christos #line 337 "./config/rl78-parse.y"
   2435      1.1  christos           { B2 (0x61, 0xcb); }
   2436      1.1  christos #line 2437 "config/rl78-parse.c"
   2437      1.1  christos     break;
   2438      1.1  christos 
   2439      1.1  christos   case 44: /* statement: BR '$' EXPR  */
   2440      1.1  christos #line 340 "./config/rl78-parse.y"
   2441      1.1  christos           { B1 (0xef); PC1 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
   2442      1.1  christos #line 2443 "config/rl78-parse.c"
   2443      1.1  christos     break;
   2444      1.1  christos 
   2445      1.1  christos   case 45: /* statement: BR '$' '!' EXPR  */
   2446      1.1  christos #line 343 "./config/rl78-parse.y"
   2447      1.1  christos           { B1 (0xee); PC2 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
   2448      1.1  christos #line 2449 "config/rl78-parse.c"
   2449      1.1  christos     break;
   2450      1.1  christos 
   2451      1.1  christos   case 46: /* statement: BR '!' EXPR  */
   2452      1.1  christos #line 346 "./config/rl78-parse.y"
   2453      1.1  christos           { B1 (0xed); O2 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
   2454      1.1  christos #line 2455 "config/rl78-parse.c"
   2455      1.1  christos     break;
   2456      1.1  christos 
   2457      1.1  christos   case 47: /* statement: BR '!' '!' EXPR  */
   2458      1.1  christos #line 349 "./config/rl78-parse.y"
   2459      1.1  christos           { B1 (0xec); O3 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
   2460      1.1  christos #line 2461 "config/rl78-parse.c"
   2461      1.1  christos     break;
   2462      1.1  christos 
   2463      1.1  christos   case 48: /* statement: BRK  */
   2464      1.1  christos #line 354 "./config/rl78-parse.y"
   2465      1.1  christos           { B2 (0x61, 0xcc); }
   2466      1.1  christos #line 2467 "config/rl78-parse.c"
   2467      1.1  christos     break;
   2468      1.1  christos 
   2469      1.1  christos   case 49: /* statement: BRK1  */
   2470      1.1  christos #line 357 "./config/rl78-parse.y"
   2471      1.1  christos           { B1 (0xff); }
   2472      1.1  christos #line 2473 "config/rl78-parse.c"
   2473      1.1  christos     break;
   2474      1.1  christos 
   2475      1.1  christos   case 50: /* statement: CALL regw  */
   2476      1.1  christos #line 362 "./config/rl78-parse.y"
   2477      1.1  christos           { B2 (0x61, 0xca); F ((yyvsp[0].regno), 10, 2); }
   2478      1.1  christos #line 2479 "config/rl78-parse.c"
   2479      1.1  christos     break;
   2480      1.1  christos 
   2481      1.1  christos   case 51: /* statement: CALL '$' '!' EXPR  */
   2482      1.1  christos #line 365 "./config/rl78-parse.y"
   2483      1.1  christos           { B1 (0xfe); PC2 ((yyvsp[0].exp)); }
   2484      1.1  christos #line 2485 "config/rl78-parse.c"
   2485      1.1  christos     break;
   2486      1.1  christos 
   2487      1.1  christos   case 52: /* statement: CALL '!' EXPR  */
   2488      1.1  christos #line 368 "./config/rl78-parse.y"
   2489      1.1  christos           { B1 (0xfd); O2 ((yyvsp[0].exp)); }
   2490      1.1  christos #line 2491 "config/rl78-parse.c"
   2491      1.1  christos     break;
   2492      1.1  christos 
   2493      1.1  christos   case 53: /* statement: CALL '!' '!' EXPR  */
   2494      1.1  christos #line 371 "./config/rl78-parse.y"
   2495      1.1  christos           { B1 (0xfc); O3 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
   2496      1.1  christos #line 2497 "config/rl78-parse.c"
   2497      1.1  christos     break;
   2498      1.1  christos 
   2499      1.1  christos   case 54: /* statement: CALLT '[' EXPR ']'  */
   2500      1.1  christos #line 374 "./config/rl78-parse.y"
   2501      1.1  christos           { if ((yyvsp[-1].exp).X_op != O_constant)
   2502      1.1  christos 	      rl78_error ("CALLT requires a numeric address");
   2503      1.1  christos 	    else
   2504      1.1  christos 	      {
   2505      1.1  christos 	        int i = (yyvsp[-1].exp).X_add_number;
   2506      1.1  christos 		if (i < 0x80 || i > 0xbe)
   2507      1.1  christos 		  rl78_error ("CALLT address not 0x80..0xbe");
   2508      1.1  christos 		else if (i & 1)
   2509      1.1  christos 		  rl78_error ("CALLT address not even");
   2510      1.1  christos 		else
   2511      1.1  christos 		  {
   2512      1.1  christos 		    B2 (0x61, 0x84);
   2513      1.1  christos 	    	    F ((i >> 1) & 7, 9, 3);
   2514      1.1  christos 	    	    F ((i >> 4) & 7, 14, 2);
   2515      1.1  christos 		  }
   2516      1.1  christos 	      }
   2517      1.1  christos 	  }
   2518      1.1  christos #line 2519 "config/rl78-parse.c"
   2519      1.1  christos     break;
   2520      1.1  christos 
   2521      1.1  christos   case 55: /* statement: setclr1 CY  */
   2522      1.1  christos #line 395 "./config/rl78-parse.y"
   2523      1.1  christos           { B2 (0x71, (yyvsp[-1].regno) ? 0x88 : 0x80); }
   2524      1.1  christos #line 2525 "config/rl78-parse.c"
   2525      1.1  christos     break;
   2526      1.1  christos 
   2527      1.1  christos   case 56: /* statement: setclr1 sfr '.' EXPR  */
   2528      1.1  christos #line 398 "./config/rl78-parse.y"
   2529      1.1  christos           { B3 (0x71, 0x0a|(yyvsp[-3].regno), (yyvsp[-2].regno)); FE ((yyvsp[0].exp), 9, 3); }
   2530      1.1  christos #line 2531 "config/rl78-parse.c"
   2531      1.1  christos     break;
   2532      1.1  christos 
   2533      1.1  christos   case 57: /* statement: setclr1 EXPR '.' EXPR  */
   2534      1.1  christos #line 401 "./config/rl78-parse.y"
   2535      1.1  christos           { if (expr_is_sfr ((yyvsp[-2].exp)))
   2536      1.1  christos 	      { B2 (0x71, 0x0a|(yyvsp[-3].regno)); FE ((yyvsp[0].exp), 9, 3); O1 ((yyvsp[-2].exp)); }
   2537      1.1  christos 	    else if (expr_is_saddr ((yyvsp[-2].exp)))
   2538      1.1  christos 	      { B2 (0x71, 0x02|(yyvsp[-3].regno)); FE ((yyvsp[0].exp), 9, 3); SET_SA ((yyvsp[-2].exp)); O1 ((yyvsp[-2].exp)); }
   2539      1.1  christos 	    else
   2540      1.1  christos 	      NOT_SFR_OR_SADDR;
   2541      1.1  christos 	  }
   2542      1.1  christos #line 2543 "config/rl78-parse.c"
   2543      1.1  christos     break;
   2544      1.1  christos 
   2545      1.1  christos   case 58: /* statement: setclr1 A '.' EXPR  */
   2546      1.1  christos #line 410 "./config/rl78-parse.y"
   2547      1.1  christos           { B2 (0x71, 0x8a|(yyvsp[-3].regno));  FE ((yyvsp[0].exp), 9, 3); }
   2548      1.1  christos #line 2549 "config/rl78-parse.c"
   2549      1.1  christos     break;
   2550      1.1  christos 
   2551      1.1  christos   case 59: /* statement: setclr1 opt_es '!' EXPR '.' EXPR  */
   2552      1.1  christos #line 413 "./config/rl78-parse.y"
   2553      1.1  christos           { B2 (0x71, 0x00+(yyvsp[-5].regno)*0x08); FE ((yyvsp[0].exp), 9, 3); O2 ((yyvsp[-2].exp)); rl78_linkrelax_addr16 (); }
   2554      1.1  christos #line 2555 "config/rl78-parse.c"
   2555      1.1  christos     break;
   2556      1.1  christos 
   2557      1.1  christos   case 60: /* statement: setclr1 opt_es '[' HL ']' '.' EXPR  */
   2558      1.1  christos #line 416 "./config/rl78-parse.y"
   2559      1.1  christos           { B2 (0x71, 0x82|(yyvsp[-6].regno)); FE ((yyvsp[0].exp), 9, 3); }
   2560      1.1  christos #line 2561 "config/rl78-parse.c"
   2561      1.1  christos     break;
   2562      1.1  christos 
   2563      1.1  christos   case 61: /* statement: oneclrb A  */
   2564      1.1  christos #line 421 "./config/rl78-parse.y"
   2565      1.1  christos           { B1 (0xe1|(yyvsp[-1].regno)); }
   2566      1.1  christos #line 2567 "config/rl78-parse.c"
   2567      1.1  christos     break;
   2568      1.1  christos 
   2569      1.1  christos   case 62: /* statement: oneclrb X  */
   2570      1.1  christos #line 423 "./config/rl78-parse.y"
   2571      1.1  christos           { B1 (0xe0|(yyvsp[-1].regno)); }
   2572      1.1  christos #line 2573 "config/rl78-parse.c"
   2573      1.1  christos     break;
   2574      1.1  christos 
   2575      1.1  christos   case 63: /* statement: oneclrb B  */
   2576      1.1  christos #line 425 "./config/rl78-parse.y"
   2577      1.1  christos           { B1 (0xe3|(yyvsp[-1].regno)); }
   2578      1.1  christos #line 2579 "config/rl78-parse.c"
   2579      1.1  christos     break;
   2580      1.1  christos 
   2581      1.1  christos   case 64: /* statement: oneclrb C  */
   2582      1.1  christos #line 427 "./config/rl78-parse.y"
   2583      1.1  christos           { B1 (0xe2|(yyvsp[-1].regno)); }
   2584      1.1  christos #line 2585 "config/rl78-parse.c"
   2585      1.1  christos     break;
   2586      1.1  christos 
   2587      1.1  christos   case 65: /* $@8: %empty  */
   2588      1.1  christos #line 429 "./config/rl78-parse.y"
   2589      1.1  christos                        {SA((yyvsp[0].exp))}
   2590      1.1  christos #line 2591 "config/rl78-parse.c"
   2591      1.1  christos     break;
   2592      1.1  christos 
   2593      1.1  christos   case 66: /* statement: oneclrb EXPR $@8  */
   2594      1.1  christos #line 430 "./config/rl78-parse.y"
   2595      1.1  christos           { B1 (0xe4|(yyvsp[-2].regno)); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); }
   2596      1.1  christos #line 2597 "config/rl78-parse.c"
   2597      1.1  christos     break;
   2598      1.1  christos 
   2599      1.1  christos   case 67: /* statement: oneclrb opt_es '!' EXPR  */
   2600      1.1  christos #line 433 "./config/rl78-parse.y"
   2601      1.1  christos           { B1 (0xe5|(yyvsp[-3].regno)); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
   2602      1.1  christos #line 2603 "config/rl78-parse.c"
   2603      1.1  christos     break;
   2604      1.1  christos 
   2605      1.1  christos   case 68: /* statement: oneclrw AX  */
   2606      1.1  christos #line 438 "./config/rl78-parse.y"
   2607      1.1  christos           { B1 (0xe6|(yyvsp[-1].regno)); }
   2608      1.1  christos #line 2609 "config/rl78-parse.c"
   2609      1.1  christos     break;
   2610      1.1  christos 
   2611      1.1  christos   case 69: /* statement: oneclrw BC  */
   2612      1.1  christos #line 440 "./config/rl78-parse.y"
   2613      1.1  christos           { B1 (0xe7|(yyvsp[-1].regno)); }
   2614      1.1  christos #line 2615 "config/rl78-parse.c"
   2615      1.1  christos     break;
   2616      1.1  christos 
   2617      1.1  christos   case 70: /* statement: CMP0 A  */
   2618      1.1  christos #line 445 "./config/rl78-parse.y"
   2619      1.1  christos           { B1 (0xd1); }
   2620      1.1  christos #line 2621 "config/rl78-parse.c"
   2621      1.1  christos     break;
   2622      1.1  christos 
   2623      1.1  christos   case 71: /* statement: CMP0 X  */
   2624      1.1  christos #line 448 "./config/rl78-parse.y"
   2625      1.1  christos           { B1 (0xd0); }
   2626      1.1  christos #line 2627 "config/rl78-parse.c"
   2627      1.1  christos     break;
   2628      1.1  christos 
   2629      1.1  christos   case 72: /* statement: CMP0 B  */
   2630      1.1  christos #line 451 "./config/rl78-parse.y"
   2631      1.1  christos           { B1 (0xd3); }
   2632      1.1  christos #line 2633 "config/rl78-parse.c"
   2633      1.1  christos     break;
   2634      1.1  christos 
   2635      1.1  christos   case 73: /* statement: CMP0 C  */
   2636      1.1  christos #line 454 "./config/rl78-parse.y"
   2637      1.1  christos           { B1 (0xd2); }
   2638      1.1  christos #line 2639 "config/rl78-parse.c"
   2639      1.1  christos     break;
   2640      1.1  christos 
   2641      1.1  christos   case 74: /* $@9: %empty  */
   2642      1.1  christos #line 456 "./config/rl78-parse.y"
   2643      1.1  christos                     {SA((yyvsp[0].exp))}
   2644      1.1  christos #line 2645 "config/rl78-parse.c"
   2645      1.1  christos     break;
   2646      1.1  christos 
   2647      1.1  christos   case 75: /* statement: CMP0 EXPR $@9  */
   2648      1.1  christos #line 457 "./config/rl78-parse.y"
   2649      1.1  christos           { B1 (0xd4); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); }
   2650      1.1  christos #line 2651 "config/rl78-parse.c"
   2651      1.1  christos     break;
   2652      1.1  christos 
   2653      1.1  christos   case 76: /* statement: CMP0 opt_es '!' EXPR  */
   2654      1.1  christos #line 460 "./config/rl78-parse.y"
   2655      1.1  christos           { B1 (0xd5); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
   2656      1.1  christos #line 2657 "config/rl78-parse.c"
   2657      1.1  christos     break;
   2658      1.1  christos 
   2659      1.1  christos   case 77: /* statement: CMPS X ',' opt_es '[' HL '+' EXPR ']'  */
   2660      1.1  christos #line 465 "./config/rl78-parse.y"
   2661      1.1  christos           { B2 (0x61, 0xde); O1 ((yyvsp[-1].exp)); }
   2662      1.1  christos #line 2663 "config/rl78-parse.c"
   2663      1.1  christos     break;
   2664      1.1  christos 
   2665      1.1  christos   case 78: /* statement: incdec regb  */
   2666      1.1  christos #line 470 "./config/rl78-parse.y"
   2667      1.1  christos           { B1 (0x80|(yyvsp[-1].regno)); F ((yyvsp[0].regno), 5, 3); }
   2668      1.1  christos #line 2669 "config/rl78-parse.c"
   2669      1.1  christos     break;
   2670      1.1  christos 
   2671      1.1  christos   case 79: /* $@10: %empty  */
   2672      1.1  christos #line 472 "./config/rl78-parse.y"
   2673      1.1  christos                       {SA((yyvsp[0].exp))}
   2674      1.1  christos #line 2675 "config/rl78-parse.c"
   2675      1.1  christos     break;
   2676      1.1  christos 
   2677      1.1  christos   case 80: /* statement: incdec EXPR $@10  */
   2678      1.1  christos #line 473 "./config/rl78-parse.y"
   2679      1.1  christos           { B1 (0xa4|(yyvsp[-2].regno)); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); }
   2680      1.1  christos #line 2681 "config/rl78-parse.c"
   2681      1.1  christos     break;
   2682      1.1  christos 
   2683      1.1  christos   case 81: /* statement: incdec '!' EXPR  */
   2684      1.1  christos #line 475 "./config/rl78-parse.y"
   2685      1.1  christos           { B1 (0xa0|(yyvsp[-2].regno)); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
   2686      1.1  christos #line 2687 "config/rl78-parse.c"
   2687      1.1  christos     break;
   2688      1.1  christos 
   2689      1.1  christos   case 82: /* statement: incdec ES ':' '!' EXPR  */
   2690      1.1  christos #line 477 "./config/rl78-parse.y"
   2691      1.1  christos           { B2 (0x11, 0xa0|(yyvsp[-4].regno)); O2 ((yyvsp[0].exp)); }
   2692      1.1  christos #line 2693 "config/rl78-parse.c"
   2693      1.1  christos     break;
   2694      1.1  christos 
   2695      1.1  christos   case 83: /* statement: incdec '[' HL '+' EXPR ']'  */
   2696      1.1  christos #line 479 "./config/rl78-parse.y"
   2697      1.1  christos           { B2 (0x61, 0x59+(yyvsp[-5].regno)); O1 ((yyvsp[-1].exp)); }
   2698      1.1  christos #line 2699 "config/rl78-parse.c"
   2699      1.1  christos     break;
   2700      1.1  christos 
   2701      1.1  christos   case 84: /* statement: incdec ES ':' '[' HL '+' EXPR ']'  */
   2702      1.1  christos #line 481 "./config/rl78-parse.y"
   2703      1.1  christos           { B3 (0x11, 0x61, 0x59+(yyvsp[-7].regno)); O1 ((yyvsp[-1].exp)); }
   2704      1.1  christos #line 2705 "config/rl78-parse.c"
   2705      1.1  christos     break;
   2706      1.1  christos 
   2707      1.1  christos   case 85: /* statement: incdecw regw  */
   2708      1.1  christos #line 486 "./config/rl78-parse.y"
   2709      1.1  christos           { B1 (0xa1|(yyvsp[-1].regno)); F ((yyvsp[0].regno), 5, 2); }
   2710      1.1  christos #line 2711 "config/rl78-parse.c"
   2711      1.1  christos     break;
   2712      1.1  christos 
   2713      1.1  christos   case 86: /* $@11: %empty  */
   2714      1.1  christos #line 488 "./config/rl78-parse.y"
   2715      1.1  christos                        {SA((yyvsp[0].exp))}
   2716      1.1  christos #line 2717 "config/rl78-parse.c"
   2717      1.1  christos     break;
   2718      1.1  christos 
   2719      1.1  christos   case 87: /* statement: incdecw EXPR $@11  */
   2720      1.1  christos #line 489 "./config/rl78-parse.y"
   2721      1.1  christos           { B1 (0xa6|(yyvsp[-2].regno)); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); }
   2722      1.1  christos #line 2723 "config/rl78-parse.c"
   2723      1.1  christos     break;
   2724      1.1  christos 
   2725      1.1  christos   case 88: /* statement: incdecw opt_es '!' EXPR  */
   2726      1.1  christos #line 492 "./config/rl78-parse.y"
   2727      1.1  christos           { B1 (0xa2|(yyvsp[-3].regno)); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
   2728      1.1  christos #line 2729 "config/rl78-parse.c"
   2729      1.1  christos     break;
   2730      1.1  christos 
   2731      1.1  christos   case 89: /* statement: incdecw opt_es '[' HL '+' EXPR ']'  */
   2732      1.1  christos #line 495 "./config/rl78-parse.y"
   2733      1.1  christos           { B2 (0x61, 0x79+(yyvsp[-6].regno)); O1 ((yyvsp[-1].exp)); }
   2734      1.1  christos #line 2735 "config/rl78-parse.c"
   2735      1.1  christos     break;
   2736      1.1  christos 
   2737      1.1  christos   case 90: /* statement: DI  */
   2738      1.1  christos #line 500 "./config/rl78-parse.y"
   2739      1.1  christos           { B3 (0x71, 0x7b, 0xfa); }
   2740      1.1  christos #line 2741 "config/rl78-parse.c"
   2741      1.1  christos     break;
   2742      1.1  christos 
   2743      1.1  christos   case 91: /* statement: EI  */
   2744      1.1  christos #line 503 "./config/rl78-parse.y"
   2745      1.1  christos           { B3 (0x71, 0x7a, 0xfa); }
   2746      1.1  christos #line 2747 "config/rl78-parse.c"
   2747      1.1  christos     break;
   2748      1.1  christos 
   2749      1.1  christos   case 92: /* $@12: %empty  */
   2750      1.1  christos #line 507 "./config/rl78-parse.y"
   2751      1.1  christos                 { ISA_G14 ("MULHU"); }
   2752      1.1  christos #line 2753 "config/rl78-parse.c"
   2753      1.1  christos     break;
   2754      1.1  christos 
   2755      1.1  christos   case 93: /* statement: MULHU $@12  */
   2756      1.1  christos #line 508 "./config/rl78-parse.y"
   2757      1.1  christos           { B3 (0xce, 0xfb, 0x01); }
   2758      1.1  christos #line 2759 "config/rl78-parse.c"
   2759      1.1  christos     break;
   2760      1.1  christos 
   2761      1.1  christos   case 94: /* $@13: %empty  */
   2762      1.1  christos #line 510 "./config/rl78-parse.y"
   2763      1.1  christos                { ISA_G14 ("MULH"); }
   2764      1.1  christos #line 2765 "config/rl78-parse.c"
   2765      1.1  christos     break;
   2766      1.1  christos 
   2767      1.1  christos   case 95: /* statement: MULH $@13  */
   2768      1.1  christos #line 511 "./config/rl78-parse.y"
   2769      1.1  christos           { B3 (0xce, 0xfb, 0x02); }
   2770      1.1  christos #line 2771 "config/rl78-parse.c"
   2771      1.1  christos     break;
   2772      1.1  christos 
   2773      1.1  christos   case 96: /* statement: MULU X  */
   2774      1.1  christos #line 514 "./config/rl78-parse.y"
   2775      1.1  christos           { B1 (0xd6); }
   2776      1.1  christos #line 2777 "config/rl78-parse.c"
   2777      1.1  christos     break;
   2778      1.1  christos 
   2779      1.1  christos   case 97: /* $@14: %empty  */
   2780      1.1  christos #line 516 "./config/rl78-parse.y"
   2781      1.1  christos                 { ISA_G14 ("DIVHU"); }
   2782      1.1  christos #line 2783 "config/rl78-parse.c"
   2783      1.1  christos     break;
   2784      1.1  christos 
   2785      1.1  christos   case 98: /* statement: DIVHU $@14  */
   2786      1.1  christos #line 517 "./config/rl78-parse.y"
   2787      1.1  christos           { B3 (0xce, 0xfb, 0x03); }
   2788      1.1  christos #line 2789 "config/rl78-parse.c"
   2789      1.1  christos     break;
   2790      1.1  christos 
   2791      1.1  christos   case 99: /* $@15: %empty  */
   2792      1.1  christos #line 524 "./config/rl78-parse.y"
   2793      1.1  christos                 { ISA_G14 ("DIVWU"); }
   2794      1.1  christos #line 2795 "config/rl78-parse.c"
   2795      1.1  christos     break;
   2796      1.1  christos 
   2797      1.1  christos   case 100: /* statement: DIVWU $@15  */
   2798      1.1  christos #line 525 "./config/rl78-parse.y"
   2799      1.1  christos           { B3 (0xce, 0xfb, 0x0b); }
   2800      1.1  christos #line 2801 "config/rl78-parse.c"
   2801      1.1  christos     break;
   2802      1.1  christos 
   2803      1.1  christos   case 101: /* $@16: %empty  */
   2804      1.1  christos #line 527 "./config/rl78-parse.y"
   2805      1.1  christos                 { ISA_G14 ("MACHU"); }
   2806      1.1  christos #line 2807 "config/rl78-parse.c"
   2807      1.1  christos     break;
   2808      1.1  christos 
   2809      1.1  christos   case 102: /* statement: MACHU $@16  */
   2810      1.1  christos #line 528 "./config/rl78-parse.y"
   2811      1.1  christos           { B3 (0xce, 0xfb, 0x05); }
   2812      1.1  christos #line 2813 "config/rl78-parse.c"
   2813      1.1  christos     break;
   2814      1.1  christos 
   2815      1.1  christos   case 103: /* $@17: %empty  */
   2816      1.1  christos #line 530 "./config/rl78-parse.y"
   2817      1.1  christos                { ISA_G14 ("MACH"); }
   2818      1.1  christos #line 2819 "config/rl78-parse.c"
   2819      1.1  christos     break;
   2820      1.1  christos 
   2821      1.1  christos   case 104: /* statement: MACH $@17  */
   2822      1.1  christos #line 531 "./config/rl78-parse.y"
   2823      1.1  christos           { B3 (0xce, 0xfb, 0x06); }
   2824      1.1  christos #line 2825 "config/rl78-parse.c"
   2825      1.1  christos     break;
   2826      1.1  christos 
   2827      1.1  christos   case 105: /* statement: HALT  */
   2828      1.1  christos #line 536 "./config/rl78-parse.y"
   2829      1.1  christos           { B2 (0x61, 0xed); }
   2830      1.1  christos #line 2831 "config/rl78-parse.c"
   2831      1.1  christos     break;
   2832      1.1  christos 
   2833      1.1  christos   case 106: /* statement: MOV A ',' '#' EXPR  */
   2834      1.1  christos #line 544 "./config/rl78-parse.y"
   2835      1.1  christos           { B1 (0x51); O1 ((yyvsp[0].exp)); }
   2836      1.1  christos #line 2837 "config/rl78-parse.c"
   2837      1.1  christos     break;
   2838      1.1  christos 
   2839      1.1  christos   case 107: /* statement: MOV regb_na ',' '#' EXPR  */
   2840      1.1  christos #line 546 "./config/rl78-parse.y"
   2841      1.1  christos           { B1 (0x50); F((yyvsp[-3].regno), 5, 3); O1 ((yyvsp[0].exp)); }
   2842      1.1  christos #line 2843 "config/rl78-parse.c"
   2843      1.1  christos     break;
   2844      1.1  christos 
   2845      1.1  christos   case 108: /* statement: MOV sfr ',' '#' EXPR  */
   2846      1.1  christos #line 549 "./config/rl78-parse.y"
   2847      1.1  christos           { if ((yyvsp[-3].regno) != 0xfd)
   2848      1.1  christos 	      { B2 (0xce, (yyvsp[-3].regno)); O1 ((yyvsp[0].exp)); }
   2849      1.1  christos 	    else
   2850      1.1  christos 	      { B1 (0x41); O1 ((yyvsp[0].exp)); }
   2851      1.1  christos 	  }
   2852      1.1  christos #line 2853 "config/rl78-parse.c"
   2853      1.1  christos     break;
   2854      1.1  christos 
   2855      1.1  christos   case 109: /* $@18: %empty  */
   2856      1.1  christos #line 555 "./config/rl78-parse.y"
   2857      1.1  christos                                         {NOT_ES}
   2858      1.1  christos #line 2859 "config/rl78-parse.c"
   2859      1.1  christos     break;
   2860      1.1  christos 
   2861      1.1  christos   case 110: /* statement: MOV opt_es EXPR ',' '#' EXPR $@18  */
   2862      1.1  christos #line 556 "./config/rl78-parse.y"
   2863      1.1  christos           { if (expr_is_sfr ((yyvsp[-4].exp)))
   2864      1.1  christos 	      { B1 (0xce); O1 ((yyvsp[-4].exp)); O1 ((yyvsp[-1].exp)); }
   2865      1.1  christos 	    else if (expr_is_saddr ((yyvsp[-4].exp)))
   2866      1.1  christos 	      { B1 (0xcd); SET_SA ((yyvsp[-4].exp)); O1 ((yyvsp[-4].exp)); O1 ((yyvsp[-1].exp)); }
   2867      1.1  christos 	    else
   2868      1.1  christos 	      NOT_SFR_OR_SADDR;
   2869      1.1  christos 	  }
   2870      1.1  christos #line 2871 "config/rl78-parse.c"
   2871      1.1  christos     break;
   2872      1.1  christos 
   2873      1.1  christos   case 111: /* statement: MOV '!' EXPR ',' '#' EXPR  */
   2874      1.1  christos #line 565 "./config/rl78-parse.y"
   2875      1.1  christos           { B1 (0xcf); O2 ((yyvsp[-3].exp)); O1 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
   2876      1.1  christos #line 2877 "config/rl78-parse.c"
   2877      1.1  christos     break;
   2878      1.1  christos 
   2879      1.1  christos   case 112: /* statement: MOV ES ':' '!' EXPR ',' '#' EXPR  */
   2880      1.1  christos #line 568 "./config/rl78-parse.y"
   2881      1.1  christos           { B2 (0x11, 0xcf); O2 ((yyvsp[-3].exp)); O1 ((yyvsp[0].exp)); }
   2882      1.1  christos #line 2883 "config/rl78-parse.c"
   2883      1.1  christos     break;
   2884      1.1  christos 
   2885      1.1  christos   case 113: /* statement: MOV regb_na ',' A  */
   2886      1.1  christos #line 571 "./config/rl78-parse.y"
   2887      1.1  christos           { B1 (0x70); F ((yyvsp[-2].regno), 5, 3); }
   2888      1.1  christos #line 2889 "config/rl78-parse.c"
   2889      1.1  christos     break;
   2890      1.1  christos 
   2891      1.1  christos   case 114: /* statement: MOV A ',' regb_na  */
   2892      1.1  christos #line 574 "./config/rl78-parse.y"
   2893      1.1  christos           { B1 (0x60); F ((yyvsp[0].regno), 5, 3); }
   2894      1.1  christos #line 2895 "config/rl78-parse.c"
   2895      1.1  christos     break;
   2896      1.1  christos 
   2897      1.1  christos   case 115: /* $@19: %empty  */
   2898      1.1  christos #line 576 "./config/rl78-parse.y"
   2899      1.1  christos                                  {NOT_ES}
   2900      1.1  christos #line 2901 "config/rl78-parse.c"
   2901      1.1  christos     break;
   2902      1.1  christos 
   2903      1.1  christos   case 116: /* statement: MOV opt_es EXPR ',' A $@19  */
   2904      1.1  christos #line 577 "./config/rl78-parse.y"
   2905      1.1  christos           { if (expr_is_sfr ((yyvsp[-3].exp)))
   2906      1.1  christos 	      { B1 (0x9e); O1 ((yyvsp[-3].exp)); }
   2907      1.1  christos 	    else if (expr_is_saddr ((yyvsp[-3].exp)))
   2908      1.1  christos 	      { B1 (0x9d); SET_SA ((yyvsp[-3].exp)); O1 ((yyvsp[-3].exp)); }
   2909      1.1  christos 	    else
   2910      1.1  christos 	      NOT_SFR_OR_SADDR;
   2911      1.1  christos 	  }
   2912      1.1  christos #line 2913 "config/rl78-parse.c"
   2913      1.1  christos     break;
   2914      1.1  christos 
   2915      1.1  christos   case 117: /* statement: MOV A ',' opt_es '!' EXPR  */
   2916      1.1  christos #line 586 "./config/rl78-parse.y"
   2917      1.1  christos           { B1 (0x8f); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
   2918      1.1  christos #line 2919 "config/rl78-parse.c"
   2919      1.1  christos     break;
   2920      1.1  christos 
   2921      1.1  christos   case 118: /* statement: MOV '!' EXPR ',' A  */
   2922      1.1  christos #line 589 "./config/rl78-parse.y"
   2923      1.1  christos           { B1 (0x9f); O2 ((yyvsp[-2].exp)); rl78_linkrelax_addr16 (); }
   2924      1.1  christos #line 2925 "config/rl78-parse.c"
   2925      1.1  christos     break;
   2926      1.1  christos 
   2927      1.1  christos   case 119: /* statement: MOV ES ':' '!' EXPR ',' A  */
   2928      1.1  christos #line 592 "./config/rl78-parse.y"
   2929      1.1  christos           { B2 (0x11, 0x9f); O2 ((yyvsp[-2].exp)); }
   2930      1.1  christos #line 2931 "config/rl78-parse.c"
   2931      1.1  christos     break;
   2932      1.1  christos 
   2933      1.1  christos   case 120: /* statement: MOV regb_na ',' opt_es '!' EXPR  */
   2934      1.1  christos #line 595 "./config/rl78-parse.y"
   2935      1.1  christos           { B1 (0xc9|reg_xbc((yyvsp[-4].regno))); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
   2936      1.1  christos #line 2937 "config/rl78-parse.c"
   2937      1.1  christos     break;
   2938      1.1  christos 
   2939      1.1  christos   case 121: /* $@20: %empty  */
   2940      1.1  christos #line 597 "./config/rl78-parse.y"
   2941      1.1  christos                                  {NOT_ES}
   2942      1.1  christos #line 2943 "config/rl78-parse.c"
   2943      1.1  christos     break;
   2944      1.1  christos 
   2945      1.1  christos   case 122: /* statement: MOV A ',' opt_es EXPR $@20  */
   2946      1.1  christos #line 598 "./config/rl78-parse.y"
   2947      1.1  christos           { if (expr_is_saddr ((yyvsp[-1].exp)))
   2948      1.1  christos 	      { B1 (0x8d); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); }
   2949      1.1  christos 	    else if (expr_is_sfr ((yyvsp[-1].exp)))
   2950      1.1  christos 	      { B1 (0x8e); O1 ((yyvsp[-1].exp)); }
   2951      1.1  christos 	    else
   2952      1.1  christos 	      NOT_SFR_OR_SADDR;
   2953      1.1  christos 	  }
   2954      1.1  christos #line 2955 "config/rl78-parse.c"
   2955      1.1  christos     break;
   2956      1.1  christos 
   2957      1.1  christos   case 123: /* $@21: %empty  */
   2958      1.1  christos #line 606 "./config/rl78-parse.y"
   2959      1.1  christos                                       {SA((yyvsp[0].exp))}
   2960      1.1  christos #line 2961 "config/rl78-parse.c"
   2961      1.1  christos     break;
   2962      1.1  christos 
   2963      1.1  christos   case 124: /* $@22: %empty  */
   2964      1.1  christos #line 606 "./config/rl78-parse.y"
   2965      1.1  christos                                                {NOT_ES}
   2966      1.1  christos #line 2967 "config/rl78-parse.c"
   2967      1.1  christos     break;
   2968      1.1  christos 
   2969      1.1  christos   case 125: /* statement: MOV regb_na ',' opt_es EXPR $@21 $@22  */
   2970      1.1  christos #line 607 "./config/rl78-parse.y"
   2971      1.1  christos           { B1 (0xc8|reg_xbc((yyvsp[-5].regno))); SET_SA ((yyvsp[-2].exp)); O1 ((yyvsp[-2].exp)); }
   2972      1.1  christos #line 2973 "config/rl78-parse.c"
   2973      1.1  christos     break;
   2974      1.1  christos 
   2975      1.1  christos   case 126: /* statement: MOV A ',' sfr  */
   2976      1.1  christos #line 610 "./config/rl78-parse.y"
   2977      1.1  christos           { B2 (0x8e, (yyvsp[0].regno)); }
   2978      1.1  christos #line 2979 "config/rl78-parse.c"
   2979      1.1  christos     break;
   2980      1.1  christos 
   2981      1.1  christos   case 127: /* statement: MOV sfr ',' regb  */
   2982      1.1  christos #line 613 "./config/rl78-parse.y"
   2983      1.1  christos           { if ((yyvsp[0].regno) != 1)
   2984      1.1  christos 	      rl78_error ("Only A allowed here");
   2985      1.1  christos 	    else
   2986      1.1  christos 	      { B2 (0x9e, (yyvsp[-2].regno)); }
   2987      1.1  christos 	  }
   2988      1.1  christos #line 2989 "config/rl78-parse.c"
   2989      1.1  christos     break;
   2990      1.1  christos 
   2991      1.1  christos   case 128: /* $@23: %empty  */
   2992      1.1  christos #line 619 "./config/rl78-parse.y"
   2993      1.1  christos                                   {SA((yyvsp[0].exp))}
   2994      1.1  christos #line 2995 "config/rl78-parse.c"
   2995      1.1  christos     break;
   2996      1.1  christos 
   2997      1.1  christos   case 129: /* $@24: %empty  */
   2998      1.1  christos #line 619 "./config/rl78-parse.y"
   2999      1.1  christos                                            {NOT_ES}
   3000      1.1  christos #line 3001 "config/rl78-parse.c"
   3001      1.1  christos     break;
   3002      1.1  christos 
   3003      1.1  christos   case 130: /* statement: MOV sfr ',' opt_es EXPR $@23 $@24  */
   3004      1.1  christos #line 620 "./config/rl78-parse.y"
   3005      1.1  christos           { if ((yyvsp[-5].regno) != 0xfd)
   3006      1.1  christos 	      rl78_error ("Only ES allowed here");
   3007      1.1  christos 	    else
   3008      1.1  christos 	      { B2 (0x61, 0xb8); SET_SA ((yyvsp[-2].exp)); O1 ((yyvsp[-2].exp)); }
   3009      1.1  christos 	  }
   3010      1.1  christos #line 3011 "config/rl78-parse.c"
   3011      1.1  christos     break;
   3012      1.1  christos 
   3013      1.1  christos   case 131: /* statement: MOV A ',' opt_es '[' DE ']'  */
   3014      1.1  christos #line 627 "./config/rl78-parse.y"
   3015      1.1  christos           { B1 (0x89); }
   3016      1.1  christos #line 3017 "config/rl78-parse.c"
   3017      1.1  christos     break;
   3018      1.1  christos 
   3019      1.1  christos   case 132: /* statement: MOV opt_es '[' DE ']' ',' A  */
   3020      1.1  christos #line 630 "./config/rl78-parse.y"
   3021      1.1  christos           { B1 (0x99); }
   3022      1.1  christos #line 3023 "config/rl78-parse.c"
   3023      1.1  christos     break;
   3024      1.1  christos 
   3025      1.1  christos   case 133: /* statement: MOV opt_es '[' DE '+' EXPR ']' ',' '#' EXPR  */
   3026      1.1  christos #line 633 "./config/rl78-parse.y"
   3027      1.1  christos           { B1 (0xca); O1 ((yyvsp[-4].exp)); O1 ((yyvsp[0].exp)); }
   3028      1.1  christos #line 3029 "config/rl78-parse.c"
   3029      1.1  christos     break;
   3030      1.1  christos 
   3031      1.1  christos   case 134: /* statement: MOV A ',' opt_es '[' DE '+' EXPR ']'  */
   3032      1.1  christos #line 636 "./config/rl78-parse.y"
   3033      1.1  christos           { B1 (0x8a); O1 ((yyvsp[-1].exp)); }
   3034      1.1  christos #line 3035 "config/rl78-parse.c"
   3035      1.1  christos     break;
   3036      1.1  christos 
   3037      1.1  christos   case 135: /* statement: MOV opt_es '[' DE '+' EXPR ']' ',' A  */
   3038      1.1  christos #line 639 "./config/rl78-parse.y"
   3039      1.1  christos           { B1 (0x9a); O1 ((yyvsp[-3].exp)); }
   3040      1.1  christos #line 3041 "config/rl78-parse.c"
   3041      1.1  christos     break;
   3042      1.1  christos 
   3043      1.1  christos   case 136: /* statement: MOV A ',' opt_es '[' HL ']'  */
   3044      1.1  christos #line 642 "./config/rl78-parse.y"
   3045      1.1  christos           { B1 (0x8b); }
   3046      1.1  christos #line 3047 "config/rl78-parse.c"
   3047      1.1  christos     break;
   3048      1.1  christos 
   3049      1.1  christos   case 137: /* statement: MOV opt_es '[' HL ']' ',' A  */
   3050      1.1  christos #line 645 "./config/rl78-parse.y"
   3051      1.1  christos           { B1 (0x9b); }
   3052      1.1  christos #line 3053 "config/rl78-parse.c"
   3053      1.1  christos     break;
   3054      1.1  christos 
   3055      1.1  christos   case 138: /* statement: MOV opt_es '[' HL '+' EXPR ']' ',' '#' EXPR  */
   3056      1.1  christos #line 648 "./config/rl78-parse.y"
   3057      1.1  christos           { B1 (0xcc); O1 ((yyvsp[-4].exp)); O1 ((yyvsp[0].exp)); }
   3058      1.1  christos #line 3059 "config/rl78-parse.c"
   3059      1.1  christos     break;
   3060      1.1  christos 
   3061      1.1  christos   case 139: /* statement: MOV A ',' opt_es '[' HL '+' EXPR ']'  */
   3062      1.1  christos #line 651 "./config/rl78-parse.y"
   3063      1.1  christos           { B1 (0x8c); O1 ((yyvsp[-1].exp)); }
   3064      1.1  christos #line 3065 "config/rl78-parse.c"
   3065      1.1  christos     break;
   3066      1.1  christos 
   3067      1.1  christos   case 140: /* statement: MOV opt_es '[' HL '+' EXPR ']' ',' A  */
   3068      1.1  christos #line 654 "./config/rl78-parse.y"
   3069      1.1  christos           { B1 (0x9c); O1 ((yyvsp[-3].exp)); }
   3070      1.1  christos #line 3071 "config/rl78-parse.c"
   3071      1.1  christos     break;
   3072      1.1  christos 
   3073      1.1  christos   case 141: /* statement: MOV A ',' opt_es '[' HL '+' B ']'  */
   3074      1.1  christos #line 657 "./config/rl78-parse.y"
   3075      1.1  christos           { B2 (0x61, 0xc9); }
   3076      1.1  christos #line 3077 "config/rl78-parse.c"
   3077      1.1  christos     break;
   3078      1.1  christos 
   3079      1.1  christos   case 142: /* statement: MOV opt_es '[' HL '+' B ']' ',' A  */
   3080      1.1  christos #line 660 "./config/rl78-parse.y"
   3081      1.1  christos           { B2 (0x61, 0xd9); }
   3082      1.1  christos #line 3083 "config/rl78-parse.c"
   3083      1.1  christos     break;
   3084      1.1  christos 
   3085      1.1  christos   case 143: /* statement: MOV A ',' opt_es '[' HL '+' C ']'  */
   3086      1.1  christos #line 663 "./config/rl78-parse.y"
   3087      1.1  christos           { B2 (0x61, 0xe9); }
   3088      1.1  christos #line 3089 "config/rl78-parse.c"
   3089      1.1  christos     break;
   3090      1.1  christos 
   3091      1.1  christos   case 144: /* statement: MOV opt_es '[' HL '+' C ']' ',' A  */
   3092      1.1  christos #line 666 "./config/rl78-parse.y"
   3093      1.1  christos           { B2 (0x61, 0xf9); }
   3094      1.1  christos #line 3095 "config/rl78-parse.c"
   3095      1.1  christos     break;
   3096      1.1  christos 
   3097      1.1  christos   case 145: /* statement: MOV opt_es EXPR '[' B ']' ',' '#' EXPR  */
   3098      1.1  christos #line 669 "./config/rl78-parse.y"
   3099      1.1  christos           { B1 (0x19); O2 ((yyvsp[-6].exp)); O1 ((yyvsp[0].exp)); }
   3100      1.1  christos #line 3101 "config/rl78-parse.c"
   3101      1.1  christos     break;
   3102      1.1  christos 
   3103      1.1  christos   case 146: /* statement: MOV A ',' opt_es EXPR '[' B ']'  */
   3104      1.1  christos #line 672 "./config/rl78-parse.y"
   3105      1.1  christos           { B1 (0x09); O2 ((yyvsp[-3].exp)); }
   3106      1.1  christos #line 3107 "config/rl78-parse.c"
   3107      1.1  christos     break;
   3108      1.1  christos 
   3109      1.1  christos   case 147: /* statement: MOV opt_es EXPR '[' B ']' ',' A  */
   3110      1.1  christos #line 675 "./config/rl78-parse.y"
   3111      1.1  christos           { B1 (0x18); O2 ((yyvsp[-5].exp)); }
   3112      1.1  christos #line 3113 "config/rl78-parse.c"
   3113      1.1  christos     break;
   3114      1.1  christos 
   3115      1.1  christos   case 148: /* statement: MOV opt_es EXPR '[' C ']' ',' '#' EXPR  */
   3116      1.1  christos #line 678 "./config/rl78-parse.y"
   3117      1.1  christos           { B1 (0x38); O2 ((yyvsp[-6].exp)); O1 ((yyvsp[0].exp)); }
   3118      1.1  christos #line 3119 "config/rl78-parse.c"
   3119      1.1  christos     break;
   3120      1.1  christos 
   3121      1.1  christos   case 149: /* statement: MOV A ',' opt_es EXPR '[' C ']'  */
   3122      1.1  christos #line 681 "./config/rl78-parse.y"
   3123      1.1  christos           { B1 (0x29); O2 ((yyvsp[-3].exp)); }
   3124      1.1  christos #line 3125 "config/rl78-parse.c"
   3125      1.1  christos     break;
   3126      1.1  christos 
   3127      1.1  christos   case 150: /* statement: MOV opt_es EXPR '[' C ']' ',' A  */
   3128      1.1  christos #line 684 "./config/rl78-parse.y"
   3129      1.1  christos           { B1 (0x28); O2 ((yyvsp[-5].exp)); }
   3130      1.1  christos #line 3131 "config/rl78-parse.c"
   3131      1.1  christos     break;
   3132      1.1  christos 
   3133      1.1  christos   case 151: /* statement: MOV opt_es EXPR '[' BC ']' ',' '#' EXPR  */
   3134      1.1  christos #line 687 "./config/rl78-parse.y"
   3135      1.1  christos           { B1 (0x39); O2 ((yyvsp[-6].exp)); O1 ((yyvsp[0].exp)); }
   3136      1.1  christos #line 3137 "config/rl78-parse.c"
   3137      1.1  christos     break;
   3138      1.1  christos 
   3139      1.1  christos   case 152: /* statement: MOV opt_es '[' BC ']' ',' '#' EXPR  */
   3140      1.1  christos #line 690 "./config/rl78-parse.y"
   3141      1.1  christos           { B3 (0x39, 0, 0); O1 ((yyvsp[0].exp)); }
   3142      1.1  christos #line 3143 "config/rl78-parse.c"
   3143      1.1  christos     break;
   3144      1.1  christos 
   3145      1.1  christos   case 153: /* statement: MOV A ',' opt_es EXPR '[' BC ']'  */
   3146      1.1  christos #line 693 "./config/rl78-parse.y"
   3147      1.1  christos           { B1 (0x49); O2 ((yyvsp[-3].exp)); }
   3148      1.1  christos #line 3149 "config/rl78-parse.c"
   3149      1.1  christos     break;
   3150      1.1  christos 
   3151      1.1  christos   case 154: /* statement: MOV A ',' opt_es '[' BC ']'  */
   3152      1.1  christos #line 696 "./config/rl78-parse.y"
   3153      1.1  christos           { B3 (0x49, 0, 0); }
   3154      1.1  christos #line 3155 "config/rl78-parse.c"
   3155      1.1  christos     break;
   3156      1.1  christos 
   3157      1.1  christos   case 155: /* statement: MOV opt_es EXPR '[' BC ']' ',' A  */
   3158      1.1  christos #line 699 "./config/rl78-parse.y"
   3159      1.1  christos           { B1 (0x48); O2 ((yyvsp[-5].exp)); }
   3160      1.1  christos #line 3161 "config/rl78-parse.c"
   3161      1.1  christos     break;
   3162      1.1  christos 
   3163      1.1  christos   case 156: /* statement: MOV opt_es '[' BC ']' ',' A  */
   3164      1.1  christos #line 702 "./config/rl78-parse.y"
   3165      1.1  christos           { B3 (0x48, 0, 0); }
   3166      1.1  christos #line 3167 "config/rl78-parse.c"
   3167      1.1  christos     break;
   3168      1.1  christos 
   3169      1.1  christos   case 157: /* $@25: %empty  */
   3170      1.1  christos #line 704 "./config/rl78-parse.y"
   3171      1.1  christos                                                        {NOT_ES}
   3172      1.1  christos #line 3173 "config/rl78-parse.c"
   3173      1.1  christos     break;
   3174      1.1  christos 
   3175      1.1  christos   case 158: /* statement: MOV opt_es '[' SP '+' EXPR ']' ',' '#' EXPR $@25  */
   3176      1.1  christos #line 705 "./config/rl78-parse.y"
   3177      1.1  christos           { B1 (0xc8); O1 ((yyvsp[-5].exp)); O1 ((yyvsp[-1].exp)); }
   3178      1.1  christos #line 3179 "config/rl78-parse.c"
   3179      1.1  christos     break;
   3180      1.1  christos 
   3181      1.1  christos   case 159: /* $@26: %empty  */
   3182      1.1  christos #line 707 "./config/rl78-parse.y"
   3183      1.1  christos                                               {NOT_ES}
   3184      1.1  christos #line 3185 "config/rl78-parse.c"
   3185      1.1  christos     break;
   3186      1.1  christos 
   3187      1.1  christos   case 160: /* statement: MOV opt_es '[' SP ']' ',' '#' EXPR $@26  */
   3188      1.1  christos #line 708 "./config/rl78-parse.y"
   3189      1.1  christos           { B2 (0xc8, 0); O1 ((yyvsp[-1].exp)); }
   3190      1.1  christos #line 3191 "config/rl78-parse.c"
   3191      1.1  christos     break;
   3192      1.1  christos 
   3193      1.1  christos   case 161: /* $@27: %empty  */
   3194      1.1  christos #line 710 "./config/rl78-parse.y"
   3195      1.1  christos                                                 {NOT_ES}
   3196      1.1  christos #line 3197 "config/rl78-parse.c"
   3197      1.1  christos     break;
   3198      1.1  christos 
   3199      1.1  christos   case 162: /* statement: MOV A ',' opt_es '[' SP '+' EXPR ']' $@27  */
   3200      1.1  christos #line 711 "./config/rl78-parse.y"
   3201      1.1  christos           { B1 (0x88); O1 ((yyvsp[-2].exp)); }
   3202      1.1  christos #line 3203 "config/rl78-parse.c"
   3203      1.1  christos     break;
   3204      1.1  christos 
   3205      1.1  christos   case 163: /* $@28: %empty  */
   3206      1.1  christos #line 713 "./config/rl78-parse.y"
   3207      1.1  christos                                        {NOT_ES}
   3208      1.1  christos #line 3209 "config/rl78-parse.c"
   3209      1.1  christos     break;
   3210      1.1  christos 
   3211      1.1  christos   case 164: /* statement: MOV A ',' opt_es '[' SP ']' $@28  */
   3212      1.1  christos #line 714 "./config/rl78-parse.y"
   3213      1.1  christos           { B2 (0x88, 0); }
   3214      1.1  christos #line 3215 "config/rl78-parse.c"
   3215      1.1  christos     break;
   3216      1.1  christos 
   3217      1.1  christos   case 165: /* $@29: %empty  */
   3218      1.1  christos #line 716 "./config/rl78-parse.y"
   3219      1.1  christos                                                 {NOT_ES}
   3220      1.1  christos #line 3221 "config/rl78-parse.c"
   3221      1.1  christos     break;
   3222      1.1  christos 
   3223      1.1  christos   case 166: /* statement: MOV opt_es '[' SP '+' EXPR ']' ',' A $@29  */
   3224      1.1  christos #line 717 "./config/rl78-parse.y"
   3225      1.1  christos           { B1 (0x98); O1 ((yyvsp[-4].exp)); }
   3226      1.1  christos #line 3227 "config/rl78-parse.c"
   3227      1.1  christos     break;
   3228      1.1  christos 
   3229      1.1  christos   case 167: /* $@30: %empty  */
   3230      1.1  christos #line 719 "./config/rl78-parse.y"
   3231      1.1  christos                                        {NOT_ES}
   3232      1.1  christos #line 3233 "config/rl78-parse.c"
   3233      1.1  christos     break;
   3234      1.1  christos 
   3235      1.1  christos   case 168: /* statement: MOV opt_es '[' SP ']' ',' A $@30  */
   3236      1.1  christos #line 720 "./config/rl78-parse.y"
   3237      1.1  christos           { B2 (0x98, 0); }
   3238      1.1  christos #line 3239 "config/rl78-parse.c"
   3239      1.1  christos     break;
   3240      1.1  christos 
   3241      1.1  christos   case 169: /* statement: mov1 CY ',' EXPR '.' EXPR  */
   3242      1.1  christos #line 725 "./config/rl78-parse.y"
   3243      1.1  christos           { if (expr_is_saddr ((yyvsp[-2].exp)))
   3244      1.1  christos 	      { B2 (0x71, 0x04); FE ((yyvsp[0].exp), 9, 3); SET_SA ((yyvsp[-2].exp)); O1 ((yyvsp[-2].exp)); }
   3245      1.1  christos 	    else if (expr_is_sfr ((yyvsp[-2].exp)))
   3246      1.1  christos 	      { B2 (0x71, 0x0c); FE ((yyvsp[0].exp), 9, 3); O1 ((yyvsp[-2].exp)); }
   3247      1.1  christos 	    else
   3248      1.1  christos 	      NOT_SFR_OR_SADDR;
   3249      1.1  christos 	  }
   3250      1.1  christos #line 3251 "config/rl78-parse.c"
   3251      1.1  christos     break;
   3252      1.1  christos 
   3253      1.1  christos   case 170: /* statement: mov1 CY ',' A '.' EXPR  */
   3254      1.1  christos #line 734 "./config/rl78-parse.y"
   3255      1.1  christos           { B2 (0x71, 0x8c); FE ((yyvsp[0].exp), 9, 3); }
   3256      1.1  christos #line 3257 "config/rl78-parse.c"
   3257      1.1  christos     break;
   3258      1.1  christos 
   3259      1.1  christos   case 171: /* statement: mov1 CY ',' sfr '.' EXPR  */
   3260      1.1  christos #line 737 "./config/rl78-parse.y"
   3261      1.1  christos           { B3 (0x71, 0x0c, (yyvsp[-2].regno)); FE ((yyvsp[0].exp), 9, 3); }
   3262      1.1  christos #line 3263 "config/rl78-parse.c"
   3263      1.1  christos     break;
   3264      1.1  christos 
   3265      1.1  christos   case 172: /* statement: mov1 CY ',' opt_es '[' HL ']' '.' EXPR  */
   3266      1.1  christos #line 740 "./config/rl78-parse.y"
   3267      1.1  christos           { B2 (0x71, 0x84); FE ((yyvsp[0].exp), 9, 3); }
   3268      1.1  christos #line 3269 "config/rl78-parse.c"
   3269      1.1  christos     break;
   3270      1.1  christos 
   3271      1.1  christos   case 173: /* statement: mov1 EXPR '.' EXPR ',' CY  */
   3272      1.1  christos #line 743 "./config/rl78-parse.y"
   3273      1.1  christos           { if (expr_is_saddr ((yyvsp[-4].exp)))
   3274      1.1  christos 	      { B2 (0x71, 0x01); FE ((yyvsp[-2].exp), 9, 3); SET_SA ((yyvsp[-4].exp)); O1 ((yyvsp[-4].exp)); }
   3275      1.1  christos 	    else if (expr_is_sfr ((yyvsp[-4].exp)))
   3276      1.1  christos 	      { B2 (0x71, 0x09); FE ((yyvsp[-2].exp), 9, 3); O1 ((yyvsp[-4].exp)); }
   3277      1.1  christos 	    else
   3278      1.1  christos 	      NOT_SFR_OR_SADDR;
   3279      1.1  christos 	  }
   3280      1.1  christos #line 3281 "config/rl78-parse.c"
   3281      1.1  christos     break;
   3282      1.1  christos 
   3283      1.1  christos   case 174: /* statement: mov1 A '.' EXPR ',' CY  */
   3284      1.1  christos #line 752 "./config/rl78-parse.y"
   3285      1.1  christos           { B2 (0x71, 0x89); FE ((yyvsp[-2].exp), 9, 3); }
   3286      1.1  christos #line 3287 "config/rl78-parse.c"
   3287      1.1  christos     break;
   3288      1.1  christos 
   3289      1.1  christos   case 175: /* statement: mov1 sfr '.' EXPR ',' CY  */
   3290      1.1  christos #line 755 "./config/rl78-parse.y"
   3291      1.1  christos           { B3 (0x71, 0x09, (yyvsp[-4].regno)); FE ((yyvsp[-2].exp), 9, 3); }
   3292      1.1  christos #line 3293 "config/rl78-parse.c"
   3293      1.1  christos     break;
   3294      1.1  christos 
   3295      1.1  christos   case 176: /* statement: mov1 opt_es '[' HL ']' '.' EXPR ',' CY  */
   3296      1.1  christos #line 758 "./config/rl78-parse.y"
   3297      1.1  christos           { B2 (0x71, 0x81); FE ((yyvsp[-2].exp), 9, 3); }
   3298      1.1  christos #line 3299 "config/rl78-parse.c"
   3299      1.1  christos     break;
   3300      1.1  christos 
   3301      1.1  christos   case 177: /* statement: MOVS opt_es '[' HL '+' EXPR ']' ',' X  */
   3302      1.1  christos #line 763 "./config/rl78-parse.y"
   3303      1.1  christos           { B2 (0x61, 0xce); O1 ((yyvsp[-3].exp)); }
   3304      1.1  christos #line 3305 "config/rl78-parse.c"
   3305      1.1  christos     break;
   3306      1.1  christos 
   3307      1.1  christos   case 178: /* statement: MOVW AX ',' '#' EXPR  */
   3308      1.1  christos #line 768 "./config/rl78-parse.y"
   3309      1.1  christos           { B1 (0x30); O2 ((yyvsp[0].exp)); }
   3310      1.1  christos #line 3311 "config/rl78-parse.c"
   3311      1.1  christos     break;
   3312      1.1  christos 
   3313      1.1  christos   case 179: /* statement: MOVW regw_na ',' '#' EXPR  */
   3314      1.1  christos #line 771 "./config/rl78-parse.y"
   3315      1.1  christos           { B1 (0x30); F ((yyvsp[-3].regno), 5, 2); O2 ((yyvsp[0].exp)); }
   3316      1.1  christos #line 3317 "config/rl78-parse.c"
   3317      1.1  christos     break;
   3318      1.1  christos 
   3319      1.1  christos   case 180: /* $@31: %empty  */
   3320      1.1  christos #line 773 "./config/rl78-parse.y"
   3321      1.1  christos                                         {NOT_ES}
   3322      1.1  christos #line 3323 "config/rl78-parse.c"
   3323      1.1  christos     break;
   3324      1.1  christos 
   3325      1.1  christos   case 181: /* statement: MOVW opt_es EXPR ',' '#' EXPR $@31  */
   3326      1.1  christos #line 774 "./config/rl78-parse.y"
   3327      1.1  christos           { if (expr_is_saddr ((yyvsp[-4].exp)))
   3328      1.1  christos 	      { B1 (0xc9); SET_SA ((yyvsp[-4].exp)); O1 ((yyvsp[-4].exp)); O2 ((yyvsp[-1].exp)); }
   3329      1.1  christos 	    else if (expr_is_sfr ((yyvsp[-4].exp)))
   3330      1.1  christos 	      { B1 (0xcb); O1 ((yyvsp[-4].exp)); O2 ((yyvsp[-1].exp)); }
   3331      1.1  christos 	    else
   3332      1.1  christos 	      NOT_SFR_OR_SADDR;
   3333      1.1  christos 	  }
   3334      1.1  christos #line 3335 "config/rl78-parse.c"
   3335      1.1  christos     break;
   3336      1.1  christos 
   3337      1.1  christos   case 182: /* $@32: %empty  */
   3338      1.1  christos #line 782 "./config/rl78-parse.y"
   3339      1.1  christos                                   {NOT_ES}
   3340      1.1  christos #line 3341 "config/rl78-parse.c"
   3341      1.1  christos     break;
   3342      1.1  christos 
   3343      1.1  christos   case 183: /* statement: MOVW AX ',' opt_es EXPR $@32  */
   3344      1.1  christos #line 783 "./config/rl78-parse.y"
   3345      1.1  christos           { if (expr_is_saddr ((yyvsp[-1].exp)))
   3346      1.1  christos 	      { B1 (0xad); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); WA((yyvsp[-1].exp)); }
   3347      1.1  christos 	    else if (expr_is_sfr ((yyvsp[-1].exp)))
   3348      1.1  christos 	      { B1 (0xae); O1 ((yyvsp[-1].exp)); WA((yyvsp[-1].exp)); }
   3349      1.1  christos 	    else
   3350      1.1  christos 	      NOT_SFR_OR_SADDR;
   3351      1.1  christos 	  }
   3352      1.1  christos #line 3353 "config/rl78-parse.c"
   3353      1.1  christos     break;
   3354      1.1  christos 
   3355      1.1  christos   case 184: /* $@33: %empty  */
   3356      1.1  christos #line 791 "./config/rl78-parse.y"
   3357      1.1  christos                                   {NOT_ES}
   3358      1.1  christos #line 3359 "config/rl78-parse.c"
   3359      1.1  christos     break;
   3360      1.1  christos 
   3361      1.1  christos   case 185: /* statement: MOVW opt_es EXPR ',' AX $@33  */
   3362      1.1  christos #line 792 "./config/rl78-parse.y"
   3363      1.1  christos           { if (expr_is_saddr ((yyvsp[-3].exp)))
   3364      1.1  christos 	      { B1 (0xbd); SET_SA ((yyvsp[-3].exp)); O1 ((yyvsp[-3].exp)); WA((yyvsp[-3].exp)); }
   3365      1.1  christos 	    else if (expr_is_sfr ((yyvsp[-3].exp)))
   3366      1.1  christos 	      { B1 (0xbe); O1 ((yyvsp[-3].exp)); WA((yyvsp[-3].exp)); }
   3367      1.1  christos 	    else
   3368      1.1  christos 	      NOT_SFR_OR_SADDR;
   3369      1.1  christos 	  }
   3370      1.1  christos #line 3371 "config/rl78-parse.c"
   3371      1.1  christos     break;
   3372      1.1  christos 
   3373      1.1  christos   case 186: /* statement: MOVW AX ',' regw_na  */
   3374      1.1  christos #line 801 "./config/rl78-parse.y"
   3375      1.1  christos           { B1 (0x11); F ((yyvsp[0].regno), 5, 2); }
   3376      1.1  christos #line 3377 "config/rl78-parse.c"
   3377      1.1  christos     break;
   3378      1.1  christos 
   3379      1.1  christos   case 187: /* statement: MOVW regw_na ',' AX  */
   3380      1.1  christos #line 804 "./config/rl78-parse.y"
   3381      1.1  christos           { B1 (0x10); F ((yyvsp[-2].regno), 5, 2); }
   3382      1.1  christos #line 3383 "config/rl78-parse.c"
   3383      1.1  christos     break;
   3384      1.1  christos 
   3385      1.1  christos   case 188: /* statement: MOVW AX ',' opt_es '!' EXPR  */
   3386      1.1  christos #line 807 "./config/rl78-parse.y"
   3387      1.1  christos           { B1 (0xaf); O2 ((yyvsp[0].exp)); WA((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
   3388      1.1  christos #line 3389 "config/rl78-parse.c"
   3389      1.1  christos     break;
   3390      1.1  christos 
   3391      1.1  christos   case 189: /* statement: MOVW opt_es '!' EXPR ',' AX  */
   3392      1.1  christos #line 810 "./config/rl78-parse.y"
   3393      1.1  christos           { B1 (0xbf); O2 ((yyvsp[-2].exp)); WA((yyvsp[-2].exp)); rl78_linkrelax_addr16 (); }
   3394      1.1  christos #line 3395 "config/rl78-parse.c"
   3395      1.1  christos     break;
   3396      1.1  christos 
   3397      1.1  christos   case 190: /* statement: MOVW AX ',' opt_es '[' DE ']'  */
   3398      1.1  christos #line 813 "./config/rl78-parse.y"
   3399      1.1  christos           { B1 (0xa9); }
   3400      1.1  christos #line 3401 "config/rl78-parse.c"
   3401      1.1  christos     break;
   3402      1.1  christos 
   3403      1.1  christos   case 191: /* statement: MOVW opt_es '[' DE ']' ',' AX  */
   3404      1.1  christos #line 816 "./config/rl78-parse.y"
   3405      1.1  christos           { B1 (0xb9); }
   3406      1.1  christos #line 3407 "config/rl78-parse.c"
   3407      1.1  christos     break;
   3408      1.1  christos 
   3409      1.1  christos   case 192: /* statement: MOVW AX ',' opt_es '[' DE '+' EXPR ']'  */
   3410      1.1  christos #line 819 "./config/rl78-parse.y"
   3411      1.1  christos           { B1 (0xaa); O1 ((yyvsp[-1].exp)); }
   3412      1.1  christos #line 3413 "config/rl78-parse.c"
   3413      1.1  christos     break;
   3414      1.1  christos 
   3415      1.1  christos   case 193: /* statement: MOVW opt_es '[' DE '+' EXPR ']' ',' AX  */
   3416      1.1  christos #line 822 "./config/rl78-parse.y"
   3417      1.1  christos           { B1 (0xba); O1 ((yyvsp[-3].exp)); }
   3418      1.1  christos #line 3419 "config/rl78-parse.c"
   3419      1.1  christos     break;
   3420      1.1  christos 
   3421      1.1  christos   case 194: /* statement: MOVW AX ',' opt_es '[' HL ']'  */
   3422      1.1  christos #line 825 "./config/rl78-parse.y"
   3423      1.1  christos           { B1 (0xab); }
   3424      1.1  christos #line 3425 "config/rl78-parse.c"
   3425      1.1  christos     break;
   3426      1.1  christos 
   3427      1.1  christos   case 195: /* statement: MOVW opt_es '[' HL ']' ',' AX  */
   3428      1.1  christos #line 828 "./config/rl78-parse.y"
   3429      1.1  christos           { B1 (0xbb); }
   3430      1.1  christos #line 3431 "config/rl78-parse.c"
   3431      1.1  christos     break;
   3432      1.1  christos 
   3433      1.1  christos   case 196: /* statement: MOVW AX ',' opt_es '[' HL '+' EXPR ']'  */
   3434      1.1  christos #line 831 "./config/rl78-parse.y"
   3435      1.1  christos           { B1 (0xac); O1 ((yyvsp[-1].exp)); }
   3436      1.1  christos #line 3437 "config/rl78-parse.c"
   3437      1.1  christos     break;
   3438      1.1  christos 
   3439      1.1  christos   case 197: /* statement: MOVW opt_es '[' HL '+' EXPR ']' ',' AX  */
   3440      1.1  christos #line 834 "./config/rl78-parse.y"
   3441      1.1  christos           { B1 (0xbc); O1 ((yyvsp[-3].exp)); }
   3442      1.1  christos #line 3443 "config/rl78-parse.c"
   3443      1.1  christos     break;
   3444      1.1  christos 
   3445      1.1  christos   case 198: /* statement: MOVW AX ',' opt_es EXPR '[' B ']'  */
   3446      1.1  christos #line 837 "./config/rl78-parse.y"
   3447      1.1  christos           { B1 (0x59); O2 ((yyvsp[-3].exp)); }
   3448      1.1  christos #line 3449 "config/rl78-parse.c"
   3449      1.1  christos     break;
   3450      1.1  christos 
   3451      1.1  christos   case 199: /* statement: MOVW opt_es EXPR '[' B ']' ',' AX  */
   3452      1.1  christos #line 840 "./config/rl78-parse.y"
   3453      1.1  christos           { B1 (0x58); O2 ((yyvsp[-5].exp)); }
   3454      1.1  christos #line 3455 "config/rl78-parse.c"
   3455      1.1  christos     break;
   3456      1.1  christos 
   3457      1.1  christos   case 200: /* statement: MOVW AX ',' opt_es EXPR '[' C ']'  */
   3458      1.1  christos #line 843 "./config/rl78-parse.y"
   3459      1.1  christos           { B1 (0x69); O2 ((yyvsp[-3].exp)); }
   3460      1.1  christos #line 3461 "config/rl78-parse.c"
   3461      1.1  christos     break;
   3462      1.1  christos 
   3463      1.1  christos   case 201: /* statement: MOVW opt_es EXPR '[' C ']' ',' AX  */
   3464      1.1  christos #line 846 "./config/rl78-parse.y"
   3465      1.1  christos           { B1 (0x68); O2 ((yyvsp[-5].exp)); }
   3466      1.1  christos #line 3467 "config/rl78-parse.c"
   3467      1.1  christos     break;
   3468      1.1  christos 
   3469      1.1  christos   case 202: /* statement: MOVW AX ',' opt_es EXPR '[' BC ']'  */
   3470      1.1  christos #line 849 "./config/rl78-parse.y"
   3471      1.1  christos           { B1 (0x79); O2 ((yyvsp[-3].exp)); }
   3472      1.1  christos #line 3473 "config/rl78-parse.c"
   3473      1.1  christos     break;
   3474      1.1  christos 
   3475      1.1  christos   case 203: /* statement: MOVW AX ',' opt_es '[' BC ']'  */
   3476      1.1  christos #line 852 "./config/rl78-parse.y"
   3477      1.1  christos           { B3 (0x79, 0, 0); }
   3478      1.1  christos #line 3479 "config/rl78-parse.c"
   3479      1.1  christos     break;
   3480      1.1  christos 
   3481      1.1  christos   case 204: /* statement: MOVW opt_es EXPR '[' BC ']' ',' AX  */
   3482      1.1  christos #line 855 "./config/rl78-parse.y"
   3483      1.1  christos           { B1 (0x78); O2 ((yyvsp[-5].exp)); }
   3484      1.1  christos #line 3485 "config/rl78-parse.c"
   3485      1.1  christos     break;
   3486      1.1  christos 
   3487      1.1  christos   case 205: /* statement: MOVW opt_es '[' BC ']' ',' AX  */
   3488      1.1  christos #line 858 "./config/rl78-parse.y"
   3489      1.1  christos           { B3 (0x78, 0, 0); }
   3490      1.1  christos #line 3491 "config/rl78-parse.c"
   3491      1.1  christos     break;
   3492      1.1  christos 
   3493      1.1  christos   case 206: /* $@34: %empty  */
   3494      1.1  christos #line 860 "./config/rl78-parse.y"
   3495      1.1  christos                                                  {NOT_ES}
   3496      1.1  christos #line 3497 "config/rl78-parse.c"
   3497      1.1  christos     break;
   3498      1.1  christos 
   3499      1.1  christos   case 207: /* statement: MOVW AX ',' opt_es '[' SP '+' EXPR ']' $@34  */
   3500      1.1  christos #line 861 "./config/rl78-parse.y"
   3501      1.1  christos           { B1 (0xa8); O1 ((yyvsp[-2].exp));  WA((yyvsp[-2].exp));}
   3502      1.1  christos #line 3503 "config/rl78-parse.c"
   3503      1.1  christos     break;
   3504      1.1  christos 
   3505      1.1  christos   case 208: /* $@35: %empty  */
   3506      1.1  christos #line 863 "./config/rl78-parse.y"
   3507      1.1  christos                                         {NOT_ES}
   3508      1.1  christos #line 3509 "config/rl78-parse.c"
   3509      1.1  christos     break;
   3510      1.1  christos 
   3511      1.1  christos   case 209: /* statement: MOVW AX ',' opt_es '[' SP ']' $@35  */
   3512      1.1  christos #line 864 "./config/rl78-parse.y"
   3513      1.1  christos           { B2 (0xa8, 0); }
   3514      1.1  christos #line 3515 "config/rl78-parse.c"
   3515      1.1  christos     break;
   3516      1.1  christos 
   3517      1.1  christos   case 210: /* $@36: %empty  */
   3518      1.1  christos #line 866 "./config/rl78-parse.y"
   3519      1.1  christos                                                  {NOT_ES}
   3520      1.1  christos #line 3521 "config/rl78-parse.c"
   3521      1.1  christos     break;
   3522      1.1  christos 
   3523      1.1  christos   case 211: /* statement: MOVW opt_es '[' SP '+' EXPR ']' ',' AX $@36  */
   3524      1.1  christos #line 867 "./config/rl78-parse.y"
   3525      1.1  christos           { B1 (0xb8); O1 ((yyvsp[-4].exp)); WA((yyvsp[-4].exp)); }
   3526      1.1  christos #line 3527 "config/rl78-parse.c"
   3527      1.1  christos     break;
   3528      1.1  christos 
   3529      1.1  christos   case 212: /* $@37: %empty  */
   3530      1.1  christos #line 869 "./config/rl78-parse.y"
   3531      1.1  christos                                         {NOT_ES}
   3532      1.1  christos #line 3533 "config/rl78-parse.c"
   3533      1.1  christos     break;
   3534      1.1  christos 
   3535      1.1  christos   case 213: /* statement: MOVW opt_es '[' SP ']' ',' AX $@37  */
   3536      1.1  christos #line 870 "./config/rl78-parse.y"
   3537      1.1  christos           { B2 (0xb8, 0); }
   3538      1.1  christos #line 3539 "config/rl78-parse.c"
   3539      1.1  christos     break;
   3540      1.1  christos 
   3541      1.1  christos   case 214: /* $@38: %empty  */
   3542      1.1  christos #line 872 "./config/rl78-parse.y"
   3543      1.1  christos                                 {SA((yyvsp[0].exp))}
   3544      1.1  christos #line 3545 "config/rl78-parse.c"
   3545      1.1  christos     break;
   3546      1.1  christos 
   3547      1.1  christos   case 215: /* statement: MOVW regw_na ',' EXPR $@38  */
   3548      1.1  christos #line 873 "./config/rl78-parse.y"
   3549      1.1  christos           { B1 (0xca); F ((yyvsp[-3].regno), 2, 2); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); WA((yyvsp[-1].exp)); }
   3550      1.1  christos #line 3551 "config/rl78-parse.c"
   3551      1.1  christos     break;
   3552      1.1  christos 
   3553      1.1  christos   case 216: /* statement: MOVW regw_na ',' opt_es '!' EXPR  */
   3554      1.1  christos #line 876 "./config/rl78-parse.y"
   3555      1.1  christos           { B1 (0xcb); F ((yyvsp[-4].regno), 2, 2); O2 ((yyvsp[0].exp)); WA((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
   3556      1.1  christos #line 3557 "config/rl78-parse.c"
   3557      1.1  christos     break;
   3558      1.1  christos 
   3559      1.1  christos   case 217: /* statement: MOVW SP ',' '#' EXPR  */
   3560      1.1  christos #line 879 "./config/rl78-parse.y"
   3561      1.1  christos           { B2 (0xcb, 0xf8); O2 ((yyvsp[0].exp)); }
   3562      1.1  christos #line 3563 "config/rl78-parse.c"
   3563      1.1  christos     break;
   3564      1.1  christos 
   3565      1.1  christos   case 218: /* statement: MOVW SP ',' AX  */
   3566      1.1  christos #line 882 "./config/rl78-parse.y"
   3567      1.1  christos           { B2 (0xbe, 0xf8); }
   3568      1.1  christos #line 3569 "config/rl78-parse.c"
   3569      1.1  christos     break;
   3570      1.1  christos 
   3571      1.1  christos   case 219: /* statement: MOVW AX ',' SP  */
   3572      1.1  christos #line 885 "./config/rl78-parse.y"
   3573      1.1  christos           { B2 (0xae, 0xf8); }
   3574      1.1  christos #line 3575 "config/rl78-parse.c"
   3575      1.1  christos     break;
   3576      1.1  christos 
   3577      1.1  christos   case 220: /* statement: MOVW regw_na ',' SP  */
   3578      1.1  christos #line 888 "./config/rl78-parse.y"
   3579      1.1  christos           { B3 (0xcb, 0xf8, 0xff); F ((yyvsp[-2].regno), 2, 2); }
   3580      1.1  christos #line 3581 "config/rl78-parse.c"
   3581      1.1  christos     break;
   3582      1.1  christos 
   3583      1.1  christos   case 221: /* statement: NOP  */
   3584      1.1  christos #line 893 "./config/rl78-parse.y"
   3585      1.1  christos           { B1 (0x00); }
   3586      1.1  christos #line 3587 "config/rl78-parse.c"
   3587      1.1  christos     break;
   3588      1.1  christos 
   3589      1.1  christos   case 222: /* statement: NOT1 CY  */
   3590      1.1  christos #line 898 "./config/rl78-parse.y"
   3591      1.1  christos           { B2 (0x71, 0xc0); }
   3592      1.1  christos #line 3593 "config/rl78-parse.c"
   3593      1.1  christos     break;
   3594      1.1  christos 
   3595      1.1  christos   case 223: /* statement: POP regw  */
   3596      1.1  christos #line 903 "./config/rl78-parse.y"
   3597      1.1  christos           { B1 (0xc0); F ((yyvsp[0].regno), 5, 2); }
   3598      1.1  christos #line 3599 "config/rl78-parse.c"
   3599      1.1  christos     break;
   3600      1.1  christos 
   3601      1.1  christos   case 224: /* statement: POP PSW  */
   3602      1.1  christos #line 906 "./config/rl78-parse.y"
   3603      1.1  christos           { B2 (0x61, 0xcd); }
   3604      1.1  christos #line 3605 "config/rl78-parse.c"
   3605      1.1  christos     break;
   3606      1.1  christos 
   3607      1.1  christos   case 225: /* statement: PUSH regw  */
   3608      1.1  christos #line 909 "./config/rl78-parse.y"
   3609      1.1  christos           { B1 (0xc1); F ((yyvsp[0].regno), 5, 2); }
   3610      1.1  christos #line 3611 "config/rl78-parse.c"
   3611      1.1  christos     break;
   3612      1.1  christos 
   3613      1.1  christos   case 226: /* statement: PUSH PSW  */
   3614      1.1  christos #line 912 "./config/rl78-parse.y"
   3615      1.1  christos           { B2 (0x61, 0xdd); }
   3616      1.1  christos #line 3617 "config/rl78-parse.c"
   3617      1.1  christos     break;
   3618      1.1  christos 
   3619      1.1  christos   case 227: /* statement: RET  */
   3620      1.1  christos #line 917 "./config/rl78-parse.y"
   3621      1.1  christos           { B1 (0xd7); }
   3622      1.1  christos #line 3623 "config/rl78-parse.c"
   3623      1.1  christos     break;
   3624      1.1  christos 
   3625      1.1  christos   case 228: /* statement: RETI  */
   3626      1.1  christos #line 920 "./config/rl78-parse.y"
   3627      1.1  christos           { B2 (0x61, 0xfc); }
   3628      1.1  christos #line 3629 "config/rl78-parse.c"
   3629      1.1  christos     break;
   3630      1.1  christos 
   3631      1.1  christos   case 229: /* statement: RETB  */
   3632      1.1  christos #line 923 "./config/rl78-parse.y"
   3633      1.1  christos           { B2 (0x61, 0xec); }
   3634      1.1  christos #line 3635 "config/rl78-parse.c"
   3635      1.1  christos     break;
   3636      1.1  christos 
   3637      1.1  christos   case 230: /* statement: ROL A ',' EXPR  */
   3638      1.1  christos #line 928 "./config/rl78-parse.y"
   3639      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 1))
   3640      1.1  christos 	      { B2 (0x61, 0xeb); }
   3641      1.1  christos 	  }
   3642      1.1  christos #line 3643 "config/rl78-parse.c"
   3643      1.1  christos     break;
   3644      1.1  christos 
   3645      1.1  christos   case 231: /* statement: ROLC A ',' EXPR  */
   3646      1.1  christos #line 933 "./config/rl78-parse.y"
   3647      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 1))
   3648      1.1  christos 	      { B2 (0x61, 0xdc); }
   3649      1.1  christos 	  }
   3650      1.1  christos #line 3651 "config/rl78-parse.c"
   3651      1.1  christos     break;
   3652      1.1  christos 
   3653      1.1  christos   case 232: /* statement: ROLWC AX ',' EXPR  */
   3654      1.1  christos #line 938 "./config/rl78-parse.y"
   3655      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 1))
   3656      1.1  christos 	      { B2 (0x61, 0xee); }
   3657      1.1  christos 	  }
   3658      1.1  christos #line 3659 "config/rl78-parse.c"
   3659      1.1  christos     break;
   3660      1.1  christos 
   3661      1.1  christos   case 233: /* statement: ROLWC BC ',' EXPR  */
   3662      1.1  christos #line 943 "./config/rl78-parse.y"
   3663      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 1))
   3664      1.1  christos 	      { B2 (0x61, 0xfe); }
   3665      1.1  christos 	  }
   3666      1.1  christos #line 3667 "config/rl78-parse.c"
   3667      1.1  christos     break;
   3668      1.1  christos 
   3669      1.1  christos   case 234: /* statement: ROR A ',' EXPR  */
   3670      1.1  christos #line 948 "./config/rl78-parse.y"
   3671      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 1))
   3672      1.1  christos 	      { B2 (0x61, 0xdb); }
   3673      1.1  christos 	  }
   3674      1.1  christos #line 3675 "config/rl78-parse.c"
   3675      1.1  christos     break;
   3676      1.1  christos 
   3677      1.1  christos   case 235: /* statement: RORC A ',' EXPR  */
   3678      1.1  christos #line 953 "./config/rl78-parse.y"
   3679      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 1))
   3680      1.1  christos 	      { B2 (0x61, 0xfb);}
   3681      1.1  christos 	  }
   3682      1.1  christos #line 3683 "config/rl78-parse.c"
   3683      1.1  christos     break;
   3684      1.1  christos 
   3685      1.1  christos   case 236: /* statement: SAR A ',' EXPR  */
   3686      1.1  christos #line 960 "./config/rl78-parse.y"
   3687      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 7))
   3688      1.1  christos 	      { B2 (0x31, 0x0b); FE ((yyvsp[0].exp), 9, 3); }
   3689      1.1  christos 	  }
   3690      1.1  christos #line 3691 "config/rl78-parse.c"
   3691      1.1  christos     break;
   3692      1.1  christos 
   3693      1.1  christos   case 237: /* statement: SARW AX ',' EXPR  */
   3694      1.1  christos #line 965 "./config/rl78-parse.y"
   3695      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 15))
   3696      1.1  christos 	      { B2 (0x31, 0x0f); FE ((yyvsp[0].exp), 8, 4); }
   3697      1.1  christos 	  }
   3698      1.1  christos #line 3699 "config/rl78-parse.c"
   3699      1.1  christos     break;
   3700      1.1  christos 
   3701      1.1  christos   case 238: /* statement: SEL RB0  */
   3702      1.1  christos #line 972 "./config/rl78-parse.y"
   3703      1.1  christos           { B2 (0x61, 0xcf); }
   3704      1.1  christos #line 3705 "config/rl78-parse.c"
   3705      1.1  christos     break;
   3706      1.1  christos 
   3707      1.1  christos   case 239: /* statement: SEL RB1  */
   3708      1.1  christos #line 975 "./config/rl78-parse.y"
   3709      1.1  christos           { B2 (0x61, 0xdf); }
   3710      1.1  christos #line 3711 "config/rl78-parse.c"
   3711      1.1  christos     break;
   3712      1.1  christos 
   3713      1.1  christos   case 240: /* statement: SEL RB2  */
   3714      1.1  christos #line 978 "./config/rl78-parse.y"
   3715      1.1  christos           { B2 (0x61, 0xef); }
   3716      1.1  christos #line 3717 "config/rl78-parse.c"
   3717      1.1  christos     break;
   3718      1.1  christos 
   3719      1.1  christos   case 241: /* statement: SEL RB3  */
   3720      1.1  christos #line 981 "./config/rl78-parse.y"
   3721      1.1  christos           { B2 (0x61, 0xff); }
   3722      1.1  christos #line 3723 "config/rl78-parse.c"
   3723      1.1  christos     break;
   3724      1.1  christos 
   3725      1.1  christos   case 242: /* statement: SHL A ',' EXPR  */
   3726      1.1  christos #line 986 "./config/rl78-parse.y"
   3727      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 7))
   3728      1.1  christos 	      { B2 (0x31, 0x09); FE ((yyvsp[0].exp), 9, 3); }
   3729      1.1  christos 	  }
   3730      1.1  christos #line 3731 "config/rl78-parse.c"
   3731      1.1  christos     break;
   3732      1.1  christos 
   3733      1.1  christos   case 243: /* statement: SHL B ',' EXPR  */
   3734      1.1  christos #line 991 "./config/rl78-parse.y"
   3735      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 7))
   3736      1.1  christos 	      { B2 (0x31, 0x08); FE ((yyvsp[0].exp), 9, 3); }
   3737      1.1  christos 	  }
   3738      1.1  christos #line 3739 "config/rl78-parse.c"
   3739      1.1  christos     break;
   3740      1.1  christos 
   3741      1.1  christos   case 244: /* statement: SHL C ',' EXPR  */
   3742      1.1  christos #line 996 "./config/rl78-parse.y"
   3743      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 7))
   3744      1.1  christos 	      { B2 (0x31, 0x07); FE ((yyvsp[0].exp), 9, 3); }
   3745      1.1  christos 	  }
   3746      1.1  christos #line 3747 "config/rl78-parse.c"
   3747      1.1  christos     break;
   3748      1.1  christos 
   3749      1.1  christos   case 245: /* statement: SHLW AX ',' EXPR  */
   3750      1.1  christos #line 1001 "./config/rl78-parse.y"
   3751      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 15))
   3752      1.1  christos 	      { B2 (0x31, 0x0d); FE ((yyvsp[0].exp), 8, 4); }
   3753      1.1  christos 	  }
   3754      1.1  christos #line 3755 "config/rl78-parse.c"
   3755      1.1  christos     break;
   3756      1.1  christos 
   3757      1.1  christos   case 246: /* statement: SHLW BC ',' EXPR  */
   3758      1.1  christos #line 1006 "./config/rl78-parse.y"
   3759      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 15))
   3760      1.1  christos 	      { B2 (0x31, 0x0c); FE ((yyvsp[0].exp), 8, 4); }
   3761      1.1  christos 	  }
   3762      1.1  christos #line 3763 "config/rl78-parse.c"
   3763      1.1  christos     break;
   3764      1.1  christos 
   3765      1.1  christos   case 247: /* statement: SHR A ',' EXPR  */
   3766      1.1  christos #line 1013 "./config/rl78-parse.y"
   3767      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 7))
   3768      1.1  christos 	      { B2 (0x31, 0x0a); FE ((yyvsp[0].exp), 9, 3); }
   3769      1.1  christos 	  }
   3770      1.1  christos #line 3771 "config/rl78-parse.c"
   3771      1.1  christos     break;
   3772      1.1  christos 
   3773      1.1  christos   case 248: /* statement: SHRW AX ',' EXPR  */
   3774      1.1  christos #line 1018 "./config/rl78-parse.y"
   3775      1.1  christos           { if (check_expr_is_const ((yyvsp[0].exp), 1, 15))
   3776      1.1  christos 	      { B2 (0x31, 0x0e); FE ((yyvsp[0].exp), 8, 4); }
   3777      1.1  christos 	  }
   3778      1.1  christos #line 3779 "config/rl78-parse.c"
   3779      1.1  christos     break;
   3780      1.1  christos 
   3781      1.1  christos   case 249: /* statement: SKC  */
   3782      1.1  christos #line 1025 "./config/rl78-parse.y"
   3783      1.1  christos           { B2 (0x61, 0xc8); rl78_relax (RL78_RELAX_BRANCH, 0); }
   3784      1.1  christos #line 3785 "config/rl78-parse.c"
   3785      1.1  christos     break;
   3786      1.1  christos 
   3787      1.1  christos   case 250: /* statement: SKH  */
   3788      1.1  christos #line 1028 "./config/rl78-parse.y"
   3789      1.1  christos           { B2 (0x61, 0xe3); rl78_relax (RL78_RELAX_BRANCH, 0); }
   3790      1.1  christos #line 3791 "config/rl78-parse.c"
   3791      1.1  christos     break;
   3792      1.1  christos 
   3793      1.1  christos   case 251: /* statement: SKNC  */
   3794      1.1  christos #line 1031 "./config/rl78-parse.y"
   3795      1.1  christos           { B2 (0x61, 0xd8); rl78_relax (RL78_RELAX_BRANCH, 0); }
   3796      1.1  christos #line 3797 "config/rl78-parse.c"
   3797      1.1  christos     break;
   3798      1.1  christos 
   3799      1.1  christos   case 252: /* statement: SKNH  */
   3800      1.1  christos #line 1034 "./config/rl78-parse.y"
   3801      1.1  christos           { B2 (0x61, 0xf3); rl78_relax (RL78_RELAX_BRANCH, 0); }
   3802      1.1  christos #line 3803 "config/rl78-parse.c"
   3803      1.1  christos     break;
   3804      1.1  christos 
   3805      1.1  christos   case 253: /* statement: SKNZ  */
   3806      1.1  christos #line 1037 "./config/rl78-parse.y"
   3807      1.1  christos           { B2 (0x61, 0xf8); rl78_relax (RL78_RELAX_BRANCH, 0); }
   3808      1.1  christos #line 3809 "config/rl78-parse.c"
   3809      1.1  christos     break;
   3810      1.1  christos 
   3811      1.1  christos   case 254: /* statement: SKZ  */
   3812      1.1  christos #line 1040 "./config/rl78-parse.y"
   3813      1.1  christos           { B2 (0x61, 0xe8); rl78_relax (RL78_RELAX_BRANCH, 0); }
   3814      1.1  christos #line 3815 "config/rl78-parse.c"
   3815      1.1  christos     break;
   3816      1.1  christos 
   3817      1.1  christos   case 255: /* statement: STOP  */
   3818      1.1  christos #line 1045 "./config/rl78-parse.y"
   3819      1.1  christos           { B2 (0x61, 0xfd); }
   3820      1.1  christos #line 3821 "config/rl78-parse.c"
   3821      1.1  christos     break;
   3822      1.1  christos 
   3823      1.1  christos   case 256: /* statement: XCH A ',' regb_na  */
   3824      1.1  christos #line 1050 "./config/rl78-parse.y"
   3825      1.1  christos           { if ((yyvsp[0].regno) == 0) /* X */
   3826      1.1  christos 	      { B1 (0x08); }
   3827      1.1  christos 	    else
   3828      1.1  christos 	      { B2 (0x61, 0x88); F ((yyvsp[0].regno), 13, 3); }
   3829      1.1  christos 	  }
   3830      1.1  christos #line 3831 "config/rl78-parse.c"
   3831      1.1  christos     break;
   3832      1.1  christos 
   3833      1.1  christos   case 257: /* statement: XCH A ',' opt_es '!' EXPR  */
   3834      1.1  christos #line 1057 "./config/rl78-parse.y"
   3835      1.1  christos           { B2 (0x61, 0xaa); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
   3836      1.1  christos #line 3837 "config/rl78-parse.c"
   3837      1.1  christos     break;
   3838      1.1  christos 
   3839      1.1  christos   case 258: /* statement: XCH A ',' opt_es '[' DE ']'  */
   3840      1.1  christos #line 1060 "./config/rl78-parse.y"
   3841      1.1  christos           { B2 (0x61, 0xae); }
   3842      1.1  christos #line 3843 "config/rl78-parse.c"
   3843      1.1  christos     break;
   3844      1.1  christos 
   3845      1.1  christos   case 259: /* statement: XCH A ',' opt_es '[' DE '+' EXPR ']'  */
   3846      1.1  christos #line 1063 "./config/rl78-parse.y"
   3847      1.1  christos           { B2 (0x61, 0xaf); O1 ((yyvsp[-1].exp)); }
   3848      1.1  christos #line 3849 "config/rl78-parse.c"
   3849      1.1  christos     break;
   3850      1.1  christos 
   3851      1.1  christos   case 260: /* statement: XCH A ',' opt_es '[' HL ']'  */
   3852      1.1  christos #line 1066 "./config/rl78-parse.y"
   3853      1.1  christos           { B2 (0x61, 0xac); }
   3854      1.1  christos #line 3855 "config/rl78-parse.c"
   3855      1.1  christos     break;
   3856      1.1  christos 
   3857      1.1  christos   case 261: /* statement: XCH A ',' opt_es '[' HL '+' EXPR ']'  */
   3858      1.1  christos #line 1069 "./config/rl78-parse.y"
   3859      1.1  christos           { B2 (0x61, 0xad); O1 ((yyvsp[-1].exp)); }
   3860      1.1  christos #line 3861 "config/rl78-parse.c"
   3861      1.1  christos     break;
   3862      1.1  christos 
   3863      1.1  christos   case 262: /* statement: XCH A ',' opt_es '[' HL '+' B ']'  */
   3864      1.1  christos #line 1072 "./config/rl78-parse.y"
   3865      1.1  christos           { B2 (0x61, 0xb9); }
   3866      1.1  christos #line 3867 "config/rl78-parse.c"
   3867      1.1  christos     break;
   3868      1.1  christos 
   3869      1.1  christos   case 263: /* statement: XCH A ',' opt_es '[' HL '+' C ']'  */
   3870      1.1  christos #line 1075 "./config/rl78-parse.y"
   3871      1.1  christos           { B2 (0x61, 0xa9); }
   3872      1.1  christos #line 3873 "config/rl78-parse.c"
   3873      1.1  christos     break;
   3874      1.1  christos 
   3875      1.1  christos   case 264: /* statement: XCH A ',' EXPR  */
   3876      1.1  christos #line 1078 "./config/rl78-parse.y"
   3877      1.1  christos           { if (expr_is_sfr ((yyvsp[0].exp)))
   3878      1.1  christos 	      { B2 (0x61, 0xab); O1 ((yyvsp[0].exp)); }
   3879      1.1  christos 	    else if (expr_is_saddr ((yyvsp[0].exp)))
   3880      1.1  christos 	      { B2 (0x61, 0xa8); SET_SA ((yyvsp[0].exp)); O1 ((yyvsp[0].exp)); }
   3881      1.1  christos 	    else
   3882      1.1  christos 	      NOT_SFR_OR_SADDR;
   3883      1.1  christos 	  }
   3884      1.1  christos #line 3885 "config/rl78-parse.c"
   3885      1.1  christos     break;
   3886      1.1  christos 
   3887      1.1  christos   case 265: /* statement: XCHW AX ',' regw_na  */
   3888      1.1  christos #line 1089 "./config/rl78-parse.y"
   3889      1.1  christos           { B1 (0x31); F ((yyvsp[0].regno), 5, 2); }
   3890      1.1  christos #line 3891 "config/rl78-parse.c"
   3891      1.1  christos     break;
   3892      1.1  christos 
   3893      1.1  christos   case 267: /* opt_es: ES ':'  */
   3894      1.1  christos #line 1099 "./config/rl78-parse.y"
   3895      1.1  christos           { rl78_prefix (0x11); }
   3896      1.1  christos #line 3897 "config/rl78-parse.c"
   3897      1.1  christos     break;
   3898      1.1  christos 
   3899      1.1  christos   case 268: /* regb: X  */
   3900      1.1  christos #line 1102 "./config/rl78-parse.y"
   3901      1.1  christos             { (yyval.regno) = 0; }
   3902      1.1  christos #line 3903 "config/rl78-parse.c"
   3903      1.1  christos     break;
   3904      1.1  christos 
   3905      1.1  christos   case 269: /* regb: A  */
   3906      1.1  christos #line 1103 "./config/rl78-parse.y"
   3907      1.1  christos             { (yyval.regno) = 1; }
   3908      1.1  christos #line 3909 "config/rl78-parse.c"
   3909      1.1  christos     break;
   3910      1.1  christos 
   3911      1.1  christos   case 270: /* regb: C  */
   3912      1.1  christos #line 1104 "./config/rl78-parse.y"
   3913      1.1  christos             { (yyval.regno) = 2; }
   3914      1.1  christos #line 3915 "config/rl78-parse.c"
   3915      1.1  christos     break;
   3916      1.1  christos 
   3917      1.1  christos   case 271: /* regb: B  */
   3918      1.1  christos #line 1105 "./config/rl78-parse.y"
   3919      1.1  christos             { (yyval.regno) = 3; }
   3920      1.1  christos #line 3921 "config/rl78-parse.c"
   3921      1.1  christos     break;
   3922      1.1  christos 
   3923      1.1  christos   case 272: /* regb: E  */
   3924      1.1  christos #line 1106 "./config/rl78-parse.y"
   3925      1.1  christos             { (yyval.regno) = 4; }
   3926      1.1  christos #line 3927 "config/rl78-parse.c"
   3927      1.1  christos     break;
   3928      1.1  christos 
   3929      1.1  christos   case 273: /* regb: D  */
   3930      1.1  christos #line 1107 "./config/rl78-parse.y"
   3931      1.1  christos             { (yyval.regno) = 5; }
   3932      1.1  christos #line 3933 "config/rl78-parse.c"
   3933      1.1  christos     break;
   3934      1.1  christos 
   3935      1.1  christos   case 274: /* regb: L  */
   3936      1.1  christos #line 1108 "./config/rl78-parse.y"
   3937      1.1  christos             { (yyval.regno) = 6; }
   3938      1.1  christos #line 3939 "config/rl78-parse.c"
   3939      1.1  christos     break;
   3940      1.1  christos 
   3941      1.1  christos   case 275: /* regb: H  */
   3942      1.1  christos #line 1109 "./config/rl78-parse.y"
   3943      1.1  christos             { (yyval.regno) = 7; }
   3944      1.1  christos #line 3945 "config/rl78-parse.c"
   3945      1.1  christos     break;
   3946      1.1  christos 
   3947      1.1  christos   case 276: /* regb_na: X  */
   3948      1.1  christos #line 1112 "./config/rl78-parse.y"
   3949      1.1  christos             { (yyval.regno) = 0; }
   3950      1.1  christos #line 3951 "config/rl78-parse.c"
   3951      1.1  christos     break;
   3952      1.1  christos 
   3953      1.1  christos   case 277: /* regb_na: C  */
   3954      1.1  christos #line 1113 "./config/rl78-parse.y"
   3955      1.1  christos             { (yyval.regno) = 2; }
   3956      1.1  christos #line 3957 "config/rl78-parse.c"
   3957      1.1  christos     break;
   3958      1.1  christos 
   3959      1.1  christos   case 278: /* regb_na: B  */
   3960      1.1  christos #line 1114 "./config/rl78-parse.y"
   3961      1.1  christos             { (yyval.regno) = 3; }
   3962      1.1  christos #line 3963 "config/rl78-parse.c"
   3963      1.1  christos     break;
   3964      1.1  christos 
   3965      1.1  christos   case 279: /* regb_na: E  */
   3966      1.1  christos #line 1115 "./config/rl78-parse.y"
   3967      1.1  christos             { (yyval.regno) = 4; }
   3968      1.1  christos #line 3969 "config/rl78-parse.c"
   3969      1.1  christos     break;
   3970      1.1  christos 
   3971      1.1  christos   case 280: /* regb_na: D  */
   3972      1.1  christos #line 1116 "./config/rl78-parse.y"
   3973      1.1  christos             { (yyval.regno) = 5; }
   3974      1.1  christos #line 3975 "config/rl78-parse.c"
   3975      1.1  christos     break;
   3976      1.1  christos 
   3977      1.1  christos   case 281: /* regb_na: L  */
   3978      1.1  christos #line 1117 "./config/rl78-parse.y"
   3979      1.1  christos             { (yyval.regno) = 6; }
   3980      1.1  christos #line 3981 "config/rl78-parse.c"
   3981      1.1  christos     break;
   3982      1.1  christos 
   3983      1.1  christos   case 282: /* regb_na: H  */
   3984      1.1  christos #line 1118 "./config/rl78-parse.y"
   3985      1.1  christos             { (yyval.regno) = 7; }
   3986      1.1  christos #line 3987 "config/rl78-parse.c"
   3987      1.1  christos     break;
   3988      1.1  christos 
   3989      1.1  christos   case 283: /* regw: AX  */
   3990      1.1  christos #line 1121 "./config/rl78-parse.y"
   3991      1.1  christos              { (yyval.regno) = 0; }
   3992      1.1  christos #line 3993 "config/rl78-parse.c"
   3993      1.1  christos     break;
   3994      1.1  christos 
   3995      1.1  christos   case 284: /* regw: BC  */
   3996      1.1  christos #line 1122 "./config/rl78-parse.y"
   3997      1.1  christos              { (yyval.regno) = 1; }
   3998      1.1  christos #line 3999 "config/rl78-parse.c"
   3999      1.1  christos     break;
   4000      1.1  christos 
   4001      1.1  christos   case 285: /* regw: DE  */
   4002      1.1  christos #line 1123 "./config/rl78-parse.y"
   4003      1.1  christos              { (yyval.regno) = 2; }
   4004      1.1  christos #line 4005 "config/rl78-parse.c"
   4005      1.1  christos     break;
   4006      1.1  christos 
   4007      1.1  christos   case 286: /* regw: HL  */
   4008      1.1  christos #line 1124 "./config/rl78-parse.y"
   4009      1.1  christos              { (yyval.regno) = 3; }
   4010      1.1  christos #line 4011 "config/rl78-parse.c"
   4011      1.1  christos     break;
   4012      1.1  christos 
   4013      1.1  christos   case 287: /* regw_na: BC  */
   4014      1.1  christos #line 1127 "./config/rl78-parse.y"
   4015      1.1  christos              { (yyval.regno) = 1; }
   4016      1.1  christos #line 4017 "config/rl78-parse.c"
   4017      1.1  christos     break;
   4018      1.1  christos 
   4019      1.1  christos   case 288: /* regw_na: DE  */
   4020      1.1  christos #line 1128 "./config/rl78-parse.y"
   4021      1.1  christos              { (yyval.regno) = 2; }
   4022      1.1  christos #line 4023 "config/rl78-parse.c"
   4023      1.1  christos     break;
   4024      1.1  christos 
   4025      1.1  christos   case 289: /* regw_na: HL  */
   4026      1.1  christos #line 1129 "./config/rl78-parse.y"
   4027      1.1  christos              { (yyval.regno) = 3; }
   4028      1.1  christos #line 4029 "config/rl78-parse.c"
   4029      1.1  christos     break;
   4030      1.1  christos 
   4031      1.1  christos   case 290: /* sfr: SPL  */
   4032      1.1  christos #line 1132 "./config/rl78-parse.y"
   4033      1.1  christos               { (yyval.regno) = 0xf8; }
   4034      1.1  christos #line 4035 "config/rl78-parse.c"
   4035      1.1  christos     break;
   4036      1.1  christos 
   4037      1.1  christos   case 291: /* sfr: SPH  */
   4038      1.1  christos #line 1133 "./config/rl78-parse.y"
   4039      1.1  christos               { (yyval.regno) = 0xf9; }
   4040      1.1  christos #line 4041 "config/rl78-parse.c"
   4041      1.1  christos     break;
   4042      1.1  christos 
   4043      1.1  christos   case 292: /* sfr: PSW  */
   4044      1.1  christos #line 1134 "./config/rl78-parse.y"
   4045      1.1  christos               { (yyval.regno) = 0xfa; }
   4046      1.1  christos #line 4047 "config/rl78-parse.c"
   4047      1.1  christos     break;
   4048      1.1  christos 
   4049      1.1  christos   case 293: /* sfr: CS  */
   4050      1.1  christos #line 1135 "./config/rl78-parse.y"
   4051      1.1  christos               { (yyval.regno) = 0xfc; }
   4052      1.1  christos #line 4053 "config/rl78-parse.c"
   4053      1.1  christos     break;
   4054      1.1  christos 
   4055      1.1  christos   case 294: /* sfr: ES  */
   4056      1.1  christos #line 1136 "./config/rl78-parse.y"
   4057      1.1  christos               { (yyval.regno) = 0xfd; }
   4058      1.1  christos #line 4059 "config/rl78-parse.c"
   4059      1.1  christos     break;
   4060      1.1  christos 
   4061      1.1  christos   case 295: /* sfr: PMC  */
   4062      1.1  christos #line 1137 "./config/rl78-parse.y"
   4063      1.1  christos               { (yyval.regno) = 0xfe; }
   4064      1.1  christos #line 4065 "config/rl78-parse.c"
   4065      1.1  christos     break;
   4066      1.1  christos 
   4067      1.1  christos   case 296: /* sfr: MEM  */
   4068      1.1  christos #line 1138 "./config/rl78-parse.y"
   4069      1.1  christos               { (yyval.regno) = 0xff; }
   4070      1.1  christos #line 4071 "config/rl78-parse.c"
   4071      1.1  christos     break;
   4072      1.1  christos 
   4073      1.1  christos   case 297: /* addsub: ADD  */
   4074      1.1  christos #line 1144 "./config/rl78-parse.y"
   4075      1.1  christos                { (yyval.regno) = 0x00; }
   4076      1.1  christos #line 4077 "config/rl78-parse.c"
   4077      1.1  christos     break;
   4078      1.1  christos 
   4079      1.1  christos   case 298: /* addsub: ADDC  */
   4080      1.1  christos #line 1145 "./config/rl78-parse.y"
   4081      1.1  christos                { (yyval.regno) = 0x10; }
   4082      1.1  christos #line 4083 "config/rl78-parse.c"
   4083      1.1  christos     break;
   4084      1.1  christos 
   4085      1.1  christos   case 299: /* addsub: SUB  */
   4086      1.1  christos #line 1146 "./config/rl78-parse.y"
   4087      1.1  christos                { (yyval.regno) = 0x20; }
   4088      1.1  christos #line 4089 "config/rl78-parse.c"
   4089      1.1  christos     break;
   4090      1.1  christos 
   4091      1.1  christos   case 300: /* addsub: SUBC  */
   4092      1.1  christos #line 1147 "./config/rl78-parse.y"
   4093      1.1  christos                { (yyval.regno) = 0x30; }
   4094      1.1  christos #line 4095 "config/rl78-parse.c"
   4095      1.1  christos     break;
   4096      1.1  christos 
   4097      1.1  christos   case 301: /* addsub: CMP  */
   4098      1.1  christos #line 1148 "./config/rl78-parse.y"
   4099      1.1  christos                { (yyval.regno) = 0x40; }
   4100      1.1  christos #line 4101 "config/rl78-parse.c"
   4101      1.1  christos     break;
   4102      1.1  christos 
   4103      1.1  christos   case 302: /* addsub: AND_  */
   4104      1.1  christos #line 1149 "./config/rl78-parse.y"
   4105      1.1  christos                { (yyval.regno) = 0x50; }
   4106      1.1  christos #line 4107 "config/rl78-parse.c"
   4107      1.1  christos     break;
   4108      1.1  christos 
   4109      1.1  christos   case 303: /* addsub: OR  */
   4110      1.1  christos #line 1150 "./config/rl78-parse.y"
   4111      1.1  christos                { (yyval.regno) = 0x60; }
   4112      1.1  christos #line 4113 "config/rl78-parse.c"
   4113      1.1  christos     break;
   4114      1.1  christos 
   4115      1.1  christos   case 304: /* addsub: XOR  */
   4116      1.1  christos #line 1151 "./config/rl78-parse.y"
   4117      1.1  christos                { (yyval.regno) = 0x70; }
   4118      1.1  christos #line 4119 "config/rl78-parse.c"
   4119      1.1  christos     break;
   4120      1.1  christos 
   4121      1.1  christos   case 305: /* addsubw: ADDW  */
   4122      1.1  christos #line 1154 "./config/rl78-parse.y"
   4123      1.1  christos                 { (yyval.regno) = 0x00; }
   4124      1.1  christos #line 4125 "config/rl78-parse.c"
   4125      1.1  christos     break;
   4126      1.1  christos 
   4127      1.1  christos   case 306: /* addsubw: SUBW  */
   4128      1.1  christos #line 1155 "./config/rl78-parse.y"
   4129      1.1  christos                 { (yyval.regno) = 0x20; }
   4130      1.1  christos #line 4131 "config/rl78-parse.c"
   4131      1.1  christos     break;
   4132      1.1  christos 
   4133      1.1  christos   case 307: /* addsubw: CMPW  */
   4134      1.1  christos #line 1156 "./config/rl78-parse.y"
   4135      1.1  christos                 { (yyval.regno) = 0x40; }
   4136      1.1  christos #line 4137 "config/rl78-parse.c"
   4137      1.1  christos     break;
   4138      1.1  christos 
   4139      1.1  christos   case 308: /* andor1: AND1  */
   4140      1.1  christos #line 1159 "./config/rl78-parse.y"
   4141      1.1  christos                { (yyval.regno) = 0x05; rl78_bit_insn = 1; }
   4142      1.1  christos #line 4143 "config/rl78-parse.c"
   4143      1.1  christos     break;
   4144      1.1  christos 
   4145      1.1  christos   case 309: /* andor1: OR1  */
   4146      1.1  christos #line 1160 "./config/rl78-parse.y"
   4147      1.1  christos                { (yyval.regno) = 0x06; rl78_bit_insn = 1; }
   4148      1.1  christos #line 4149 "config/rl78-parse.c"
   4149      1.1  christos     break;
   4150      1.1  christos 
   4151      1.1  christos   case 310: /* andor1: XOR1  */
   4152      1.1  christos #line 1161 "./config/rl78-parse.y"
   4153      1.1  christos                { (yyval.regno) = 0x07; rl78_bit_insn = 1; }
   4154      1.1  christos #line 4155 "config/rl78-parse.c"
   4155      1.1  christos     break;
   4156      1.1  christos 
   4157      1.1  christos   case 311: /* bt_bf: BT  */
   4158      1.1  christos #line 1164 "./config/rl78-parse.y"
   4159      1.1  christos              { (yyval.regno) = 0x02;    rl78_bit_insn = 1; rl78_linkrelax_branch (); }
   4160      1.1  christos #line 4161 "config/rl78-parse.c"
   4161      1.1  christos     break;
   4162      1.1  christos 
   4163      1.1  christos   case 312: /* bt_bf: BF  */
   4164      1.1  christos #line 1165 "./config/rl78-parse.y"
   4165      1.1  christos              { (yyval.regno) = 0x04;    rl78_bit_insn = 1; rl78_linkrelax_branch (); }
   4166      1.1  christos #line 4167 "config/rl78-parse.c"
   4167      1.1  christos     break;
   4168      1.1  christos 
   4169      1.1  christos   case 313: /* bt_bf: BTCLR  */
   4170      1.1  christos #line 1166 "./config/rl78-parse.y"
   4171      1.1  christos                 { (yyval.regno) = 0x00; rl78_bit_insn = 1; }
   4172      1.1  christos #line 4173 "config/rl78-parse.c"
   4173      1.1  christos     break;
   4174      1.1  christos 
   4175      1.1  christos   case 314: /* setclr1: SET1  */
   4176      1.1  christos #line 1169 "./config/rl78-parse.y"
   4177      1.1  christos                { (yyval.regno) = 0; rl78_bit_insn = 1; }
   4178      1.1  christos #line 4179 "config/rl78-parse.c"
   4179      1.1  christos     break;
   4180      1.1  christos 
   4181      1.1  christos   case 315: /* setclr1: CLR1  */
   4182      1.1  christos #line 1170 "./config/rl78-parse.y"
   4183      1.1  christos                { (yyval.regno) = 1; rl78_bit_insn = 1; }
   4184      1.1  christos #line 4185 "config/rl78-parse.c"
   4185      1.1  christos     break;
   4186      1.1  christos 
   4187      1.1  christos   case 316: /* oneclrb: ONEB  */
   4188      1.1  christos #line 1173 "./config/rl78-parse.y"
   4189      1.1  christos                { (yyval.regno) = 0x00; }
   4190      1.1  christos #line 4191 "config/rl78-parse.c"
   4191      1.1  christos     break;
   4192      1.1  christos 
   4193      1.1  christos   case 317: /* oneclrb: CLRB  */
   4194      1.1  christos #line 1174 "./config/rl78-parse.y"
   4195      1.1  christos                { (yyval.regno) = 0x10; }
   4196      1.1  christos #line 4197 "config/rl78-parse.c"
   4197      1.1  christos     break;
   4198      1.1  christos 
   4199      1.1  christos   case 318: /* oneclrw: ONEW  */
   4200      1.1  christos #line 1177 "./config/rl78-parse.y"
   4201      1.1  christos                { (yyval.regno) = 0x00; }
   4202      1.1  christos #line 4203 "config/rl78-parse.c"
   4203      1.1  christos     break;
   4204      1.1  christos 
   4205      1.1  christos   case 319: /* oneclrw: CLRW  */
   4206      1.1  christos #line 1178 "./config/rl78-parse.y"
   4207      1.1  christos                { (yyval.regno) = 0x10; }
   4208      1.1  christos #line 4209 "config/rl78-parse.c"
   4209      1.1  christos     break;
   4210      1.1  christos 
   4211      1.1  christos   case 320: /* incdec: INC  */
   4212      1.1  christos #line 1181 "./config/rl78-parse.y"
   4213      1.1  christos               { (yyval.regno) = 0x00; }
   4214      1.1  christos #line 4215 "config/rl78-parse.c"
   4215      1.1  christos     break;
   4216      1.1  christos 
   4217      1.1  christos   case 321: /* incdec: DEC  */
   4218      1.1  christos #line 1182 "./config/rl78-parse.y"
   4219      1.1  christos               { (yyval.regno) = 0x10; }
   4220      1.1  christos #line 4221 "config/rl78-parse.c"
   4221      1.1  christos     break;
   4222      1.1  christos 
   4223      1.1  christos   case 322: /* incdecw: INCW  */
   4224      1.1  christos #line 1185 "./config/rl78-parse.y"
   4225      1.1  christos                { (yyval.regno) = 0x00; }
   4226      1.1  christos #line 4227 "config/rl78-parse.c"
   4227      1.1  christos     break;
   4228      1.1  christos 
   4229      1.1  christos   case 323: /* incdecw: DECW  */
   4230      1.1  christos #line 1186 "./config/rl78-parse.y"
   4231      1.1  christos                { (yyval.regno) = 0x10; }
   4232      1.1  christos #line 4233 "config/rl78-parse.c"
   4233      1.1  christos     break;
   4234      1.1  christos 
   4235      1.1  christos   case 324: /* mov1: MOV1  */
   4236      1.1  christos #line 1189 "./config/rl78-parse.y"
   4237      1.1  christos                { rl78_bit_insn = 1; }
   4238      1.1  christos #line 4239 "config/rl78-parse.c"
   4239      1.1  christos     break;
   4240      1.1  christos 
   4241      1.1  christos 
   4242      1.1  christos #line 4243 "config/rl78-parse.c"
   4243      1.1  christos 
   4244      1.1  christos       default: break;
   4245      1.1  christos     }
   4246      1.1  christos   /* User semantic actions sometimes alter yychar, and that requires
   4247      1.1  christos      that yytoken be updated with the new translation.  We take the
   4248      1.1  christos      approach of translating immediately before every use of yytoken.
   4249      1.1  christos      One alternative is translating here after every semantic action,
   4250      1.1  christos      but that translation would be missed if the semantic action invokes
   4251      1.1  christos      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
   4252      1.1  christos      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
   4253      1.1  christos      incorrect destructor might then be invoked immediately.  In the
   4254      1.1  christos      case of YYERROR or YYBACKUP, subsequent parser actions might lead
   4255      1.1  christos      to an incorrect destructor call or verbose syntax error message
   4256      1.1  christos      before the lookahead is translated.  */
   4257      1.1  christos   YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
   4258      1.1  christos 
   4259      1.1  christos   YYPOPSTACK (yylen);
   4260      1.1  christos   yylen = 0;
   4261      1.1  christos 
   4262      1.1  christos   *++yyvsp = yyval;
   4263      1.1  christos 
   4264      1.1  christos   /* Now 'shift' the result of the reduction.  Determine what state
   4265      1.1  christos      that goes to, based on the state we popped back to and the rule
   4266      1.1  christos      number reduced by.  */
   4267      1.1  christos   {
   4268      1.1  christos     const int yylhs = yyr1[yyn] - YYNTOKENS;
   4269      1.1  christos     const int yyi = yypgoto[yylhs] + *yyssp;
   4270      1.1  christos     yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
   4271      1.1  christos                ? yytable[yyi]
   4272      1.1  christos                : yydefgoto[yylhs]);
   4273      1.1  christos   }
   4274      1.1  christos 
   4275      1.1  christos   goto yynewstate;
   4276      1.1  christos 
   4277      1.1  christos 
   4278      1.1  christos /*--------------------------------------.
   4279      1.1  christos | yyerrlab -- here on detecting error.  |
   4280      1.1  christos `--------------------------------------*/
   4281      1.1  christos yyerrlab:
   4282      1.1  christos   /* Make sure we have latest lookahead translation.  See comments at
   4283      1.1  christos      user semantic actions for why this is necessary.  */
   4284      1.1  christos   yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
   4285      1.1  christos   /* If not already recovering from an error, report this error.  */
   4286      1.1  christos   if (!yyerrstatus)
   4287      1.1  christos     {
   4288      1.1  christos       ++yynerrs;
   4289      1.1  christos       yyerror (YY_("syntax error"));
   4290      1.1  christos     }
   4291      1.1  christos 
   4292      1.1  christos   if (yyerrstatus == 3)
   4293      1.1  christos     {
   4294      1.1  christos       /* If just tried and failed to reuse lookahead token after an
   4295      1.1  christos          error, discard it.  */
   4296      1.1  christos 
   4297      1.1  christos       if (yychar <= YYEOF)
   4298      1.1  christos         {
   4299      1.1  christos           /* Return failure if at end of input.  */
   4300      1.1  christos           if (yychar == YYEOF)
   4301      1.1  christos             YYABORT;
   4302      1.1  christos         }
   4303      1.1  christos       else
   4304      1.1  christos         {
   4305      1.1  christos           yydestruct ("Error: discarding",
   4306      1.1  christos                       yytoken, &yylval);
   4307      1.1  christos           yychar = YYEMPTY;
   4308      1.1  christos         }
   4309      1.1  christos     }
   4310      1.1  christos 
   4311      1.1  christos   /* Else will try to reuse lookahead token after shifting the error
   4312      1.1  christos      token.  */
   4313      1.1  christos   goto yyerrlab1;
   4314      1.1  christos 
   4315      1.1  christos 
   4316      1.1  christos /*---------------------------------------------------.
   4317      1.1  christos | yyerrorlab -- error raised explicitly by YYERROR.  |
   4318      1.1  christos `---------------------------------------------------*/
   4319      1.1  christos yyerrorlab:
   4320      1.1  christos   /* Pacify compilers when the user code never invokes YYERROR and the
   4321      1.1  christos      label yyerrorlab therefore never appears in user code.  */
   4322      1.1  christos   if (0)
   4323      1.1  christos     YYERROR;
   4324      1.1  christos   ++yynerrs;
   4325      1.1  christos 
   4326      1.1  christos   /* Do not reclaim the symbols of the rule whose action triggered
   4327      1.1  christos      this YYERROR.  */
   4328      1.1  christos   YYPOPSTACK (yylen);
   4329      1.1  christos   yylen = 0;
   4330      1.1  christos   YY_STACK_PRINT (yyss, yyssp);
   4331      1.1  christos   yystate = *yyssp;
   4332      1.1  christos   goto yyerrlab1;
   4333      1.1  christos 
   4334      1.1  christos 
   4335      1.1  christos /*-------------------------------------------------------------.
   4336      1.1  christos | yyerrlab1 -- common code for both syntax error and YYERROR.  |
   4337      1.1  christos `-------------------------------------------------------------*/
   4338      1.1  christos yyerrlab1:
   4339      1.1  christos   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
   4340      1.1  christos 
   4341      1.1  christos   /* Pop stack until we find a state that shifts the error token.  */
   4342      1.1  christos   for (;;)
   4343      1.1  christos     {
   4344      1.1  christos       yyn = yypact[yystate];
   4345      1.1  christos       if (!yypact_value_is_default (yyn))
   4346      1.1  christos         {
   4347      1.1  christos           yyn += YYSYMBOL_YYerror;
   4348      1.1  christos           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
   4349      1.1  christos             {
   4350      1.1  christos               yyn = yytable[yyn];
   4351      1.1  christos               if (0 < yyn)
   4352      1.1  christos                 break;
   4353      1.1  christos             }
   4354      1.1  christos         }
   4355      1.1  christos 
   4356      1.1  christos       /* Pop the current state because it cannot handle the error token.  */
   4357      1.1  christos       if (yyssp == yyss)
   4358      1.1  christos         YYABORT;
   4359      1.1  christos 
   4360      1.1  christos 
   4361      1.1  christos       yydestruct ("Error: popping",
   4362      1.1  christos                   YY_ACCESSING_SYMBOL (yystate), yyvsp);
   4363      1.1  christos       YYPOPSTACK (1);
   4364      1.1  christos       yystate = *yyssp;
   4365      1.1  christos       YY_STACK_PRINT (yyss, yyssp);
   4366      1.1  christos     }
   4367      1.1  christos 
   4368      1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   4369      1.1  christos   *++yyvsp = yylval;
   4370      1.1  christos   YY_IGNORE_MAYBE_UNINITIALIZED_END
   4371      1.1  christos 
   4372      1.1  christos 
   4373      1.1  christos   /* Shift the error token.  */
   4374      1.1  christos   YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
   4375      1.1  christos 
   4376      1.1  christos   yystate = yyn;
   4377      1.1  christos   goto yynewstate;
   4378      1.1  christos 
   4379      1.1  christos 
   4380      1.1  christos /*-------------------------------------.
   4381      1.1  christos | yyacceptlab -- YYACCEPT comes here.  |
   4382      1.1  christos `-------------------------------------*/
   4383      1.1  christos yyacceptlab:
   4384      1.1  christos   yyresult = 0;
   4385      1.1  christos   goto yyreturnlab;
   4386      1.1  christos 
   4387      1.1  christos 
   4388      1.1  christos /*-----------------------------------.
   4389      1.1  christos | yyabortlab -- YYABORT comes here.  |
   4390      1.1  christos `-----------------------------------*/
   4391      1.1  christos yyabortlab:
   4392      1.1  christos   yyresult = 1;
   4393      1.1  christos   goto yyreturnlab;
   4394      1.1  christos 
   4395      1.1  christos 
   4396      1.1  christos /*-----------------------------------------------------------.
   4397      1.1  christos | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
   4398      1.1  christos `-----------------------------------------------------------*/
   4399      1.1  christos yyexhaustedlab:
   4400      1.1  christos   yyerror (YY_("memory exhausted"));
   4401      1.1  christos   yyresult = 2;
   4402      1.1  christos   goto yyreturnlab;
   4403      1.1  christos 
   4404      1.1  christos 
   4405      1.1  christos /*----------------------------------------------------------.
   4406      1.1  christos | yyreturnlab -- parsing is finished, clean up and return.  |
   4407      1.1  christos `----------------------------------------------------------*/
   4408      1.1  christos yyreturnlab:
   4409      1.1  christos   if (yychar != YYEMPTY)
   4410      1.1  christos     {
   4411      1.1  christos       /* Make sure we have latest lookahead translation.  See comments at
   4412      1.1  christos          user semantic actions for why this is necessary.  */
   4413      1.1  christos       yytoken = YYTRANSLATE (yychar);
   4414      1.1  christos       yydestruct ("Cleanup: discarding lookahead",
   4415      1.1  christos                   yytoken, &yylval);
   4416      1.1  christos     }
   4417      1.1  christos   /* Do not reclaim the symbols of the rule whose action triggered
   4418      1.1  christos      this YYABORT or YYACCEPT.  */
   4419      1.1  christos   YYPOPSTACK (yylen);
   4420      1.1  christos   YY_STACK_PRINT (yyss, yyssp);
   4421      1.1  christos   while (yyssp != yyss)
   4422      1.1  christos     {
   4423      1.1  christos       yydestruct ("Cleanup: popping",
   4424      1.1  christos                   YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
   4425      1.1  christos       YYPOPSTACK (1);
   4426      1.1  christos     }
   4427      1.1  christos #ifndef yyoverflow
   4428      1.1  christos   if (yyss != yyssa)
   4429      1.1  christos     YYSTACK_FREE (yyss);
   4430      1.1  christos #endif
   4431      1.1  christos 
   4432      1.1  christos   return yyresult;
   4433      1.1  christos }
   4434      1.1  christos 
   4435      1.1  christos #line 1192 "./config/rl78-parse.y"
   4436      1.1  christos 
   4437      1.1  christos /* ====================================================================== */
   4438      1.1  christos 
   4439      1.1  christos static struct
   4440      1.1  christos {
   4441      1.1  christos   const char * string;
   4442      1.1  christos   int          token;
   4443      1.1  christos   int          val;
   4444      1.1  christos }
   4445      1.1  christos token_table[] =
   4446      1.1  christos {
   4447      1.1  christos   { "r0", X, 0 },
   4448      1.1  christos   { "r1", A, 1 },
   4449      1.1  christos   { "r2", C, 2 },
   4450      1.1  christos   { "r3", B, 3 },
   4451      1.1  christos   { "r4", E, 4 },
   4452      1.1  christos   { "r5", D, 5 },
   4453      1.1  christos   { "r6", L, 6 },
   4454      1.1  christos   { "r7", H, 7 },
   4455      1.1  christos   { "x", X, 0 },
   4456      1.1  christos   { "a", A, 1 },
   4457      1.1  christos   { "c", C, 2 },
   4458      1.1  christos   { "b", B, 3 },
   4459      1.1  christos   { "e", E, 4 },
   4460      1.1  christos   { "d", D, 5 },
   4461      1.1  christos   { "l", L, 6 },
   4462      1.1  christos   { "h", H, 7 },
   4463      1.1  christos 
   4464      1.1  christos   { "rp0", AX, 0 },
   4465      1.1  christos   { "rp1", BC, 1 },
   4466      1.1  christos   { "rp2", DE, 2 },
   4467      1.1  christos   { "rp3", HL, 3 },
   4468      1.1  christos   { "ax", AX, 0 },
   4469      1.1  christos   { "bc", BC, 1 },
   4470      1.1  christos   { "de", DE, 2 },
   4471      1.1  christos   { "hl", HL, 3 },
   4472      1.1  christos 
   4473      1.1  christos   { "RB0", RB0, 0 },
   4474      1.1  christos   { "RB1", RB1, 1 },
   4475      1.1  christos   { "RB2", RB2, 2 },
   4476      1.1  christos   { "RB3", RB3, 3 },
   4477      1.1  christos 
   4478      1.1  christos   { "sp", SP, 0 },
   4479      1.1  christos   { "cy", CY, 0 },
   4480      1.1  christos 
   4481      1.1  christos   { "spl", SPL, 0xf8 },
   4482      1.1  christos   { "sph", SPH, 0xf9 },
   4483      1.1  christos   { "psw", PSW, 0xfa },
   4484      1.1  christos   { "cs", CS, 0xfc },
   4485      1.1  christos   { "es", ES, 0xfd },
   4486      1.1  christos   { "pmc", PMC, 0xfe },
   4487      1.1  christos   { "mem", MEM, 0xff },
   4488      1.1  christos 
   4489      1.1  christos   { ".s", DOT_S, 0 },
   4490      1.1  christos   { ".b", DOT_B, 0 },
   4491      1.1  christos   { ".w", DOT_W, 0 },
   4492      1.1  christos   { ".l", DOT_L, 0 },
   4493      1.1  christos   { ".a", DOT_A , 0},
   4494      1.1  christos   { ".ub", DOT_UB, 0 },
   4495      1.1  christos   { ".uw", DOT_UW , 0},
   4496      1.1  christos 
   4497      1.1  christos   { "c", FLAG, 0 },
   4498      1.1  christos   { "z", FLAG, 1 },
   4499      1.1  christos   { "s", FLAG, 2 },
   4500      1.1  christos   { "o", FLAG, 3 },
   4501      1.1  christos   { "i", FLAG, 8 },
   4502      1.1  christos   { "u", FLAG, 9 },
   4503      1.1  christos 
   4504      1.1  christos #define OPC(x) { #x, x, IS_OPCODE }
   4505      1.1  christos 
   4506      1.1  christos   OPC(ADD),
   4507      1.1  christos   OPC(ADDC),
   4508      1.1  christos   OPC(ADDW),
   4509      1.1  christos   { "and", AND_, IS_OPCODE },
   4510      1.1  christos   OPC(AND1),
   4511      1.1  christos   OPC(BC),
   4512      1.1  christos   OPC(BF),
   4513      1.1  christos   OPC(BH),
   4514      1.1  christos   OPC(BNC),
   4515      1.1  christos   OPC(BNH),
   4516      1.1  christos   OPC(BNZ),
   4517      1.1  christos   OPC(BR),
   4518      1.1  christos   OPC(BRK),
   4519      1.1  christos   OPC(BRK1),
   4520      1.1  christos   OPC(BT),
   4521      1.1  christos   OPC(BTCLR),
   4522      1.1  christos   OPC(BZ),
   4523      1.1  christos   OPC(CALL),
   4524      1.1  christos   OPC(CALLT),
   4525      1.1  christos   OPC(CLR1),
   4526      1.1  christos   OPC(CLRB),
   4527      1.1  christos   OPC(CLRW),
   4528      1.1  christos   OPC(CMP),
   4529      1.1  christos   OPC(CMP0),
   4530      1.1  christos   OPC(CMPS),
   4531      1.1  christos   OPC(CMPW),
   4532      1.1  christos   OPC(DEC),
   4533      1.1  christos   OPC(DECW),
   4534      1.1  christos   OPC(DI),
   4535      1.1  christos   OPC(DIVHU),
   4536      1.1  christos   OPC(DIVWU),
   4537      1.1  christos   OPC(EI),
   4538      1.1  christos   OPC(HALT),
   4539      1.1  christos   OPC(INC),
   4540      1.1  christos   OPC(INCW),
   4541      1.1  christos   OPC(MACH),
   4542      1.1  christos   OPC(MACHU),
   4543      1.1  christos   OPC(MOV),
   4544      1.1  christos   OPC(MOV1),
   4545      1.1  christos   OPC(MOVS),
   4546      1.1  christos   OPC(MOVW),
   4547      1.1  christos   OPC(MULH),
   4548      1.1  christos   OPC(MULHU),
   4549      1.1  christos   OPC(MULU),
   4550      1.1  christos   OPC(NOP),
   4551      1.1  christos   OPC(NOT1),
   4552      1.1  christos   OPC(ONEB),
   4553      1.1  christos   OPC(ONEW),
   4554      1.1  christos   OPC(OR),
   4555      1.1  christos   OPC(OR1),
   4556      1.1  christos   OPC(POP),
   4557      1.1  christos   OPC(PUSH),
   4558      1.1  christos   OPC(RET),
   4559      1.1  christos   OPC(RETI),
   4560      1.1  christos   OPC(RETB),
   4561      1.1  christos   OPC(ROL),
   4562      1.1  christos   OPC(ROLC),
   4563      1.1  christos   OPC(ROLWC),
   4564      1.1  christos   OPC(ROR),
   4565      1.1  christos   OPC(RORC),
   4566      1.1  christos   OPC(SAR),
   4567      1.1  christos   OPC(SARW),
   4568      1.1  christos   OPC(SEL),
   4569      1.1  christos   OPC(SET1),
   4570      1.1  christos   OPC(SHL),
   4571      1.1  christos   OPC(SHLW),
   4572      1.1  christos   OPC(SHR),
   4573      1.1  christos   OPC(SHRW),
   4574      1.1  christos   OPC(SKC),
   4575      1.1  christos   OPC(SKH),
   4576      1.1  christos   OPC(SKNC),
   4577      1.1  christos   OPC(SKNH),
   4578      1.1  christos   OPC(SKNZ),
   4579      1.1  christos   OPC(SKZ),
   4580      1.1  christos   OPC(STOP),
   4581      1.1  christos   OPC(SUB),
   4582      1.1  christos   OPC(SUBC),
   4583      1.1  christos   OPC(SUBW),
   4584      1.1  christos   OPC(XCH),
   4585      1.1  christos   OPC(XCHW),
   4586      1.1  christos   OPC(XOR),
   4587      1.1  christos   OPC(XOR1),
   4588      1.1  christos };
   4589      1.1  christos 
   4590      1.1  christos #define NUM_TOKENS (sizeof (token_table) / sizeof (token_table[0]))
   4591      1.1  christos 
   4592      1.1  christos void
   4593      1.1  christos rl78_lex_init (char * beginning, char * ending)
   4594      1.1  christos {
   4595      1.1  christos   rl78_init_start = beginning;
   4596      1.1  christos   rl78_lex_start = beginning;
   4597      1.1  christos   rl78_lex_end = ending;
   4598      1.1  christos   rl78_in_brackets = 0;
   4599      1.1  christos   rl78_last_token = 0;
   4600      1.1  christos 
   4601      1.1  christos   rl78_bit_insn = 0;
   4602      1.1  christos 
   4603      1.1  christos   setbuf (stdout, 0);
   4604      1.1  christos }
   4605      1.1  christos 
   4606      1.1  christos /* Return a pointer to the '.' in a bit index expression (like
   4607      1.1  christos    foo.5), or NULL if none is found.  */
   4608      1.1  christos static char *
   4609      1.1  christos find_bit_index (char *tok)
   4610      1.1  christos {
   4611      1.1  christos   char *last_dot = NULL;
   4612      1.1  christos   char *last_digit = NULL;
   4613      1.1  christos   while (*tok && *tok != ',')
   4614      1.1  christos     {
   4615      1.1  christos       if (*tok == '.')
   4616      1.1  christos 	{
   4617      1.1  christos 	  last_dot = tok;
   4618      1.1  christos 	  last_digit = NULL;
   4619      1.1  christos 	}
   4620      1.1  christos       else if (*tok >= '0' && *tok <= '7'
   4621      1.1  christos 	       && last_dot != NULL
   4622      1.1  christos 	       && last_digit == NULL)
   4623      1.1  christos 	{
   4624      1.1  christos 	  last_digit = tok;
   4625      1.1  christos 	}
   4626  1.1.1.2  christos       else if (is_whitespace (*tok))
   4627      1.1  christos 	{
   4628      1.1  christos 	  /* skip */
   4629      1.1  christos 	}
   4630      1.1  christos       else
   4631      1.1  christos 	{
   4632      1.1  christos 	  last_dot = NULL;
   4633      1.1  christos 	  last_digit = NULL;
   4634      1.1  christos 	}
   4635      1.1  christos       tok ++;
   4636      1.1  christos     }
   4637      1.1  christos   if (last_dot != NULL
   4638      1.1  christos       && last_digit != NULL)
   4639      1.1  christos     return last_dot;
   4640      1.1  christos   return NULL;
   4641      1.1  christos }
   4642      1.1  christos 
   4643      1.1  christos static int
   4644      1.1  christos rl78_lex (void)
   4645      1.1  christos {
   4646      1.1  christos   /*unsigned int ci;*/
   4647      1.1  christos   char * save_input_pointer;
   4648      1.1  christos   char * bit = NULL;
   4649      1.1  christos 
   4650  1.1.1.2  christos   while (is_whitespace (*rl78_lex_start)
   4651      1.1  christos 	 && rl78_lex_start != rl78_lex_end)
   4652      1.1  christos     rl78_lex_start ++;
   4653      1.1  christos 
   4654      1.1  christos   rl78_last_exp_start = rl78_lex_start;
   4655      1.1  christos 
   4656      1.1  christos   if (rl78_lex_start == rl78_lex_end)
   4657      1.1  christos     return 0;
   4658      1.1  christos 
   4659      1.1  christos   if (ISALPHA (*rl78_lex_start)
   4660      1.1  christos       || (*rl78_lex_start == '.' && ISALPHA (rl78_lex_start[1])))
   4661      1.1  christos     {
   4662      1.1  christos       unsigned int i;
   4663      1.1  christos       char * e;
   4664      1.1  christos       char save;
   4665      1.1  christos 
   4666      1.1  christos       for (e = rl78_lex_start + 1;
   4667      1.1  christos 	   e < rl78_lex_end && ISALNUM (*e);
   4668      1.1  christos 	   e ++)
   4669      1.1  christos 	;
   4670      1.1  christos       save = *e;
   4671      1.1  christos       *e = 0;
   4672      1.1  christos 
   4673      1.1  christos       for (i = 0; i < NUM_TOKENS; i++)
   4674      1.1  christos 	if (strcasecmp (rl78_lex_start, token_table[i].string) == 0
   4675      1.1  christos 	    && !(token_table[i].val == IS_OPCODE && rl78_last_token != 0)
   4676      1.1  christos 	    && !(token_table[i].token == FLAG && !need_flag))
   4677      1.1  christos 	  {
   4678      1.1  christos 	    rl78_lval.regno = token_table[i].val;
   4679      1.1  christos 	    *e = save;
   4680      1.1  christos 	    rl78_lex_start = e;
   4681      1.1  christos 	    rl78_last_token = token_table[i].token;
   4682      1.1  christos 	    return token_table[i].token;
   4683      1.1  christos 	  }
   4684      1.1  christos       *e = save;
   4685      1.1  christos     }
   4686      1.1  christos 
   4687      1.1  christos   if (rl78_last_token == 0)
   4688      1.1  christos     {
   4689      1.1  christos       rl78_last_token = UNKNOWN_OPCODE;
   4690      1.1  christos       return UNKNOWN_OPCODE;
   4691      1.1  christos     }
   4692      1.1  christos 
   4693      1.1  christos   if (rl78_last_token == UNKNOWN_OPCODE)
   4694      1.1  christos     return 0;
   4695      1.1  christos 
   4696      1.1  christos   if (*rl78_lex_start == '[')
   4697      1.1  christos     rl78_in_brackets = 1;
   4698      1.1  christos   if (*rl78_lex_start == ']')
   4699      1.1  christos     rl78_in_brackets = 0;
   4700      1.1  christos 
   4701      1.1  christos   /* '.' is funny - the syntax includes it for bitfields, but only for
   4702      1.1  christos       bitfields.  We check for it specially so we can allow labels
   4703      1.1  christos       with '.' in them.  */
   4704      1.1  christos 
   4705      1.1  christos   if (rl78_bit_insn
   4706      1.1  christos       && *rl78_lex_start == '.'
   4707      1.1  christos       && find_bit_index (rl78_lex_start) == rl78_lex_start)
   4708      1.1  christos     {
   4709      1.1  christos       rl78_last_token = *rl78_lex_start;
   4710      1.1  christos       return *rl78_lex_start ++;
   4711      1.1  christos     }
   4712      1.1  christos 
   4713      1.1  christos   if ((rl78_in_brackets && *rl78_lex_start == '+')
   4714      1.1  christos       || strchr ("[],#!$:", *rl78_lex_start))
   4715      1.1  christos     {
   4716      1.1  christos       rl78_last_token = *rl78_lex_start;
   4717      1.1  christos       return *rl78_lex_start ++;
   4718      1.1  christos     }
   4719      1.1  christos 
   4720      1.1  christos   /* Again, '.' is funny.  Look for '.<digit>' at the end of the line
   4721      1.1  christos      or before a comma, which is a bitfield, not an expression.  */
   4722      1.1  christos 
   4723      1.1  christos   if (rl78_bit_insn)
   4724      1.1  christos     {
   4725      1.1  christos       bit = find_bit_index (rl78_lex_start);
   4726      1.1  christos       if (bit)
   4727      1.1  christos 	*bit = 0;
   4728      1.1  christos       else
   4729      1.1  christos 	bit = NULL;
   4730      1.1  christos     }
   4731      1.1  christos 
   4732      1.1  christos   save_input_pointer = input_line_pointer;
   4733      1.1  christos   input_line_pointer = rl78_lex_start;
   4734      1.1  christos   rl78_lval.exp.X_md = 0;
   4735      1.1  christos   expression (&rl78_lval.exp);
   4736      1.1  christos 
   4737      1.1  christos   if (bit)
   4738      1.1  christos     *bit = '.';
   4739      1.1  christos 
   4740      1.1  christos   rl78_lex_start = input_line_pointer;
   4741      1.1  christos   input_line_pointer = save_input_pointer;
   4742      1.1  christos   rl78_last_token = EXPR;
   4743      1.1  christos   return EXPR;
   4744      1.1  christos }
   4745      1.1  christos 
   4746      1.1  christos int
   4747      1.1  christos rl78_error (const char * str)
   4748      1.1  christos {
   4749      1.1  christos   int len;
   4750      1.1  christos 
   4751      1.1  christos   len = rl78_last_exp_start - rl78_init_start;
   4752      1.1  christos 
   4753      1.1  christos   as_bad ("%s", rl78_init_start);
   4754      1.1  christos   as_bad ("%*s^ %s", len, "", str);
   4755      1.1  christos   return 0;
   4756      1.1  christos }
   4757      1.1  christos 
   4758      1.1  christos static int
   4759      1.1  christos expr_is_sfr (expressionS exp)
   4760      1.1  christos {
   4761      1.1  christos   unsigned long v;
   4762      1.1  christos 
   4763      1.1  christos   if (exp.X_op != O_constant)
   4764      1.1  christos     return 0;
   4765      1.1  christos 
   4766      1.1  christos   v = exp.X_add_number;
   4767      1.1  christos   if (0xFFF00 <= v && v <= 0xFFFFF)
   4768      1.1  christos     return 1;
   4769      1.1  christos   return 0;
   4770      1.1  christos }
   4771      1.1  christos 
   4772      1.1  christos static int
   4773      1.1  christos expr_is_saddr (expressionS exp)
   4774      1.1  christos {
   4775      1.1  christos   unsigned long v;
   4776      1.1  christos 
   4777      1.1  christos   if (exp.X_op != O_constant)
   4778      1.1  christos     return 1;
   4779      1.1  christos 
   4780      1.1  christos   v = exp.X_add_number;
   4781      1.1  christos   if (0xFFE20 <= v && v <= 0xFFF1F)
   4782      1.1  christos     return 1;
   4783      1.1  christos   return 0;
   4784      1.1  christos }
   4785      1.1  christos 
   4786      1.1  christos static int
   4787      1.1  christos expr_is_word_aligned (expressionS exp)
   4788      1.1  christos {
   4789      1.1  christos   unsigned long v;
   4790      1.1  christos 
   4791      1.1  christos   if (exp.X_op != O_constant)
   4792      1.1  christos     return 1;
   4793      1.1  christos 
   4794      1.1  christos   v = exp.X_add_number;
   4795      1.1  christos   if (v & 1)
   4796      1.1  christos     return 0;
   4797      1.1  christos   return 1;
   4798      1.1  christos 
   4799      1.1  christos }
   4800      1.1  christos 
   4801      1.1  christos static void
   4802      1.1  christos check_expr_is_bit_index (expressionS exp)
   4803      1.1  christos {
   4804      1.1  christos   int val;
   4805      1.1  christos 
   4806      1.1  christos   if (exp.X_op != O_constant)
   4807      1.1  christos     {
   4808      1.1  christos       rl78_error (_("bit index must be a constant"));
   4809      1.1  christos       return;
   4810      1.1  christos     }
   4811      1.1  christos   val = exp.X_add_number;
   4812      1.1  christos 
   4813      1.1  christos   if (val < 0 || val > 7)
   4814      1.1  christos     rl78_error (_("rtsd size must be 0..7"));
   4815      1.1  christos }
   4816      1.1  christos 
   4817      1.1  christos static int
   4818      1.1  christos exp_val (expressionS exp)
   4819      1.1  christos {
   4820      1.1  christos   if (exp.X_op != O_constant)
   4821      1.1  christos   {
   4822      1.1  christos     rl78_error (_("constant expected"));
   4823      1.1  christos     return 0;
   4824      1.1  christos   }
   4825      1.1  christos   return exp.X_add_number;
   4826      1.1  christos }
   4827      1.1  christos 
   4828      1.1  christos static int
   4829      1.1  christos check_expr_is_const (expressionS e, int vmin, int vmax)
   4830      1.1  christos {
   4831      1.1  christos   static char buf[100];
   4832      1.1  christos   if (e.X_op != O_constant
   4833      1.1  christos       || e.X_add_number < vmin
   4834      1.1  christos       || e.X_add_number > vmax)
   4835      1.1  christos     {
   4836      1.1  christos       if (vmin == vmax)
   4837      1.1  christos 	sprintf (buf, "%d expected here", vmin);
   4838      1.1  christos       else
   4839      1.1  christos 	sprintf (buf, "%d..%d expected here", vmin, vmax);
   4840      1.1  christos       rl78_error(buf);
   4841      1.1  christos       return 0;
   4842      1.1  christos     }
   4843      1.1  christos   return 1;
   4844      1.1  christos }
   4845