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