1*b88e3e88Schristos /* A Bison parser, made by GNU Bison 3.0.5.  */
2ed0d50c3Schristos 
306324dcfSchristos /* Bison implementation for Yacc-like parsers in C
4ed0d50c3Schristos 
5*b88e3e88Schristos    Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
6ed0d50c3Schristos 
706324dcfSchristos    This program is free software: you can redistribute it and/or modify
8ed0d50c3Schristos    it under the terms of the GNU General Public License as published by
906324dcfSchristos    the Free Software Foundation, either version 3 of the License, or
1006324dcfSchristos    (at your option) any later version.
11ed0d50c3Schristos 
12ed0d50c3Schristos    This program is distributed in the hope that it will be useful,
13ed0d50c3Schristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
14ed0d50c3Schristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15ed0d50c3Schristos    GNU General Public License for more details.
16ed0d50c3Schristos 
17ed0d50c3Schristos    You should have received a copy of the GNU General Public License
1806324dcfSchristos    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19ed0d50c3Schristos 
20ed0d50c3Schristos /* As a special exception, you may create a larger work that contains
21ed0d50c3Schristos    part or all of the Bison parser skeleton and distribute that work
22ed0d50c3Schristos    under terms of your choice, so long as that work isn't itself a
23ed0d50c3Schristos    parser generator using the skeleton or a modified version thereof
24ed0d50c3Schristos    as a parser skeleton.  Alternatively, if you modify or redistribute
25ed0d50c3Schristos    the parser skeleton itself, you may (at your option) remove this
26ed0d50c3Schristos    special exception, which will cause the skeleton and the resulting
27ed0d50c3Schristos    Bison output files to be licensed under the GNU General Public
28ed0d50c3Schristos    License without this special exception.
29ed0d50c3Schristos 
30ed0d50c3Schristos    This special exception was added by the Free Software Foundation in
31ed0d50c3Schristos    version 2.2 of Bison.  */
32ed0d50c3Schristos 
33ed0d50c3Schristos /* C LALR(1) parser skeleton written by Richard Stallman, by
34ed0d50c3Schristos    simplifying the original so-called "semantic" parser.  */
35ed0d50c3Schristos 
36ed0d50c3Schristos /* All symbols defined below should begin with yy or YY, to avoid
37ed0d50c3Schristos    infringing on user name space.  This should be done even for local
38ed0d50c3Schristos    variables, as they might otherwise be expanded by user macros.
39ed0d50c3Schristos    There are some unavoidable exceptions within include files to
40ed0d50c3Schristos    define necessary library symbols; they are noted "INFRINGES ON
41ed0d50c3Schristos    USER NAME SPACE" below.  */
42ed0d50c3Schristos 
43ed0d50c3Schristos /* Identify Bison output.  */
44ed0d50c3Schristos #define YYBISON 1
45ed0d50c3Schristos 
46ed0d50c3Schristos /* Bison version.  */
47*b88e3e88Schristos #define YYBISON_VERSION "3.0.5"
48ed0d50c3Schristos 
49ed0d50c3Schristos /* Skeleton name.  */
50ed0d50c3Schristos #define YYSKELETON_NAME "yacc.c"
51ed0d50c3Schristos 
52ed0d50c3Schristos /* Pure parsers.  */
53ed0d50c3Schristos #define YYPURE 0
54ed0d50c3Schristos 
5506324dcfSchristos /* Push parsers.  */
5606324dcfSchristos #define YYPUSH 0
5706324dcfSchristos 
5806324dcfSchristos /* Pull parsers.  */
5906324dcfSchristos #define YYPULL 1
6006324dcfSchristos 
61ed0d50c3Schristos 
62ed0d50c3Schristos /* Substitute the variable and function names.  */
63ed0d50c3Schristos #define yyparse         rl78_parse
64ed0d50c3Schristos #define yylex           rl78_lex
65ed0d50c3Schristos #define yyerror         rl78_error
66ed0d50c3Schristos #define yydebug         rl78_debug
67ed0d50c3Schristos #define yynerrs         rl78_nerrs
68ed0d50c3Schristos 
6906324dcfSchristos #define yylval          rl78_lval
7006324dcfSchristos #define yychar          rl78_char
71ed0d50c3Schristos 
7206324dcfSchristos /* Copy the first part of user declarations.  */
7306324dcfSchristos #line 20 "./config/rl78-parse.y" /* yacc.c:339  */
7406324dcfSchristos 
7506324dcfSchristos 
7606324dcfSchristos #include "as.h"
7706324dcfSchristos #include "safe-ctype.h"
7806324dcfSchristos #include "rl78-defs.h"
7906324dcfSchristos 
8006324dcfSchristos static int rl78_lex (void);
8106324dcfSchristos 
8206324dcfSchristos /* Ok, here are the rules for using these macros...
8306324dcfSchristos 
8406324dcfSchristos    B*() is used to specify the base opcode bytes.  Fields to be filled
8506324dcfSchristos         in later, leave zero.  Call this first.
8606324dcfSchristos 
8706324dcfSchristos    F() and FE() are used to fill in fields within the base opcode bytes.  You MUST
8806324dcfSchristos         call B*() before any F() or FE().
8906324dcfSchristos 
9006324dcfSchristos    [UN]*O*(), PC*() appends operands to the end of the opcode.  You
9106324dcfSchristos         must call P() and B*() before any of these, so that the fixups
9206324dcfSchristos         have the right byte location.
9306324dcfSchristos         O = signed, UO = unsigned, NO = negated, PC = pcrel
9406324dcfSchristos 
9506324dcfSchristos    IMM() adds an immediate and fills in the field for it.
9606324dcfSchristos    NIMM() same, but negates the immediate.
9706324dcfSchristos    NBIMM() same, but negates the immediate, for sbb.
9806324dcfSchristos    DSP() adds a displacement, and fills in the field for it.
9906324dcfSchristos 
10006324dcfSchristos    Note that order is significant for the O, IMM, and DSP macros, as
10106324dcfSchristos    they append their data to the operand buffer in the order that you
10206324dcfSchristos    call them.
10306324dcfSchristos 
10406324dcfSchristos    Use "disp" for displacements whenever possible; this handles the
10506324dcfSchristos    "0" case properly.  */
10606324dcfSchristos 
10706324dcfSchristos #define B1(b1)             rl78_base1 (b1)
10806324dcfSchristos #define B2(b1, b2)         rl78_base2 (b1, b2)
10906324dcfSchristos #define B3(b1, b2, b3)     rl78_base3 (b1, b2, b3)
11006324dcfSchristos #define B4(b1, b2, b3, b4) rl78_base4 (b1, b2, b3, b4)
11106324dcfSchristos 
11206324dcfSchristos /* POS is bits from the MSB of the first byte to the LSB of the last byte.  */
11306324dcfSchristos #define F(val,pos,sz)      rl78_field (val, pos, sz)
11406324dcfSchristos #define FE(exp,pos,sz)	   rl78_field (exp_val (exp), pos, sz);
11506324dcfSchristos 
11606324dcfSchristos #define O1(v)              rl78_op (v, 1, RL78REL_DATA)
11706324dcfSchristos #define O2(v)              rl78_op (v, 2, RL78REL_DATA)
11806324dcfSchristos #define O3(v)              rl78_op (v, 3, RL78REL_DATA)
11906324dcfSchristos #define O4(v)              rl78_op (v, 4, RL78REL_DATA)
12006324dcfSchristos 
12106324dcfSchristos #define PC1(v)             rl78_op (v, 1, RL78REL_PCREL)
12206324dcfSchristos #define PC2(v)             rl78_op (v, 2, RL78REL_PCREL)
12306324dcfSchristos #define PC3(v)             rl78_op (v, 3, RL78REL_PCREL)
12406324dcfSchristos 
12506324dcfSchristos #define IMM(v,pos)	   F (immediate (v, RL78REL_SIGNED, pos), pos, 2); \
12606324dcfSchristos 			   if (v.X_op != O_constant && v.X_op != O_big) rl78_linkrelax_imm (pos)
12706324dcfSchristos #define NIMM(v,pos)	   F (immediate (v, RL78REL_NEGATIVE, pos), pos, 2)
12806324dcfSchristos #define NBIMM(v,pos)	   F (immediate (v, RL78REL_NEGATIVE_BORROW, pos), pos, 2)
12906324dcfSchristos #define DSP(v,pos,msz)	   if (!v.X_md) rl78_relax (RL78_RELAX_DISP, pos); \
13006324dcfSchristos 			   else rl78_linkrelax_dsp (pos); \
13106324dcfSchristos 			   F (displacement (v, msz), pos, 2)
13206324dcfSchristos 
13306324dcfSchristos #define id24(a,b2,b3)	   B3 (0xfb+a, b2, b3)
13406324dcfSchristos 
13506324dcfSchristos static int         expr_is_sfr (expressionS);
13606324dcfSchristos static int         expr_is_saddr (expressionS);
13706324dcfSchristos static int         expr_is_word_aligned (expressionS);
13806324dcfSchristos static int         exp_val (expressionS exp);
13906324dcfSchristos 
14006324dcfSchristos static int    need_flag = 0;
14106324dcfSchristos static int    rl78_in_brackets = 0;
14206324dcfSchristos static int    rl78_last_token = 0;
14306324dcfSchristos static char * rl78_init_start;
14406324dcfSchristos static char * rl78_last_exp_start = 0;
14506324dcfSchristos static int    rl78_bit_insn = 0;
14606324dcfSchristos 
14706324dcfSchristos #define YYDEBUG 1
14806324dcfSchristos #define YYERROR_VERBOSE 1
14906324dcfSchristos 
15006324dcfSchristos #define NOT_SADDR  rl78_error ("Expression not 0xFFE20 to 0xFFF1F")
15106324dcfSchristos #define SA(e) if (!expr_is_saddr (e)) NOT_SADDR;
15206324dcfSchristos 
15306324dcfSchristos #define SET_SA(e) e.X_md = BFD_RELOC_RL78_SADDR
15406324dcfSchristos 
15506324dcfSchristos #define NOT_SFR  rl78_error ("Expression not 0xFFF00 to 0xFFFFF")
15606324dcfSchristos #define SFR(e) if (!expr_is_sfr (e)) NOT_SFR;
15706324dcfSchristos 
15806324dcfSchristos #define NOT_SFR_OR_SADDR  rl78_error ("Expression not 0xFFE20 to 0xFFFFF")
15906324dcfSchristos 
16006324dcfSchristos #define NOT_ES if (rl78_has_prefix()) rl78_error ("ES: prefix not allowed here");
16106324dcfSchristos 
16206324dcfSchristos #define WA(x) if (!expr_is_word_aligned (x)) rl78_error ("Expression not word-aligned");
16306324dcfSchristos 
16406324dcfSchristos #define ISA_G10(s) if (!rl78_isa_g10()) rl78_error (s " is only supported on the G10")
16506324dcfSchristos #define ISA_G13(s) if (!rl78_isa_g13()) rl78_error (s " is only supported on the G13")
16606324dcfSchristos #define ISA_G14(s) if (!rl78_isa_g14()) rl78_error (s " is only supported on the G14")
16706324dcfSchristos 
16806324dcfSchristos static void check_expr_is_bit_index (expressionS);
16906324dcfSchristos #define Bit(e) check_expr_is_bit_index (e);
17006324dcfSchristos 
17106324dcfSchristos /* Returns TRUE (non-zero) if the expression is a constant in the
17206324dcfSchristos    given range.  */
17306324dcfSchristos static int check_expr_is_const (expressionS, int vmin, int vmax);
17406324dcfSchristos 
17506324dcfSchristos /* Convert a "regb" value to a "reg_xbc" value.  Error if other
17606324dcfSchristos    registers are passed.  Needed to avoid reduce-reduce conflicts.  */
17706324dcfSchristos static int
reg_xbc(int reg)17806324dcfSchristos reg_xbc (int reg)
17906324dcfSchristos {
18006324dcfSchristos   switch (reg)
18106324dcfSchristos     {
18206324dcfSchristos       case 0: /* X */
18306324dcfSchristos         return 0x10;
18406324dcfSchristos       case 3: /* B */
18506324dcfSchristos         return 0x20;
18606324dcfSchristos       case 2: /* C */
18706324dcfSchristos         return 0x30;
18806324dcfSchristos       default:
18906324dcfSchristos         rl78_error ("Only X, B, or C allowed here");
19006324dcfSchristos 	return 0;
19106324dcfSchristos     }
19206324dcfSchristos }
19306324dcfSchristos 
19406324dcfSchristos 
19506324dcfSchristos #line 196 "rl78-parse.c" /* yacc.c:339  */
19606324dcfSchristos 
19706324dcfSchristos # ifndef YY_NULLPTR
19806324dcfSchristos #  if defined __cplusplus && 201103L <= __cplusplus
19906324dcfSchristos #   define YY_NULLPTR nullptr
20006324dcfSchristos #  else
20106324dcfSchristos #   define YY_NULLPTR 0
20206324dcfSchristos #  endif
20306324dcfSchristos # endif
20406324dcfSchristos 
20506324dcfSchristos /* Enabling verbose error messages.  */
20606324dcfSchristos #ifdef YYERROR_VERBOSE
20706324dcfSchristos # undef YYERROR_VERBOSE
20806324dcfSchristos # define YYERROR_VERBOSE 1
20906324dcfSchristos #else
21006324dcfSchristos # define YYERROR_VERBOSE 0
21106324dcfSchristos #endif
21206324dcfSchristos 
21306324dcfSchristos /* In a future release of Bison, this section will be replaced
21406324dcfSchristos    by #include "y.tab.h".  */
21506324dcfSchristos #ifndef YY_RL78_RL_PARSE_H_INCLUDED
21606324dcfSchristos # define YY_RL78_RL_PARSE_H_INCLUDED
21706324dcfSchristos /* Debug traces.  */
21806324dcfSchristos #ifndef YYDEBUG
21906324dcfSchristos # define YYDEBUG 0
22006324dcfSchristos #endif
22106324dcfSchristos #if YYDEBUG
22206324dcfSchristos extern int rl78_debug;
22306324dcfSchristos #endif
22406324dcfSchristos 
22506324dcfSchristos /* Token type.  */
226ed0d50c3Schristos #ifndef YYTOKENTYPE
227ed0d50c3Schristos # define YYTOKENTYPE
22806324dcfSchristos   enum yytokentype
22906324dcfSchristos   {
230ed0d50c3Schristos     A = 258,
231ed0d50c3Schristos     X = 259,
232ed0d50c3Schristos     B = 260,
233ed0d50c3Schristos     C = 261,
234ed0d50c3Schristos     D = 262,
235ed0d50c3Schristos     E = 263,
236ed0d50c3Schristos     H = 264,
237ed0d50c3Schristos     L = 265,
238ed0d50c3Schristos     AX = 266,
239ed0d50c3Schristos     BC = 267,
240ed0d50c3Schristos     DE = 268,
241ed0d50c3Schristos     HL = 269,
242ed0d50c3Schristos     SPL = 270,
243ed0d50c3Schristos     SPH = 271,
244ed0d50c3Schristos     PSW = 272,
245ed0d50c3Schristos     CS = 273,
246ed0d50c3Schristos     ES = 274,
247ed0d50c3Schristos     PMC = 275,
248ed0d50c3Schristos     MEM = 276,
249ed0d50c3Schristos     FLAG = 277,
250ed0d50c3Schristos     SP = 278,
251ed0d50c3Schristos     CY = 279,
252ed0d50c3Schristos     RB0 = 280,
253ed0d50c3Schristos     RB1 = 281,
254ed0d50c3Schristos     RB2 = 282,
255ed0d50c3Schristos     RB3 = 283,
256ed0d50c3Schristos     EXPR = 284,
257ed0d50c3Schristos     UNKNOWN_OPCODE = 285,
258ed0d50c3Schristos     IS_OPCODE = 286,
259ed0d50c3Schristos     DOT_S = 287,
260ed0d50c3Schristos     DOT_B = 288,
261ed0d50c3Schristos     DOT_W = 289,
262ed0d50c3Schristos     DOT_L = 290,
263ed0d50c3Schristos     DOT_A = 291,
264ed0d50c3Schristos     DOT_UB = 292,
265ed0d50c3Schristos     DOT_UW = 293,
266ed0d50c3Schristos     ADD = 294,
267ed0d50c3Schristos     ADDC = 295,
268ed0d50c3Schristos     ADDW = 296,
269ed0d50c3Schristos     AND_ = 297,
270ed0d50c3Schristos     AND1 = 298,
271ed0d50c3Schristos     BF = 299,
272ed0d50c3Schristos     BH = 300,
273ed0d50c3Schristos     BNC = 301,
274ed0d50c3Schristos     BNH = 302,
275ed0d50c3Schristos     BNZ = 303,
276ed0d50c3Schristos     BR = 304,
277ed0d50c3Schristos     BRK = 305,
278ed0d50c3Schristos     BRK1 = 306,
279ed0d50c3Schristos     BT = 307,
280ed0d50c3Schristos     BTCLR = 308,
281ed0d50c3Schristos     BZ = 309,
282ed0d50c3Schristos     CALL = 310,
283ed0d50c3Schristos     CALLT = 311,
284ed0d50c3Schristos     CLR1 = 312,
285ed0d50c3Schristos     CLRB = 313,
286ed0d50c3Schristos     CLRW = 314,
287ed0d50c3Schristos     CMP = 315,
288ed0d50c3Schristos     CMP0 = 316,
289ed0d50c3Schristos     CMPS = 317,
290ed0d50c3Schristos     CMPW = 318,
291ed0d50c3Schristos     DEC = 319,
292ed0d50c3Schristos     DECW = 320,
293ed0d50c3Schristos     DI = 321,
294ed0d50c3Schristos     DIVHU = 322,
295ed0d50c3Schristos     DIVWU = 323,
296ed0d50c3Schristos     EI = 324,
297ed0d50c3Schristos     HALT = 325,
298ed0d50c3Schristos     INC = 326,
299ed0d50c3Schristos     INCW = 327,
300ed0d50c3Schristos     MACH = 328,
301ed0d50c3Schristos     MACHU = 329,
302ed0d50c3Schristos     MOV = 330,
303ed0d50c3Schristos     MOV1 = 331,
304ed0d50c3Schristos     MOVS = 332,
305ed0d50c3Schristos     MOVW = 333,
306ed0d50c3Schristos     MULH = 334,
307ed0d50c3Schristos     MULHU = 335,
308ed0d50c3Schristos     MULU = 336,
309ed0d50c3Schristos     NOP = 337,
310ed0d50c3Schristos     NOT1 = 338,
311ed0d50c3Schristos     ONEB = 339,
312ed0d50c3Schristos     ONEW = 340,
313ed0d50c3Schristos     OR = 341,
314ed0d50c3Schristos     OR1 = 342,
315ed0d50c3Schristos     POP = 343,
316ed0d50c3Schristos     PUSH = 344,
317ed0d50c3Schristos     RET = 345,
318ed0d50c3Schristos     RETI = 346,
319ed0d50c3Schristos     RETB = 347,
320ed0d50c3Schristos     ROL = 348,
321ed0d50c3Schristos     ROLC = 349,
322ed0d50c3Schristos     ROLWC = 350,
323ed0d50c3Schristos     ROR = 351,
324ed0d50c3Schristos     RORC = 352,
325ed0d50c3Schristos     SAR = 353,
326ed0d50c3Schristos     SARW = 354,
327ed0d50c3Schristos     SEL = 355,
328ed0d50c3Schristos     SET1 = 356,
329ed0d50c3Schristos     SHL = 357,
330ed0d50c3Schristos     SHLW = 358,
331ed0d50c3Schristos     SHR = 359,
332ed0d50c3Schristos     SHRW = 360,
333ed0d50c3Schristos     SKC = 361,
334ed0d50c3Schristos     SKH = 362,
335ed0d50c3Schristos     SKNC = 363,
336ed0d50c3Schristos     SKNH = 364,
337ed0d50c3Schristos     SKNZ = 365,
338ed0d50c3Schristos     SKZ = 366,
339ed0d50c3Schristos     STOP = 367,
340ed0d50c3Schristos     SUB = 368,
341ed0d50c3Schristos     SUBC = 369,
342ed0d50c3Schristos     SUBW = 370,
343ed0d50c3Schristos     XCH = 371,
344ed0d50c3Schristos     XCHW = 372,
345ed0d50c3Schristos     XOR = 373,
346ed0d50c3Schristos     XOR1 = 374
347ed0d50c3Schristos   };
348ed0d50c3Schristos #endif
349ed0d50c3Schristos /* Tokens.  */
350ed0d50c3Schristos #define A 258
351ed0d50c3Schristos #define X 259
352ed0d50c3Schristos #define B 260
353ed0d50c3Schristos #define C 261
354ed0d50c3Schristos #define D 262
355ed0d50c3Schristos #define E 263
356ed0d50c3Schristos #define H 264
357ed0d50c3Schristos #define L 265
358ed0d50c3Schristos #define AX 266
359ed0d50c3Schristos #define BC 267
360ed0d50c3Schristos #define DE 268
361ed0d50c3Schristos #define HL 269
362ed0d50c3Schristos #define SPL 270
363ed0d50c3Schristos #define SPH 271
364ed0d50c3Schristos #define PSW 272
365ed0d50c3Schristos #define CS 273
366ed0d50c3Schristos #define ES 274
367ed0d50c3Schristos #define PMC 275
368ed0d50c3Schristos #define MEM 276
369ed0d50c3Schristos #define FLAG 277
370ed0d50c3Schristos #define SP 278
371ed0d50c3Schristos #define CY 279
372ed0d50c3Schristos #define RB0 280
373ed0d50c3Schristos #define RB1 281
374ed0d50c3Schristos #define RB2 282
375ed0d50c3Schristos #define RB3 283
376ed0d50c3Schristos #define EXPR 284
377ed0d50c3Schristos #define UNKNOWN_OPCODE 285
378ed0d50c3Schristos #define IS_OPCODE 286
379ed0d50c3Schristos #define DOT_S 287
380ed0d50c3Schristos #define DOT_B 288
381ed0d50c3Schristos #define DOT_W 289
382ed0d50c3Schristos #define DOT_L 290
383ed0d50c3Schristos #define DOT_A 291
384ed0d50c3Schristos #define DOT_UB 292
385ed0d50c3Schristos #define DOT_UW 293
386ed0d50c3Schristos #define ADD 294
387ed0d50c3Schristos #define ADDC 295
388ed0d50c3Schristos #define ADDW 296
389ed0d50c3Schristos #define AND_ 297
390ed0d50c3Schristos #define AND1 298
391ed0d50c3Schristos #define BF 299
392ed0d50c3Schristos #define BH 300
393ed0d50c3Schristos #define BNC 301
394ed0d50c3Schristos #define BNH 302
395ed0d50c3Schristos #define BNZ 303
396ed0d50c3Schristos #define BR 304
397ed0d50c3Schristos #define BRK 305
398ed0d50c3Schristos #define BRK1 306
399ed0d50c3Schristos #define BT 307
400ed0d50c3Schristos #define BTCLR 308
401ed0d50c3Schristos #define BZ 309
402ed0d50c3Schristos #define CALL 310
403ed0d50c3Schristos #define CALLT 311
404ed0d50c3Schristos #define CLR1 312
405ed0d50c3Schristos #define CLRB 313
406ed0d50c3Schristos #define CLRW 314
407ed0d50c3Schristos #define CMP 315
408ed0d50c3Schristos #define CMP0 316
409ed0d50c3Schristos #define CMPS 317
410ed0d50c3Schristos #define CMPW 318
411ed0d50c3Schristos #define DEC 319
412ed0d50c3Schristos #define DECW 320
413ed0d50c3Schristos #define DI 321
414ed0d50c3Schristos #define DIVHU 322
415ed0d50c3Schristos #define DIVWU 323
416ed0d50c3Schristos #define EI 324
417ed0d50c3Schristos #define HALT 325
418ed0d50c3Schristos #define INC 326
419ed0d50c3Schristos #define INCW 327
420ed0d50c3Schristos #define MACH 328
421ed0d50c3Schristos #define MACHU 329
422ed0d50c3Schristos #define MOV 330
423ed0d50c3Schristos #define MOV1 331
424ed0d50c3Schristos #define MOVS 332
425ed0d50c3Schristos #define MOVW 333
426ed0d50c3Schristos #define MULH 334
427ed0d50c3Schristos #define MULHU 335
428ed0d50c3Schristos #define MULU 336
429ed0d50c3Schristos #define NOP 337
430ed0d50c3Schristos #define NOT1 338
431ed0d50c3Schristos #define ONEB 339
432ed0d50c3Schristos #define ONEW 340
433ed0d50c3Schristos #define OR 341
434ed0d50c3Schristos #define OR1 342
435ed0d50c3Schristos #define POP 343
436ed0d50c3Schristos #define PUSH 344
437ed0d50c3Schristos #define RET 345
438ed0d50c3Schristos #define RETI 346
439ed0d50c3Schristos #define RETB 347
440ed0d50c3Schristos #define ROL 348
441ed0d50c3Schristos #define ROLC 349
442ed0d50c3Schristos #define ROLWC 350
443ed0d50c3Schristos #define ROR 351
444ed0d50c3Schristos #define RORC 352
445ed0d50c3Schristos #define SAR 353
446ed0d50c3Schristos #define SARW 354
447ed0d50c3Schristos #define SEL 355
448ed0d50c3Schristos #define SET1 356
449ed0d50c3Schristos #define SHL 357
450ed0d50c3Schristos #define SHLW 358
451ed0d50c3Schristos #define SHR 359
452ed0d50c3Schristos #define SHRW 360
453ed0d50c3Schristos #define SKC 361
454ed0d50c3Schristos #define SKH 362
455ed0d50c3Schristos #define SKNC 363
456ed0d50c3Schristos #define SKNH 364
457ed0d50c3Schristos #define SKNZ 365
458ed0d50c3Schristos #define SKZ 366
459ed0d50c3Schristos #define STOP 367
460ed0d50c3Schristos #define SUB 368
461ed0d50c3Schristos #define SUBC 369
462ed0d50c3Schristos #define SUBW 370
463ed0d50c3Schristos #define XCH 371
464ed0d50c3Schristos #define XCHW 372
465ed0d50c3Schristos #define XOR 373
466ed0d50c3Schristos #define XOR1 374
467ed0d50c3Schristos 
46806324dcfSchristos /* Value type.  */
469ed0d50c3Schristos #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
47006324dcfSchristos 
47106324dcfSchristos union YYSTYPE
472ed0d50c3Schristos {
47306324dcfSchristos #line 144 "./config/rl78-parse.y" /* yacc.c:355  */
47406324dcfSchristos 
475ed0d50c3Schristos   int regno;
476ed0d50c3Schristos   expressionS exp;
47706324dcfSchristos 
47806324dcfSchristos #line 479 "rl78-parse.c" /* yacc.c:355  */
47906324dcfSchristos };
48006324dcfSchristos 
48106324dcfSchristos typedef union YYSTYPE YYSTYPE;
482ed0d50c3Schristos # define YYSTYPE_IS_TRIVIAL 1
48306324dcfSchristos # define YYSTYPE_IS_DECLARED 1
484ed0d50c3Schristos #endif
485ed0d50c3Schristos 
486ed0d50c3Schristos 
48706324dcfSchristos extern YYSTYPE rl78_lval;
48806324dcfSchristos 
48906324dcfSchristos int rl78_parse (void);
49006324dcfSchristos 
49106324dcfSchristos #endif /* !YY_RL78_RL_PARSE_H_INCLUDED  */
492ed0d50c3Schristos 
493ed0d50c3Schristos /* Copy the second part of user declarations.  */
494ed0d50c3Schristos 
49506324dcfSchristos #line 496 "rl78-parse.c" /* yacc.c:358  */
496ed0d50c3Schristos 
497ed0d50c3Schristos #ifdef short
498ed0d50c3Schristos # undef short
499ed0d50c3Schristos #endif
500ed0d50c3Schristos 
501ed0d50c3Schristos #ifdef YYTYPE_UINT8
502ed0d50c3Schristos typedef YYTYPE_UINT8 yytype_uint8;
503ed0d50c3Schristos #else
504ed0d50c3Schristos typedef unsigned char yytype_uint8;
505ed0d50c3Schristos #endif
506ed0d50c3Schristos 
507ed0d50c3Schristos #ifdef YYTYPE_INT8
508ed0d50c3Schristos typedef YYTYPE_INT8 yytype_int8;
509ed0d50c3Schristos #else
51006324dcfSchristos typedef signed char yytype_int8;
511ed0d50c3Schristos #endif
512ed0d50c3Schristos 
513ed0d50c3Schristos #ifdef YYTYPE_UINT16
514ed0d50c3Schristos typedef YYTYPE_UINT16 yytype_uint16;
515ed0d50c3Schristos #else
516ed0d50c3Schristos typedef unsigned short int yytype_uint16;
517ed0d50c3Schristos #endif
518ed0d50c3Schristos 
519ed0d50c3Schristos #ifdef YYTYPE_INT16
520ed0d50c3Schristos typedef YYTYPE_INT16 yytype_int16;
521ed0d50c3Schristos #else
522ed0d50c3Schristos typedef short int yytype_int16;
523ed0d50c3Schristos #endif
524ed0d50c3Schristos 
525ed0d50c3Schristos #ifndef YYSIZE_T
526ed0d50c3Schristos # ifdef __SIZE_TYPE__
527ed0d50c3Schristos #  define YYSIZE_T __SIZE_TYPE__
528ed0d50c3Schristos # elif defined size_t
529ed0d50c3Schristos #  define YYSIZE_T size_t
53006324dcfSchristos # elif ! defined YYSIZE_T
531ed0d50c3Schristos #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
532ed0d50c3Schristos #  define YYSIZE_T size_t
533ed0d50c3Schristos # else
534ed0d50c3Schristos #  define YYSIZE_T unsigned int
535ed0d50c3Schristos # endif
536ed0d50c3Schristos #endif
537ed0d50c3Schristos 
538ed0d50c3Schristos #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
539ed0d50c3Schristos 
540ed0d50c3Schristos #ifndef YY_
541ed0d50c3Schristos # if defined YYENABLE_NLS && YYENABLE_NLS
542ed0d50c3Schristos #  if ENABLE_NLS
543ed0d50c3Schristos #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
54406324dcfSchristos #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
545ed0d50c3Schristos #  endif
546ed0d50c3Schristos # endif
547ed0d50c3Schristos # ifndef YY_
54806324dcfSchristos #  define YY_(Msgid) Msgid
54906324dcfSchristos # endif
55006324dcfSchristos #endif
55106324dcfSchristos 
55206324dcfSchristos #ifndef YY_ATTRIBUTE
55306324dcfSchristos # if (defined __GNUC__                                               \
55406324dcfSchristos       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
55506324dcfSchristos      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
55606324dcfSchristos #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
55706324dcfSchristos # else
55806324dcfSchristos #  define YY_ATTRIBUTE(Spec) /* empty */
55906324dcfSchristos # endif
56006324dcfSchristos #endif
56106324dcfSchristos 
56206324dcfSchristos #ifndef YY_ATTRIBUTE_PURE
56306324dcfSchristos # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
56406324dcfSchristos #endif
56506324dcfSchristos 
56606324dcfSchristos #ifndef YY_ATTRIBUTE_UNUSED
56706324dcfSchristos # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
56806324dcfSchristos #endif
56906324dcfSchristos 
57006324dcfSchristos #if !defined _Noreturn \
57106324dcfSchristos      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
57206324dcfSchristos # if defined _MSC_VER && 1200 <= _MSC_VER
57306324dcfSchristos #  define _Noreturn __declspec (noreturn)
57406324dcfSchristos # else
57506324dcfSchristos #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
576ed0d50c3Schristos # endif
577ed0d50c3Schristos #endif
578ed0d50c3Schristos 
579ed0d50c3Schristos /* Suppress unused-variable warnings by "using" E.  */
580ed0d50c3Schristos #if ! defined lint || defined __GNUC__
58106324dcfSchristos # define YYUSE(E) ((void) (E))
582ed0d50c3Schristos #else
58306324dcfSchristos # define YYUSE(E) /* empty */
584ed0d50c3Schristos #endif
585ed0d50c3Schristos 
58606324dcfSchristos #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
58706324dcfSchristos /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
58806324dcfSchristos # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
58906324dcfSchristos     _Pragma ("GCC diagnostic push") \
59006324dcfSchristos     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
59106324dcfSchristos     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
59206324dcfSchristos # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
59306324dcfSchristos     _Pragma ("GCC diagnostic pop")
594ed0d50c3Schristos #else
59506324dcfSchristos # define YY_INITIAL_VALUE(Value) Value
596ed0d50c3Schristos #endif
59706324dcfSchristos #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
59806324dcfSchristos # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
59906324dcfSchristos # define YY_IGNORE_MAYBE_UNINITIALIZED_END
600ed0d50c3Schristos #endif
60106324dcfSchristos #ifndef YY_INITIAL_VALUE
60206324dcfSchristos # define YY_INITIAL_VALUE(Value) /* Nothing. */
60306324dcfSchristos #endif
60406324dcfSchristos 
605ed0d50c3Schristos 
606ed0d50c3Schristos #if ! defined yyoverflow || YYERROR_VERBOSE
607ed0d50c3Schristos 
608ed0d50c3Schristos /* The parser invokes alloca or malloc; define the necessary symbols.  */
609ed0d50c3Schristos 
610ed0d50c3Schristos # ifdef YYSTACK_USE_ALLOCA
611ed0d50c3Schristos #  if YYSTACK_USE_ALLOCA
612ed0d50c3Schristos #   ifdef __GNUC__
613ed0d50c3Schristos #    define YYSTACK_ALLOC __builtin_alloca
614ed0d50c3Schristos #   elif defined __BUILTIN_VA_ARG_INCR
615ed0d50c3Schristos #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
616ed0d50c3Schristos #   elif defined _AIX
617ed0d50c3Schristos #    define YYSTACK_ALLOC __alloca
618ed0d50c3Schristos #   elif defined _MSC_VER
619ed0d50c3Schristos #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
620ed0d50c3Schristos #    define alloca _alloca
621ed0d50c3Schristos #   else
622ed0d50c3Schristos #    define YYSTACK_ALLOC alloca
62306324dcfSchristos #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
624ed0d50c3Schristos #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
62506324dcfSchristos       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
62606324dcfSchristos #     ifndef EXIT_SUCCESS
62706324dcfSchristos #      define EXIT_SUCCESS 0
628ed0d50c3Schristos #     endif
629ed0d50c3Schristos #    endif
630ed0d50c3Schristos #   endif
631ed0d50c3Schristos #  endif
632ed0d50c3Schristos # endif
633ed0d50c3Schristos 
634ed0d50c3Schristos # ifdef YYSTACK_ALLOC
63506324dcfSchristos    /* Pacify GCC's 'empty if-body' warning.  */
63606324dcfSchristos #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
637ed0d50c3Schristos #  ifndef YYSTACK_ALLOC_MAXIMUM
638ed0d50c3Schristos     /* The OS might guarantee only one guard page at the bottom of the stack,
639ed0d50c3Schristos        and a page size can be as small as 4096 bytes.  So we cannot safely
640ed0d50c3Schristos        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
641ed0d50c3Schristos        to allow for a few compiler-allocated temporary stack slots.  */
642ed0d50c3Schristos #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
643ed0d50c3Schristos #  endif
644ed0d50c3Schristos # else
645ed0d50c3Schristos #  define YYSTACK_ALLOC YYMALLOC
646ed0d50c3Schristos #  define YYSTACK_FREE YYFREE
647ed0d50c3Schristos #  ifndef YYSTACK_ALLOC_MAXIMUM
648ed0d50c3Schristos #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
649ed0d50c3Schristos #  endif
65006324dcfSchristos #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
651ed0d50c3Schristos        && ! ((defined YYMALLOC || defined malloc) \
652ed0d50c3Schristos              && (defined YYFREE || defined free)))
653ed0d50c3Schristos #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
65406324dcfSchristos #   ifndef EXIT_SUCCESS
65506324dcfSchristos #    define EXIT_SUCCESS 0
656ed0d50c3Schristos #   endif
657ed0d50c3Schristos #  endif
658ed0d50c3Schristos #  ifndef YYMALLOC
659ed0d50c3Schristos #   define YYMALLOC malloc
66006324dcfSchristos #   if ! defined malloc && ! defined EXIT_SUCCESS
661ed0d50c3Schristos void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
662ed0d50c3Schristos #   endif
663ed0d50c3Schristos #  endif
664ed0d50c3Schristos #  ifndef YYFREE
665ed0d50c3Schristos #   define YYFREE free
66606324dcfSchristos #   if ! defined free && ! defined EXIT_SUCCESS
667ed0d50c3Schristos void free (void *); /* INFRINGES ON USER NAME SPACE */
668ed0d50c3Schristos #   endif
669ed0d50c3Schristos #  endif
670ed0d50c3Schristos # endif
671ed0d50c3Schristos #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
672ed0d50c3Schristos 
673ed0d50c3Schristos 
674ed0d50c3Schristos #if (! defined yyoverflow \
675ed0d50c3Schristos      && (! defined __cplusplus \
676ed0d50c3Schristos          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
677ed0d50c3Schristos 
678ed0d50c3Schristos /* A type that is properly aligned for any stack member.  */
679ed0d50c3Schristos union yyalloc
680ed0d50c3Schristos {
68106324dcfSchristos   yytype_int16 yyss_alloc;
68206324dcfSchristos   YYSTYPE yyvs_alloc;
683ed0d50c3Schristos };
684ed0d50c3Schristos 
685ed0d50c3Schristos /* The size of the maximum gap between one aligned stack and the next.  */
686ed0d50c3Schristos # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
687ed0d50c3Schristos 
688ed0d50c3Schristos /* The size of an array large to enough to hold all stacks, each with
689ed0d50c3Schristos    N elements.  */
690ed0d50c3Schristos # define YYSTACK_BYTES(N) \
691ed0d50c3Schristos      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
692ed0d50c3Schristos       + YYSTACK_GAP_MAXIMUM)
693ed0d50c3Schristos 
69406324dcfSchristos # define YYCOPY_NEEDED 1
695ed0d50c3Schristos 
696ed0d50c3Schristos /* Relocate STACK from its old location to the new one.  The
697ed0d50c3Schristos    local variables YYSIZE and YYSTACKSIZE give the old and new number of
698ed0d50c3Schristos    elements in the stack, and YYPTR gives the new location of the
699ed0d50c3Schristos    stack.  Advance YYPTR to a properly aligned location for the next
700ed0d50c3Schristos    stack.  */
70106324dcfSchristos # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
702ed0d50c3Schristos     do                                                                  \
703ed0d50c3Schristos       {                                                                 \
704ed0d50c3Schristos         YYSIZE_T yynewbytes;                                            \
70506324dcfSchristos         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
70606324dcfSchristos         Stack = &yyptr->Stack_alloc;                                    \
707ed0d50c3Schristos         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
708ed0d50c3Schristos         yyptr += yynewbytes / sizeof (*yyptr);                          \
709ed0d50c3Schristos       }                                                                 \
71006324dcfSchristos     while (0)
711ed0d50c3Schristos 
712ed0d50c3Schristos #endif
713ed0d50c3Schristos 
71406324dcfSchristos #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
71506324dcfSchristos /* Copy COUNT objects from SRC to DST.  The source and destination do
71606324dcfSchristos    not overlap.  */
71706324dcfSchristos # ifndef YYCOPY
71806324dcfSchristos #  if defined __GNUC__ && 1 < __GNUC__
71906324dcfSchristos #   define YYCOPY(Dst, Src, Count) \
72006324dcfSchristos       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
72106324dcfSchristos #  else
72206324dcfSchristos #   define YYCOPY(Dst, Src, Count)              \
72306324dcfSchristos       do                                        \
72406324dcfSchristos         {                                       \
72506324dcfSchristos           YYSIZE_T yyi;                         \
72606324dcfSchristos           for (yyi = 0; yyi < (Count); yyi++)   \
72706324dcfSchristos             (Dst)[yyi] = (Src)[yyi];            \
72806324dcfSchristos         }                                       \
72906324dcfSchristos       while (0)
73006324dcfSchristos #  endif
73106324dcfSchristos # endif
73206324dcfSchristos #endif /* !YYCOPY_NEEDED */
73306324dcfSchristos 
734ed0d50c3Schristos /* YYFINAL -- State number of the termination state.  */
735ed0d50c3Schristos #define YYFINAL  180
736ed0d50c3Schristos /* YYLAST -- Last index in YYTABLE.  */
737ed0d50c3Schristos #define YYLAST   844
738ed0d50c3Schristos 
739ed0d50c3Schristos /* YYNTOKENS -- Number of terminals.  */
740ed0d50c3Schristos #define YYNTOKENS  129
741ed0d50c3Schristos /* YYNNTS -- Number of nonterminals.  */
742ed0d50c3Schristos #define YYNNTS  56
743ed0d50c3Schristos /* YYNRULES -- Number of rules.  */
744ed0d50c3Schristos #define YYNRULES  324
74506324dcfSchristos /* YYNSTATES -- Number of states.  */
746ed0d50c3Schristos #define YYNSTATES  744
747ed0d50c3Schristos 
74806324dcfSchristos /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
74906324dcfSchristos    by yylex, with out-of-bounds checking.  */
750ed0d50c3Schristos #define YYUNDEFTOK  2
751ed0d50c3Schristos #define YYMAXUTOK   374
752ed0d50c3Schristos 
753ed0d50c3Schristos #define YYTRANSLATE(YYX)                                                \
754ed0d50c3Schristos   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
755ed0d50c3Schristos 
75606324dcfSchristos /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
75706324dcfSchristos    as returned by yylex, without out-of-bounds checking.  */
758ed0d50c3Schristos static const yytype_uint8 yytranslate[] =
759ed0d50c3Schristos {
760ed0d50c3Schristos        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
761ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
762ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
763ed0d50c3Schristos        2,     2,     2,   122,     2,   121,   127,     2,     2,     2,
764ed0d50c3Schristos        2,     2,     2,   125,   120,     2,   126,     2,     2,     2,
765ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,   128,     2,
766ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
767ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
768ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
769ed0d50c3Schristos        2,   123,     2,   124,     2,     2,     2,     2,     2,     2,
770ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
771ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
772ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
773ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
774ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
775ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
776ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
777ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
778ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
779ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
780ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
781ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
782ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
783ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
784ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
785ed0d50c3Schristos        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
786ed0d50c3Schristos        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
787ed0d50c3Schristos       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
788ed0d50c3Schristos       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
789ed0d50c3Schristos       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
790ed0d50c3Schristos       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
791ed0d50c3Schristos       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
792ed0d50c3Schristos       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
793ed0d50c3Schristos       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
794ed0d50c3Schristos       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
795ed0d50c3Schristos       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
796ed0d50c3Schristos      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
797ed0d50c3Schristos      115,   116,   117,   118,   119
798ed0d50c3Schristos };
799ed0d50c3Schristos 
800ed0d50c3Schristos #if YYDEBUG
80106324dcfSchristos   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
802ed0d50c3Schristos static const yytype_uint16 yyrline[] =
803ed0d50c3Schristos {
804ed0d50c3Schristos        0,   187,   187,   208,   211,   211,   214,   217,   220,   223,
805ed0d50c3Schristos      223,   226,   229,   232,   235,   238,   241,   250,   253,   256,
806ed0d50c3Schristos      256,   259,   262,   265,   268,   276,   276,   279,   279,   288,
807ed0d50c3Schristos      288,   291,   291,   296,   299,   302,   305,   308,   311,   316,
808ed0d50c3Schristos      319,   328,   331,   336,   339,   342,   345,   348,   353,   356,
809ed0d50c3Schristos      361,   364,   367,   370,   373,   394,   397,   400,   409,   412,
810ed0d50c3Schristos      415,   420,   422,   424,   426,   429,   429,   432,   437,   439,
811ed0d50c3Schristos      444,   447,   450,   453,   456,   456,   459,   464,   469,   472,
812ed0d50c3Schristos      472,   474,   476,   478,   480,   485,   488,   488,   491,   494,
813ed0d50c3Schristos      499,   502,   507,   507,   510,   510,   513,   516,   516,   524,
814ed0d50c3Schristos      524,   527,   527,   530,   530,   535,   543,   545,   548,   555,
815ed0d50c3Schristos      555,   564,   567,   570,   573,   576,   576,   585,   588,   591,
816ed0d50c3Schristos      594,   597,   597,   606,   606,   606,   609,   612,   619,   619,
817ed0d50c3Schristos      619,   626,   629,   632,   635,   638,   641,   644,   647,   650,
818ed0d50c3Schristos      653,   656,   659,   662,   665,   668,   671,   674,   677,   680,
819ed0d50c3Schristos      683,   686,   689,   692,   695,   698,   701,   704,   704,   707,
820ed0d50c3Schristos      707,   710,   710,   713,   713,   716,   716,   719,   719,   724,
821ed0d50c3Schristos      733,   736,   739,   742,   751,   754,   757,   762,   767,   770,
822ed0d50c3Schristos      773,   773,   782,   782,   791,   791,   800,   803,   806,   809,
823ed0d50c3Schristos      812,   815,   818,   821,   824,   827,   830,   833,   836,   839,
824ed0d50c3Schristos      842,   845,   848,   851,   854,   857,   860,   860,   863,   863,
825ed0d50c3Schristos      866,   866,   869,   869,   872,   872,   875,   878,   881,   884,
826ed0d50c3Schristos      887,   892,   897,   902,   905,   908,   911,   916,   919,   922,
827ed0d50c3Schristos      927,   932,   937,   942,   947,   952,   959,   964,   971,   974,
828ed0d50c3Schristos      977,   980,   985,   990,   995,  1000,  1005,  1012,  1017,  1024,
829ed0d50c3Schristos     1027,  1030,  1033,  1036,  1039,  1044,  1049,  1056,  1059,  1062,
830ed0d50c3Schristos     1065,  1068,  1071,  1074,  1077,  1088,  1097,  1098,  1102,  1103,
831ed0d50c3Schristos     1104,  1105,  1106,  1107,  1108,  1109,  1112,  1113,  1114,  1115,
832ed0d50c3Schristos     1116,  1117,  1118,  1121,  1122,  1123,  1124,  1127,  1128,  1129,
833ed0d50c3Schristos     1132,  1133,  1134,  1135,  1136,  1137,  1138,  1144,  1145,  1146,
834ed0d50c3Schristos     1147,  1148,  1149,  1150,  1151,  1154,  1155,  1156,  1159,  1160,
835ed0d50c3Schristos     1161,  1164,  1165,  1166,  1169,  1170,  1173,  1174,  1177,  1178,
836ed0d50c3Schristos     1181,  1182,  1185,  1186,  1189
837ed0d50c3Schristos };
838ed0d50c3Schristos #endif
839ed0d50c3Schristos 
84006324dcfSchristos #if YYDEBUG || YYERROR_VERBOSE || 0
841ed0d50c3Schristos /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
842ed0d50c3Schristos    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
843ed0d50c3Schristos static const char *const yytname[] =
844ed0d50c3Schristos {
845ed0d50c3Schristos   "$end", "error", "$undefined", "A", "X", "B", "C", "D", "E", "H", "L",
846ed0d50c3Schristos   "AX", "BC", "DE", "HL", "SPL", "SPH", "PSW", "CS", "ES", "PMC", "MEM",
847ed0d50c3Schristos   "FLAG", "SP", "CY", "RB0", "RB1", "RB2", "RB3", "EXPR", "UNKNOWN_OPCODE",
848ed0d50c3Schristos   "IS_OPCODE", "DOT_S", "DOT_B", "DOT_W", "DOT_L", "DOT_A", "DOT_UB",
849ed0d50c3Schristos   "DOT_UW", "ADD", "ADDC", "ADDW", "AND_", "AND1", "BF", "BH", "BNC",
850ed0d50c3Schristos   "BNH", "BNZ", "BR", "BRK", "BRK1", "BT", "BTCLR", "BZ", "CALL", "CALLT",
851ed0d50c3Schristos   "CLR1", "CLRB", "CLRW", "CMP", "CMP0", "CMPS", "CMPW", "DEC", "DECW",
852ed0d50c3Schristos   "DI", "DIVHU", "DIVWU", "EI", "HALT", "INC", "INCW", "MACH", "MACHU",
853ed0d50c3Schristos   "MOV", "MOV1", "MOVS", "MOVW", "MULH", "MULHU", "MULU", "NOP", "NOT1",
854ed0d50c3Schristos   "ONEB", "ONEW", "OR", "OR1", "POP", "PUSH", "RET", "RETI", "RETB", "ROL",
855ed0d50c3Schristos   "ROLC", "ROLWC", "ROR", "RORC", "SAR", "SARW", "SEL", "SET1", "SHL",
856ed0d50c3Schristos   "SHLW", "SHR", "SHRW", "SKC", "SKH", "SKNC", "SKNH", "SKNZ", "SKZ",
857ed0d50c3Schristos   "STOP", "SUB", "SUBC", "SUBW", "XCH", "XCHW", "XOR", "XOR1", "','",
858ed0d50c3Schristos   "'#'", "'!'", "'['", "']'", "'+'", "'.'", "'$'", "':'", "$accept",
85906324dcfSchristos   "statement", "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8",
86006324dcfSchristos   "$@9", "$@10", "$@11", "$@12", "$@13", "$@14", "$@15", "$@16", "$@17",
86106324dcfSchristos   "$@18", "$@19", "$@20", "$@21", "$@22", "$@23", "$@24", "$@25", "$@26",
86206324dcfSchristos   "$@27", "$@28", "$@29", "$@30", "$@31", "$@32", "$@33", "$@34", "$@35",
86306324dcfSchristos   "$@36", "$@37", "$@38", "opt_es", "regb", "regb_na", "regw", "regw_na",
86406324dcfSchristos   "sfr", "addsub", "addsubw", "andor1", "bt_bf", "setclr1", "oneclrb",
86506324dcfSchristos   "oneclrw", "incdec", "incdecw", "mov1", YY_NULLPTR
866ed0d50c3Schristos };
867ed0d50c3Schristos #endif
868ed0d50c3Schristos 
869ed0d50c3Schristos # ifdef YYPRINT
87006324dcfSchristos /* YYTOKNUM[NUM] -- (External) token number corresponding to the
87106324dcfSchristos    (internal) symbol number NUM (which must be that of a token).  */
872ed0d50c3Schristos static const yytype_uint16 yytoknum[] =
873ed0d50c3Schristos {
874ed0d50c3Schristos        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
875ed0d50c3Schristos      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
876ed0d50c3Schristos      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
877ed0d50c3Schristos      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
878ed0d50c3Schristos      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
879ed0d50c3Schristos      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
880ed0d50c3Schristos      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
881ed0d50c3Schristos      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
882ed0d50c3Schristos      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
883ed0d50c3Schristos      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
884ed0d50c3Schristos      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
885ed0d50c3Schristos      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
886ed0d50c3Schristos       44,    35,    33,    91,    93,    43,    46,    36,    58
887ed0d50c3Schristos };
888ed0d50c3Schristos # endif
889ed0d50c3Schristos 
89006324dcfSchristos #define YYPACT_NINF -212
89106324dcfSchristos 
89206324dcfSchristos #define yypact_value_is_default(Yystate) \
89306324dcfSchristos   (!!((Yystate) == (-212)))
89406324dcfSchristos 
89506324dcfSchristos #define YYTABLE_NINF -1
89606324dcfSchristos 
89706324dcfSchristos #define yytable_value_is_error(Yytable_value) \
89806324dcfSchristos   0
89906324dcfSchristos 
90006324dcfSchristos   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
90106324dcfSchristos      STATE-NUM.  */
90206324dcfSchristos static const yytype_int16 yypact[] =
903ed0d50c3Schristos {
90406324dcfSchristos      226,   -44,  -212,  -212,  -212,  -212,  -212,  -212,  -212,   -34,
90506324dcfSchristos      -15,    14,    20,    42,  -212,  -212,  -212,  -212,    45,    91,
90606324dcfSchristos      -80,  -212,  -212,  -212,  -212,   347,   134,  -212,  -212,  -212,
90706324dcfSchristos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,    53,
90806324dcfSchristos     -212,   136,   430,  -212,  -212,   153,  -212,   150,  -212,  -212,
90906324dcfSchristos     -212,  -212,   413,   451,  -212,  -212,  -212,   181,   186,   198,
91006324dcfSchristos      192,   212,   214,   225,   232,  -212,   368,   210,   236,   231,
91106324dcfSchristos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
91206324dcfSchristos      242,   244,  -212,  -212,   261,   221,   107,   325,   162,   343,
91306324dcfSchristos      403,   222,    10,   235,   362,   328,   341,   385,   394,   402,
91406324dcfSchristos     -212,    38,    81,   411,  -212,  -212,  -212,  -212,    82,   263,
91506324dcfSchristos     -212,   428,  -212,  -212,  -212,  -212,   300,  -212,   273,   351,
91606324dcfSchristos     -212,  -212,  -212,  -212,   367,  -212,  -212,  -212,  -212,  -212,
91706324dcfSchristos     -212,  -212,  -212,  -212,  -212,  -212,   376,  -212,  -212,   457,
91806324dcfSchristos       11,   372,   383,   384,   386,  -212,  -212,  -212,   388,    36,
91906324dcfSchristos      389,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,   390,
92006324dcfSchristos      391,   392,   393,   395,   396,   397,   398,  -212,  -212,  -212,
92106324dcfSchristos     -212,   401,   404,   405,   406,   407,   408,   409,   410,   412,
92206324dcfSchristos     -212,   414,  -212,   415,   416,   418,   419,   420,   379,   300,
92306324dcfSchristos      417,   421,   422,   423,  -212,   424,     0,   425,  -212,  -212,
92406324dcfSchristos     -212,  -212,  -212,   431,  -212,  -212,  -212,  -212,  -212,  -212,
92506324dcfSchristos     -212,  -212,  -212,  -212,   426,  -212,   485,   505,  -212,  -212,
92606324dcfSchristos      233,  -212,   432,   427,   434,   436,   435,  -212,  -212,  -212,
92706324dcfSchristos     -212,  -212,  -212,   491,  -212,   493,  -212,  -212,   494,   502,
92806324dcfSchristos      439,  -212,  -212,   504,   136,    80,   440,   437,   -79,   184,
92906324dcfSchristos       29,    72,   521,   123,    41,    79,   512,   239,   102,   513,
93006324dcfSchristos      516,   517,   523,   526,   527,   535,   536,   537,   538,   539,
93106324dcfSchristos      540,   541,   542,   543,   429,   399,    18,   453,   545,   572,
93206324dcfSchristos       95,   455,   381,   548,   549,   565,   551,   552,   553,   554,
93306324dcfSchristos      570,   556,  -212,   557,   267,  -212,  -212,   462,  -212,   559,
93406324dcfSchristos      575,   561,   400,   562,   578,   564,  -212,  -212,  -212,  -212,
93506324dcfSchristos     -212,  -212,   471,   566,    63,  -212,  -212,   567,     5,     6,
93606324dcfSchristos      161,   473,   268,   280,   330,  -212,   569,    86,   571,   573,
93706324dcfSchristos     -212,   474,  -212,   574,    65,  -212,  -212,   576,    55,   342,
93806324dcfSchristos      481,   480,   335,   345,   348,  -212,  -212,  -212,   577,   486,
93906324dcfSchristos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
94006324dcfSchristos     -212,  -212,  -212,  -212,  -212,  -212,   344,  -212,  -212,  -212,
94106324dcfSchristos     -212,   580,   352,  -212,   489,   487,  -212,  -212,   582,   354,
94206324dcfSchristos     -212,   583,   488,   490,   492,   495,   497,   498,   496,   499,
94306324dcfSchristos     -212,  -212,   500,   501,  -212,  -212,   584,   608,   594,  -212,
94406324dcfSchristos      503,   507,   506,   508,   510,   509,   511,   514,   519,   610,
94506324dcfSchristos     -212,   518,   600,   433,   520,  -212,   601,  -212,   607,   522,
94606324dcfSchristos      524,   525,   530,   531,   613,   532,   111,   533,   614,  -212,
94706324dcfSchristos     -212,   615,  -212,  -212,   616,  -212,   534,   618,   438,  -212,
94806324dcfSchristos     -212,   625,   544,   546,   547,   626,   555,   558,   627,   560,
94906324dcfSchristos      629,   563,   630,  -212,  -212,   631,   632,   465,  -212,  -212,
95006324dcfSchristos      633,   641,   634,   568,  -212,  -212,   635,   651,  -212,   637,
95106324dcfSchristos      638,   655,   643,   550,   579,   581,   585,   644,   587,  -212,
95206324dcfSchristos      586,   590,   645,   652,   650,   653,   667,   656,   660,   589,
95306324dcfSchristos      662,   591,   363,  -212,  -212,   593,   356,   358,   360,     7,
95406324dcfSchristos     -212,  -212,  -212,   588,   598,   599,     8,   684,   596,   685,
95506324dcfSchristos      597,   602,   603,    27,   604,  -212,  -212,  -212,   605,   382,
95606324dcfSchristos     -212,  -212,   606,   364,   366,   369,  -212,  -212,   611,   612,
95706324dcfSchristos      617,  -212,   679,   680,   609,   681,   619,   682,   620,  -212,
95806324dcfSchristos     -212,   371,   373,  -212,   375,  -212,   665,  -212,   377,  -212,
95906324dcfSchristos     -212,   621,  -212,   666,   668,   669,   670,  -212,   671,   672,
96006324dcfSchristos     -212,   622,  -212,  -212,  -212,   623,  -212,  -212,   673,  -212,
96106324dcfSchristos      674,   624,   628,   636,  -212,  -212,   675,  -212,   114,  -212,
96206324dcfSchristos      676,  -212,   693,  -212,    28,    30,    31,  -212,   694,  -212,
96306324dcfSchristos      639,  -212,   642,   646,   647,  -212,   695,   648,  -212,  -212,
96406324dcfSchristos      649,   640,   654,   657,  -212,  -212,   696,  -212,   705,  -212,
96506324dcfSchristos      706,  -212,   698,   699,   725,  -212,  -212,   659,  -212,   663,
96606324dcfSchristos     -212,   664,  -212,   709,  -212,   139,  -212,   165,  -212,  -212,
96706324dcfSchristos      710,  -212,  -212,   661,  -212,  -212,  -212,   677,  -212,  -212,
96806324dcfSchristos      658,  -212,   678,   683,   686,  -212,  -212,  -212,   687,   688,
96906324dcfSchristos      689,   690,  -212,   691,  -212,  -212,   711,  -212,   712,  -212,
97006324dcfSchristos      713,  -212,    32,   746,   747,    33,  -212,  -212,    35,   692,
97106324dcfSchristos     -212,  -212,  -212,   697,   700,  -212,   701,  -212,  -212,  -212,
97206324dcfSchristos      740,   742,  -212,   743,   702,   703,   704,   707,   708,   714,
97306324dcfSchristos      715,   716,   726,   717,  -212,   727,   733,  -212,  -212,  -212,
97406324dcfSchristos     -212,  -212,  -212,  -212,  -212,  -212,  -212,   729,  -212,  -212,
97506324dcfSchristos     -212,   732,  -212,  -212,   734,  -212,  -212,  -212,  -212,  -212,
97606324dcfSchristos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
97706324dcfSchristos     -212,   736,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
97806324dcfSchristos     -212,  -212,  -212,  -212
979ed0d50c3Schristos };
980ed0d50c3Schristos 
98106324dcfSchristos   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
98206324dcfSchristos      Performed when YYTABLE does not specify something else to do.  Zero
983ed0d50c3Schristos      means the default is an error.  */
984ed0d50c3Schristos static const yytype_uint16 yydefact[] =
985ed0d50c3Schristos {
986ed0d50c3Schristos        0,     0,     2,   297,   298,   305,   302,   308,   312,     0,
987ed0d50c3Schristos        0,     0,     0,     0,    48,    49,   311,   313,     0,     0,
988ed0d50c3Schristos        0,   315,   317,   319,   301,   266,     0,   307,   321,   323,
989ed0d50c3Schristos       90,    97,    99,    91,   105,   320,   322,   103,   101,   266,
990ed0d50c3Schristos      324,   266,   266,    94,    92,     0,   221,     0,   316,   318,
991ed0d50c3Schristos      303,   309,     0,     0,   227,   228,   229,     0,     0,     0,
992ed0d50c3Schristos        0,     0,     0,     0,     0,   314,     0,     0,     0,     0,
993ed0d50c3Schristos      249,   250,   251,   252,   253,   254,   255,   299,   300,   306,
994ed0d50c3Schristos        0,     0,   304,   310,     0,   266,     0,     0,   266,   266,
995ed0d50c3Schristos      266,     0,     0,   266,   266,     0,     0,     0,     0,     0,
996ed0d50c3Schristos       43,     0,     0,     0,   283,   284,   285,   286,     0,     0,
997ed0d50c3Schristos       50,     0,    70,    71,    72,    73,     0,    74,     0,     0,
998ed0d50c3Schristos       98,   100,   104,   102,     0,   276,   278,   277,   280,   279,
999ed0d50c3Schristos      282,   281,   290,   291,   292,   293,   294,   295,   296,     0,
1000ed0d50c3Schristos        0,     0,     0,     0,     0,   287,   288,   289,     0,     0,
1001ed0d50c3Schristos        0,    95,    93,    96,   222,   224,   223,   226,   225,     0,
1002ed0d50c3Schristos        0,     0,     0,     0,     0,     0,     0,   238,   239,   240,
1003ed0d50c3Schristos      241,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1004ed0d50c3Schristos        1,     0,     4,     0,     0,     0,     0,     0,     0,   294,
1005ed0d50c3Schristos        0,     0,     0,     0,    55,     0,     0,     0,    61,    62,
1006ed0d50c3Schristos       63,    64,    65,     0,    68,    69,   269,   268,   271,   270,
1007ed0d50c3Schristos      273,   272,   275,   274,     0,    79,     0,     0,    78,    86,
1008ed0d50c3Schristos        0,    85,     0,     0,     0,     0,     0,    33,    37,    34,
1009ed0d50c3Schristos       38,    36,    46,     0,    44,     0,    35,    52,     0,     0,
1010ed0d50c3Schristos        0,   267,    75,     0,   266,   266,   267,     0,     0,     0,
1011ed0d50c3Schristos      266,   266,     0,   266,     0,     0,     0,     0,   266,     0,
1012ed0d50c3Schristos        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1013ed0d50c3Schristos        0,     0,     0,     0,   266,     0,   266,     0,     0,     0,
1014ed0d50c3Schristos      266,     0,   266,     0,     0,     0,     0,     0,     0,     0,
1015ed0d50c3Schristos        0,     0,    66,     0,     0,    80,    81,     0,    87,     0,
1016ed0d50c3Schristos        0,     0,   266,     0,     0,     0,    47,    45,    53,    51,
1017ed0d50c3Schristos       54,    76,     0,     0,     0,   114,   126,     0,     0,     0,
1018ed0d50c3Schristos        0,     0,     0,     0,     0,   113,     0,     0,     0,     0,
1019ed0d50c3Schristos      127,     0,   219,     0,     0,   186,   218,     0,     0,     0,
1020ed0d50c3Schristos        0,     0,     0,     0,     0,   187,   220,   214,     0,     0,
1021ed0d50c3Schristos      230,   231,   232,   233,   234,   235,   236,   237,   242,   243,
1022ed0d50c3Schristos      244,   245,   246,   247,   248,   264,     0,   256,   265,     6,
1023ed0d50c3Schristos        9,     0,     0,     7,     0,     0,     8,    19,     0,     0,
1024ed0d50c3Schristos       18,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1025ed0d50c3Schristos       58,    57,     0,     0,    56,    67,     0,     0,     0,    88,
1026ed0d50c3Schristos        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1027ed0d50c3Schristos      106,   121,     0,     0,     0,   118,     0,   115,     0,     0,
1028ed0d50c3Schristos        0,     0,     0,     0,     0,     0,     0,     0,     0,   107,
1029ed0d50c3Schristos      123,     0,   108,   128,     0,   178,   182,     0,     0,   217,
1030ed0d50c3Schristos      184,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1031ed0d50c3Schristos        0,     0,     0,   215,   179,     0,     0,     0,    10,     3,
1032ed0d50c3Schristos        0,     0,     0,     0,    20,    17,     0,     0,    24,     0,
1033ed0d50c3Schristos        0,     0,     0,     0,     0,     0,     0,     0,     0,    82,
1034ed0d50c3Schristos        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1035ed0d50c3Schristos        0,     0,     0,   122,   117,     0,     0,     0,     0,     0,
1036ed0d50c3Schristos      111,   116,   109,     0,     0,     0,     0,     0,     0,     0,
1037ed0d50c3Schristos        0,     0,     0,     0,     0,   124,   120,   129,     0,     0,
1038ed0d50c3Schristos      183,   188,     0,     0,     0,     0,   185,   180,     0,     0,
1039ed0d50c3Schristos        0,   189,     0,     0,     0,     0,     0,     0,     0,   216,
1040ed0d50c3Schristos      257,     0,     0,    11,     0,     5,     0,    21,     0,    29,
1041ed0d50c3Schristos       27,     0,    25,     0,     0,     0,     0,    59,     0,     0,
1042ed0d50c3Schristos       83,     0,   174,   170,   169,     0,   171,   173,     0,   175,
1043ed0d50c3Schristos        0,     0,     0,     0,   154,   131,     0,   136,     0,   163,
1044ed0d50c3Schristos        0,   119,     0,   110,     0,     0,     0,   156,     0,   132,
1045ed0d50c3Schristos        0,   137,     0,     0,     0,   167,     0,     0,   125,   130,
1046ed0d50c3Schristos        0,     0,     0,     0,   203,   190,     0,   194,     0,   208,
1047ed0d50c3Schristos        0,   181,     0,     0,     0,   205,   191,     0,   195,     0,
1048ed0d50c3Schristos      212,     0,   258,     0,   260,     0,    12,     0,    16,    23,
1049ed0d50c3Schristos        0,    30,    28,     0,    26,    41,    40,     0,    39,    60,
1050ed0d50c3Schristos        0,    89,     0,     0,     0,   146,   149,   153,     0,     0,
1051ed0d50c3Schristos        0,     0,   164,     0,   112,   147,     0,   150,     0,   155,
1052ed0d50c3Schristos        0,   152,     0,     0,     0,     0,   168,   159,     0,     0,
1053ed0d50c3Schristos      198,   200,   202,     0,     0,   209,     0,   199,   201,   204,
1054ed0d50c3Schristos        0,     0,   213,     0,     0,     0,     0,     0,     0,     0,
1055ed0d50c3Schristos        0,     0,     0,     0,    84,     0,     0,    77,   134,   141,
1056ed0d50c3Schristos      143,   139,   161,   145,   148,   151,   135,     0,   142,   144,
1057ed0d50c3Schristos      140,     0,   160,   165,     0,   177,   192,   196,   206,   193,
1058ed0d50c3Schristos      197,   210,   259,   262,   263,   261,    14,    15,    13,    22,
1059ed0d50c3Schristos       31,     0,   172,   176,   162,   133,   138,   166,   157,   207,
1060ed0d50c3Schristos      211,    32,    42,   158
1061ed0d50c3Schristos };
1062ed0d50c3Schristos 
1063ed0d50c3Schristos   /* YYPGOTO[NTERM-NUM].  */
1064ed0d50c3Schristos static const yytype_int16 yypgoto[] =
1065ed0d50c3Schristos {
1066ed0d50c3Schristos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
1067ed0d50c3Schristos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
1068ed0d50c3Schristos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
1069ed0d50c3Schristos     -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
1070ed0d50c3Schristos      -39,   529,   -84,   -48,  -211,   -82,  -212,  -212,  -212,  -212,
1071ed0d50c3Schristos     -212,  -212,  -212,  -212,  -212,  -212
1072ed0d50c3Schristos };
1073ed0d50c3Schristos 
107406324dcfSchristos   /* YYDEFGOTO[NTERM-NUM].  */
107506324dcfSchristos static const yytype_int16 yydefgoto[] =
107606324dcfSchristos {
107706324dcfSchristos       -1,    84,   277,   458,   464,   634,   632,   631,   741,   292,
107806324dcfSchristos      242,   295,   298,   152,   151,   120,   121,   123,   122,   583,
107906324dcfSchristos      501,   493,   515,   598,   517,   599,   743,   712,   734,   652,
108006324dcfSchristos      737,   666,   611,   520,   526,   739,   675,   740,   682,   453,
108106324dcfSchristos      118,   218,   141,   110,   150,   142,    85,    86,    87,    88,
108206324dcfSchristos       89,    90,    91,    92,    93,    94
108306324dcfSchristos };
108406324dcfSchristos 
108506324dcfSchristos   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
108606324dcfSchristos      positive, shift that token.  If negative, reduce the rule whose
108706324dcfSchristos      number is the opposite.  If YYTABLE_NINF, syntax error.  */
1088ed0d50c3Schristos static const yytype_uint16 yytable[] =
1089ed0d50c3Schristos {
1090ed0d50c3Schristos      140,   184,   143,   149,   156,   158,   192,   197,   415,   417,
1091ed0d50c3Schristos      581,   587,   226,   206,   207,   208,   209,   210,   211,   212,
1092ed0d50c3Schristos      213,   369,   125,   126,   127,   128,   129,   130,   131,   214,
1093ed0d50c3Schristos      595,   655,   325,   657,   659,   706,   710,   116,   713,   215,
1094ed0d50c3Schristos      248,   319,   335,   111,   320,   221,   183,   370,   116,   191,
1095ed0d50c3Schristos      196,   203,   336,   100,   220,   225,   124,   125,   126,   127,
1096ed0d50c3Schristos      128,   129,   130,   131,   368,   255,   440,   232,   132,   133,
1097ed0d50c3Schristos      134,   135,   136,   137,   138,   206,   207,   208,   209,   210,
1098ed0d50c3Schristos      211,   212,   213,    95,   125,   126,   127,   128,   129,   130,
1099ed0d50c3Schristos      131,   116,   411,    96,   436,   132,   133,   134,   135,   189,
1100ed0d50c3Schristos      137,   138,   104,   105,   106,   107,   104,   105,   106,   107,
1101ed0d50c3Schristos      234,   237,    97,   345,   116,   430,   510,   511,   185,   649,
1102ed0d50c3Schristos      650,   116,   289,   290,   377,   346,   416,   418,   582,   588,
1103ed0d50c3Schristos      186,   347,   216,   217,   249,   145,   146,   147,   119,   371,
1104ed0d50c3Schristos      512,    98,   116,   651,   685,   686,   332,    99,   596,   656,
1105ed0d50c3Schristos      326,   658,   660,   707,   711,   116,   714,   153,   256,   257,
1106ed0d50c3Schristos      233,   315,   337,   316,   101,   188,   419,   420,   687,   102,
1107ed0d50c3Schristos      688,   689,   103,   421,   154,   139,   441,   132,   133,   134,
1108ed0d50c3Schristos      135,   189,   137,   138,   159,   412,   413,   437,   438,   160,
1109ed0d50c3Schristos      367,   190,   373,   328,   690,   163,   321,   322,   323,   338,
1110ed0d50c3Schristos      385,   313,   339,   235,   238,   312,   314,   324,   431,   161,
1111ed0d50c3Schristos      162,   327,   329,   108,   334,   164,   378,   165,   109,   349,
1112ed0d50c3Schristos      405,   174,   175,   348,   181,   125,   126,   127,   128,   129,
1113ed0d50c3Schristos      130,   131,   380,   204,   205,   366,   166,   372,     1,   176,
1114ed0d50c3Schristos      116,   379,   177,   384,   333,   178,   104,   105,   106,   107,
1115ed0d50c3Schristos      182,   341,   342,   343,   116,   179,     2,   167,   168,   169,
1116ed0d50c3Schristos      170,   180,   344,   404,   219,     3,     4,     5,     6,     7,
1117ed0d50c3Schristos        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1118ed0d50c3Schristos       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
1119ed0d50c3Schristos       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1120ed0d50c3Schristos       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1121ed0d50c3Schristos       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1122ed0d50c3Schristos       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1123ed0d50c3Schristos       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1124ed0d50c3Schristos       78,    79,    80,    81,    82,    83,   193,   442,   443,   187,
1125ed0d50c3Schristos      112,   113,   114,   115,   444,   299,   300,   227,   132,   133,
1126ed0d50c3Schristos      134,   135,   189,   137,   138,   222,   116,   194,   571,   572,
1127ed0d50c3Schristos      228,   171,   195,   172,   173,   573,   117,   132,   133,   134,
1128ed0d50c3Schristos      135,   189,   137,   138,   382,   239,   223,   601,   602,   396,
1129ed0d50c3Schristos      397,   224,   423,   424,   603,   243,   132,   133,   134,   135,
1130ed0d50c3Schristos      189,   137,   138,   402,   425,   426,   198,   199,   200,   201,
1131ed0d50c3Schristos      383,   145,   146,   147,   229,   132,   133,   134,   135,   189,
1132ed0d50c3Schristos      137,   138,   116,   230,   104,   105,   106,   107,   241,   403,
1133ed0d50c3Schristos      155,   231,   202,   125,   126,   127,   128,   129,   130,   131,
1134ed0d50c3Schristos      236,   144,   145,   146,   147,   495,   496,   497,   116,   116,
1135ed0d50c3Schristos      522,   523,   524,   148,   427,   428,   498,   240,   365,   447,
1136ed0d50c3Schristos      448,   525,   104,   105,   106,   107,   456,   457,   157,   449,
1137ed0d50c3Schristos      450,   244,   451,   452,   460,   461,   466,   467,   541,   542,
1138ed0d50c3Schristos      575,   576,   577,   578,   579,   580,   247,   245,   605,   606,
1139ed0d50c3Schristos      607,   608,   250,   609,   610,   622,   623,   624,   625,   626,
1140ed0d50c3Schristos      627,   629,   630,   251,   246,   283,   253,   252,   254,   258,
1141ed0d50c3Schristos      259,   260,   261,   262,   296,   263,   264,   265,   266,   297,
1142ed0d50c3Schristos      306,   267,   307,   308,   268,   269,   270,   271,   272,   273,
1143ed0d50c3Schristos      274,   309,   275,   311,   276,   331,   279,   278,   280,   281,
1144ed0d50c3Schristos      282,   340,   350,   284,   285,   351,   352,   302,   286,   287,
1145ed0d50c3Schristos      288,   291,   353,   293,   294,   354,   355,   318,   301,   304,
1146ed0d50c3Schristos      303,   305,   317,   310,   356,   357,   358,   359,   360,   361,
1147ed0d50c3Schristos      362,   363,   364,   374,   375,   376,   381,   386,   387,   388,
1148ed0d50c3Schristos      389,   390,   391,   392,   393,   394,   395,   398,   399,   400,
1149ed0d50c3Schristos      401,   406,   407,   408,   409,   410,   414,   422,   429,   434,
1150ed0d50c3Schristos      432,   445,   433,   435,   446,   439,   454,   463,   455,   459,
1151ed0d50c3Schristos      462,   465,   468,   479,   469,   471,   470,   473,   474,   476,
1152ed0d50c3Schristos      475,   472,   480,   481,   491,   478,   477,   483,   482,   494,
1153ed0d50c3Schristos      500,   488,   484,   486,   485,   487,   502,   531,   489,   490,
1154ed0d50c3Schristos      499,   492,   508,   514,   516,   518,   503,   521,   504,   505,
1155ed0d50c3Schristos      506,   507,   509,   513,   527,   544,   534,   519,   536,   538,
1156ed0d50c3Schristos      539,   540,   543,   545,   547,   548,   549,   550,   528,   551,
1157ed0d50c3Schristos      529,   530,   552,   557,   561,   532,   562,   553,   533,   563,
1158ed0d50c3Schristos      535,   565,   564,   537,   567,   566,   569,   589,   591,   546,
1159ed0d50c3Schristos      615,   616,   618,   620,   628,   635,   715,   636,   637,   638,
1160ed0d50c3Schristos      639,   640,   643,   644,   648,   653,   554,   555,   584,   677,
1161ed0d50c3Schristos      678,   559,   556,   558,   560,   568,   570,   574,   585,   586,
1162ed0d50c3Schristos      590,   592,   654,   661,   667,   673,   593,   594,   597,   600,
1163ed0d50c3Schristos      604,   612,   613,   617,   674,   676,   679,   614,   684,   691,
1164ed0d50c3Schristos      703,   704,   705,   619,   621,   633,   641,   642,   645,   708,
1165ed0d50c3Schristos      709,   719,   646,   720,   721,   730,   732,   733,   735,   662,
1166ed0d50c3Schristos      647,   736,   663,   738,   670,   742,   664,   665,   668,   669,
1167ed0d50c3Schristos        0,     0,     0,     0,     0,     0,     0,     0,   671,   680,
1168ed0d50c3Schristos      330,   672,   694,   681,   683,     0,     0,   692,     0,     0,
1169ed0d50c3Schristos        0,     0,     0,     0,     0,     0,     0,   693,     0,     0,
1170ed0d50c3Schristos        0,     0,     0,   696,   695,     0,     0,     0,     0,     0,
1171ed0d50c3Schristos      697,   698,   699,   700,   701,   702,     0,     0,     0,     0,
1172ed0d50c3Schristos        0,   716,     0,     0,   717,   718,   722,   723,   724,     0,
1173ed0d50c3Schristos        0,   725,   726,     0,     0,     0,     0,     0,   727,   728,
1174ed0d50c3Schristos      729,     0,     0,     0,   731
1175ed0d50c3Schristos };
1176ed0d50c3Schristos 
1177ed0d50c3Schristos static const yytype_int16 yycheck[] =
1178ed0d50c3Schristos {
1179ed0d50c3Schristos       39,    85,    41,    42,    52,    53,    88,    89,     3,     3,
1180ed0d50c3Schristos        3,     3,    94,     3,     4,     5,     6,     7,     8,     9,
1181ed0d50c3Schristos       10,     3,     4,     5,     6,     7,     8,     9,    10,    19,
1182ed0d50c3Schristos        3,     3,     3,     3,     3,     3,     3,    19,     3,    29,
1183ed0d50c3Schristos       29,   120,   253,   123,   123,    93,    85,    29,    19,    88,
1184ed0d50c3Schristos       89,    90,    11,    11,    93,    94,     3,     4,     5,     6,
1185ed0d50c3Schristos        7,     8,     9,    10,   275,    29,    11,    29,    15,    16,
1186ed0d50c3Schristos       17,    18,    19,    20,    21,     3,     4,     5,     6,     7,
1187ed0d50c3Schristos        8,     9,    10,   127,     4,     5,     6,     7,     8,     9,
1188ed0d50c3Schristos       10,    19,    29,   127,    29,    15,    16,    17,    18,    19,
1189ed0d50c3Schristos       20,    21,    11,    12,    13,    14,    11,    12,    13,    14,
1190ed0d50c3Schristos       29,    29,   127,    11,    19,    29,     5,     6,    11,     5,
1191ed0d50c3Schristos        6,    19,   122,   123,    29,    23,   121,   121,   121,   121,
1192ed0d50c3Schristos       23,    29,   122,   123,   123,    12,    13,    14,     4,   121,
1193ed0d50c3Schristos       29,   127,    19,    29,     5,     6,    23,   127,   121,   121,
1194ed0d50c3Schristos      121,   121,   121,   121,   121,    19,   121,     4,   122,   123,
1195ed0d50c3Schristos      122,   245,   121,   245,   122,     3,     5,     6,    29,   127,
1196ed0d50c3Schristos        5,     6,   127,    12,    24,   122,   121,    15,    16,    17,
1197ed0d50c3Schristos       18,    19,    20,    21,     3,   122,   123,   122,   123,     3,
1198ed0d50c3Schristos      274,    29,   276,   121,    29,     3,    12,    13,    14,   120,
1199ed0d50c3Schristos      282,   121,   123,   122,   122,   244,   245,    23,   122,    11,
1200ed0d50c3Schristos       12,   250,   251,   122,   253,     3,   121,     3,   127,   258,
1201ed0d50c3Schristos      302,    11,    12,   121,     3,     4,     5,     6,     7,     8,
1202ed0d50c3Schristos        9,    10,   280,    11,    12,   274,    11,   276,    12,     3,
1203ed0d50c3Schristos       19,   280,    11,   282,   121,     3,    11,    12,    13,    14,
1204ed0d50c3Schristos       29,    12,    13,    14,    19,    11,    30,    25,    26,    27,
1205ed0d50c3Schristos       28,     0,    23,   302,    29,    39,    40,    41,    42,    43,
1206ed0d50c3Schristos       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1207ed0d50c3Schristos       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1208ed0d50c3Schristos       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1209ed0d50c3Schristos       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1210ed0d50c3Schristos       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1211ed0d50c3Schristos       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1212ed0d50c3Schristos      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1213ed0d50c3Schristos      114,   115,   116,   117,   118,   119,     3,     5,     6,    24,
1214ed0d50c3Schristos        3,     4,     5,     6,    12,   122,   123,    29,    15,    16,
1215ed0d50c3Schristos       17,    18,    19,    20,    21,     3,    19,    24,     5,     6,
1216ed0d50c3Schristos       29,     3,    29,     5,     6,    12,    29,    15,    16,    17,
1217ed0d50c3Schristos       18,    19,    20,    21,     3,   122,    24,     5,     6,   122,
1218ed0d50c3Schristos      123,    29,   124,   125,    12,   122,    15,    16,    17,    18,
1219ed0d50c3Schristos       19,    20,    21,     3,   124,   125,     3,     4,     5,     6,
1220ed0d50c3Schristos       29,    12,    13,    14,    29,    15,    16,    17,    18,    19,
1221ed0d50c3Schristos       20,    21,    19,    29,    11,    12,    13,    14,   128,    29,
1222ed0d50c3Schristos       17,    29,    29,     4,     5,     6,     7,     8,     9,    10,
1223ed0d50c3Schristos       29,    11,    12,    13,    14,    12,    13,    14,    19,    19,
1224ed0d50c3Schristos       12,    13,    14,    23,   124,   125,    23,    29,    29,   124,
1225ed0d50c3Schristos      125,    23,    11,    12,    13,    14,   122,   123,    17,   124,
1226ed0d50c3Schristos      125,   120,   124,   125,   122,   123,   122,   123,    13,    14,
1227ed0d50c3Schristos      124,   125,   124,   125,   124,   125,    29,   120,   124,   125,
1228ed0d50c3Schristos      124,   125,   120,   124,   125,   124,   125,   124,   125,   124,
1229ed0d50c3Schristos      125,   124,   125,   120,   128,   126,   120,   123,   120,   120,
1230ed0d50c3Schristos      120,   120,   120,   120,    29,   120,   120,   120,   120,    14,
1231ed0d50c3Schristos       29,   120,    29,    29,   120,   120,   120,   120,   120,   120,
1232ed0d50c3Schristos      120,    29,   120,    29,   120,    14,   120,   122,   120,   120,
1233ed0d50c3Schristos      120,    29,    29,   126,   123,    29,    29,   120,   126,   126,
1234ed0d50c3Schristos      126,   126,    29,   122,   128,    29,    29,   120,   126,   123,
1235ed0d50c3Schristos      126,   126,   122,   124,    29,    29,    29,    29,    29,    29,
1236ed0d50c3Schristos       29,    29,    29,   120,    29,     3,   121,    29,    29,    14,
1237ed0d50c3Schristos       29,    29,    29,    29,    14,    29,    29,   125,    29,    14,
1238ed0d50c3Schristos       29,    29,    14,    29,   123,    29,    29,   124,    29,   125,
1239ed0d50c3Schristos       29,   120,    29,    29,   124,    29,    29,   120,   122,    29,
1240ed0d50c3Schristos      121,    29,    29,    29,   126,   123,   126,   120,   120,   120,
1241ed0d50c3Schristos      124,   126,    14,    29,    14,   124,   126,   120,   125,    29,
1242ed0d50c3Schristos       29,   120,   126,   123,   126,   126,    29,    11,   124,   120,
1243ed0d50c3Schristos      120,   123,    29,    29,    29,    29,   124,    29,   124,   124,
1244ed0d50c3Schristos      120,   120,   120,   120,    29,    14,    29,   123,    29,    29,
1245ed0d50c3Schristos       29,    29,    29,    29,    29,    14,    29,    29,   124,    14,
1246ed0d50c3Schristos      124,   124,    29,    29,    29,   120,    24,   127,   120,    29,
1247ed0d50c3Schristos      120,    14,    29,   120,    24,    29,    24,     3,     3,   121,
1248ed0d50c3Schristos       11,    11,    11,    11,    29,    29,     4,    29,    29,    29,
1249ed0d50c3Schristos       29,    29,    29,    29,    29,    29,   127,   126,   120,    11,
1250ed0d50c3Schristos       11,   125,   127,   126,   124,   126,   125,   124,   120,   120,
1251ed0d50c3Schristos      124,   124,    29,    29,    29,    29,   124,   124,   124,   124,
1252ed0d50c3Schristos      124,   120,   120,   124,    29,    29,    11,   120,    29,    29,
1253ed0d50c3Schristos       29,    29,    29,   124,   124,   124,   124,   124,   124,     3,
1254ed0d50c3Schristos        3,    11,   124,    11,    11,    29,    29,    24,    29,   120,
1255ed0d50c3Schristos      124,    29,   120,    29,   124,    29,   120,   120,   120,   120,
1256ed0d50c3Schristos       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   124,   120,
1257ed0d50c3Schristos      251,   124,   124,   120,   120,    -1,    -1,   126,    -1,    -1,
1258ed0d50c3Schristos       -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
1259ed0d50c3Schristos       -1,    -1,    -1,   120,   126,    -1,    -1,    -1,    -1,    -1,
1260ed0d50c3Schristos      124,   124,   124,   124,   124,   124,    -1,    -1,    -1,    -1,
1261ed0d50c3Schristos       -1,   124,    -1,    -1,   124,   124,   124,   124,   124,    -1,
1262ed0d50c3Schristos       -1,   124,   124,    -1,    -1,    -1,    -1,    -1,   124,   124,
1263ed0d50c3Schristos      124,    -1,    -1,    -1,   127
1264ed0d50c3Schristos };
1265ed0d50c3Schristos 
1266ed0d50c3Schristos   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1267ed0d50c3Schristos      symbol of state STATE-NUM.  */
1268ed0d50c3Schristos static const yytype_uint8 yystos[] =
1269ed0d50c3Schristos {
1270ed0d50c3Schristos        0,    12,    30,    39,    40,    41,    42,    43,    44,    45,
1271ed0d50c3Schristos       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1272ed0d50c3Schristos       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1273ed0d50c3Schristos       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1274ed0d50c3Schristos       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1275ed0d50c3Schristos       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1276ed0d50c3Schristos       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1277ed0d50c3Schristos      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1278ed0d50c3Schristos      116,   117,   118,   119,   130,   175,   176,   177,   178,   179,
1279ed0d50c3Schristos      180,   181,   182,   183,   184,   127,   127,   127,   127,   127,
1280ed0d50c3Schristos       11,   122,   127,   127,    11,    12,    13,    14,   122,   127,
1281ed0d50c3Schristos      172,   123,     3,     4,     5,     6,    19,    29,   169,     4,
1282ed0d50c3Schristos      144,   145,   147,   146,     3,     4,     5,     6,     7,     8,
1283ed0d50c3Schristos        9,    10,    15,    16,    17,    18,    19,    20,    21,   122,
1284ed0d50c3Schristos      169,   171,   174,   169,    11,    12,    13,    14,    23,   169,
1285ed0d50c3Schristos      173,   143,   142,     4,    24,    17,   172,    17,   172,     3,
1286ed0d50c3Schristos        3,    11,    12,     3,     3,     3,    11,    25,    26,    27,
1287ed0d50c3Schristos       28,     3,     5,     6,    11,    12,     3,    11,     3,    11,
1288ed0d50c3Schristos        0,     3,    29,   169,   171,    11,    23,    24,     3,    19,
1289ed0d50c3Schristos       29,   169,   174,     3,    24,    29,   169,   174,     3,     4,
1290ed0d50c3Schristos        5,     6,    29,   169,    11,    12,     3,     4,     5,     6,
1291ed0d50c3Schristos        7,     8,     9,    10,    19,    29,   122,   123,   170,    29,
1292ed0d50c3Schristos      169,   172,     3,    24,    29,   169,   174,    29,    29,    29,
1293ed0d50c3Schristos       29,    29,    29,   122,    29,   122,    29,    29,   122,   122,
1294ed0d50c3Schristos       29,   128,   139,   122,   120,   120,   128,    29,    29,   123,
1295ed0d50c3Schristos      120,   120,   123,   120,   120,    29,   122,   123,   120,   120,
1296ed0d50c3Schristos      120,   120,   120,   120,   120,   120,   120,   120,   120,   120,
1297ed0d50c3Schristos      120,   120,   120,   120,   120,   120,   120,   131,   122,   120,
1298ed0d50c3Schristos      120,   120,   120,   126,   126,   123,   126,   126,   126,   122,
1299ed0d50c3Schristos      123,   126,   138,   122,   128,   140,    29,    14,   141,   122,
1300ed0d50c3Schristos      123,   126,   120,   126,   123,   126,    29,    29,    29,    29,
1301ed0d50c3Schristos      124,    29,   169,   121,   169,   171,   174,   122,   120,   120,
1302ed0d50c3Schristos      123,    12,    13,    14,    23,     3,   121,   169,   121,   169,
1303ed0d50c3Schristos      170,    14,    23,   121,   169,   173,    11,   121,   120,   123,
1304ed0d50c3Schristos       29,    12,    13,    14,    23,    11,    23,    29,   121,   169,
1305ed0d50c3Schristos       29,    29,    29,    29,    29,    29,    29,    29,    29,    29,
1306ed0d50c3Schristos       29,    29,    29,    29,    29,    29,   169,   171,   173,     3,
1307ed0d50c3Schristos       29,   121,   169,   171,   120,    29,     3,    29,   121,   169,
1308ed0d50c3Schristos      172,   121,     3,    29,   169,   174,    29,    29,    14,    29,
1309ed0d50c3Schristos       29,    29,    29,    14,    29,    29,   122,   123,   125,    29,
1310ed0d50c3Schristos       14,    29,     3,    29,   169,   174,    29,    14,    29,   123,
1311ed0d50c3Schristos       29,    29,   122,   123,    29,     3,   121,     3,   121,     5,
1312ed0d50c3Schristos        6,    12,   124,   124,   125,   124,   125,   124,   125,    29,
1313ed0d50c3Schristos       29,   122,    29,    29,   125,    29,    29,   122,   123,    29,
1314ed0d50c3Schristos       11,   121,     5,     6,    12,   120,   124,   124,   125,   124,
1315ed0d50c3Schristos      125,   124,   125,   168,    29,   122,   122,   123,   132,    29,
1316ed0d50c3Schristos      122,   123,   121,   120,   133,    29,   122,   123,    29,   126,
1317ed0d50c3Schristos      126,   123,   126,   120,   120,   124,   120,   126,   124,    29,
1318ed0d50c3Schristos       14,    29,   125,   120,   126,   126,   123,   126,   120,   124,
1319ed0d50c3Schristos      120,    14,   123,   150,    29,    12,    13,    14,    23,   120,
1320ed0d50c3Schristos       29,   149,    29,   124,   124,   124,   120,   120,    29,   120,
1321ed0d50c3Schristos        5,     6,    29,   120,    29,   151,    29,   153,    29,   123,
1322ed0d50c3Schristos      162,    29,    12,    13,    14,    23,   163,    29,   124,   124,
1323ed0d50c3Schristos      124,    11,   120,   120,    29,   120,    29,   120,    29,    29,
1324ed0d50c3Schristos       29,    13,    14,    29,    14,    29,   121,    29,    14,    29,
1325ed0d50c3Schristos       29,    14,    29,   127,   127,   126,   127,    29,   126,   125,
1326ed0d50c3Schristos      124,    29,    24,    29,    29,    14,    29,    24,   126,    24,
1327ed0d50c3Schristos      125,     5,     6,    12,   124,   124,   125,   124,   125,   124,
1328ed0d50c3Schristos      125,     3,   121,   148,   120,   120,   120,     3,   121,     3,
1329ed0d50c3Schristos      124,     3,   124,   124,   124,     3,   121,   124,   152,   154,
1330ed0d50c3Schristos      124,     5,     6,    12,   124,   124,   125,   124,   125,   124,
1331ed0d50c3Schristos      125,   161,   120,   120,   120,    11,    11,   124,    11,   124,
1332ed0d50c3Schristos       11,   124,   124,   125,   124,   125,   124,   125,    29,   124,
1333ed0d50c3Schristos      125,   136,   135,   124,   134,    29,    29,    29,    29,    29,
1334ed0d50c3Schristos       29,   124,   124,    29,    29,   124,   124,   124,    29,     5,
1335ed0d50c3Schristos        6,    29,   158,    29,    29,     3,   121,     3,   121,     3,
1336ed0d50c3Schristos      121,    29,   120,   120,   120,   120,   160,    29,   120,   120,
1337ed0d50c3Schristos      124,   124,   124,    29,    29,   165,    29,    11,    11,    11,
1338ed0d50c3Schristos      120,   120,   167,   120,    29,     5,     6,    29,     5,     6,
1339ed0d50c3Schristos       29,    29,   126,   120,   124,   126,   120,   124,   124,   124,
1340ed0d50c3Schristos      124,   124,   124,    29,    29,    29,     3,   121,     3,     3,
1341ed0d50c3Schristos        3,   121,   156,     3,   121,     4,   124,   124,   124,    11,
1342ed0d50c3Schristos       11,    11,   124,   124,   124,   124,   124,   124,   124,   124,
1343ed0d50c3Schristos       29,   127,    29,    24,   157,    29,    29,   159,    29,   164,
1344ed0d50c3Schristos      166,   137,    29,   155
1345ed0d50c3Schristos };
1346ed0d50c3Schristos 
134706324dcfSchristos   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
134806324dcfSchristos static const yytype_uint8 yyr1[] =
134906324dcfSchristos {
135006324dcfSchristos        0,   129,   130,   130,   131,   130,   130,   130,   130,   132,
135106324dcfSchristos      130,   130,   130,   130,   130,   130,   130,   130,   130,   133,
135206324dcfSchristos      130,   130,   130,   130,   130,   134,   130,   135,   130,   136,
135306324dcfSchristos      130,   137,   130,   130,   130,   130,   130,   130,   130,   130,
135406324dcfSchristos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
135506324dcfSchristos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
135606324dcfSchristos      130,   130,   130,   130,   130,   138,   130,   130,   130,   130,
135706324dcfSchristos      130,   130,   130,   130,   139,   130,   130,   130,   130,   140,
135806324dcfSchristos      130,   130,   130,   130,   130,   130,   141,   130,   130,   130,
135906324dcfSchristos      130,   130,   142,   130,   143,   130,   130,   144,   130,   145,
136006324dcfSchristos      130,   146,   130,   147,   130,   130,   130,   130,   130,   148,
136106324dcfSchristos      130,   130,   130,   130,   130,   149,   130,   130,   130,   130,
136206324dcfSchristos      130,   150,   130,   151,   152,   130,   130,   130,   153,   154,
136306324dcfSchristos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
136406324dcfSchristos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
136506324dcfSchristos      130,   130,   130,   130,   130,   130,   130,   155,   130,   156,
136606324dcfSchristos      130,   157,   130,   158,   130,   159,   130,   160,   130,   130,
136706324dcfSchristos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
136806324dcfSchristos      161,   130,   162,   130,   163,   130,   130,   130,   130,   130,
136906324dcfSchristos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
137006324dcfSchristos      130,   130,   130,   130,   130,   130,   164,   130,   165,   130,
137106324dcfSchristos      166,   130,   167,   130,   168,   130,   130,   130,   130,   130,
137206324dcfSchristos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
137306324dcfSchristos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
137406324dcfSchristos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
137506324dcfSchristos      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
137606324dcfSchristos      130,   130,   130,   130,   130,   130,   169,   169,   170,   170,
137706324dcfSchristos      170,   170,   170,   170,   170,   170,   171,   171,   171,   171,
137806324dcfSchristos      171,   171,   171,   172,   172,   172,   172,   173,   173,   173,
137906324dcfSchristos      174,   174,   174,   174,   174,   174,   174,   175,   175,   175,
138006324dcfSchristos      175,   175,   175,   175,   175,   176,   176,   176,   177,   177,
138106324dcfSchristos      177,   178,   178,   178,   179,   179,   180,   180,   181,   181,
138206324dcfSchristos      182,   182,   183,   183,   184
138306324dcfSchristos };
138406324dcfSchristos 
138506324dcfSchristos   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
138606324dcfSchristos static const yytype_uint8 yyr2[] =
138706324dcfSchristos {
138806324dcfSchristos        0,     2,     1,     5,     0,     6,     4,     4,     4,     0,
138906324dcfSchristos        5,     6,     7,     9,     9,     9,     7,     5,     4,     0,
139006324dcfSchristos        5,     6,     9,     7,     5,     0,     7,     0,     7,     0,
139106324dcfSchristos        7,     0,    10,     3,     3,     3,     3,     3,     3,     7,
139206324dcfSchristos        7,     7,    10,     2,     3,     4,     3,     4,     1,     1,
139306324dcfSchristos        2,     4,     3,     4,     4,     2,     4,     4,     4,     6,
139406324dcfSchristos        7,     2,     2,     2,     2,     0,     3,     4,     2,     2,
139506324dcfSchristos        2,     2,     2,     2,     0,     3,     4,     9,     2,     0,
139606324dcfSchristos        3,     3,     5,     6,     8,     2,     0,     3,     4,     7,
139706324dcfSchristos        1,     1,     0,     2,     0,     2,     2,     0,     2,     0,
139806324dcfSchristos        2,     0,     2,     0,     2,     1,     5,     5,     5,     0,
139906324dcfSchristos        7,     6,     8,     4,     4,     0,     6,     6,     5,     7,
140006324dcfSchristos        6,     0,     6,     0,     0,     7,     4,     4,     0,     0,
140106324dcfSchristos        7,     7,     7,    10,     9,     9,     7,     7,    10,     9,
140206324dcfSchristos        9,     9,     9,     9,     9,     9,     8,     8,     9,     8,
140306324dcfSchristos        8,     9,     8,     8,     7,     8,     7,     0,    11,     0,
140406324dcfSchristos        9,     0,    10,     0,     8,     0,    10,     0,     8,     6,
140506324dcfSchristos        6,     6,     9,     6,     6,     6,     9,     9,     5,     5,
140606324dcfSchristos        0,     7,     0,     6,     0,     6,     4,     4,     6,     6,
140706324dcfSchristos        7,     7,     9,     9,     7,     7,     9,     9,     8,     8,
140806324dcfSchristos        8,     8,     8,     7,     8,     7,     0,    10,     0,     8,
140906324dcfSchristos        0,    10,     0,     8,     0,     5,     6,     5,     4,     4,
141006324dcfSchristos        4,     1,     2,     2,     2,     2,     2,     1,     1,     1,
141106324dcfSchristos        4,     4,     4,     4,     4,     4,     4,     4,     2,     2,
141206324dcfSchristos        2,     2,     4,     4,     4,     4,     4,     4,     4,     1,
141306324dcfSchristos        1,     1,     1,     1,     1,     1,     4,     6,     7,     9,
141406324dcfSchristos        7,     9,     9,     9,     4,     4,     0,     2,     1,     1,
141506324dcfSchristos        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
141606324dcfSchristos        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
141706324dcfSchristos        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
141806324dcfSchristos        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
141906324dcfSchristos        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
142006324dcfSchristos        1,     1,     1,     1,     1
142106324dcfSchristos };
142206324dcfSchristos 
142306324dcfSchristos 
1424ed0d50c3Schristos #define yyerrok         (yyerrstatus = 0)
1425ed0d50c3Schristos #define yyclearin       (yychar = YYEMPTY)
1426ed0d50c3Schristos #define YYEMPTY         (-2)
1427ed0d50c3Schristos #define YYEOF           0
1428ed0d50c3Schristos 
1429ed0d50c3Schristos #define YYACCEPT        goto yyacceptlab
1430ed0d50c3Schristos #define YYABORT         goto yyabortlab
1431ed0d50c3Schristos #define YYERROR         goto yyerrorlab
1432ed0d50c3Schristos 
1433ed0d50c3Schristos 
1434ed0d50c3Schristos #define YYRECOVERING()  (!!yyerrstatus)
1435ed0d50c3Schristos 
1436ed0d50c3Schristos #define YYBACKUP(Token, Value)                                  \
1437ed0d50c3Schristos do                                                              \
143806324dcfSchristos   if (yychar == YYEMPTY)                                        \
1439ed0d50c3Schristos     {                                                           \
1440ed0d50c3Schristos       yychar = (Token);                                         \
1441ed0d50c3Schristos       yylval = (Value);                                         \
144206324dcfSchristos       YYPOPSTACK (yylen);                                       \
144306324dcfSchristos       yystate = *yyssp;                                         \
1444ed0d50c3Schristos       goto yybackup;                                            \
1445ed0d50c3Schristos     }                                                           \
1446ed0d50c3Schristos   else                                                          \
1447ed0d50c3Schristos     {                                                           \
1448ed0d50c3Schristos       yyerror (YY_("syntax error: cannot back up")); \
1449ed0d50c3Schristos       YYERROR;                                                  \
1450ed0d50c3Schristos     }                                                           \
145106324dcfSchristos while (0)
1452ed0d50c3Schristos 
145306324dcfSchristos /* Error token number */
1454ed0d50c3Schristos #define YYTERROR        1
1455ed0d50c3Schristos #define YYERRCODE       256
1456ed0d50c3Schristos 
1457ed0d50c3Schristos 
1458ed0d50c3Schristos 
1459ed0d50c3Schristos /* Enable debugging if requested.  */
1460ed0d50c3Schristos #if YYDEBUG
1461ed0d50c3Schristos 
1462ed0d50c3Schristos # ifndef YYFPRINTF
1463ed0d50c3Schristos #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1464ed0d50c3Schristos #  define YYFPRINTF fprintf
1465ed0d50c3Schristos # endif
1466ed0d50c3Schristos 
1467ed0d50c3Schristos # define YYDPRINTF(Args)                        \
1468ed0d50c3Schristos do {                                            \
1469ed0d50c3Schristos   if (yydebug)                                  \
1470ed0d50c3Schristos     YYFPRINTF Args;                             \
147106324dcfSchristos } while (0)
147206324dcfSchristos 
147306324dcfSchristos /* This macro is provided for backward compatibility. */
147406324dcfSchristos #ifndef YY_LOCATION_PRINT
147506324dcfSchristos # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
147606324dcfSchristos #endif
147706324dcfSchristos 
1478ed0d50c3Schristos 
1479ed0d50c3Schristos # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
1480ed0d50c3Schristos do {                                                                      \
1481ed0d50c3Schristos   if (yydebug)                                                            \
1482ed0d50c3Schristos     {                                                                     \
1483ed0d50c3Schristos       YYFPRINTF (stderr, "%s ", Title);                                   \
1484ed0d50c3Schristos       yy_symbol_print (stderr,                                            \
1485ed0d50c3Schristos                   Type, Value); \
1486ed0d50c3Schristos       YYFPRINTF (stderr, "\n");                                           \
1487ed0d50c3Schristos     }                                                                     \
148806324dcfSchristos } while (0)
1489ed0d50c3Schristos 
1490ed0d50c3Schristos 
149106324dcfSchristos /*----------------------------------------.
149206324dcfSchristos | Print this symbol's value on YYOUTPUT.  |
149306324dcfSchristos `----------------------------------------*/
1494ed0d50c3Schristos 
1495ed0d50c3Schristos static void
yy_symbol_value_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep)1496ed0d50c3Schristos yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1497ed0d50c3Schristos {
149806324dcfSchristos   FILE *yyo = yyoutput;
149906324dcfSchristos   YYUSE (yyo);
1500ed0d50c3Schristos   if (!yyvaluep)
1501ed0d50c3Schristos     return;
1502ed0d50c3Schristos # ifdef YYPRINT
1503ed0d50c3Schristos   if (yytype < YYNTOKENS)
1504ed0d50c3Schristos     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1505ed0d50c3Schristos # endif
150606324dcfSchristos   YYUSE (yytype);
1507ed0d50c3Schristos }
1508ed0d50c3Schristos 
1509ed0d50c3Schristos 
1510ed0d50c3Schristos /*--------------------------------.
1511ed0d50c3Schristos | Print this symbol on YYOUTPUT.  |
1512ed0d50c3Schristos `--------------------------------*/
1513ed0d50c3Schristos 
1514ed0d50c3Schristos static void
yy_symbol_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep)1515ed0d50c3Schristos yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1516ed0d50c3Schristos {
151706324dcfSchristos   YYFPRINTF (yyoutput, "%s %s (",
151806324dcfSchristos              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
1519ed0d50c3Schristos 
1520ed0d50c3Schristos   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1521ed0d50c3Schristos   YYFPRINTF (yyoutput, ")");
1522ed0d50c3Schristos }
1523ed0d50c3Schristos 
1524ed0d50c3Schristos /*------------------------------------------------------------------.
1525ed0d50c3Schristos | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1526ed0d50c3Schristos | TOP (included).                                                   |
1527ed0d50c3Schristos `------------------------------------------------------------------*/
1528ed0d50c3Schristos 
1529ed0d50c3Schristos static void
yy_stack_print(yytype_int16 * yybottom,yytype_int16 * yytop)153006324dcfSchristos yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1531ed0d50c3Schristos {
1532ed0d50c3Schristos   YYFPRINTF (stderr, "Stack now");
153306324dcfSchristos   for (; yybottom <= yytop; yybottom++)
153406324dcfSchristos     {
153506324dcfSchristos       int yybot = *yybottom;
153606324dcfSchristos       YYFPRINTF (stderr, " %d", yybot);
153706324dcfSchristos     }
1538ed0d50c3Schristos   YYFPRINTF (stderr, "\n");
1539ed0d50c3Schristos }
1540ed0d50c3Schristos 
1541ed0d50c3Schristos # define YY_STACK_PRINT(Bottom, Top)                            \
1542ed0d50c3Schristos do {                                                            \
1543ed0d50c3Schristos   if (yydebug)                                                  \
1544ed0d50c3Schristos     yy_stack_print ((Bottom), (Top));                           \
154506324dcfSchristos } while (0)
1546ed0d50c3Schristos 
1547ed0d50c3Schristos 
1548ed0d50c3Schristos /*------------------------------------------------.
1549ed0d50c3Schristos | Report that the YYRULE is going to be reduced.  |
1550ed0d50c3Schristos `------------------------------------------------*/
1551ed0d50c3Schristos 
1552ed0d50c3Schristos static void
yy_reduce_print(yytype_int16 * yyssp,YYSTYPE * yyvsp,int yyrule)155306324dcfSchristos yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
1554ed0d50c3Schristos {
155506324dcfSchristos   unsigned long int yylno = yyrline[yyrule];
1556ed0d50c3Schristos   int yynrhs = yyr2[yyrule];
1557ed0d50c3Schristos   int yyi;
1558ed0d50c3Schristos   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1559ed0d50c3Schristos              yyrule - 1, yylno);
1560ed0d50c3Schristos   /* The symbols being reduced.  */
1561ed0d50c3Schristos   for (yyi = 0; yyi < yynrhs; yyi++)
1562ed0d50c3Schristos     {
156306324dcfSchristos       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
156406324dcfSchristos       yy_symbol_print (stderr,
156506324dcfSchristos                        yystos[yyssp[yyi + 1 - yynrhs]],
1566ed0d50c3Schristos                        &(yyvsp[(yyi + 1) - (yynrhs)])
1567ed0d50c3Schristos                                               );
156806324dcfSchristos       YYFPRINTF (stderr, "\n");
1569ed0d50c3Schristos     }
1570ed0d50c3Schristos }
1571ed0d50c3Schristos 
1572ed0d50c3Schristos # define YY_REDUCE_PRINT(Rule)          \
1573ed0d50c3Schristos do {                                    \
1574ed0d50c3Schristos   if (yydebug)                          \
157506324dcfSchristos     yy_reduce_print (yyssp, yyvsp, Rule); \
157606324dcfSchristos } while (0)
1577ed0d50c3Schristos 
1578ed0d50c3Schristos /* Nonzero means print parse trace.  It is left uninitialized so that
1579ed0d50c3Schristos    multiple parsers can coexist.  */
1580ed0d50c3Schristos int yydebug;
1581ed0d50c3Schristos #else /* !YYDEBUG */
1582ed0d50c3Schristos # define YYDPRINTF(Args)
1583ed0d50c3Schristos # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1584ed0d50c3Schristos # define YY_STACK_PRINT(Bottom, Top)
1585ed0d50c3Schristos # define YY_REDUCE_PRINT(Rule)
1586ed0d50c3Schristos #endif /* !YYDEBUG */
1587ed0d50c3Schristos 
1588ed0d50c3Schristos 
1589ed0d50c3Schristos /* YYINITDEPTH -- initial size of the parser's stacks.  */
1590ed0d50c3Schristos #ifndef YYINITDEPTH
1591ed0d50c3Schristos # define YYINITDEPTH 200
1592ed0d50c3Schristos #endif
1593ed0d50c3Schristos 
1594ed0d50c3Schristos /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1595ed0d50c3Schristos    if the built-in stack extension method is used).
1596ed0d50c3Schristos 
1597ed0d50c3Schristos    Do not make this value too large; the results are undefined if
1598ed0d50c3Schristos    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1599ed0d50c3Schristos    evaluated with infinite-precision integer arithmetic.  */
1600ed0d50c3Schristos 
1601ed0d50c3Schristos #ifndef YYMAXDEPTH
1602ed0d50c3Schristos # define YYMAXDEPTH 10000
1603ed0d50c3Schristos #endif
1604ed0d50c3Schristos 
1605ed0d50c3Schristos 
1606ed0d50c3Schristos #if YYERROR_VERBOSE
1607ed0d50c3Schristos 
1608ed0d50c3Schristos # ifndef yystrlen
1609ed0d50c3Schristos #  if defined __GLIBC__ && defined _STRING_H
1610ed0d50c3Schristos #   define yystrlen strlen
1611ed0d50c3Schristos #  else
1612ed0d50c3Schristos /* Return the length of YYSTR.  */
1613ed0d50c3Schristos static YYSIZE_T
yystrlen(const char * yystr)1614ed0d50c3Schristos yystrlen (const char *yystr)
1615ed0d50c3Schristos {
1616ed0d50c3Schristos   YYSIZE_T yylen;
1617ed0d50c3Schristos   for (yylen = 0; yystr[yylen]; yylen++)
1618ed0d50c3Schristos     continue;
1619ed0d50c3Schristos   return yylen;
1620ed0d50c3Schristos }
1621ed0d50c3Schristos #  endif
1622ed0d50c3Schristos # endif
1623ed0d50c3Schristos 
1624ed0d50c3Schristos # ifndef yystpcpy
1625ed0d50c3Schristos #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1626ed0d50c3Schristos #   define yystpcpy stpcpy
1627ed0d50c3Schristos #  else
1628ed0d50c3Schristos /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1629ed0d50c3Schristos    YYDEST.  */
1630ed0d50c3Schristos static char *
yystpcpy(char * yydest,const char * yysrc)1631ed0d50c3Schristos yystpcpy (char *yydest, const char *yysrc)
1632ed0d50c3Schristos {
1633ed0d50c3Schristos   char *yyd = yydest;
1634ed0d50c3Schristos   const char *yys = yysrc;
1635ed0d50c3Schristos 
1636ed0d50c3Schristos   while ((*yyd++ = *yys++) != '\0')
1637ed0d50c3Schristos     continue;
1638ed0d50c3Schristos 
1639ed0d50c3Schristos   return yyd - 1;
1640ed0d50c3Schristos }
1641ed0d50c3Schristos #  endif
1642ed0d50c3Schristos # endif
1643ed0d50c3Schristos 
1644ed0d50c3Schristos # ifndef yytnamerr
1645ed0d50c3Schristos /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1646ed0d50c3Schristos    quotes and backslashes, so that it's suitable for yyerror.  The
1647ed0d50c3Schristos    heuristic is that double-quoting is unnecessary unless the string
1648ed0d50c3Schristos    contains an apostrophe, a comma, or backslash (other than
1649ed0d50c3Schristos    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1650ed0d50c3Schristos    null, do not copy; instead, return the length of what the result
1651ed0d50c3Schristos    would have been.  */
1652ed0d50c3Schristos static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)1653ed0d50c3Schristos yytnamerr (char *yyres, const char *yystr)
1654ed0d50c3Schristos {
1655ed0d50c3Schristos   if (*yystr == '"')
1656ed0d50c3Schristos     {
1657ed0d50c3Schristos       YYSIZE_T yyn = 0;
1658ed0d50c3Schristos       char const *yyp = yystr;
1659ed0d50c3Schristos 
1660ed0d50c3Schristos       for (;;)
1661ed0d50c3Schristos         switch (*++yyp)
1662ed0d50c3Schristos           {
1663ed0d50c3Schristos           case '\'':
1664ed0d50c3Schristos           case ',':
1665ed0d50c3Schristos             goto do_not_strip_quotes;
1666ed0d50c3Schristos 
1667ed0d50c3Schristos           case '\\':
1668ed0d50c3Schristos             if (*++yyp != '\\')
1669ed0d50c3Schristos               goto do_not_strip_quotes;
1670ed0d50c3Schristos             /* Fall through.  */
1671ed0d50c3Schristos           default:
1672ed0d50c3Schristos             if (yyres)
1673ed0d50c3Schristos               yyres[yyn] = *yyp;
1674ed0d50c3Schristos             yyn++;
1675ed0d50c3Schristos             break;
1676ed0d50c3Schristos 
1677ed0d50c3Schristos           case '"':
1678ed0d50c3Schristos             if (yyres)
1679ed0d50c3Schristos               yyres[yyn] = '\0';
1680ed0d50c3Schristos             return yyn;
1681ed0d50c3Schristos           }
1682ed0d50c3Schristos     do_not_strip_quotes: ;
1683ed0d50c3Schristos     }
1684ed0d50c3Schristos 
1685ed0d50c3Schristos   if (! yyres)
1686ed0d50c3Schristos     return yystrlen (yystr);
1687ed0d50c3Schristos 
1688ed0d50c3Schristos   return yystpcpy (yyres, yystr) - yyres;
1689ed0d50c3Schristos }
1690ed0d50c3Schristos # endif
1691ed0d50c3Schristos 
169206324dcfSchristos /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
169306324dcfSchristos    about the unexpected token YYTOKEN for the state stack whose top is
169406324dcfSchristos    YYSSP.
1695ed0d50c3Schristos 
169606324dcfSchristos    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
169706324dcfSchristos    not large enough to hold the message.  In that case, also set
169806324dcfSchristos    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
169906324dcfSchristos    required number of bytes is too large to store.  */
170006324dcfSchristos static int
yysyntax_error(YYSIZE_T * yymsg_alloc,char ** yymsg,yytype_int16 * yyssp,int yytoken)170106324dcfSchristos yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
170206324dcfSchristos                 yytype_int16 *yyssp, int yytoken)
1703ed0d50c3Schristos {
170406324dcfSchristos   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
1705ed0d50c3Schristos   YYSIZE_T yysize = yysize0;
1706ed0d50c3Schristos   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
170706324dcfSchristos   /* Internationalized format string. */
170806324dcfSchristos   const char *yyformat = YY_NULLPTR;
170906324dcfSchristos   /* Arguments of yyformat. */
1710ed0d50c3Schristos   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
171106324dcfSchristos   /* Number of reported tokens (one for the "unexpected", one per
171206324dcfSchristos      "expected"). */
171306324dcfSchristos   int yycount = 0;
1714ed0d50c3Schristos 
171506324dcfSchristos   /* There are many possibilities here to consider:
171606324dcfSchristos      - If this state is a consistent state with a default action, then
171706324dcfSchristos        the only way this function was invoked is if the default action
171806324dcfSchristos        is an error action.  In that case, don't check for expected
171906324dcfSchristos        tokens because there are none.
172006324dcfSchristos      - The only way there can be no lookahead present (in yychar) is if
172106324dcfSchristos        this state is a consistent state with a default action.  Thus,
172206324dcfSchristos        detecting the absence of a lookahead is sufficient to determine
172306324dcfSchristos        that there is no unexpected or expected token to report.  In that
172406324dcfSchristos        case, just report a simple "syntax error".
172506324dcfSchristos      - Don't assume there isn't a lookahead just because this state is a
172606324dcfSchristos        consistent state with a default action.  There might have been a
172706324dcfSchristos        previous inconsistent state, consistent state with a non-default
172806324dcfSchristos        action, or user semantic action that manipulated yychar.
172906324dcfSchristos      - Of course, the expected token list depends on states to have
173006324dcfSchristos        correct lookahead information, and it depends on the parser not
173106324dcfSchristos        to perform extra reductions after fetching a lookahead from the
173206324dcfSchristos        scanner and before detecting a syntax error.  Thus, state merging
173306324dcfSchristos        (from LALR or IELR) and default reductions corrupt the expected
173406324dcfSchristos        token list.  However, the list is correct for canonical LR with
173506324dcfSchristos        one exception: it will still contain any token that will not be
173606324dcfSchristos        accepted due to an error action in a later state.
173706324dcfSchristos   */
173806324dcfSchristos   if (yytoken != YYEMPTY)
173906324dcfSchristos     {
174006324dcfSchristos       int yyn = yypact[*yyssp];
174106324dcfSchristos       yyarg[yycount++] = yytname[yytoken];
174206324dcfSchristos       if (!yypact_value_is_default (yyn))
174306324dcfSchristos         {
1744ed0d50c3Schristos           /* Start YYX at -YYN if negative to avoid negative indexes in
174506324dcfSchristos              YYCHECK.  In other words, skip the first -YYN actions for
174606324dcfSchristos              this state because they are default actions.  */
1747ed0d50c3Schristos           int yyxbegin = yyn < 0 ? -yyn : 0;
1748ed0d50c3Schristos           /* Stay within bounds of both yycheck and yytname.  */
1749ed0d50c3Schristos           int yychecklim = YYLAST - yyn + 1;
1750ed0d50c3Schristos           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
175106324dcfSchristos           int yyx;
1752ed0d50c3Schristos 
1753ed0d50c3Schristos           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
175406324dcfSchristos             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
175506324dcfSchristos                 && !yytable_value_is_error (yytable[yyx + yyn]))
1756ed0d50c3Schristos               {
1757ed0d50c3Schristos                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1758ed0d50c3Schristos                   {
1759ed0d50c3Schristos                     yycount = 1;
1760ed0d50c3Schristos                     yysize = yysize0;
1761ed0d50c3Schristos                     break;
1762ed0d50c3Schristos                   }
1763ed0d50c3Schristos                 yyarg[yycount++] = yytname[yyx];
176406324dcfSchristos                 {
176506324dcfSchristos                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
176606324dcfSchristos                   if (! (yysize <= yysize1
176706324dcfSchristos                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
176806324dcfSchristos                     return 2;
1769ed0d50c3Schristos                   yysize = yysize1;
177006324dcfSchristos                 }
177106324dcfSchristos               }
177206324dcfSchristos         }
1773ed0d50c3Schristos     }
1774ed0d50c3Schristos 
177506324dcfSchristos   switch (yycount)
1776ed0d50c3Schristos     {
177706324dcfSchristos # define YYCASE_(N, S)                      \
177806324dcfSchristos       case N:                               \
177906324dcfSchristos         yyformat = S;                       \
178006324dcfSchristos       break
1781*b88e3e88Schristos     default: /* Avoid compiler warnings. */
178206324dcfSchristos       YYCASE_(0, YY_("syntax error"));
178306324dcfSchristos       YYCASE_(1, YY_("syntax error, unexpected %s"));
178406324dcfSchristos       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
178506324dcfSchristos       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
178606324dcfSchristos       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
178706324dcfSchristos       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
178806324dcfSchristos # undef YYCASE_
178906324dcfSchristos     }
179006324dcfSchristos 
179106324dcfSchristos   {
179206324dcfSchristos     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
179306324dcfSchristos     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
179406324dcfSchristos       return 2;
179506324dcfSchristos     yysize = yysize1;
179606324dcfSchristos   }
179706324dcfSchristos 
179806324dcfSchristos   if (*yymsg_alloc < yysize)
179906324dcfSchristos     {
180006324dcfSchristos       *yymsg_alloc = 2 * yysize;
180106324dcfSchristos       if (! (yysize <= *yymsg_alloc
180206324dcfSchristos              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
180306324dcfSchristos         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
180406324dcfSchristos       return 1;
180506324dcfSchristos     }
180606324dcfSchristos 
1807ed0d50c3Schristos   /* Avoid sprintf, as that infringes on the user's name space.
1808ed0d50c3Schristos      Don't have undefined behavior even if the translation
1809ed0d50c3Schristos      produced a string with the wrong number of "%s"s.  */
1810ed0d50c3Schristos   {
181106324dcfSchristos     char *yyp = *yymsg;
181206324dcfSchristos     int yyi = 0;
181306324dcfSchristos     while ((*yyp = *yyformat) != '\0')
181406324dcfSchristos       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1815ed0d50c3Schristos         {
1816ed0d50c3Schristos           yyp += yytnamerr (yyp, yyarg[yyi++]);
181706324dcfSchristos           yyformat += 2;
1818ed0d50c3Schristos         }
1819ed0d50c3Schristos       else
1820ed0d50c3Schristos         {
1821ed0d50c3Schristos           yyp++;
182206324dcfSchristos           yyformat++;
1823ed0d50c3Schristos         }
1824ed0d50c3Schristos   }
182506324dcfSchristos   return 0;
1826ed0d50c3Schristos }
1827ed0d50c3Schristos #endif /* YYERROR_VERBOSE */
1828ed0d50c3Schristos 
1829ed0d50c3Schristos /*-----------------------------------------------.
1830ed0d50c3Schristos | Release the memory associated to this symbol.  |
1831ed0d50c3Schristos `-----------------------------------------------*/
1832ed0d50c3Schristos 
1833ed0d50c3Schristos static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep)1834ed0d50c3Schristos yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1835ed0d50c3Schristos {
1836ed0d50c3Schristos   YYUSE (yyvaluep);
1837ed0d50c3Schristos   if (!yymsg)
1838ed0d50c3Schristos     yymsg = "Deleting";
1839ed0d50c3Schristos   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1840ed0d50c3Schristos 
184106324dcfSchristos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
184206324dcfSchristos   YYUSE (yytype);
184306324dcfSchristos   YY_IGNORE_MAYBE_UNINITIALIZED_END
1844ed0d50c3Schristos }
1845ed0d50c3Schristos 
1846ed0d50c3Schristos 
1847ed0d50c3Schristos 
184806324dcfSchristos 
184906324dcfSchristos /* The lookahead symbol.  */
1850ed0d50c3Schristos int yychar;
1851ed0d50c3Schristos 
185206324dcfSchristos /* The semantic value of the lookahead symbol.  */
1853ed0d50c3Schristos YYSTYPE yylval;
1854ed0d50c3Schristos /* Number of syntax errors so far.  */
1855ed0d50c3Schristos int yynerrs;
1856ed0d50c3Schristos 
1857ed0d50c3Schristos 
1858ed0d50c3Schristos /*----------.
1859ed0d50c3Schristos | yyparse.  |
1860ed0d50c3Schristos `----------*/
1861ed0d50c3Schristos 
1862ed0d50c3Schristos int
yyparse(void)1863ed0d50c3Schristos yyparse (void)
1864ed0d50c3Schristos {
1865ed0d50c3Schristos     int yystate;
1866ed0d50c3Schristos     /* Number of tokens to shift before error messages enabled.  */
1867ed0d50c3Schristos     int yyerrstatus;
186806324dcfSchristos 
186906324dcfSchristos     /* The stacks and their tools:
187006324dcfSchristos        'yyss': related to states.
187106324dcfSchristos        'yyvs': related to semantic values.
187206324dcfSchristos 
187306324dcfSchristos        Refer to the stacks through separate pointers, to allow yyoverflow
187406324dcfSchristos        to reallocate them elsewhere.  */
187506324dcfSchristos 
187606324dcfSchristos     /* The state stack.  */
187706324dcfSchristos     yytype_int16 yyssa[YYINITDEPTH];
187806324dcfSchristos     yytype_int16 *yyss;
187906324dcfSchristos     yytype_int16 *yyssp;
188006324dcfSchristos 
188106324dcfSchristos     /* The semantic value stack.  */
188206324dcfSchristos     YYSTYPE yyvsa[YYINITDEPTH];
188306324dcfSchristos     YYSTYPE *yyvs;
188406324dcfSchristos     YYSTYPE *yyvsp;
188506324dcfSchristos 
188606324dcfSchristos     YYSIZE_T yystacksize;
188706324dcfSchristos 
188806324dcfSchristos   int yyn;
188906324dcfSchristos   int yyresult;
189006324dcfSchristos   /* Lookahead token as an internal (translated) token number.  */
1891ed0d50c3Schristos   int yytoken = 0;
189206324dcfSchristos   /* The variables used to return semantic value and location from the
189306324dcfSchristos      action routines.  */
189406324dcfSchristos   YYSTYPE yyval;
189506324dcfSchristos 
1896ed0d50c3Schristos #if YYERROR_VERBOSE
1897ed0d50c3Schristos   /* Buffer for error messages, and its allocated size.  */
1898ed0d50c3Schristos   char yymsgbuf[128];
1899ed0d50c3Schristos   char *yymsg = yymsgbuf;
1900ed0d50c3Schristos   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1901ed0d50c3Schristos #endif
1902ed0d50c3Schristos 
1903ed0d50c3Schristos #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
1904ed0d50c3Schristos 
1905ed0d50c3Schristos   /* The number of symbols on the RHS of the reduced rule.
1906ed0d50c3Schristos      Keep to zero when no symbol should be popped.  */
1907ed0d50c3Schristos   int yylen = 0;
1908ed0d50c3Schristos 
190906324dcfSchristos   yyssp = yyss = yyssa;
191006324dcfSchristos   yyvsp = yyvs = yyvsa;
191106324dcfSchristos   yystacksize = YYINITDEPTH;
191206324dcfSchristos 
1913ed0d50c3Schristos   YYDPRINTF ((stderr, "Starting parse\n"));
1914ed0d50c3Schristos 
1915ed0d50c3Schristos   yystate = 0;
1916ed0d50c3Schristos   yyerrstatus = 0;
1917ed0d50c3Schristos   yynerrs = 0;
1918ed0d50c3Schristos   yychar = YYEMPTY; /* Cause a token to be read.  */
1919ed0d50c3Schristos   goto yysetstate;
1920ed0d50c3Schristos 
1921ed0d50c3Schristos /*------------------------------------------------------------.
1922ed0d50c3Schristos | yynewstate -- Push a new state, which is found in yystate.  |
1923ed0d50c3Schristos `------------------------------------------------------------*/
1924ed0d50c3Schristos  yynewstate:
1925ed0d50c3Schristos   /* In all cases, when you get here, the value and location stacks
1926ed0d50c3Schristos      have just been pushed.  So pushing a state here evens the stacks.  */
1927ed0d50c3Schristos   yyssp++;
1928ed0d50c3Schristos 
1929ed0d50c3Schristos  yysetstate:
1930ed0d50c3Schristos   *yyssp = yystate;
1931ed0d50c3Schristos 
1932ed0d50c3Schristos   if (yyss + yystacksize - 1 <= yyssp)
1933ed0d50c3Schristos     {
1934ed0d50c3Schristos       /* Get the current used size of the three stacks, in elements.  */
1935ed0d50c3Schristos       YYSIZE_T yysize = yyssp - yyss + 1;
1936ed0d50c3Schristos 
1937ed0d50c3Schristos #ifdef yyoverflow
1938ed0d50c3Schristos       {
1939ed0d50c3Schristos         /* Give user a chance to reallocate the stack.  Use copies of
1940ed0d50c3Schristos            these so that the &'s don't force the real ones into
1941ed0d50c3Schristos            memory.  */
1942ed0d50c3Schristos         YYSTYPE *yyvs1 = yyvs;
1943ed0d50c3Schristos         yytype_int16 *yyss1 = yyss;
1944ed0d50c3Schristos 
1945ed0d50c3Schristos         /* Each stack pointer address is followed by the size of the
1946ed0d50c3Schristos            data in use in that stack, in bytes.  This used to be a
1947ed0d50c3Schristos            conditional around just the two extra args, but that might
1948ed0d50c3Schristos            be undefined if yyoverflow is a macro.  */
1949ed0d50c3Schristos         yyoverflow (YY_("memory exhausted"),
1950ed0d50c3Schristos                     &yyss1, yysize * sizeof (*yyssp),
1951ed0d50c3Schristos                     &yyvs1, yysize * sizeof (*yyvsp),
1952ed0d50c3Schristos                     &yystacksize);
1953ed0d50c3Schristos 
1954ed0d50c3Schristos         yyss = yyss1;
1955ed0d50c3Schristos         yyvs = yyvs1;
1956ed0d50c3Schristos       }
1957ed0d50c3Schristos #else /* no yyoverflow */
1958ed0d50c3Schristos # ifndef YYSTACK_RELOCATE
1959ed0d50c3Schristos       goto yyexhaustedlab;
1960ed0d50c3Schristos # else
1961ed0d50c3Schristos       /* Extend the stack our own way.  */
1962ed0d50c3Schristos       if (YYMAXDEPTH <= yystacksize)
1963ed0d50c3Schristos         goto yyexhaustedlab;
1964ed0d50c3Schristos       yystacksize *= 2;
1965ed0d50c3Schristos       if (YYMAXDEPTH < yystacksize)
1966ed0d50c3Schristos         yystacksize = YYMAXDEPTH;
1967ed0d50c3Schristos 
1968ed0d50c3Schristos       {
1969ed0d50c3Schristos         yytype_int16 *yyss1 = yyss;
1970ed0d50c3Schristos         union yyalloc *yyptr =
1971ed0d50c3Schristos           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1972ed0d50c3Schristos         if (! yyptr)
1973ed0d50c3Schristos           goto yyexhaustedlab;
197406324dcfSchristos         YYSTACK_RELOCATE (yyss_alloc, yyss);
197506324dcfSchristos         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1976ed0d50c3Schristos #  undef YYSTACK_RELOCATE
1977ed0d50c3Schristos         if (yyss1 != yyssa)
1978ed0d50c3Schristos           YYSTACK_FREE (yyss1);
1979ed0d50c3Schristos       }
1980ed0d50c3Schristos # endif
1981ed0d50c3Schristos #endif /* no yyoverflow */
1982ed0d50c3Schristos 
1983ed0d50c3Schristos       yyssp = yyss + yysize - 1;
1984ed0d50c3Schristos       yyvsp = yyvs + yysize - 1;
1985ed0d50c3Schristos 
1986ed0d50c3Schristos       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1987ed0d50c3Schristos                   (unsigned long int) yystacksize));
1988ed0d50c3Schristos 
1989ed0d50c3Schristos       if (yyss + yystacksize - 1 <= yyssp)
1990ed0d50c3Schristos         YYABORT;
1991ed0d50c3Schristos     }
1992ed0d50c3Schristos 
1993ed0d50c3Schristos   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1994ed0d50c3Schristos 
199506324dcfSchristos   if (yystate == YYFINAL)
199606324dcfSchristos     YYACCEPT;
199706324dcfSchristos 
1998ed0d50c3Schristos   goto yybackup;
1999ed0d50c3Schristos 
2000ed0d50c3Schristos /*-----------.
2001ed0d50c3Schristos | yybackup.  |
2002ed0d50c3Schristos `-----------*/
2003ed0d50c3Schristos yybackup:
2004ed0d50c3Schristos 
2005ed0d50c3Schristos   /* Do appropriate processing given the current state.  Read a
200606324dcfSchristos      lookahead token if we need one and don't already have one.  */
2007ed0d50c3Schristos 
200806324dcfSchristos   /* First try to decide what to do without reference to lookahead token.  */
2009ed0d50c3Schristos   yyn = yypact[yystate];
201006324dcfSchristos   if (yypact_value_is_default (yyn))
2011ed0d50c3Schristos     goto yydefault;
2012ed0d50c3Schristos 
201306324dcfSchristos   /* Not known => get a lookahead token if don't already have one.  */
2014ed0d50c3Schristos 
201506324dcfSchristos   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
2016ed0d50c3Schristos   if (yychar == YYEMPTY)
2017ed0d50c3Schristos     {
2018ed0d50c3Schristos       YYDPRINTF ((stderr, "Reading a token: "));
201906324dcfSchristos       yychar = yylex ();
2020ed0d50c3Schristos     }
2021ed0d50c3Schristos 
2022ed0d50c3Schristos   if (yychar <= YYEOF)
2023ed0d50c3Schristos     {
2024ed0d50c3Schristos       yychar = yytoken = YYEOF;
2025ed0d50c3Schristos       YYDPRINTF ((stderr, "Now at end of input.\n"));
2026ed0d50c3Schristos     }
2027ed0d50c3Schristos   else
2028ed0d50c3Schristos     {
2029ed0d50c3Schristos       yytoken = YYTRANSLATE (yychar);
2030ed0d50c3Schristos       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2031ed0d50c3Schristos     }
2032ed0d50c3Schristos 
2033ed0d50c3Schristos   /* If the proper action on seeing token YYTOKEN is to reduce or to
2034ed0d50c3Schristos      detect an error, take that action.  */
2035ed0d50c3Schristos   yyn += yytoken;
2036ed0d50c3Schristos   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2037ed0d50c3Schristos     goto yydefault;
2038ed0d50c3Schristos   yyn = yytable[yyn];
2039ed0d50c3Schristos   if (yyn <= 0)
2040ed0d50c3Schristos     {
204106324dcfSchristos       if (yytable_value_is_error (yyn))
2042ed0d50c3Schristos         goto yyerrlab;
2043ed0d50c3Schristos       yyn = -yyn;
2044ed0d50c3Schristos       goto yyreduce;
2045ed0d50c3Schristos     }
2046ed0d50c3Schristos 
2047ed0d50c3Schristos   /* Count tokens shifted since error; after three, turn off error
2048ed0d50c3Schristos      status.  */
2049ed0d50c3Schristos   if (yyerrstatus)
2050ed0d50c3Schristos     yyerrstatus--;
2051ed0d50c3Schristos 
205206324dcfSchristos   /* Shift the lookahead token.  */
2053ed0d50c3Schristos   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2054ed0d50c3Schristos 
205506324dcfSchristos   /* Discard the shifted token.  */
2056ed0d50c3Schristos   yychar = YYEMPTY;
2057ed0d50c3Schristos 
2058ed0d50c3Schristos   yystate = yyn;
205906324dcfSchristos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2060ed0d50c3Schristos   *++yyvsp = yylval;
206106324dcfSchristos   YY_IGNORE_MAYBE_UNINITIALIZED_END
2062ed0d50c3Schristos 
2063ed0d50c3Schristos   goto yynewstate;
2064ed0d50c3Schristos 
2065ed0d50c3Schristos 
2066ed0d50c3Schristos /*-----------------------------------------------------------.
2067ed0d50c3Schristos | yydefault -- do the default action for the current state.  |
2068ed0d50c3Schristos `-----------------------------------------------------------*/
2069ed0d50c3Schristos yydefault:
2070ed0d50c3Schristos   yyn = yydefact[yystate];
2071ed0d50c3Schristos   if (yyn == 0)
2072ed0d50c3Schristos     goto yyerrlab;
2073ed0d50c3Schristos   goto yyreduce;
2074ed0d50c3Schristos 
2075ed0d50c3Schristos 
2076ed0d50c3Schristos /*-----------------------------.
2077ed0d50c3Schristos | yyreduce -- Do a reduction.  |
2078ed0d50c3Schristos `-----------------------------*/
2079ed0d50c3Schristos yyreduce:
2080ed0d50c3Schristos   /* yyn is the number of a rule to reduce with.  */
2081ed0d50c3Schristos   yylen = yyr2[yyn];
2082ed0d50c3Schristos 
2083ed0d50c3Schristos   /* If YYLEN is nonzero, implement the default value of the action:
208406324dcfSchristos      '$$ = $1'.
2085ed0d50c3Schristos 
2086ed0d50c3Schristos      Otherwise, the following line sets YYVAL to garbage.
2087ed0d50c3Schristos      This behavior is undocumented and Bison
2088ed0d50c3Schristos      users should not rely upon it.  Assigning to YYVAL
2089ed0d50c3Schristos      unconditionally makes the parser a bit smaller, and it avoids a
2090ed0d50c3Schristos      GCC warning that YYVAL may be used uninitialized.  */
2091ed0d50c3Schristos   yyval = yyvsp[1-yylen];
2092ed0d50c3Schristos 
2093ed0d50c3Schristos 
2094ed0d50c3Schristos   YY_REDUCE_PRINT (yyn);
2095ed0d50c3Schristos   switch (yyn)
2096ed0d50c3Schristos     {
2097ed0d50c3Schristos         case 2:
2098*b88e3e88Schristos #line 188 "./config/rl78-parse.y" /* yacc.c:1648  */
2099ed0d50c3Schristos     { as_bad (_("Unknown opcode: %s"), rl78_init_start); }
2100*b88e3e88Schristos #line 2101 "rl78-parse.c" /* yacc.c:1648  */
2101ed0d50c3Schristos     break;
2102ed0d50c3Schristos 
2103ed0d50c3Schristos   case 3:
2104*b88e3e88Schristos #line 209 "./config/rl78-parse.y" /* yacc.c:1648  */
210506324dcfSchristos     { B1 (0x0c|(yyvsp[-4].regno)); O1 ((yyvsp[0].exp)); }
2106*b88e3e88Schristos #line 2107 "rl78-parse.c" /* yacc.c:1648  */
2107ed0d50c3Schristos     break;
2108ed0d50c3Schristos 
2109ed0d50c3Schristos   case 4:
2110*b88e3e88Schristos #line 211 "./config/rl78-parse.y" /* yacc.c:1648  */
211106324dcfSchristos     {SA((yyvsp[0].exp))}
2112*b88e3e88Schristos #line 2113 "rl78-parse.c" /* yacc.c:1648  */
2113ed0d50c3Schristos     break;
2114ed0d50c3Schristos 
2115ed0d50c3Schristos   case 5:
2116*b88e3e88Schristos #line 212 "./config/rl78-parse.y" /* yacc.c:1648  */
211706324dcfSchristos     { B1 (0x0a|(yyvsp[-5].regno)); SET_SA ((yyvsp[-4].exp)); O1 ((yyvsp[-4].exp)); O1 ((yyvsp[0].exp)); }
2118*b88e3e88Schristos #line 2119 "rl78-parse.c" /* yacc.c:1648  */
2119ed0d50c3Schristos     break;
2120ed0d50c3Schristos 
2121ed0d50c3Schristos   case 6:
2122*b88e3e88Schristos #line 215 "./config/rl78-parse.y" /* yacc.c:1648  */
212306324dcfSchristos     { B2 (0x61, 0x01|(yyvsp[-3].regno)); }
2124*b88e3e88Schristos #line 2125 "rl78-parse.c" /* yacc.c:1648  */
2125ed0d50c3Schristos     break;
2126ed0d50c3Schristos 
2127ed0d50c3Schristos   case 7:
2128*b88e3e88Schristos #line 218 "./config/rl78-parse.y" /* yacc.c:1648  */
212906324dcfSchristos     { B2 (0x61, 0x08|(yyvsp[-3].regno)); F ((yyvsp[0].regno), 13, 3); }
2130*b88e3e88Schristos #line 2131 "rl78-parse.c" /* yacc.c:1648  */
2131ed0d50c3Schristos     break;
2132ed0d50c3Schristos 
2133ed0d50c3Schristos   case 8:
2134*b88e3e88Schristos #line 221 "./config/rl78-parse.y" /* yacc.c:1648  */
213506324dcfSchristos     { B2 (0x61, 0x00|(yyvsp[-3].regno)); F ((yyvsp[-2].regno), 13, 3); }
2136*b88e3e88Schristos #line 2137 "rl78-parse.c" /* yacc.c:1648  */
2137ed0d50c3Schristos     break;
2138ed0d50c3Schristos 
2139ed0d50c3Schristos   case 9:
2140*b88e3e88Schristos #line 223 "./config/rl78-parse.y" /* yacc.c:1648  */
214106324dcfSchristos     {SA((yyvsp[0].exp))}
2142*b88e3e88Schristos #line 2143 "rl78-parse.c" /* yacc.c:1648  */
2143ed0d50c3Schristos     break;
2144ed0d50c3Schristos 
2145ed0d50c3Schristos   case 10:
2146*b88e3e88Schristos #line 224 "./config/rl78-parse.y" /* yacc.c:1648  */
214706324dcfSchristos     { B1 (0x0b|(yyvsp[-4].regno)); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); }
2148*b88e3e88Schristos #line 2149 "rl78-parse.c" /* yacc.c:1648  */
2149ed0d50c3Schristos     break;
2150ed0d50c3Schristos 
2151ed0d50c3Schristos   case 11:
2152*b88e3e88Schristos #line 227 "./config/rl78-parse.y" /* yacc.c:1648  */
215306324dcfSchristos     { B1 (0x0f|(yyvsp[-5].regno)); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
2154*b88e3e88Schristos #line 2155 "rl78-parse.c" /* yacc.c:1648  */
2155ed0d50c3Schristos     break;
2156ed0d50c3Schristos 
2157ed0d50c3Schristos   case 12:
2158*b88e3e88Schristos #line 230 "./config/rl78-parse.y" /* yacc.c:1648  */
215906324dcfSchristos     { B1 (0x0d|(yyvsp[-6].regno)); }
2160*b88e3e88Schristos #line 2161 "rl78-parse.c" /* yacc.c:1648  */
2161ed0d50c3Schristos     break;
2162ed0d50c3Schristos 
2163ed0d50c3Schristos   case 13:
2164*b88e3e88Schristos #line 233 "./config/rl78-parse.y" /* yacc.c:1648  */
216506324dcfSchristos     { B1 (0x0e|(yyvsp[-8].regno)); O1 ((yyvsp[-1].exp)); }
2166*b88e3e88Schristos #line 2167 "rl78-parse.c" /* yacc.c:1648  */
2167ed0d50c3Schristos     break;
2168ed0d50c3Schristos 
2169ed0d50c3Schristos   case 14:
2170*b88e3e88Schristos #line 236 "./config/rl78-parse.y" /* yacc.c:1648  */
217106324dcfSchristos     { B2 (0x61, 0x80|(yyvsp[-8].regno)); }
2172*b88e3e88Schristos #line 2173 "rl78-parse.c" /* yacc.c:1648  */
2173ed0d50c3Schristos     break;
2174ed0d50c3Schristos 
2175ed0d50c3Schristos   case 15:
2176*b88e3e88Schristos #line 239 "./config/rl78-parse.y" /* yacc.c:1648  */
217706324dcfSchristos     { B2 (0x61, 0x82|(yyvsp[-8].regno)); }
2178*b88e3e88Schristos #line 2179 "rl78-parse.c" /* yacc.c:1648  */
2179ed0d50c3Schristos     break;
2180ed0d50c3Schristos 
2181ed0d50c3Schristos   case 16:
2182*b88e3e88Schristos #line 242 "./config/rl78-parse.y" /* yacc.c:1648  */
218306324dcfSchristos     { if ((yyvsp[-6].regno) != 0x40)
2184ed0d50c3Schristos 	      { rl78_error ("Only CMP takes these operands"); }
2185ed0d50c3Schristos 	    else
218606324dcfSchristos 	      { B1 (0x00|(yyvsp[-6].regno)); O2 ((yyvsp[-3].exp)); O1 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
2187ed0d50c3Schristos 	  }
2188*b88e3e88Schristos #line 2189 "rl78-parse.c" /* yacc.c:1648  */
2189ed0d50c3Schristos     break;
2190ed0d50c3Schristos 
2191ed0d50c3Schristos   case 17:
2192*b88e3e88Schristos #line 251 "./config/rl78-parse.y" /* yacc.c:1648  */
219306324dcfSchristos     { B1 (0x04|(yyvsp[-4].regno)); O2 ((yyvsp[0].exp)); }
2194*b88e3e88Schristos #line 2195 "rl78-parse.c" /* yacc.c:1648  */
2195ed0d50c3Schristos     break;
2196ed0d50c3Schristos 
2197ed0d50c3Schristos   case 18:
2198*b88e3e88Schristos #line 254 "./config/rl78-parse.y" /* yacc.c:1648  */
219906324dcfSchristos     { B1 (0x01|(yyvsp[-3].regno)); F ((yyvsp[0].regno), 5, 2); }
2200*b88e3e88Schristos #line 2201 "rl78-parse.c" /* yacc.c:1648  */
2201ed0d50c3Schristos     break;
2202ed0d50c3Schristos 
2203ed0d50c3Schristos   case 19:
2204*b88e3e88Schristos #line 256 "./config/rl78-parse.y" /* yacc.c:1648  */
220506324dcfSchristos     {SA((yyvsp[0].exp))}
2206*b88e3e88Schristos #line 2207 "rl78-parse.c" /* yacc.c:1648  */
2207ed0d50c3Schristos     break;
2208ed0d50c3Schristos 
2209ed0d50c3Schristos   case 20:
2210*b88e3e88Schristos #line 257 "./config/rl78-parse.y" /* yacc.c:1648  */
221106324dcfSchristos     { B1 (0x06|(yyvsp[-4].regno)); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); }
2212*b88e3e88Schristos #line 2213 "rl78-parse.c" /* yacc.c:1648  */
2213ed0d50c3Schristos     break;
2214ed0d50c3Schristos 
2215ed0d50c3Schristos   case 21:
2216*b88e3e88Schristos #line 260 "./config/rl78-parse.y" /* yacc.c:1648  */
221706324dcfSchristos     { B1 (0x02|(yyvsp[-5].regno)); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
2218*b88e3e88Schristos #line 2219 "rl78-parse.c" /* yacc.c:1648  */
2219ed0d50c3Schristos     break;
2220ed0d50c3Schristos 
2221ed0d50c3Schristos   case 22:
2222*b88e3e88Schristos #line 263 "./config/rl78-parse.y" /* yacc.c:1648  */
222306324dcfSchristos     { B2 (0x61, 0x09|(yyvsp[-8].regno)); O1 ((yyvsp[-1].exp)); }
2224*b88e3e88Schristos #line 2225 "rl78-parse.c" /* yacc.c:1648  */
2225ed0d50c3Schristos     break;
2226ed0d50c3Schristos 
2227ed0d50c3Schristos   case 23:
2228*b88e3e88Schristos #line 266 "./config/rl78-parse.y" /* yacc.c:1648  */
222906324dcfSchristos     { B3 (0x61, 0x09|(yyvsp[-6].regno), 0); }
2230*b88e3e88Schristos #line 2231 "rl78-parse.c" /* yacc.c:1648  */
2231ed0d50c3Schristos     break;
2232ed0d50c3Schristos 
2233ed0d50c3Schristos   case 24:
2234*b88e3e88Schristos #line 269 "./config/rl78-parse.y" /* yacc.c:1648  */
223506324dcfSchristos     { B1 ((yyvsp[-4].regno) ? 0x20 : 0x10); O1 ((yyvsp[0].exp));
223606324dcfSchristos 	    if ((yyvsp[-4].regno) == 0x40)
2237ed0d50c3Schristos 	      rl78_error ("CMPW SP,#imm not allowed");
2238ed0d50c3Schristos 	  }
2239*b88e3e88Schristos #line 2240 "rl78-parse.c" /* yacc.c:1648  */
2240ed0d50c3Schristos     break;
2241ed0d50c3Schristos 
2242ed0d50c3Schristos   case 25:
2243*b88e3e88Schristos #line 276 "./config/rl78-parse.y" /* yacc.c:1648  */
224406324dcfSchristos     {Bit((yyvsp[0].exp))}
2245*b88e3e88Schristos #line 2246 "rl78-parse.c" /* yacc.c:1648  */
2246ed0d50c3Schristos     break;
2247ed0d50c3Schristos 
2248ed0d50c3Schristos   case 26:
2249*b88e3e88Schristos #line 277 "./config/rl78-parse.y" /* yacc.c:1648  */
225006324dcfSchristos     { B3 (0x71, 0x08|(yyvsp[-6].regno), (yyvsp[-3].regno)); FE ((yyvsp[-1].exp), 9, 3); }
2251*b88e3e88Schristos #line 2252 "rl78-parse.c" /* yacc.c:1648  */
2252ed0d50c3Schristos     break;
2253ed0d50c3Schristos 
2254ed0d50c3Schristos   case 27:
2255*b88e3e88Schristos #line 279 "./config/rl78-parse.y" /* yacc.c:1648  */
225606324dcfSchristos     {Bit((yyvsp[0].exp))}
2257*b88e3e88Schristos #line 2258 "rl78-parse.c" /* yacc.c:1648  */
2258ed0d50c3Schristos     break;
2259ed0d50c3Schristos 
2260ed0d50c3Schristos   case 28:
2261*b88e3e88Schristos #line 280 "./config/rl78-parse.y" /* yacc.c:1648  */
226206324dcfSchristos     { if (expr_is_sfr ((yyvsp[-3].exp)))
226306324dcfSchristos 	      { B2 (0x71, 0x08|(yyvsp[-6].regno)); FE ((yyvsp[-1].exp), 9, 3); O1 ((yyvsp[-3].exp)); }
226406324dcfSchristos 	    else if (expr_is_saddr ((yyvsp[-3].exp)))
226506324dcfSchristos 	      { B2 (0x71, 0x00|(yyvsp[-6].regno)); FE ((yyvsp[-1].exp), 9, 3); SET_SA ((yyvsp[-3].exp)); O1 ((yyvsp[-3].exp)); }
2266ed0d50c3Schristos 	    else
2267ed0d50c3Schristos 	      NOT_SFR_OR_SADDR;
2268ed0d50c3Schristos 	  }
2269*b88e3e88Schristos #line 2270 "rl78-parse.c" /* yacc.c:1648  */
2270ed0d50c3Schristos     break;
2271ed0d50c3Schristos 
2272ed0d50c3Schristos   case 29:
2273*b88e3e88Schristos #line 288 "./config/rl78-parse.y" /* yacc.c:1648  */
227406324dcfSchristos     {Bit((yyvsp[0].exp))}
2275*b88e3e88Schristos #line 2276 "rl78-parse.c" /* yacc.c:1648  */
2276ed0d50c3Schristos     break;
2277ed0d50c3Schristos 
2278ed0d50c3Schristos   case 30:
2279*b88e3e88Schristos #line 289 "./config/rl78-parse.y" /* yacc.c:1648  */
228006324dcfSchristos     { B2 (0x71, 0x88|(yyvsp[-6].regno));  FE ((yyvsp[-1].exp), 9, 3); }
2281*b88e3e88Schristos #line 2282 "rl78-parse.c" /* yacc.c:1648  */
2282ed0d50c3Schristos     break;
2283ed0d50c3Schristos 
2284ed0d50c3Schristos   case 31:
2285*b88e3e88Schristos #line 291 "./config/rl78-parse.y" /* yacc.c:1648  */
228606324dcfSchristos     {Bit((yyvsp[0].exp))}
2287*b88e3e88Schristos #line 2288 "rl78-parse.c" /* yacc.c:1648  */
2288ed0d50c3Schristos     break;
2289ed0d50c3Schristos 
2290ed0d50c3Schristos   case 32:
2291*b88e3e88Schristos #line 292 "./config/rl78-parse.y" /* yacc.c:1648  */
229206324dcfSchristos     { B2 (0x71, 0x80|(yyvsp[-9].regno));  FE ((yyvsp[-1].exp), 9, 3); }
2293*b88e3e88Schristos #line 2294 "rl78-parse.c" /* yacc.c:1648  */
2294ed0d50c3Schristos     break;
2295ed0d50c3Schristos 
2296ed0d50c3Schristos   case 33:
2297*b88e3e88Schristos #line 297 "./config/rl78-parse.y" /* yacc.c:1648  */
229806324dcfSchristos     { B1 (0xdc); PC1 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
2299*b88e3e88Schristos #line 2300 "rl78-parse.c" /* yacc.c:1648  */
2300ed0d50c3Schristos     break;
2301ed0d50c3Schristos 
2302ed0d50c3Schristos   case 34:
2303*b88e3e88Schristos #line 300 "./config/rl78-parse.y" /* yacc.c:1648  */
230406324dcfSchristos     { B1 (0xde); PC1 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
2305*b88e3e88Schristos #line 2306 "rl78-parse.c" /* yacc.c:1648  */
2306ed0d50c3Schristos     break;
2307ed0d50c3Schristos 
2308ed0d50c3Schristos   case 35:
2309*b88e3e88Schristos #line 303 "./config/rl78-parse.y" /* yacc.c:1648  */
231006324dcfSchristos     { B1 (0xdd); PC1 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
2311*b88e3e88Schristos #line 2312 "rl78-parse.c" /* yacc.c:1648  */
2312ed0d50c3Schristos     break;
2313ed0d50c3Schristos 
2314ed0d50c3Schristos   case 36:
2315*b88e3e88Schristos #line 306 "./config/rl78-parse.y" /* yacc.c:1648  */
231606324dcfSchristos     { B1 (0xdf); PC1 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
2317*b88e3e88Schristos #line 2318 "rl78-parse.c" /* yacc.c:1648  */
2318ed0d50c3Schristos     break;
2319ed0d50c3Schristos 
2320ed0d50c3Schristos   case 37:
2321*b88e3e88Schristos #line 309 "./config/rl78-parse.y" /* yacc.c:1648  */
232206324dcfSchristos     { B2 (0x61, 0xc3); PC1 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
2323*b88e3e88Schristos #line 2324 "rl78-parse.c" /* yacc.c:1648  */
2324ed0d50c3Schristos     break;
2325ed0d50c3Schristos 
2326ed0d50c3Schristos   case 38:
2327*b88e3e88Schristos #line 312 "./config/rl78-parse.y" /* yacc.c:1648  */
232806324dcfSchristos     { B2 (0x61, 0xd3); PC1 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
2329*b88e3e88Schristos #line 2330 "rl78-parse.c" /* yacc.c:1648  */
2330ed0d50c3Schristos     break;
2331ed0d50c3Schristos 
2332ed0d50c3Schristos   case 39:
2333*b88e3e88Schristos #line 317 "./config/rl78-parse.y" /* yacc.c:1648  */
233406324dcfSchristos     { B3 (0x31, 0x80|(yyvsp[-6].regno), (yyvsp[-5].regno)); FE ((yyvsp[-3].exp), 9, 3); PC1 ((yyvsp[0].exp)); }
2335*b88e3e88Schristos #line 2336 "rl78-parse.c" /* yacc.c:1648  */
2336ed0d50c3Schristos     break;
2337ed0d50c3Schristos 
2338ed0d50c3Schristos   case 40:
2339*b88e3e88Schristos #line 320 "./config/rl78-parse.y" /* yacc.c:1648  */
234006324dcfSchristos     { if (expr_is_sfr ((yyvsp[-5].exp)))
234106324dcfSchristos 	      { B2 (0x31, 0x80|(yyvsp[-6].regno)); FE ((yyvsp[-3].exp), 9, 3); O1 ((yyvsp[-5].exp)); PC1 ((yyvsp[0].exp)); }
234206324dcfSchristos 	    else if (expr_is_saddr ((yyvsp[-5].exp)))
234306324dcfSchristos 	      { 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)); }
2344ed0d50c3Schristos 	    else
2345ed0d50c3Schristos 	      NOT_SFR_OR_SADDR;
2346ed0d50c3Schristos 	  }
2347*b88e3e88Schristos #line 2348 "rl78-parse.c" /* yacc.c:1648  */
2348ed0d50c3Schristos     break;
2349ed0d50c3Schristos 
2350ed0d50c3Schristos   case 41:
2351*b88e3e88Schristos #line 329 "./config/rl78-parse.y" /* yacc.c:1648  */
235206324dcfSchristos     { B2 (0x31, 0x01|(yyvsp[-6].regno)); FE ((yyvsp[-3].exp), 9, 3); PC1 ((yyvsp[0].exp)); }
2353*b88e3e88Schristos #line 2354 "rl78-parse.c" /* yacc.c:1648  */
2354ed0d50c3Schristos     break;
2355ed0d50c3Schristos 
2356ed0d50c3Schristos   case 42:
2357*b88e3e88Schristos #line 332 "./config/rl78-parse.y" /* yacc.c:1648  */
235806324dcfSchristos     { B2 (0x31, 0x81|(yyvsp[-9].regno)); FE ((yyvsp[-3].exp), 9, 3); PC1 ((yyvsp[0].exp)); }
2359*b88e3e88Schristos #line 2360 "rl78-parse.c" /* yacc.c:1648  */
2360ed0d50c3Schristos     break;
2361ed0d50c3Schristos 
2362ed0d50c3Schristos   case 43:
2363*b88e3e88Schristos #line 337 "./config/rl78-parse.y" /* yacc.c:1648  */
2364ed0d50c3Schristos     { B2 (0x61, 0xcb); }
2365*b88e3e88Schristos #line 2366 "rl78-parse.c" /* yacc.c:1648  */
2366ed0d50c3Schristos     break;
2367ed0d50c3Schristos 
2368ed0d50c3Schristos   case 44:
2369*b88e3e88Schristos #line 340 "./config/rl78-parse.y" /* yacc.c:1648  */
237006324dcfSchristos     { B1 (0xef); PC1 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
2371*b88e3e88Schristos #line 2372 "rl78-parse.c" /* yacc.c:1648  */
2372ed0d50c3Schristos     break;
2373ed0d50c3Schristos 
2374ed0d50c3Schristos   case 45:
2375*b88e3e88Schristos #line 343 "./config/rl78-parse.y" /* yacc.c:1648  */
237606324dcfSchristos     { B1 (0xee); PC2 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
2377*b88e3e88Schristos #line 2378 "rl78-parse.c" /* yacc.c:1648  */
2378ed0d50c3Schristos     break;
2379ed0d50c3Schristos 
2380ed0d50c3Schristos   case 46:
2381*b88e3e88Schristos #line 346 "./config/rl78-parse.y" /* yacc.c:1648  */
238206324dcfSchristos     { B1 (0xed); O2 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
2383*b88e3e88Schristos #line 2384 "rl78-parse.c" /* yacc.c:1648  */
2384ed0d50c3Schristos     break;
2385ed0d50c3Schristos 
2386ed0d50c3Schristos   case 47:
2387*b88e3e88Schristos #line 349 "./config/rl78-parse.y" /* yacc.c:1648  */
238806324dcfSchristos     { B1 (0xec); O3 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
2389*b88e3e88Schristos #line 2390 "rl78-parse.c" /* yacc.c:1648  */
2390ed0d50c3Schristos     break;
2391ed0d50c3Schristos 
2392ed0d50c3Schristos   case 48:
2393*b88e3e88Schristos #line 354 "./config/rl78-parse.y" /* yacc.c:1648  */
2394ed0d50c3Schristos     { B2 (0x61, 0xcc); }
2395*b88e3e88Schristos #line 2396 "rl78-parse.c" /* yacc.c:1648  */
2396ed0d50c3Schristos     break;
2397ed0d50c3Schristos 
2398ed0d50c3Schristos   case 49:
2399*b88e3e88Schristos #line 357 "./config/rl78-parse.y" /* yacc.c:1648  */
2400ed0d50c3Schristos     { B1 (0xff); }
2401*b88e3e88Schristos #line 2402 "rl78-parse.c" /* yacc.c:1648  */
2402ed0d50c3Schristos     break;
2403ed0d50c3Schristos 
2404ed0d50c3Schristos   case 50:
2405*b88e3e88Schristos #line 362 "./config/rl78-parse.y" /* yacc.c:1648  */
240606324dcfSchristos     { B2 (0x61, 0xca); F ((yyvsp[0].regno), 10, 2); }
2407*b88e3e88Schristos #line 2408 "rl78-parse.c" /* yacc.c:1648  */
2408ed0d50c3Schristos     break;
2409ed0d50c3Schristos 
2410ed0d50c3Schristos   case 51:
2411*b88e3e88Schristos #line 365 "./config/rl78-parse.y" /* yacc.c:1648  */
241206324dcfSchristos     { B1 (0xfe); PC2 ((yyvsp[0].exp)); }
2413*b88e3e88Schristos #line 2414 "rl78-parse.c" /* yacc.c:1648  */
2414ed0d50c3Schristos     break;
2415ed0d50c3Schristos 
2416ed0d50c3Schristos   case 52:
2417*b88e3e88Schristos #line 368 "./config/rl78-parse.y" /* yacc.c:1648  */
241806324dcfSchristos     { B1 (0xfd); O2 ((yyvsp[0].exp)); }
2419*b88e3e88Schristos #line 2420 "rl78-parse.c" /* yacc.c:1648  */
2420ed0d50c3Schristos     break;
2421ed0d50c3Schristos 
2422ed0d50c3Schristos   case 53:
2423*b88e3e88Schristos #line 371 "./config/rl78-parse.y" /* yacc.c:1648  */
242406324dcfSchristos     { B1 (0xfc); O3 ((yyvsp[0].exp)); rl78_linkrelax_branch (); }
2425*b88e3e88Schristos #line 2426 "rl78-parse.c" /* yacc.c:1648  */
2426ed0d50c3Schristos     break;
2427ed0d50c3Schristos 
2428ed0d50c3Schristos   case 54:
2429*b88e3e88Schristos #line 374 "./config/rl78-parse.y" /* yacc.c:1648  */
243006324dcfSchristos     { if ((yyvsp[-1].exp).X_op != O_constant)
2431ed0d50c3Schristos 	      rl78_error ("CALLT requires a numeric address");
2432ed0d50c3Schristos 	    else
2433ed0d50c3Schristos 	      {
243406324dcfSchristos 	        int i = (yyvsp[-1].exp).X_add_number;
2435ed0d50c3Schristos 		if (i < 0x80 || i > 0xbe)
2436ed0d50c3Schristos 		  rl78_error ("CALLT address not 0x80..0xbe");
2437ed0d50c3Schristos 		else if (i & 1)
2438ed0d50c3Schristos 		  rl78_error ("CALLT address not even");
2439ed0d50c3Schristos 		else
2440ed0d50c3Schristos 		  {
2441ed0d50c3Schristos 		    B2 (0x61, 0x84);
2442ed0d50c3Schristos 	    	    F ((i >> 1) & 7, 9, 3);
2443ed0d50c3Schristos 	    	    F ((i >> 4) & 7, 14, 2);
2444ed0d50c3Schristos 		  }
2445ed0d50c3Schristos 	      }
2446ed0d50c3Schristos 	  }
2447*b88e3e88Schristos #line 2448 "rl78-parse.c" /* yacc.c:1648  */
2448ed0d50c3Schristos     break;
2449ed0d50c3Schristos 
2450ed0d50c3Schristos   case 55:
2451*b88e3e88Schristos #line 395 "./config/rl78-parse.y" /* yacc.c:1648  */
245206324dcfSchristos     { B2 (0x71, (yyvsp[-1].regno) ? 0x88 : 0x80); }
2453*b88e3e88Schristos #line 2454 "rl78-parse.c" /* yacc.c:1648  */
2454ed0d50c3Schristos     break;
2455ed0d50c3Schristos 
2456ed0d50c3Schristos   case 56:
2457*b88e3e88Schristos #line 398 "./config/rl78-parse.y" /* yacc.c:1648  */
245806324dcfSchristos     { B3 (0x71, 0x0a|(yyvsp[-3].regno), (yyvsp[-2].regno)); FE ((yyvsp[0].exp), 9, 3); }
2459*b88e3e88Schristos #line 2460 "rl78-parse.c" /* yacc.c:1648  */
2460ed0d50c3Schristos     break;
2461ed0d50c3Schristos 
2462ed0d50c3Schristos   case 57:
2463*b88e3e88Schristos #line 401 "./config/rl78-parse.y" /* yacc.c:1648  */
246406324dcfSchristos     { if (expr_is_sfr ((yyvsp[-2].exp)))
246506324dcfSchristos 	      { B2 (0x71, 0x0a|(yyvsp[-3].regno)); FE ((yyvsp[0].exp), 9, 3); O1 ((yyvsp[-2].exp)); }
246606324dcfSchristos 	    else if (expr_is_saddr ((yyvsp[-2].exp)))
246706324dcfSchristos 	      { B2 (0x71, 0x02|(yyvsp[-3].regno)); FE ((yyvsp[0].exp), 9, 3); SET_SA ((yyvsp[-2].exp)); O1 ((yyvsp[-2].exp)); }
2468ed0d50c3Schristos 	    else
2469ed0d50c3Schristos 	      NOT_SFR_OR_SADDR;
2470ed0d50c3Schristos 	  }
2471*b88e3e88Schristos #line 2472 "rl78-parse.c" /* yacc.c:1648  */
2472ed0d50c3Schristos     break;
2473ed0d50c3Schristos 
2474ed0d50c3Schristos   case 58:
2475*b88e3e88Schristos #line 410 "./config/rl78-parse.y" /* yacc.c:1648  */
247606324dcfSchristos     { B2 (0x71, 0x8a|(yyvsp[-3].regno));  FE ((yyvsp[0].exp), 9, 3); }
2477*b88e3e88Schristos #line 2478 "rl78-parse.c" /* yacc.c:1648  */
2478ed0d50c3Schristos     break;
2479ed0d50c3Schristos 
2480ed0d50c3Schristos   case 59:
2481*b88e3e88Schristos #line 413 "./config/rl78-parse.y" /* yacc.c:1648  */
248206324dcfSchristos     { B2 (0x71, 0x00+(yyvsp[-5].regno)*0x08); FE ((yyvsp[0].exp), 9, 3); O2 ((yyvsp[-2].exp)); rl78_linkrelax_addr16 (); }
2483*b88e3e88Schristos #line 2484 "rl78-parse.c" /* yacc.c:1648  */
2484ed0d50c3Schristos     break;
2485ed0d50c3Schristos 
2486ed0d50c3Schristos   case 60:
2487*b88e3e88Schristos #line 416 "./config/rl78-parse.y" /* yacc.c:1648  */
248806324dcfSchristos     { B2 (0x71, 0x82|(yyvsp[-6].regno)); FE ((yyvsp[0].exp), 9, 3); }
2489*b88e3e88Schristos #line 2490 "rl78-parse.c" /* yacc.c:1648  */
2490ed0d50c3Schristos     break;
2491ed0d50c3Schristos 
2492ed0d50c3Schristos   case 61:
2493*b88e3e88Schristos #line 421 "./config/rl78-parse.y" /* yacc.c:1648  */
249406324dcfSchristos     { B1 (0xe1|(yyvsp[-1].regno)); }
2495*b88e3e88Schristos #line 2496 "rl78-parse.c" /* yacc.c:1648  */
2496ed0d50c3Schristos     break;
2497ed0d50c3Schristos 
2498ed0d50c3Schristos   case 62:
2499*b88e3e88Schristos #line 423 "./config/rl78-parse.y" /* yacc.c:1648  */
250006324dcfSchristos     { B1 (0xe0|(yyvsp[-1].regno)); }
2501*b88e3e88Schristos #line 2502 "rl78-parse.c" /* yacc.c:1648  */
2502ed0d50c3Schristos     break;
2503ed0d50c3Schristos 
2504ed0d50c3Schristos   case 63:
2505*b88e3e88Schristos #line 425 "./config/rl78-parse.y" /* yacc.c:1648  */
250606324dcfSchristos     { B1 (0xe3|(yyvsp[-1].regno)); }
2507*b88e3e88Schristos #line 2508 "rl78-parse.c" /* yacc.c:1648  */
2508ed0d50c3Schristos     break;
2509ed0d50c3Schristos 
2510ed0d50c3Schristos   case 64:
2511*b88e3e88Schristos #line 427 "./config/rl78-parse.y" /* yacc.c:1648  */
251206324dcfSchristos     { B1 (0xe2|(yyvsp[-1].regno)); }
2513*b88e3e88Schristos #line 2514 "rl78-parse.c" /* yacc.c:1648  */
2514ed0d50c3Schristos     break;
2515ed0d50c3Schristos 
2516ed0d50c3Schristos   case 65:
2517*b88e3e88Schristos #line 429 "./config/rl78-parse.y" /* yacc.c:1648  */
251806324dcfSchristos     {SA((yyvsp[0].exp))}
2519*b88e3e88Schristos #line 2520 "rl78-parse.c" /* yacc.c:1648  */
2520ed0d50c3Schristos     break;
2521ed0d50c3Schristos 
2522ed0d50c3Schristos   case 66:
2523*b88e3e88Schristos #line 430 "./config/rl78-parse.y" /* yacc.c:1648  */
252406324dcfSchristos     { B1 (0xe4|(yyvsp[-2].regno)); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); }
2525*b88e3e88Schristos #line 2526 "rl78-parse.c" /* yacc.c:1648  */
2526ed0d50c3Schristos     break;
2527ed0d50c3Schristos 
2528ed0d50c3Schristos   case 67:
2529*b88e3e88Schristos #line 433 "./config/rl78-parse.y" /* yacc.c:1648  */
253006324dcfSchristos     { B1 (0xe5|(yyvsp[-3].regno)); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
2531*b88e3e88Schristos #line 2532 "rl78-parse.c" /* yacc.c:1648  */
2532ed0d50c3Schristos     break;
2533ed0d50c3Schristos 
2534ed0d50c3Schristos   case 68:
2535*b88e3e88Schristos #line 438 "./config/rl78-parse.y" /* yacc.c:1648  */
253606324dcfSchristos     { B1 (0xe6|(yyvsp[-1].regno)); }
2537*b88e3e88Schristos #line 2538 "rl78-parse.c" /* yacc.c:1648  */
2538ed0d50c3Schristos     break;
2539ed0d50c3Schristos 
2540ed0d50c3Schristos   case 69:
2541*b88e3e88Schristos #line 440 "./config/rl78-parse.y" /* yacc.c:1648  */
254206324dcfSchristos     { B1 (0xe7|(yyvsp[-1].regno)); }
2543*b88e3e88Schristos #line 2544 "rl78-parse.c" /* yacc.c:1648  */
2544ed0d50c3Schristos     break;
2545ed0d50c3Schristos 
2546ed0d50c3Schristos   case 70:
2547*b88e3e88Schristos #line 445 "./config/rl78-parse.y" /* yacc.c:1648  */
2548ed0d50c3Schristos     { B1 (0xd1); }
2549*b88e3e88Schristos #line 2550 "rl78-parse.c" /* yacc.c:1648  */
2550ed0d50c3Schristos     break;
2551ed0d50c3Schristos 
2552ed0d50c3Schristos   case 71:
2553*b88e3e88Schristos #line 448 "./config/rl78-parse.y" /* yacc.c:1648  */
2554ed0d50c3Schristos     { B1 (0xd0); }
2555*b88e3e88Schristos #line 2556 "rl78-parse.c" /* yacc.c:1648  */
2556ed0d50c3Schristos     break;
2557ed0d50c3Schristos 
2558ed0d50c3Schristos   case 72:
2559*b88e3e88Schristos #line 451 "./config/rl78-parse.y" /* yacc.c:1648  */
2560ed0d50c3Schristos     { B1 (0xd3); }
2561*b88e3e88Schristos #line 2562 "rl78-parse.c" /* yacc.c:1648  */
2562ed0d50c3Schristos     break;
2563ed0d50c3Schristos 
2564ed0d50c3Schristos   case 73:
2565*b88e3e88Schristos #line 454 "./config/rl78-parse.y" /* yacc.c:1648  */
2566ed0d50c3Schristos     { B1 (0xd2); }
2567*b88e3e88Schristos #line 2568 "rl78-parse.c" /* yacc.c:1648  */
2568ed0d50c3Schristos     break;
2569ed0d50c3Schristos 
2570ed0d50c3Schristos   case 74:
2571*b88e3e88Schristos #line 456 "./config/rl78-parse.y" /* yacc.c:1648  */
257206324dcfSchristos     {SA((yyvsp[0].exp))}
2573*b88e3e88Schristos #line 2574 "rl78-parse.c" /* yacc.c:1648  */
2574ed0d50c3Schristos     break;
2575ed0d50c3Schristos 
2576ed0d50c3Schristos   case 75:
2577*b88e3e88Schristos #line 457 "./config/rl78-parse.y" /* yacc.c:1648  */
257806324dcfSchristos     { B1 (0xd4); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); }
2579*b88e3e88Schristos #line 2580 "rl78-parse.c" /* yacc.c:1648  */
2580ed0d50c3Schristos     break;
2581ed0d50c3Schristos 
2582ed0d50c3Schristos   case 76:
2583*b88e3e88Schristos #line 460 "./config/rl78-parse.y" /* yacc.c:1648  */
258406324dcfSchristos     { B1 (0xd5); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
2585*b88e3e88Schristos #line 2586 "rl78-parse.c" /* yacc.c:1648  */
2586ed0d50c3Schristos     break;
2587ed0d50c3Schristos 
2588ed0d50c3Schristos   case 77:
2589*b88e3e88Schristos #line 465 "./config/rl78-parse.y" /* yacc.c:1648  */
259006324dcfSchristos     { B2 (0x61, 0xde); O1 ((yyvsp[-1].exp)); }
2591*b88e3e88Schristos #line 2592 "rl78-parse.c" /* yacc.c:1648  */
2592ed0d50c3Schristos     break;
2593ed0d50c3Schristos 
2594ed0d50c3Schristos   case 78:
2595*b88e3e88Schristos #line 470 "./config/rl78-parse.y" /* yacc.c:1648  */
259606324dcfSchristos     { B1 (0x80|(yyvsp[-1].regno)); F ((yyvsp[0].regno), 5, 3); }
2597*b88e3e88Schristos #line 2598 "rl78-parse.c" /* yacc.c:1648  */
2598ed0d50c3Schristos     break;
2599ed0d50c3Schristos 
2600ed0d50c3Schristos   case 79:
2601*b88e3e88Schristos #line 472 "./config/rl78-parse.y" /* yacc.c:1648  */
260206324dcfSchristos     {SA((yyvsp[0].exp))}
2603*b88e3e88Schristos #line 2604 "rl78-parse.c" /* yacc.c:1648  */
2604ed0d50c3Schristos     break;
2605ed0d50c3Schristos 
2606ed0d50c3Schristos   case 80:
2607*b88e3e88Schristos #line 473 "./config/rl78-parse.y" /* yacc.c:1648  */
260806324dcfSchristos     { B1 (0xa4|(yyvsp[-2].regno)); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); }
2609*b88e3e88Schristos #line 2610 "rl78-parse.c" /* yacc.c:1648  */
2610ed0d50c3Schristos     break;
2611ed0d50c3Schristos 
2612ed0d50c3Schristos   case 81:
2613*b88e3e88Schristos #line 475 "./config/rl78-parse.y" /* yacc.c:1648  */
261406324dcfSchristos     { B1 (0xa0|(yyvsp[-2].regno)); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
2615*b88e3e88Schristos #line 2616 "rl78-parse.c" /* yacc.c:1648  */
2616ed0d50c3Schristos     break;
2617ed0d50c3Schristos 
2618ed0d50c3Schristos   case 82:
2619*b88e3e88Schristos #line 477 "./config/rl78-parse.y" /* yacc.c:1648  */
262006324dcfSchristos     { B2 (0x11, 0xa0|(yyvsp[-4].regno)); O2 ((yyvsp[0].exp)); }
2621*b88e3e88Schristos #line 2622 "rl78-parse.c" /* yacc.c:1648  */
2622ed0d50c3Schristos     break;
2623ed0d50c3Schristos 
2624ed0d50c3Schristos   case 83:
2625*b88e3e88Schristos #line 479 "./config/rl78-parse.y" /* yacc.c:1648  */
262606324dcfSchristos     { B2 (0x61, 0x59+(yyvsp[-5].regno)); O1 ((yyvsp[-1].exp)); }
2627*b88e3e88Schristos #line 2628 "rl78-parse.c" /* yacc.c:1648  */
2628ed0d50c3Schristos     break;
2629ed0d50c3Schristos 
2630ed0d50c3Schristos   case 84:
2631*b88e3e88Schristos #line 481 "./config/rl78-parse.y" /* yacc.c:1648  */
263206324dcfSchristos     { B3 (0x11, 0x61, 0x59+(yyvsp[-7].regno)); O1 ((yyvsp[-1].exp)); }
2633*b88e3e88Schristos #line 2634 "rl78-parse.c" /* yacc.c:1648  */
2634ed0d50c3Schristos     break;
2635ed0d50c3Schristos 
2636ed0d50c3Schristos   case 85:
2637*b88e3e88Schristos #line 486 "./config/rl78-parse.y" /* yacc.c:1648  */
263806324dcfSchristos     { B1 (0xa1|(yyvsp[-1].regno)); F ((yyvsp[0].regno), 5, 2); }
2639*b88e3e88Schristos #line 2640 "rl78-parse.c" /* yacc.c:1648  */
2640ed0d50c3Schristos     break;
2641ed0d50c3Schristos 
2642ed0d50c3Schristos   case 86:
2643*b88e3e88Schristos #line 488 "./config/rl78-parse.y" /* yacc.c:1648  */
264406324dcfSchristos     {SA((yyvsp[0].exp))}
2645*b88e3e88Schristos #line 2646 "rl78-parse.c" /* yacc.c:1648  */
2646ed0d50c3Schristos     break;
2647ed0d50c3Schristos 
2648ed0d50c3Schristos   case 87:
2649*b88e3e88Schristos #line 489 "./config/rl78-parse.y" /* yacc.c:1648  */
265006324dcfSchristos     { B1 (0xa6|(yyvsp[-2].regno)); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); }
2651*b88e3e88Schristos #line 2652 "rl78-parse.c" /* yacc.c:1648  */
2652ed0d50c3Schristos     break;
2653ed0d50c3Schristos 
2654ed0d50c3Schristos   case 88:
2655*b88e3e88Schristos #line 492 "./config/rl78-parse.y" /* yacc.c:1648  */
265606324dcfSchristos     { B1 (0xa2|(yyvsp[-3].regno)); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
2657*b88e3e88Schristos #line 2658 "rl78-parse.c" /* yacc.c:1648  */
2658ed0d50c3Schristos     break;
2659ed0d50c3Schristos 
2660ed0d50c3Schristos   case 89:
2661*b88e3e88Schristos #line 495 "./config/rl78-parse.y" /* yacc.c:1648  */
266206324dcfSchristos     { B2 (0x61, 0x79+(yyvsp[-6].regno)); O1 ((yyvsp[-1].exp)); }
2663*b88e3e88Schristos #line 2664 "rl78-parse.c" /* yacc.c:1648  */
2664ed0d50c3Schristos     break;
2665ed0d50c3Schristos 
2666ed0d50c3Schristos   case 90:
2667*b88e3e88Schristos #line 500 "./config/rl78-parse.y" /* yacc.c:1648  */
2668ed0d50c3Schristos     { B3 (0x71, 0x7b, 0xfa); }
2669*b88e3e88Schristos #line 2670 "rl78-parse.c" /* yacc.c:1648  */
2670ed0d50c3Schristos     break;
2671ed0d50c3Schristos 
2672ed0d50c3Schristos   case 91:
2673*b88e3e88Schristos #line 503 "./config/rl78-parse.y" /* yacc.c:1648  */
2674ed0d50c3Schristos     { B3 (0x71, 0x7a, 0xfa); }
2675*b88e3e88Schristos #line 2676 "rl78-parse.c" /* yacc.c:1648  */
2676ed0d50c3Schristos     break;
2677ed0d50c3Schristos 
2678ed0d50c3Schristos   case 92:
2679*b88e3e88Schristos #line 507 "./config/rl78-parse.y" /* yacc.c:1648  */
2680ed0d50c3Schristos     { ISA_G14 ("MULHU"); }
2681*b88e3e88Schristos #line 2682 "rl78-parse.c" /* yacc.c:1648  */
2682ed0d50c3Schristos     break;
2683ed0d50c3Schristos 
2684ed0d50c3Schristos   case 93:
2685*b88e3e88Schristos #line 508 "./config/rl78-parse.y" /* yacc.c:1648  */
2686ed0d50c3Schristos     { B3 (0xce, 0xfb, 0x01); }
2687*b88e3e88Schristos #line 2688 "rl78-parse.c" /* yacc.c:1648  */
2688ed0d50c3Schristos     break;
2689ed0d50c3Schristos 
2690ed0d50c3Schristos   case 94:
2691*b88e3e88Schristos #line 510 "./config/rl78-parse.y" /* yacc.c:1648  */
2692ed0d50c3Schristos     { ISA_G14 ("MULH"); }
2693*b88e3e88Schristos #line 2694 "rl78-parse.c" /* yacc.c:1648  */
2694ed0d50c3Schristos     break;
2695ed0d50c3Schristos 
2696ed0d50c3Schristos   case 95:
2697*b88e3e88Schristos #line 511 "./config/rl78-parse.y" /* yacc.c:1648  */
2698ed0d50c3Schristos     { B3 (0xce, 0xfb, 0x02); }
2699*b88e3e88Schristos #line 2700 "rl78-parse.c" /* yacc.c:1648  */
2700ed0d50c3Schristos     break;
2701ed0d50c3Schristos 
2702ed0d50c3Schristos   case 96:
2703*b88e3e88Schristos #line 514 "./config/rl78-parse.y" /* yacc.c:1648  */
2704ed0d50c3Schristos     { B1 (0xd6); }
2705*b88e3e88Schristos #line 2706 "rl78-parse.c" /* yacc.c:1648  */
2706ed0d50c3Schristos     break;
2707ed0d50c3Schristos 
2708ed0d50c3Schristos   case 97:
2709*b88e3e88Schristos #line 516 "./config/rl78-parse.y" /* yacc.c:1648  */
2710ed0d50c3Schristos     { ISA_G14 ("DIVHU"); }
2711*b88e3e88Schristos #line 2712 "rl78-parse.c" /* yacc.c:1648  */
2712ed0d50c3Schristos     break;
2713ed0d50c3Schristos 
2714ed0d50c3Schristos   case 98:
2715*b88e3e88Schristos #line 517 "./config/rl78-parse.y" /* yacc.c:1648  */
2716ed0d50c3Schristos     { B3 (0xce, 0xfb, 0x03); }
2717*b88e3e88Schristos #line 2718 "rl78-parse.c" /* yacc.c:1648  */
2718ed0d50c3Schristos     break;
2719ed0d50c3Schristos 
2720ed0d50c3Schristos   case 99:
2721*b88e3e88Schristos #line 524 "./config/rl78-parse.y" /* yacc.c:1648  */
2722ed0d50c3Schristos     { ISA_G14 ("DIVWU"); }
2723*b88e3e88Schristos #line 2724 "rl78-parse.c" /* yacc.c:1648  */
2724ed0d50c3Schristos     break;
2725ed0d50c3Schristos 
2726ed0d50c3Schristos   case 100:
2727*b88e3e88Schristos #line 525 "./config/rl78-parse.y" /* yacc.c:1648  */
2728ed0d50c3Schristos     { B3 (0xce, 0xfb, 0x0b); }
2729*b88e3e88Schristos #line 2730 "rl78-parse.c" /* yacc.c:1648  */
2730ed0d50c3Schristos     break;
2731ed0d50c3Schristos 
2732ed0d50c3Schristos   case 101:
2733*b88e3e88Schristos #line 527 "./config/rl78-parse.y" /* yacc.c:1648  */
2734ed0d50c3Schristos     { ISA_G14 ("MACHU"); }
2735*b88e3e88Schristos #line 2736 "rl78-parse.c" /* yacc.c:1648  */
2736ed0d50c3Schristos     break;
2737ed0d50c3Schristos 
2738ed0d50c3Schristos   case 102:
2739*b88e3e88Schristos #line 528 "./config/rl78-parse.y" /* yacc.c:1648  */
2740ed0d50c3Schristos     { B3 (0xce, 0xfb, 0x05); }
2741*b88e3e88Schristos #line 2742 "rl78-parse.c" /* yacc.c:1648  */
2742ed0d50c3Schristos     break;
2743ed0d50c3Schristos 
2744ed0d50c3Schristos   case 103:
2745*b88e3e88Schristos #line 530 "./config/rl78-parse.y" /* yacc.c:1648  */
2746ed0d50c3Schristos     { ISA_G14 ("MACH"); }
2747*b88e3e88Schristos #line 2748 "rl78-parse.c" /* yacc.c:1648  */
2748ed0d50c3Schristos     break;
2749ed0d50c3Schristos 
2750ed0d50c3Schristos   case 104:
2751*b88e3e88Schristos #line 531 "./config/rl78-parse.y" /* yacc.c:1648  */
2752ed0d50c3Schristos     { B3 (0xce, 0xfb, 0x06); }
2753*b88e3e88Schristos #line 2754 "rl78-parse.c" /* yacc.c:1648  */
2754ed0d50c3Schristos     break;
2755ed0d50c3Schristos 
2756ed0d50c3Schristos   case 105:
2757*b88e3e88Schristos #line 536 "./config/rl78-parse.y" /* yacc.c:1648  */
2758ed0d50c3Schristos     { B2 (0x61, 0xed); }
2759*b88e3e88Schristos #line 2760 "rl78-parse.c" /* yacc.c:1648  */
2760ed0d50c3Schristos     break;
2761ed0d50c3Schristos 
2762ed0d50c3Schristos   case 106:
2763*b88e3e88Schristos #line 544 "./config/rl78-parse.y" /* yacc.c:1648  */
276406324dcfSchristos     { B1 (0x51); O1 ((yyvsp[0].exp)); }
2765*b88e3e88Schristos #line 2766 "rl78-parse.c" /* yacc.c:1648  */
2766ed0d50c3Schristos     break;
2767ed0d50c3Schristos 
2768ed0d50c3Schristos   case 107:
2769*b88e3e88Schristos #line 546 "./config/rl78-parse.y" /* yacc.c:1648  */
277006324dcfSchristos     { B1 (0x50); F((yyvsp[-3].regno), 5, 3); O1 ((yyvsp[0].exp)); }
2771*b88e3e88Schristos #line 2772 "rl78-parse.c" /* yacc.c:1648  */
2772ed0d50c3Schristos     break;
2773ed0d50c3Schristos 
2774ed0d50c3Schristos   case 108:
2775*b88e3e88Schristos #line 549 "./config/rl78-parse.y" /* yacc.c:1648  */
277606324dcfSchristos     { if ((yyvsp[-3].regno) != 0xfd)
277706324dcfSchristos 	      { B2 (0xce, (yyvsp[-3].regno)); O1 ((yyvsp[0].exp)); }
2778ed0d50c3Schristos 	    else
277906324dcfSchristos 	      { B1 (0x41); O1 ((yyvsp[0].exp)); }
2780ed0d50c3Schristos 	  }
2781*b88e3e88Schristos #line 2782 "rl78-parse.c" /* yacc.c:1648  */
2782ed0d50c3Schristos     break;
2783ed0d50c3Schristos 
2784ed0d50c3Schristos   case 109:
2785*b88e3e88Schristos #line 555 "./config/rl78-parse.y" /* yacc.c:1648  */
2786ed0d50c3Schristos     {NOT_ES}
2787*b88e3e88Schristos #line 2788 "rl78-parse.c" /* yacc.c:1648  */
2788ed0d50c3Schristos     break;
2789ed0d50c3Schristos 
2790ed0d50c3Schristos   case 110:
2791*b88e3e88Schristos #line 556 "./config/rl78-parse.y" /* yacc.c:1648  */
279206324dcfSchristos     { if (expr_is_sfr ((yyvsp[-4].exp)))
279306324dcfSchristos 	      { B1 (0xce); O1 ((yyvsp[-4].exp)); O1 ((yyvsp[-1].exp)); }
279406324dcfSchristos 	    else if (expr_is_saddr ((yyvsp[-4].exp)))
279506324dcfSchristos 	      { B1 (0xcd); SET_SA ((yyvsp[-4].exp)); O1 ((yyvsp[-4].exp)); O1 ((yyvsp[-1].exp)); }
2796ed0d50c3Schristos 	    else
2797ed0d50c3Schristos 	      NOT_SFR_OR_SADDR;
2798ed0d50c3Schristos 	  }
2799*b88e3e88Schristos #line 2800 "rl78-parse.c" /* yacc.c:1648  */
2800ed0d50c3Schristos     break;
2801ed0d50c3Schristos 
2802ed0d50c3Schristos   case 111:
2803*b88e3e88Schristos #line 565 "./config/rl78-parse.y" /* yacc.c:1648  */
280406324dcfSchristos     { B1 (0xcf); O2 ((yyvsp[-3].exp)); O1 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
2805*b88e3e88Schristos #line 2806 "rl78-parse.c" /* yacc.c:1648  */
2806ed0d50c3Schristos     break;
2807ed0d50c3Schristos 
2808ed0d50c3Schristos   case 112:
2809*b88e3e88Schristos #line 568 "./config/rl78-parse.y" /* yacc.c:1648  */
281006324dcfSchristos     { B2 (0x11, 0xcf); O2 ((yyvsp[-3].exp)); O1 ((yyvsp[0].exp)); }
2811*b88e3e88Schristos #line 2812 "rl78-parse.c" /* yacc.c:1648  */
2812ed0d50c3Schristos     break;
2813ed0d50c3Schristos 
2814ed0d50c3Schristos   case 113:
2815*b88e3e88Schristos #line 571 "./config/rl78-parse.y" /* yacc.c:1648  */
281606324dcfSchristos     { B1 (0x70); F ((yyvsp[-2].regno), 5, 3); }
2817*b88e3e88Schristos #line 2818 "rl78-parse.c" /* yacc.c:1648  */
2818ed0d50c3Schristos     break;
2819ed0d50c3Schristos 
2820ed0d50c3Schristos   case 114:
2821*b88e3e88Schristos #line 574 "./config/rl78-parse.y" /* yacc.c:1648  */
282206324dcfSchristos     { B1 (0x60); F ((yyvsp[0].regno), 5, 3); }
2823*b88e3e88Schristos #line 2824 "rl78-parse.c" /* yacc.c:1648  */
2824ed0d50c3Schristos     break;
2825ed0d50c3Schristos 
2826ed0d50c3Schristos   case 115:
2827*b88e3e88Schristos #line 576 "./config/rl78-parse.y" /* yacc.c:1648  */
2828ed0d50c3Schristos     {NOT_ES}
2829*b88e3e88Schristos #line 2830 "rl78-parse.c" /* yacc.c:1648  */
2830ed0d50c3Schristos     break;
2831ed0d50c3Schristos 
2832ed0d50c3Schristos   case 116:
2833*b88e3e88Schristos #line 577 "./config/rl78-parse.y" /* yacc.c:1648  */
283406324dcfSchristos     { if (expr_is_sfr ((yyvsp[-3].exp)))
283506324dcfSchristos 	      { B1 (0x9e); O1 ((yyvsp[-3].exp)); }
283606324dcfSchristos 	    else if (expr_is_saddr ((yyvsp[-3].exp)))
283706324dcfSchristos 	      { B1 (0x9d); SET_SA ((yyvsp[-3].exp)); O1 ((yyvsp[-3].exp)); }
2838ed0d50c3Schristos 	    else
2839ed0d50c3Schristos 	      NOT_SFR_OR_SADDR;
2840ed0d50c3Schristos 	  }
2841*b88e3e88Schristos #line 2842 "rl78-parse.c" /* yacc.c:1648  */
2842ed0d50c3Schristos     break;
2843ed0d50c3Schristos 
2844ed0d50c3Schristos   case 117:
2845*b88e3e88Schristos #line 586 "./config/rl78-parse.y" /* yacc.c:1648  */
284606324dcfSchristos     { B1 (0x8f); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
2847*b88e3e88Schristos #line 2848 "rl78-parse.c" /* yacc.c:1648  */
2848ed0d50c3Schristos     break;
2849ed0d50c3Schristos 
2850ed0d50c3Schristos   case 118:
2851*b88e3e88Schristos #line 589 "./config/rl78-parse.y" /* yacc.c:1648  */
285206324dcfSchristos     { B1 (0x9f); O2 ((yyvsp[-2].exp)); rl78_linkrelax_addr16 (); }
2853*b88e3e88Schristos #line 2854 "rl78-parse.c" /* yacc.c:1648  */
2854ed0d50c3Schristos     break;
2855ed0d50c3Schristos 
2856ed0d50c3Schristos   case 119:
2857*b88e3e88Schristos #line 592 "./config/rl78-parse.y" /* yacc.c:1648  */
285806324dcfSchristos     { B2 (0x11, 0x9f); O2 ((yyvsp[-2].exp)); }
2859*b88e3e88Schristos #line 2860 "rl78-parse.c" /* yacc.c:1648  */
2860ed0d50c3Schristos     break;
2861ed0d50c3Schristos 
2862ed0d50c3Schristos   case 120:
2863*b88e3e88Schristos #line 595 "./config/rl78-parse.y" /* yacc.c:1648  */
286406324dcfSchristos     { B1 (0xc9|reg_xbc((yyvsp[-4].regno))); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
2865*b88e3e88Schristos #line 2866 "rl78-parse.c" /* yacc.c:1648  */
2866ed0d50c3Schristos     break;
2867ed0d50c3Schristos 
2868ed0d50c3Schristos   case 121:
2869*b88e3e88Schristos #line 597 "./config/rl78-parse.y" /* yacc.c:1648  */
2870ed0d50c3Schristos     {NOT_ES}
2871*b88e3e88Schristos #line 2872 "rl78-parse.c" /* yacc.c:1648  */
2872ed0d50c3Schristos     break;
2873ed0d50c3Schristos 
2874ed0d50c3Schristos   case 122:
2875*b88e3e88Schristos #line 598 "./config/rl78-parse.y" /* yacc.c:1648  */
287606324dcfSchristos     { if (expr_is_saddr ((yyvsp[-1].exp)))
287706324dcfSchristos 	      { B1 (0x8d); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); }
287806324dcfSchristos 	    else if (expr_is_sfr ((yyvsp[-1].exp)))
287906324dcfSchristos 	      { B1 (0x8e); O1 ((yyvsp[-1].exp)); }
2880ed0d50c3Schristos 	    else
2881ed0d50c3Schristos 	      NOT_SFR_OR_SADDR;
2882ed0d50c3Schristos 	  }
2883*b88e3e88Schristos #line 2884 "rl78-parse.c" /* yacc.c:1648  */
2884ed0d50c3Schristos     break;
2885ed0d50c3Schristos 
2886ed0d50c3Schristos   case 123:
2887*b88e3e88Schristos #line 606 "./config/rl78-parse.y" /* yacc.c:1648  */
288806324dcfSchristos     {SA((yyvsp[0].exp))}
2889*b88e3e88Schristos #line 2890 "rl78-parse.c" /* yacc.c:1648  */
2890ed0d50c3Schristos     break;
2891ed0d50c3Schristos 
2892ed0d50c3Schristos   case 124:
2893*b88e3e88Schristos #line 606 "./config/rl78-parse.y" /* yacc.c:1648  */
2894ed0d50c3Schristos     {NOT_ES}
2895*b88e3e88Schristos #line 2896 "rl78-parse.c" /* yacc.c:1648  */
2896ed0d50c3Schristos     break;
2897ed0d50c3Schristos 
2898ed0d50c3Schristos   case 125:
2899*b88e3e88Schristos #line 607 "./config/rl78-parse.y" /* yacc.c:1648  */
290006324dcfSchristos     { B1 (0xc8|reg_xbc((yyvsp[-5].regno))); SET_SA ((yyvsp[-2].exp)); O1 ((yyvsp[-2].exp)); }
2901*b88e3e88Schristos #line 2902 "rl78-parse.c" /* yacc.c:1648  */
2902ed0d50c3Schristos     break;
2903ed0d50c3Schristos 
2904ed0d50c3Schristos   case 126:
2905*b88e3e88Schristos #line 610 "./config/rl78-parse.y" /* yacc.c:1648  */
290606324dcfSchristos     { B2 (0x8e, (yyvsp[0].regno)); }
2907*b88e3e88Schristos #line 2908 "rl78-parse.c" /* yacc.c:1648  */
2908ed0d50c3Schristos     break;
2909ed0d50c3Schristos 
2910ed0d50c3Schristos   case 127:
2911*b88e3e88Schristos #line 613 "./config/rl78-parse.y" /* yacc.c:1648  */
291206324dcfSchristos     { if ((yyvsp[0].regno) != 1)
2913ed0d50c3Schristos 	      rl78_error ("Only A allowed here");
2914ed0d50c3Schristos 	    else
291506324dcfSchristos 	      { B2 (0x9e, (yyvsp[-2].regno)); }
2916ed0d50c3Schristos 	  }
2917*b88e3e88Schristos #line 2918 "rl78-parse.c" /* yacc.c:1648  */
2918ed0d50c3Schristos     break;
2919ed0d50c3Schristos 
2920ed0d50c3Schristos   case 128:
2921*b88e3e88Schristos #line 619 "./config/rl78-parse.y" /* yacc.c:1648  */
292206324dcfSchristos     {SA((yyvsp[0].exp))}
2923*b88e3e88Schristos #line 2924 "rl78-parse.c" /* yacc.c:1648  */
2924ed0d50c3Schristos     break;
2925ed0d50c3Schristos 
2926ed0d50c3Schristos   case 129:
2927*b88e3e88Schristos #line 619 "./config/rl78-parse.y" /* yacc.c:1648  */
2928ed0d50c3Schristos     {NOT_ES}
2929*b88e3e88Schristos #line 2930 "rl78-parse.c" /* yacc.c:1648  */
2930ed0d50c3Schristos     break;
2931ed0d50c3Schristos 
2932ed0d50c3Schristos   case 130:
2933*b88e3e88Schristos #line 620 "./config/rl78-parse.y" /* yacc.c:1648  */
293406324dcfSchristos     { if ((yyvsp[-5].regno) != 0xfd)
2935ed0d50c3Schristos 	      rl78_error ("Only ES allowed here");
2936ed0d50c3Schristos 	    else
293706324dcfSchristos 	      { B2 (0x61, 0xb8); SET_SA ((yyvsp[-2].exp)); O1 ((yyvsp[-2].exp)); }
2938ed0d50c3Schristos 	  }
2939*b88e3e88Schristos #line 2940 "rl78-parse.c" /* yacc.c:1648  */
2940ed0d50c3Schristos     break;
2941ed0d50c3Schristos 
2942ed0d50c3Schristos   case 131:
2943*b88e3e88Schristos #line 627 "./config/rl78-parse.y" /* yacc.c:1648  */
2944ed0d50c3Schristos     { B1 (0x89); }
2945*b88e3e88Schristos #line 2946 "rl78-parse.c" /* yacc.c:1648  */
2946ed0d50c3Schristos     break;
2947ed0d50c3Schristos 
2948ed0d50c3Schristos   case 132:
2949*b88e3e88Schristos #line 630 "./config/rl78-parse.y" /* yacc.c:1648  */
2950ed0d50c3Schristos     { B1 (0x99); }
2951*b88e3e88Schristos #line 2952 "rl78-parse.c" /* yacc.c:1648  */
2952ed0d50c3Schristos     break;
2953ed0d50c3Schristos 
2954ed0d50c3Schristos   case 133:
2955*b88e3e88Schristos #line 633 "./config/rl78-parse.y" /* yacc.c:1648  */
295606324dcfSchristos     { B1 (0xca); O1 ((yyvsp[-4].exp)); O1 ((yyvsp[0].exp)); }
2957*b88e3e88Schristos #line 2958 "rl78-parse.c" /* yacc.c:1648  */
2958ed0d50c3Schristos     break;
2959ed0d50c3Schristos 
2960ed0d50c3Schristos   case 134:
2961*b88e3e88Schristos #line 636 "./config/rl78-parse.y" /* yacc.c:1648  */
296206324dcfSchristos     { B1 (0x8a); O1 ((yyvsp[-1].exp)); }
2963*b88e3e88Schristos #line 2964 "rl78-parse.c" /* yacc.c:1648  */
2964ed0d50c3Schristos     break;
2965ed0d50c3Schristos 
2966ed0d50c3Schristos   case 135:
2967*b88e3e88Schristos #line 639 "./config/rl78-parse.y" /* yacc.c:1648  */
296806324dcfSchristos     { B1 (0x9a); O1 ((yyvsp[-3].exp)); }
2969*b88e3e88Schristos #line 2970 "rl78-parse.c" /* yacc.c:1648  */
2970ed0d50c3Schristos     break;
2971ed0d50c3Schristos 
2972ed0d50c3Schristos   case 136:
2973*b88e3e88Schristos #line 642 "./config/rl78-parse.y" /* yacc.c:1648  */
2974ed0d50c3Schristos     { B1 (0x8b); }
2975*b88e3e88Schristos #line 2976 "rl78-parse.c" /* yacc.c:1648  */
2976ed0d50c3Schristos     break;
2977ed0d50c3Schristos 
2978ed0d50c3Schristos   case 137:
2979*b88e3e88Schristos #line 645 "./config/rl78-parse.y" /* yacc.c:1648  */
2980ed0d50c3Schristos     { B1 (0x9b); }
2981*b88e3e88Schristos #line 2982 "rl78-parse.c" /* yacc.c:1648  */
2982ed0d50c3Schristos     break;
2983ed0d50c3Schristos 
2984ed0d50c3Schristos   case 138:
2985*b88e3e88Schristos #line 648 "./config/rl78-parse.y" /* yacc.c:1648  */
298606324dcfSchristos     { B1 (0xcc); O1 ((yyvsp[-4].exp)); O1 ((yyvsp[0].exp)); }
2987*b88e3e88Schristos #line 2988 "rl78-parse.c" /* yacc.c:1648  */
2988ed0d50c3Schristos     break;
2989ed0d50c3Schristos 
2990ed0d50c3Schristos   case 139:
2991*b88e3e88Schristos #line 651 "./config/rl78-parse.y" /* yacc.c:1648  */
299206324dcfSchristos     { B1 (0x8c); O1 ((yyvsp[-1].exp)); }
2993*b88e3e88Schristos #line 2994 "rl78-parse.c" /* yacc.c:1648  */
2994ed0d50c3Schristos     break;
2995ed0d50c3Schristos 
2996ed0d50c3Schristos   case 140:
2997*b88e3e88Schristos #line 654 "./config/rl78-parse.y" /* yacc.c:1648  */
299806324dcfSchristos     { B1 (0x9c); O1 ((yyvsp[-3].exp)); }
2999*b88e3e88Schristos #line 3000 "rl78-parse.c" /* yacc.c:1648  */
3000ed0d50c3Schristos     break;
3001ed0d50c3Schristos 
3002ed0d50c3Schristos   case 141:
3003*b88e3e88Schristos #line 657 "./config/rl78-parse.y" /* yacc.c:1648  */
3004ed0d50c3Schristos     { B2 (0x61, 0xc9); }
3005*b88e3e88Schristos #line 3006 "rl78-parse.c" /* yacc.c:1648  */
3006ed0d50c3Schristos     break;
3007ed0d50c3Schristos 
3008ed0d50c3Schristos   case 142:
3009*b88e3e88Schristos #line 660 "./config/rl78-parse.y" /* yacc.c:1648  */
3010ed0d50c3Schristos     { B2 (0x61, 0xd9); }
3011*b88e3e88Schristos #line 3012 "rl78-parse.c" /* yacc.c:1648  */
3012ed0d50c3Schristos     break;
3013ed0d50c3Schristos 
3014ed0d50c3Schristos   case 143:
3015*b88e3e88Schristos #line 663 "./config/rl78-parse.y" /* yacc.c:1648  */
3016ed0d50c3Schristos     { B2 (0x61, 0xe9); }
3017*b88e3e88Schristos #line 3018 "rl78-parse.c" /* yacc.c:1648  */
3018ed0d50c3Schristos     break;
3019ed0d50c3Schristos 
3020ed0d50c3Schristos   case 144:
3021*b88e3e88Schristos #line 666 "./config/rl78-parse.y" /* yacc.c:1648  */
3022ed0d50c3Schristos     { B2 (0x61, 0xf9); }
3023*b88e3e88Schristos #line 3024 "rl78-parse.c" /* yacc.c:1648  */
3024ed0d50c3Schristos     break;
3025ed0d50c3Schristos 
3026ed0d50c3Schristos   case 145:
3027*b88e3e88Schristos #line 669 "./config/rl78-parse.y" /* yacc.c:1648  */
302806324dcfSchristos     { B1 (0x19); O2 ((yyvsp[-6].exp)); O1 ((yyvsp[0].exp)); }
3029*b88e3e88Schristos #line 3030 "rl78-parse.c" /* yacc.c:1648  */
3030ed0d50c3Schristos     break;
3031ed0d50c3Schristos 
3032ed0d50c3Schristos   case 146:
3033*b88e3e88Schristos #line 672 "./config/rl78-parse.y" /* yacc.c:1648  */
303406324dcfSchristos     { B1 (0x09); O2 ((yyvsp[-3].exp)); }
3035*b88e3e88Schristos #line 3036 "rl78-parse.c" /* yacc.c:1648  */
3036ed0d50c3Schristos     break;
3037ed0d50c3Schristos 
3038ed0d50c3Schristos   case 147:
3039*b88e3e88Schristos #line 675 "./config/rl78-parse.y" /* yacc.c:1648  */
304006324dcfSchristos     { B1 (0x18); O2 ((yyvsp[-5].exp)); }
3041*b88e3e88Schristos #line 3042 "rl78-parse.c" /* yacc.c:1648  */
3042ed0d50c3Schristos     break;
3043ed0d50c3Schristos 
3044ed0d50c3Schristos   case 148:
3045*b88e3e88Schristos #line 678 "./config/rl78-parse.y" /* yacc.c:1648  */
304606324dcfSchristos     { B1 (0x38); O2 ((yyvsp[-6].exp)); O1 ((yyvsp[0].exp)); }
3047*b88e3e88Schristos #line 3048 "rl78-parse.c" /* yacc.c:1648  */
3048ed0d50c3Schristos     break;
3049ed0d50c3Schristos 
3050ed0d50c3Schristos   case 149:
3051*b88e3e88Schristos #line 681 "./config/rl78-parse.y" /* yacc.c:1648  */
305206324dcfSchristos     { B1 (0x29); O2 ((yyvsp[-3].exp)); }
3053*b88e3e88Schristos #line 3054 "rl78-parse.c" /* yacc.c:1648  */
3054ed0d50c3Schristos     break;
3055ed0d50c3Schristos 
3056ed0d50c3Schristos   case 150:
3057*b88e3e88Schristos #line 684 "./config/rl78-parse.y" /* yacc.c:1648  */
305806324dcfSchristos     { B1 (0x28); O2 ((yyvsp[-5].exp)); }
3059*b88e3e88Schristos #line 3060 "rl78-parse.c" /* yacc.c:1648  */
3060ed0d50c3Schristos     break;
3061ed0d50c3Schristos 
3062ed0d50c3Schristos   case 151:
3063*b88e3e88Schristos #line 687 "./config/rl78-parse.y" /* yacc.c:1648  */
306406324dcfSchristos     { B1 (0x39); O2 ((yyvsp[-6].exp)); O1 ((yyvsp[0].exp)); }
3065*b88e3e88Schristos #line 3066 "rl78-parse.c" /* yacc.c:1648  */
3066ed0d50c3Schristos     break;
3067ed0d50c3Schristos 
3068ed0d50c3Schristos   case 152:
3069*b88e3e88Schristos #line 690 "./config/rl78-parse.y" /* yacc.c:1648  */
307006324dcfSchristos     { B3 (0x39, 0, 0); O1 ((yyvsp[0].exp)); }
3071*b88e3e88Schristos #line 3072 "rl78-parse.c" /* yacc.c:1648  */
3072ed0d50c3Schristos     break;
3073ed0d50c3Schristos 
3074ed0d50c3Schristos   case 153:
3075*b88e3e88Schristos #line 693 "./config/rl78-parse.y" /* yacc.c:1648  */
307606324dcfSchristos     { B1 (0x49); O2 ((yyvsp[-3].exp)); }
3077*b88e3e88Schristos #line 3078 "rl78-parse.c" /* yacc.c:1648  */
3078ed0d50c3Schristos     break;
3079ed0d50c3Schristos 
3080ed0d50c3Schristos   case 154:
3081*b88e3e88Schristos #line 696 "./config/rl78-parse.y" /* yacc.c:1648  */
3082ed0d50c3Schristos     { B3 (0x49, 0, 0); }
3083*b88e3e88Schristos #line 3084 "rl78-parse.c" /* yacc.c:1648  */
3084ed0d50c3Schristos     break;
3085ed0d50c3Schristos 
3086ed0d50c3Schristos   case 155:
3087*b88e3e88Schristos #line 699 "./config/rl78-parse.y" /* yacc.c:1648  */
308806324dcfSchristos     { B1 (0x48); O2 ((yyvsp[-5].exp)); }
3089*b88e3e88Schristos #line 3090 "rl78-parse.c" /* yacc.c:1648  */
3090ed0d50c3Schristos     break;
3091ed0d50c3Schristos 
3092ed0d50c3Schristos   case 156:
3093*b88e3e88Schristos #line 702 "./config/rl78-parse.y" /* yacc.c:1648  */
3094ed0d50c3Schristos     { B3 (0x48, 0, 0); }
3095*b88e3e88Schristos #line 3096 "rl78-parse.c" /* yacc.c:1648  */
3096ed0d50c3Schristos     break;
3097ed0d50c3Schristos 
3098ed0d50c3Schristos   case 157:
3099*b88e3e88Schristos #line 704 "./config/rl78-parse.y" /* yacc.c:1648  */
3100ed0d50c3Schristos     {NOT_ES}
3101*b88e3e88Schristos #line 3102 "rl78-parse.c" /* yacc.c:1648  */
3102ed0d50c3Schristos     break;
3103ed0d50c3Schristos 
3104ed0d50c3Schristos   case 158:
3105*b88e3e88Schristos #line 705 "./config/rl78-parse.y" /* yacc.c:1648  */
310606324dcfSchristos     { B1 (0xc8); O1 ((yyvsp[-5].exp)); O1 ((yyvsp[-1].exp)); }
3107*b88e3e88Schristos #line 3108 "rl78-parse.c" /* yacc.c:1648  */
3108ed0d50c3Schristos     break;
3109ed0d50c3Schristos 
3110ed0d50c3Schristos   case 159:
3111*b88e3e88Schristos #line 707 "./config/rl78-parse.y" /* yacc.c:1648  */
3112ed0d50c3Schristos     {NOT_ES}
3113*b88e3e88Schristos #line 3114 "rl78-parse.c" /* yacc.c:1648  */
3114ed0d50c3Schristos     break;
3115ed0d50c3Schristos 
3116ed0d50c3Schristos   case 160:
3117*b88e3e88Schristos #line 708 "./config/rl78-parse.y" /* yacc.c:1648  */
311806324dcfSchristos     { B2 (0xc8, 0); O1 ((yyvsp[-1].exp)); }
3119*b88e3e88Schristos #line 3120 "rl78-parse.c" /* yacc.c:1648  */
3120ed0d50c3Schristos     break;
3121ed0d50c3Schristos 
3122ed0d50c3Schristos   case 161:
3123*b88e3e88Schristos #line 710 "./config/rl78-parse.y" /* yacc.c:1648  */
3124ed0d50c3Schristos     {NOT_ES}
3125*b88e3e88Schristos #line 3126 "rl78-parse.c" /* yacc.c:1648  */
3126ed0d50c3Schristos     break;
3127ed0d50c3Schristos 
3128ed0d50c3Schristos   case 162:
3129*b88e3e88Schristos #line 711 "./config/rl78-parse.y" /* yacc.c:1648  */
313006324dcfSchristos     { B1 (0x88); O1 ((yyvsp[-2].exp)); }
3131*b88e3e88Schristos #line 3132 "rl78-parse.c" /* yacc.c:1648  */
3132ed0d50c3Schristos     break;
3133ed0d50c3Schristos 
3134ed0d50c3Schristos   case 163:
3135*b88e3e88Schristos #line 713 "./config/rl78-parse.y" /* yacc.c:1648  */
3136ed0d50c3Schristos     {NOT_ES}
3137*b88e3e88Schristos #line 3138 "rl78-parse.c" /* yacc.c:1648  */
3138ed0d50c3Schristos     break;
3139ed0d50c3Schristos 
3140ed0d50c3Schristos   case 164:
3141*b88e3e88Schristos #line 714 "./config/rl78-parse.y" /* yacc.c:1648  */
3142ed0d50c3Schristos     { B2 (0x88, 0); }
3143*b88e3e88Schristos #line 3144 "rl78-parse.c" /* yacc.c:1648  */
3144ed0d50c3Schristos     break;
3145ed0d50c3Schristos 
3146ed0d50c3Schristos   case 165:
3147*b88e3e88Schristos #line 716 "./config/rl78-parse.y" /* yacc.c:1648  */
3148ed0d50c3Schristos     {NOT_ES}
3149*b88e3e88Schristos #line 3150 "rl78-parse.c" /* yacc.c:1648  */
3150ed0d50c3Schristos     break;
3151ed0d50c3Schristos 
3152ed0d50c3Schristos   case 166:
3153*b88e3e88Schristos #line 717 "./config/rl78-parse.y" /* yacc.c:1648  */
315406324dcfSchristos     { B1 (0x98); O1 ((yyvsp[-4].exp)); }
3155*b88e3e88Schristos #line 3156 "rl78-parse.c" /* yacc.c:1648  */
3156ed0d50c3Schristos     break;
3157ed0d50c3Schristos 
3158ed0d50c3Schristos   case 167:
3159*b88e3e88Schristos #line 719 "./config/rl78-parse.y" /* yacc.c:1648  */
3160ed0d50c3Schristos     {NOT_ES}
3161*b88e3e88Schristos #line 3162 "rl78-parse.c" /* yacc.c:1648  */
3162ed0d50c3Schristos     break;
3163ed0d50c3Schristos 
3164ed0d50c3Schristos   case 168:
3165*b88e3e88Schristos #line 720 "./config/rl78-parse.y" /* yacc.c:1648  */
3166ed0d50c3Schristos     { B2 (0x98, 0); }
3167*b88e3e88Schristos #line 3168 "rl78-parse.c" /* yacc.c:1648  */
3168ed0d50c3Schristos     break;
3169ed0d50c3Schristos 
3170ed0d50c3Schristos   case 169:
3171*b88e3e88Schristos #line 725 "./config/rl78-parse.y" /* yacc.c:1648  */
317206324dcfSchristos     { if (expr_is_saddr ((yyvsp[-2].exp)))
317306324dcfSchristos 	      { B2 (0x71, 0x04); FE ((yyvsp[0].exp), 9, 3); SET_SA ((yyvsp[-2].exp)); O1 ((yyvsp[-2].exp)); }
317406324dcfSchristos 	    else if (expr_is_sfr ((yyvsp[-2].exp)))
317506324dcfSchristos 	      { B2 (0x71, 0x0c); FE ((yyvsp[0].exp), 9, 3); O1 ((yyvsp[-2].exp)); }
3176ed0d50c3Schristos 	    else
3177ed0d50c3Schristos 	      NOT_SFR_OR_SADDR;
3178ed0d50c3Schristos 	  }
3179*b88e3e88Schristos #line 3180 "rl78-parse.c" /* yacc.c:1648  */
3180ed0d50c3Schristos     break;
3181ed0d50c3Schristos 
3182ed0d50c3Schristos   case 170:
3183*b88e3e88Schristos #line 734 "./config/rl78-parse.y" /* yacc.c:1648  */
318406324dcfSchristos     { B2 (0x71, 0x8c); FE ((yyvsp[0].exp), 9, 3); }
3185*b88e3e88Schristos #line 3186 "rl78-parse.c" /* yacc.c:1648  */
3186ed0d50c3Schristos     break;
3187ed0d50c3Schristos 
3188ed0d50c3Schristos   case 171:
3189*b88e3e88Schristos #line 737 "./config/rl78-parse.y" /* yacc.c:1648  */
319006324dcfSchristos     { B3 (0x71, 0x0c, (yyvsp[-2].regno)); FE ((yyvsp[0].exp), 9, 3); }
3191*b88e3e88Schristos #line 3192 "rl78-parse.c" /* yacc.c:1648  */
3192ed0d50c3Schristos     break;
3193ed0d50c3Schristos 
3194ed0d50c3Schristos   case 172:
3195*b88e3e88Schristos #line 740 "./config/rl78-parse.y" /* yacc.c:1648  */
319606324dcfSchristos     { B2 (0x71, 0x84); FE ((yyvsp[0].exp), 9, 3); }
3197*b88e3e88Schristos #line 3198 "rl78-parse.c" /* yacc.c:1648  */
3198ed0d50c3Schristos     break;
3199ed0d50c3Schristos 
3200ed0d50c3Schristos   case 173:
3201*b88e3e88Schristos #line 743 "./config/rl78-parse.y" /* yacc.c:1648  */
320206324dcfSchristos     { if (expr_is_saddr ((yyvsp[-4].exp)))
320306324dcfSchristos 	      { B2 (0x71, 0x01); FE ((yyvsp[-2].exp), 9, 3); SET_SA ((yyvsp[-4].exp)); O1 ((yyvsp[-4].exp)); }
320406324dcfSchristos 	    else if (expr_is_sfr ((yyvsp[-4].exp)))
320506324dcfSchristos 	      { B2 (0x71, 0x09); FE ((yyvsp[-2].exp), 9, 3); O1 ((yyvsp[-4].exp)); }
3206ed0d50c3Schristos 	    else
3207ed0d50c3Schristos 	      NOT_SFR_OR_SADDR;
3208ed0d50c3Schristos 	  }
3209*b88e3e88Schristos #line 3210 "rl78-parse.c" /* yacc.c:1648  */
3210ed0d50c3Schristos     break;
3211ed0d50c3Schristos 
3212ed0d50c3Schristos   case 174:
3213*b88e3e88Schristos #line 752 "./config/rl78-parse.y" /* yacc.c:1648  */
321406324dcfSchristos     { B2 (0x71, 0x89); FE ((yyvsp[-2].exp), 9, 3); }
3215*b88e3e88Schristos #line 3216 "rl78-parse.c" /* yacc.c:1648  */
3216ed0d50c3Schristos     break;
3217ed0d50c3Schristos 
3218ed0d50c3Schristos   case 175:
3219*b88e3e88Schristos #line 755 "./config/rl78-parse.y" /* yacc.c:1648  */
322006324dcfSchristos     { B3 (0x71, 0x09, (yyvsp[-4].regno)); FE ((yyvsp[-2].exp), 9, 3); }
3221*b88e3e88Schristos #line 3222 "rl78-parse.c" /* yacc.c:1648  */
3222ed0d50c3Schristos     break;
3223ed0d50c3Schristos 
3224ed0d50c3Schristos   case 176:
3225*b88e3e88Schristos #line 758 "./config/rl78-parse.y" /* yacc.c:1648  */
322606324dcfSchristos     { B2 (0x71, 0x81); FE ((yyvsp[-2].exp), 9, 3); }
3227*b88e3e88Schristos #line 3228 "rl78-parse.c" /* yacc.c:1648  */
3228ed0d50c3Schristos     break;
3229ed0d50c3Schristos 
3230ed0d50c3Schristos   case 177:
3231*b88e3e88Schristos #line 763 "./config/rl78-parse.y" /* yacc.c:1648  */
323206324dcfSchristos     { B2 (0x61, 0xce); O1 ((yyvsp[-3].exp)); }
3233*b88e3e88Schristos #line 3234 "rl78-parse.c" /* yacc.c:1648  */
3234ed0d50c3Schristos     break;
3235ed0d50c3Schristos 
3236ed0d50c3Schristos   case 178:
3237*b88e3e88Schristos #line 768 "./config/rl78-parse.y" /* yacc.c:1648  */
323806324dcfSchristos     { B1 (0x30); O2 ((yyvsp[0].exp)); }
3239*b88e3e88Schristos #line 3240 "rl78-parse.c" /* yacc.c:1648  */
3240ed0d50c3Schristos     break;
3241ed0d50c3Schristos 
3242ed0d50c3Schristos   case 179:
3243*b88e3e88Schristos #line 771 "./config/rl78-parse.y" /* yacc.c:1648  */
324406324dcfSchristos     { B1 (0x30); F ((yyvsp[-3].regno), 5, 2); O2 ((yyvsp[0].exp)); }
3245*b88e3e88Schristos #line 3246 "rl78-parse.c" /* yacc.c:1648  */
3246ed0d50c3Schristos     break;
3247ed0d50c3Schristos 
3248ed0d50c3Schristos   case 180:
3249*b88e3e88Schristos #line 773 "./config/rl78-parse.y" /* yacc.c:1648  */
3250ed0d50c3Schristos     {NOT_ES}
3251*b88e3e88Schristos #line 3252 "rl78-parse.c" /* yacc.c:1648  */
3252ed0d50c3Schristos     break;
3253ed0d50c3Schristos 
3254ed0d50c3Schristos   case 181:
3255*b88e3e88Schristos #line 774 "./config/rl78-parse.y" /* yacc.c:1648  */
325606324dcfSchristos     { if (expr_is_saddr ((yyvsp[-4].exp)))
325706324dcfSchristos 	      { B1 (0xc9); SET_SA ((yyvsp[-4].exp)); O1 ((yyvsp[-4].exp)); O2 ((yyvsp[-1].exp)); }
325806324dcfSchristos 	    else if (expr_is_sfr ((yyvsp[-4].exp)))
325906324dcfSchristos 	      { B1 (0xcb); O1 ((yyvsp[-4].exp)); O2 ((yyvsp[-1].exp)); }
3260ed0d50c3Schristos 	    else
3261ed0d50c3Schristos 	      NOT_SFR_OR_SADDR;
3262ed0d50c3Schristos 	  }
3263*b88e3e88Schristos #line 3264 "rl78-parse.c" /* yacc.c:1648  */
3264ed0d50c3Schristos     break;
3265ed0d50c3Schristos 
3266ed0d50c3Schristos   case 182:
3267*b88e3e88Schristos #line 782 "./config/rl78-parse.y" /* yacc.c:1648  */
3268ed0d50c3Schristos     {NOT_ES}
3269*b88e3e88Schristos #line 3270 "rl78-parse.c" /* yacc.c:1648  */
3270ed0d50c3Schristos     break;
3271ed0d50c3Schristos 
3272ed0d50c3Schristos   case 183:
3273*b88e3e88Schristos #line 783 "./config/rl78-parse.y" /* yacc.c:1648  */
327406324dcfSchristos     { if (expr_is_saddr ((yyvsp[-1].exp)))
327506324dcfSchristos 	      { B1 (0xad); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); WA((yyvsp[-1].exp)); }
327606324dcfSchristos 	    else if (expr_is_sfr ((yyvsp[-1].exp)))
327706324dcfSchristos 	      { B1 (0xae); O1 ((yyvsp[-1].exp)); WA((yyvsp[-1].exp)); }
3278ed0d50c3Schristos 	    else
3279ed0d50c3Schristos 	      NOT_SFR_OR_SADDR;
3280ed0d50c3Schristos 	  }
3281*b88e3e88Schristos #line 3282 "rl78-parse.c" /* yacc.c:1648  */
3282ed0d50c3Schristos     break;
3283ed0d50c3Schristos 
3284ed0d50c3Schristos   case 184:
3285*b88e3e88Schristos #line 791 "./config/rl78-parse.y" /* yacc.c:1648  */
3286ed0d50c3Schristos     {NOT_ES}
3287*b88e3e88Schristos #line 3288 "rl78-parse.c" /* yacc.c:1648  */
3288ed0d50c3Schristos     break;
3289ed0d50c3Schristos 
3290ed0d50c3Schristos   case 185:
3291*b88e3e88Schristos #line 792 "./config/rl78-parse.y" /* yacc.c:1648  */
329206324dcfSchristos     { if (expr_is_saddr ((yyvsp[-3].exp)))
329306324dcfSchristos 	      { B1 (0xbd); SET_SA ((yyvsp[-3].exp)); O1 ((yyvsp[-3].exp)); WA((yyvsp[-3].exp)); }
329406324dcfSchristos 	    else if (expr_is_sfr ((yyvsp[-3].exp)))
329506324dcfSchristos 	      { B1 (0xbe); O1 ((yyvsp[-3].exp)); WA((yyvsp[-3].exp)); }
3296ed0d50c3Schristos 	    else
3297ed0d50c3Schristos 	      NOT_SFR_OR_SADDR;
3298ed0d50c3Schristos 	  }
3299*b88e3e88Schristos #line 3300 "rl78-parse.c" /* yacc.c:1648  */
3300ed0d50c3Schristos     break;
3301ed0d50c3Schristos 
3302ed0d50c3Schristos   case 186:
3303*b88e3e88Schristos #line 801 "./config/rl78-parse.y" /* yacc.c:1648  */
330406324dcfSchristos     { B1 (0x11); F ((yyvsp[0].regno), 5, 2); }
3305*b88e3e88Schristos #line 3306 "rl78-parse.c" /* yacc.c:1648  */
3306ed0d50c3Schristos     break;
3307ed0d50c3Schristos 
3308ed0d50c3Schristos   case 187:
3309*b88e3e88Schristos #line 804 "./config/rl78-parse.y" /* yacc.c:1648  */
331006324dcfSchristos     { B1 (0x10); F ((yyvsp[-2].regno), 5, 2); }
3311*b88e3e88Schristos #line 3312 "rl78-parse.c" /* yacc.c:1648  */
3312ed0d50c3Schristos     break;
3313ed0d50c3Schristos 
3314ed0d50c3Schristos   case 188:
3315*b88e3e88Schristos #line 807 "./config/rl78-parse.y" /* yacc.c:1648  */
331606324dcfSchristos     { B1 (0xaf); O2 ((yyvsp[0].exp)); WA((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
3317*b88e3e88Schristos #line 3318 "rl78-parse.c" /* yacc.c:1648  */
3318ed0d50c3Schristos     break;
3319ed0d50c3Schristos 
3320ed0d50c3Schristos   case 189:
3321*b88e3e88Schristos #line 810 "./config/rl78-parse.y" /* yacc.c:1648  */
332206324dcfSchristos     { B1 (0xbf); O2 ((yyvsp[-2].exp)); WA((yyvsp[-2].exp)); rl78_linkrelax_addr16 (); }
3323*b88e3e88Schristos #line 3324 "rl78-parse.c" /* yacc.c:1648  */
3324ed0d50c3Schristos     break;
3325ed0d50c3Schristos 
3326ed0d50c3Schristos   case 190:
3327*b88e3e88Schristos #line 813 "./config/rl78-parse.y" /* yacc.c:1648  */
3328ed0d50c3Schristos     { B1 (0xa9); }
3329*b88e3e88Schristos #line 3330 "rl78-parse.c" /* yacc.c:1648  */
3330ed0d50c3Schristos     break;
3331ed0d50c3Schristos 
3332ed0d50c3Schristos   case 191:
3333*b88e3e88Schristos #line 816 "./config/rl78-parse.y" /* yacc.c:1648  */
3334ed0d50c3Schristos     { B1 (0xb9); }
3335*b88e3e88Schristos #line 3336 "rl78-parse.c" /* yacc.c:1648  */
3336ed0d50c3Schristos     break;
3337ed0d50c3Schristos 
3338ed0d50c3Schristos   case 192:
3339*b88e3e88Schristos #line 819 "./config/rl78-parse.y" /* yacc.c:1648  */
334006324dcfSchristos     { B1 (0xaa); O1 ((yyvsp[-1].exp)); }
3341*b88e3e88Schristos #line 3342 "rl78-parse.c" /* yacc.c:1648  */
3342ed0d50c3Schristos     break;
3343ed0d50c3Schristos 
3344ed0d50c3Schristos   case 193:
3345*b88e3e88Schristos #line 822 "./config/rl78-parse.y" /* yacc.c:1648  */
334606324dcfSchristos     { B1 (0xba); O1 ((yyvsp[-3].exp)); }
3347*b88e3e88Schristos #line 3348 "rl78-parse.c" /* yacc.c:1648  */
3348ed0d50c3Schristos     break;
3349ed0d50c3Schristos 
3350ed0d50c3Schristos   case 194:
3351*b88e3e88Schristos #line 825 "./config/rl78-parse.y" /* yacc.c:1648  */
3352ed0d50c3Schristos     { B1 (0xab); }
3353*b88e3e88Schristos #line 3354 "rl78-parse.c" /* yacc.c:1648  */
3354ed0d50c3Schristos     break;
3355ed0d50c3Schristos 
3356ed0d50c3Schristos   case 195:
3357*b88e3e88Schristos #line 828 "./config/rl78-parse.y" /* yacc.c:1648  */
3358ed0d50c3Schristos     { B1 (0xbb); }
3359*b88e3e88Schristos #line 3360 "rl78-parse.c" /* yacc.c:1648  */
3360ed0d50c3Schristos     break;
3361ed0d50c3Schristos 
3362ed0d50c3Schristos   case 196:
3363*b88e3e88Schristos #line 831 "./config/rl78-parse.y" /* yacc.c:1648  */
336406324dcfSchristos     { B1 (0xac); O1 ((yyvsp[-1].exp)); }
3365*b88e3e88Schristos #line 3366 "rl78-parse.c" /* yacc.c:1648  */
3366ed0d50c3Schristos     break;
3367ed0d50c3Schristos 
3368ed0d50c3Schristos   case 197:
3369*b88e3e88Schristos #line 834 "./config/rl78-parse.y" /* yacc.c:1648  */
337006324dcfSchristos     { B1 (0xbc); O1 ((yyvsp[-3].exp)); }
3371*b88e3e88Schristos #line 3372 "rl78-parse.c" /* yacc.c:1648  */
3372ed0d50c3Schristos     break;
3373ed0d50c3Schristos 
3374ed0d50c3Schristos   case 198:
3375*b88e3e88Schristos #line 837 "./config/rl78-parse.y" /* yacc.c:1648  */
337606324dcfSchristos     { B1 (0x59); O2 ((yyvsp[-3].exp)); }
3377*b88e3e88Schristos #line 3378 "rl78-parse.c" /* yacc.c:1648  */
3378ed0d50c3Schristos     break;
3379ed0d50c3Schristos 
3380ed0d50c3Schristos   case 199:
3381*b88e3e88Schristos #line 840 "./config/rl78-parse.y" /* yacc.c:1648  */
338206324dcfSchristos     { B1 (0x58); O2 ((yyvsp[-5].exp)); }
3383*b88e3e88Schristos #line 3384 "rl78-parse.c" /* yacc.c:1648  */
3384ed0d50c3Schristos     break;
3385ed0d50c3Schristos 
3386ed0d50c3Schristos   case 200:
3387*b88e3e88Schristos #line 843 "./config/rl78-parse.y" /* yacc.c:1648  */
338806324dcfSchristos     { B1 (0x69); O2 ((yyvsp[-3].exp)); }
3389*b88e3e88Schristos #line 3390 "rl78-parse.c" /* yacc.c:1648  */
3390ed0d50c3Schristos     break;
3391ed0d50c3Schristos 
3392ed0d50c3Schristos   case 201:
3393*b88e3e88Schristos #line 846 "./config/rl78-parse.y" /* yacc.c:1648  */
339406324dcfSchristos     { B1 (0x68); O2 ((yyvsp[-5].exp)); }
3395*b88e3e88Schristos #line 3396 "rl78-parse.c" /* yacc.c:1648  */
3396ed0d50c3Schristos     break;
3397ed0d50c3Schristos 
3398ed0d50c3Schristos   case 202:
3399*b88e3e88Schristos #line 849 "./config/rl78-parse.y" /* yacc.c:1648  */
340006324dcfSchristos     { B1 (0x79); O2 ((yyvsp[-3].exp)); }
3401*b88e3e88Schristos #line 3402 "rl78-parse.c" /* yacc.c:1648  */
3402ed0d50c3Schristos     break;
3403ed0d50c3Schristos 
3404ed0d50c3Schristos   case 203:
3405*b88e3e88Schristos #line 852 "./config/rl78-parse.y" /* yacc.c:1648  */
3406ed0d50c3Schristos     { B3 (0x79, 0, 0); }
3407*b88e3e88Schristos #line 3408 "rl78-parse.c" /* yacc.c:1648  */
3408ed0d50c3Schristos     break;
3409ed0d50c3Schristos 
3410ed0d50c3Schristos   case 204:
3411*b88e3e88Schristos #line 855 "./config/rl78-parse.y" /* yacc.c:1648  */
341206324dcfSchristos     { B1 (0x78); O2 ((yyvsp[-5].exp)); }
3413*b88e3e88Schristos #line 3414 "rl78-parse.c" /* yacc.c:1648  */
3414ed0d50c3Schristos     break;
3415ed0d50c3Schristos 
3416ed0d50c3Schristos   case 205:
3417*b88e3e88Schristos #line 858 "./config/rl78-parse.y" /* yacc.c:1648  */
3418ed0d50c3Schristos     { B3 (0x78, 0, 0); }
3419*b88e3e88Schristos #line 3420 "rl78-parse.c" /* yacc.c:1648  */
3420ed0d50c3Schristos     break;
3421ed0d50c3Schristos 
3422ed0d50c3Schristos   case 206:
3423*b88e3e88Schristos #line 860 "./config/rl78-parse.y" /* yacc.c:1648  */
3424ed0d50c3Schristos     {NOT_ES}
3425*b88e3e88Schristos #line 3426 "rl78-parse.c" /* yacc.c:1648  */
3426ed0d50c3Schristos     break;
3427ed0d50c3Schristos 
3428ed0d50c3Schristos   case 207:
3429*b88e3e88Schristos #line 861 "./config/rl78-parse.y" /* yacc.c:1648  */
343006324dcfSchristos     { B1 (0xa8); O1 ((yyvsp[-2].exp));  WA((yyvsp[-2].exp));}
3431*b88e3e88Schristos #line 3432 "rl78-parse.c" /* yacc.c:1648  */
3432ed0d50c3Schristos     break;
3433ed0d50c3Schristos 
3434ed0d50c3Schristos   case 208:
3435*b88e3e88Schristos #line 863 "./config/rl78-parse.y" /* yacc.c:1648  */
3436ed0d50c3Schristos     {NOT_ES}
3437*b88e3e88Schristos #line 3438 "rl78-parse.c" /* yacc.c:1648  */
3438ed0d50c3Schristos     break;
3439ed0d50c3Schristos 
3440ed0d50c3Schristos   case 209:
3441*b88e3e88Schristos #line 864 "./config/rl78-parse.y" /* yacc.c:1648  */
3442ed0d50c3Schristos     { B2 (0xa8, 0); }
3443*b88e3e88Schristos #line 3444 "rl78-parse.c" /* yacc.c:1648  */
3444ed0d50c3Schristos     break;
3445ed0d50c3Schristos 
3446ed0d50c3Schristos   case 210:
3447*b88e3e88Schristos #line 866 "./config/rl78-parse.y" /* yacc.c:1648  */
3448ed0d50c3Schristos     {NOT_ES}
3449*b88e3e88Schristos #line 3450 "rl78-parse.c" /* yacc.c:1648  */
3450ed0d50c3Schristos     break;
3451ed0d50c3Schristos 
3452ed0d50c3Schristos   case 211:
3453*b88e3e88Schristos #line 867 "./config/rl78-parse.y" /* yacc.c:1648  */
345406324dcfSchristos     { B1 (0xb8); O1 ((yyvsp[-4].exp)); WA((yyvsp[-4].exp)); }
3455*b88e3e88Schristos #line 3456 "rl78-parse.c" /* yacc.c:1648  */
3456ed0d50c3Schristos     break;
3457ed0d50c3Schristos 
3458ed0d50c3Schristos   case 212:
3459*b88e3e88Schristos #line 869 "./config/rl78-parse.y" /* yacc.c:1648  */
3460ed0d50c3Schristos     {NOT_ES}
3461*b88e3e88Schristos #line 3462 "rl78-parse.c" /* yacc.c:1648  */
3462ed0d50c3Schristos     break;
3463ed0d50c3Schristos 
3464ed0d50c3Schristos   case 213:
3465*b88e3e88Schristos #line 870 "./config/rl78-parse.y" /* yacc.c:1648  */
3466ed0d50c3Schristos     { B2 (0xb8, 0); }
3467*b88e3e88Schristos #line 3468 "rl78-parse.c" /* yacc.c:1648  */
3468ed0d50c3Schristos     break;
3469ed0d50c3Schristos 
3470ed0d50c3Schristos   case 214:
3471*b88e3e88Schristos #line 872 "./config/rl78-parse.y" /* yacc.c:1648  */
347206324dcfSchristos     {SA((yyvsp[0].exp))}
3473*b88e3e88Schristos #line 3474 "rl78-parse.c" /* yacc.c:1648  */
3474ed0d50c3Schristos     break;
3475ed0d50c3Schristos 
3476ed0d50c3Schristos   case 215:
3477*b88e3e88Schristos #line 873 "./config/rl78-parse.y" /* yacc.c:1648  */
347806324dcfSchristos     { B1 (0xca); F ((yyvsp[-3].regno), 2, 2); SET_SA ((yyvsp[-1].exp)); O1 ((yyvsp[-1].exp)); WA((yyvsp[-1].exp)); }
3479*b88e3e88Schristos #line 3480 "rl78-parse.c" /* yacc.c:1648  */
3480ed0d50c3Schristos     break;
3481ed0d50c3Schristos 
3482ed0d50c3Schristos   case 216:
3483*b88e3e88Schristos #line 876 "./config/rl78-parse.y" /* yacc.c:1648  */
348406324dcfSchristos     { B1 (0xcb); F ((yyvsp[-4].regno), 2, 2); O2 ((yyvsp[0].exp)); WA((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
3485*b88e3e88Schristos #line 3486 "rl78-parse.c" /* yacc.c:1648  */
3486ed0d50c3Schristos     break;
3487ed0d50c3Schristos 
3488ed0d50c3Schristos   case 217:
3489*b88e3e88Schristos #line 879 "./config/rl78-parse.y" /* yacc.c:1648  */
349006324dcfSchristos     { B2 (0xcb, 0xf8); O2 ((yyvsp[0].exp)); }
3491*b88e3e88Schristos #line 3492 "rl78-parse.c" /* yacc.c:1648  */
3492ed0d50c3Schristos     break;
3493ed0d50c3Schristos 
3494ed0d50c3Schristos   case 218:
3495*b88e3e88Schristos #line 882 "./config/rl78-parse.y" /* yacc.c:1648  */
3496ed0d50c3Schristos     { B2 (0xbe, 0xf8); }
3497*b88e3e88Schristos #line 3498 "rl78-parse.c" /* yacc.c:1648  */
3498ed0d50c3Schristos     break;
3499ed0d50c3Schristos 
3500ed0d50c3Schristos   case 219:
3501*b88e3e88Schristos #line 885 "./config/rl78-parse.y" /* yacc.c:1648  */
3502ed0d50c3Schristos     { B2 (0xae, 0xf8); }
3503*b88e3e88Schristos #line 3504 "rl78-parse.c" /* yacc.c:1648  */
3504ed0d50c3Schristos     break;
3505ed0d50c3Schristos 
3506ed0d50c3Schristos   case 220:
3507*b88e3e88Schristos #line 888 "./config/rl78-parse.y" /* yacc.c:1648  */
350806324dcfSchristos     { B3 (0xcb, 0xf8, 0xff); F ((yyvsp[-2].regno), 2, 2); }
3509*b88e3e88Schristos #line 3510 "rl78-parse.c" /* yacc.c:1648  */
3510ed0d50c3Schristos     break;
3511ed0d50c3Schristos 
3512ed0d50c3Schristos   case 221:
3513*b88e3e88Schristos #line 893 "./config/rl78-parse.y" /* yacc.c:1648  */
3514ed0d50c3Schristos     { B1 (0x00); }
3515*b88e3e88Schristos #line 3516 "rl78-parse.c" /* yacc.c:1648  */
3516ed0d50c3Schristos     break;
3517ed0d50c3Schristos 
3518ed0d50c3Schristos   case 222:
3519*b88e3e88Schristos #line 898 "./config/rl78-parse.y" /* yacc.c:1648  */
3520ed0d50c3Schristos     { B2 (0x71, 0xc0); }
3521*b88e3e88Schristos #line 3522 "rl78-parse.c" /* yacc.c:1648  */
3522ed0d50c3Schristos     break;
3523ed0d50c3Schristos 
3524ed0d50c3Schristos   case 223:
3525*b88e3e88Schristos #line 903 "./config/rl78-parse.y" /* yacc.c:1648  */
352606324dcfSchristos     { B1 (0xc0); F ((yyvsp[0].regno), 5, 2); }
3527*b88e3e88Schristos #line 3528 "rl78-parse.c" /* yacc.c:1648  */
3528ed0d50c3Schristos     break;
3529ed0d50c3Schristos 
3530ed0d50c3Schristos   case 224:
3531*b88e3e88Schristos #line 906 "./config/rl78-parse.y" /* yacc.c:1648  */
3532ed0d50c3Schristos     { B2 (0x61, 0xcd); }
3533*b88e3e88Schristos #line 3534 "rl78-parse.c" /* yacc.c:1648  */
3534ed0d50c3Schristos     break;
3535ed0d50c3Schristos 
3536ed0d50c3Schristos   case 225:
3537*b88e3e88Schristos #line 909 "./config/rl78-parse.y" /* yacc.c:1648  */
353806324dcfSchristos     { B1 (0xc1); F ((yyvsp[0].regno), 5, 2); }
3539*b88e3e88Schristos #line 3540 "rl78-parse.c" /* yacc.c:1648  */
3540ed0d50c3Schristos     break;
3541ed0d50c3Schristos 
3542ed0d50c3Schristos   case 226:
3543*b88e3e88Schristos #line 912 "./config/rl78-parse.y" /* yacc.c:1648  */
3544ed0d50c3Schristos     { B2 (0x61, 0xdd); }
3545*b88e3e88Schristos #line 3546 "rl78-parse.c" /* yacc.c:1648  */
3546ed0d50c3Schristos     break;
3547ed0d50c3Schristos 
3548ed0d50c3Schristos   case 227:
3549*b88e3e88Schristos #line 917 "./config/rl78-parse.y" /* yacc.c:1648  */
3550ed0d50c3Schristos     { B1 (0xd7); }
3551*b88e3e88Schristos #line 3552 "rl78-parse.c" /* yacc.c:1648  */
3552ed0d50c3Schristos     break;
3553ed0d50c3Schristos 
3554ed0d50c3Schristos   case 228:
3555*b88e3e88Schristos #line 920 "./config/rl78-parse.y" /* yacc.c:1648  */
3556ed0d50c3Schristos     { B2 (0x61, 0xfc); }
3557*b88e3e88Schristos #line 3558 "rl78-parse.c" /* yacc.c:1648  */
3558ed0d50c3Schristos     break;
3559ed0d50c3Schristos 
3560ed0d50c3Schristos   case 229:
3561*b88e3e88Schristos #line 923 "./config/rl78-parse.y" /* yacc.c:1648  */
3562ed0d50c3Schristos     { B2 (0x61, 0xec); }
3563*b88e3e88Schristos #line 3564 "rl78-parse.c" /* yacc.c:1648  */
3564ed0d50c3Schristos     break;
3565ed0d50c3Schristos 
3566ed0d50c3Schristos   case 230:
3567*b88e3e88Schristos #line 928 "./config/rl78-parse.y" /* yacc.c:1648  */
356806324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 1))
3569ed0d50c3Schristos 	      { B2 (0x61, 0xeb); }
3570ed0d50c3Schristos 	  }
3571*b88e3e88Schristos #line 3572 "rl78-parse.c" /* yacc.c:1648  */
3572ed0d50c3Schristos     break;
3573ed0d50c3Schristos 
3574ed0d50c3Schristos   case 231:
3575*b88e3e88Schristos #line 933 "./config/rl78-parse.y" /* yacc.c:1648  */
357606324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 1))
3577ed0d50c3Schristos 	      { B2 (0x61, 0xdc); }
3578ed0d50c3Schristos 	  }
3579*b88e3e88Schristos #line 3580 "rl78-parse.c" /* yacc.c:1648  */
3580ed0d50c3Schristos     break;
3581ed0d50c3Schristos 
3582ed0d50c3Schristos   case 232:
3583*b88e3e88Schristos #line 938 "./config/rl78-parse.y" /* yacc.c:1648  */
358406324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 1))
3585ed0d50c3Schristos 	      { B2 (0x61, 0xee); }
3586ed0d50c3Schristos 	  }
3587*b88e3e88Schristos #line 3588 "rl78-parse.c" /* yacc.c:1648  */
3588ed0d50c3Schristos     break;
3589ed0d50c3Schristos 
3590ed0d50c3Schristos   case 233:
3591*b88e3e88Schristos #line 943 "./config/rl78-parse.y" /* yacc.c:1648  */
359206324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 1))
3593ed0d50c3Schristos 	      { B2 (0x61, 0xfe); }
3594ed0d50c3Schristos 	  }
3595*b88e3e88Schristos #line 3596 "rl78-parse.c" /* yacc.c:1648  */
3596ed0d50c3Schristos     break;
3597ed0d50c3Schristos 
3598ed0d50c3Schristos   case 234:
3599*b88e3e88Schristos #line 948 "./config/rl78-parse.y" /* yacc.c:1648  */
360006324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 1))
3601ed0d50c3Schristos 	      { B2 (0x61, 0xdb); }
3602ed0d50c3Schristos 	  }
3603*b88e3e88Schristos #line 3604 "rl78-parse.c" /* yacc.c:1648  */
3604ed0d50c3Schristos     break;
3605ed0d50c3Schristos 
3606ed0d50c3Schristos   case 235:
3607*b88e3e88Schristos #line 953 "./config/rl78-parse.y" /* yacc.c:1648  */
360806324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 1))
3609ed0d50c3Schristos 	      { B2 (0x61, 0xfb);}
3610ed0d50c3Schristos 	  }
3611*b88e3e88Schristos #line 3612 "rl78-parse.c" /* yacc.c:1648  */
3612ed0d50c3Schristos     break;
3613ed0d50c3Schristos 
3614ed0d50c3Schristos   case 236:
3615*b88e3e88Schristos #line 960 "./config/rl78-parse.y" /* yacc.c:1648  */
361606324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 7))
361706324dcfSchristos 	      { B2 (0x31, 0x0b); FE ((yyvsp[0].exp), 9, 3); }
3618ed0d50c3Schristos 	  }
3619*b88e3e88Schristos #line 3620 "rl78-parse.c" /* yacc.c:1648  */
3620ed0d50c3Schristos     break;
3621ed0d50c3Schristos 
3622ed0d50c3Schristos   case 237:
3623*b88e3e88Schristos #line 965 "./config/rl78-parse.y" /* yacc.c:1648  */
362406324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 15))
362506324dcfSchristos 	      { B2 (0x31, 0x0f); FE ((yyvsp[0].exp), 8, 4); }
3626ed0d50c3Schristos 	  }
3627*b88e3e88Schristos #line 3628 "rl78-parse.c" /* yacc.c:1648  */
3628ed0d50c3Schristos     break;
3629ed0d50c3Schristos 
3630ed0d50c3Schristos   case 238:
3631*b88e3e88Schristos #line 972 "./config/rl78-parse.y" /* yacc.c:1648  */
3632ed0d50c3Schristos     { B2 (0x61, 0xcf); }
3633*b88e3e88Schristos #line 3634 "rl78-parse.c" /* yacc.c:1648  */
3634ed0d50c3Schristos     break;
3635ed0d50c3Schristos 
3636ed0d50c3Schristos   case 239:
3637*b88e3e88Schristos #line 975 "./config/rl78-parse.y" /* yacc.c:1648  */
3638ed0d50c3Schristos     { B2 (0x61, 0xdf); }
3639*b88e3e88Schristos #line 3640 "rl78-parse.c" /* yacc.c:1648  */
3640ed0d50c3Schristos     break;
3641ed0d50c3Schristos 
3642ed0d50c3Schristos   case 240:
3643*b88e3e88Schristos #line 978 "./config/rl78-parse.y" /* yacc.c:1648  */
3644ed0d50c3Schristos     { B2 (0x61, 0xef); }
3645*b88e3e88Schristos #line 3646 "rl78-parse.c" /* yacc.c:1648  */
3646ed0d50c3Schristos     break;
3647ed0d50c3Schristos 
3648ed0d50c3Schristos   case 241:
3649*b88e3e88Schristos #line 981 "./config/rl78-parse.y" /* yacc.c:1648  */
3650ed0d50c3Schristos     { B2 (0x61, 0xff); }
3651*b88e3e88Schristos #line 3652 "rl78-parse.c" /* yacc.c:1648  */
3652ed0d50c3Schristos     break;
3653ed0d50c3Schristos 
3654ed0d50c3Schristos   case 242:
3655*b88e3e88Schristos #line 986 "./config/rl78-parse.y" /* yacc.c:1648  */
365606324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 7))
365706324dcfSchristos 	      { B2 (0x31, 0x09); FE ((yyvsp[0].exp), 9, 3); }
3658ed0d50c3Schristos 	  }
3659*b88e3e88Schristos #line 3660 "rl78-parse.c" /* yacc.c:1648  */
3660ed0d50c3Schristos     break;
3661ed0d50c3Schristos 
3662ed0d50c3Schristos   case 243:
3663*b88e3e88Schristos #line 991 "./config/rl78-parse.y" /* yacc.c:1648  */
366406324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 7))
366506324dcfSchristos 	      { B2 (0x31, 0x08); FE ((yyvsp[0].exp), 9, 3); }
3666ed0d50c3Schristos 	  }
3667*b88e3e88Schristos #line 3668 "rl78-parse.c" /* yacc.c:1648  */
3668ed0d50c3Schristos     break;
3669ed0d50c3Schristos 
3670ed0d50c3Schristos   case 244:
3671*b88e3e88Schristos #line 996 "./config/rl78-parse.y" /* yacc.c:1648  */
367206324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 7))
367306324dcfSchristos 	      { B2 (0x31, 0x07); FE ((yyvsp[0].exp), 9, 3); }
3674ed0d50c3Schristos 	  }
3675*b88e3e88Schristos #line 3676 "rl78-parse.c" /* yacc.c:1648  */
3676ed0d50c3Schristos     break;
3677ed0d50c3Schristos 
3678ed0d50c3Schristos   case 245:
3679*b88e3e88Schristos #line 1001 "./config/rl78-parse.y" /* yacc.c:1648  */
368006324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 15))
368106324dcfSchristos 	      { B2 (0x31, 0x0d); FE ((yyvsp[0].exp), 8, 4); }
3682ed0d50c3Schristos 	  }
3683*b88e3e88Schristos #line 3684 "rl78-parse.c" /* yacc.c:1648  */
3684ed0d50c3Schristos     break;
3685ed0d50c3Schristos 
3686ed0d50c3Schristos   case 246:
3687*b88e3e88Schristos #line 1006 "./config/rl78-parse.y" /* yacc.c:1648  */
368806324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 15))
368906324dcfSchristos 	      { B2 (0x31, 0x0c); FE ((yyvsp[0].exp), 8, 4); }
3690ed0d50c3Schristos 	  }
3691*b88e3e88Schristos #line 3692 "rl78-parse.c" /* yacc.c:1648  */
3692ed0d50c3Schristos     break;
3693ed0d50c3Schristos 
3694ed0d50c3Schristos   case 247:
3695*b88e3e88Schristos #line 1013 "./config/rl78-parse.y" /* yacc.c:1648  */
369606324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 7))
369706324dcfSchristos 	      { B2 (0x31, 0x0a); FE ((yyvsp[0].exp), 9, 3); }
3698ed0d50c3Schristos 	  }
3699*b88e3e88Schristos #line 3700 "rl78-parse.c" /* yacc.c:1648  */
3700ed0d50c3Schristos     break;
3701ed0d50c3Schristos 
3702ed0d50c3Schristos   case 248:
3703*b88e3e88Schristos #line 1018 "./config/rl78-parse.y" /* yacc.c:1648  */
370406324dcfSchristos     { if (check_expr_is_const ((yyvsp[0].exp), 1, 15))
370506324dcfSchristos 	      { B2 (0x31, 0x0e); FE ((yyvsp[0].exp), 8, 4); }
3706ed0d50c3Schristos 	  }
3707*b88e3e88Schristos #line 3708 "rl78-parse.c" /* yacc.c:1648  */
3708ed0d50c3Schristos     break;
3709ed0d50c3Schristos 
3710ed0d50c3Schristos   case 249:
3711*b88e3e88Schristos #line 1025 "./config/rl78-parse.y" /* yacc.c:1648  */
3712ed0d50c3Schristos     { B2 (0x61, 0xc8); rl78_relax (RL78_RELAX_BRANCH, 0); }
3713*b88e3e88Schristos #line 3714 "rl78-parse.c" /* yacc.c:1648  */
3714ed0d50c3Schristos     break;
3715ed0d50c3Schristos 
3716ed0d50c3Schristos   case 250:
3717*b88e3e88Schristos #line 1028 "./config/rl78-parse.y" /* yacc.c:1648  */
3718ed0d50c3Schristos     { B2 (0x61, 0xe3); rl78_relax (RL78_RELAX_BRANCH, 0); }
3719*b88e3e88Schristos #line 3720 "rl78-parse.c" /* yacc.c:1648  */
3720ed0d50c3Schristos     break;
3721ed0d50c3Schristos 
3722ed0d50c3Schristos   case 251:
3723*b88e3e88Schristos #line 1031 "./config/rl78-parse.y" /* yacc.c:1648  */
3724ed0d50c3Schristos     { B2 (0x61, 0xd8); rl78_relax (RL78_RELAX_BRANCH, 0); }
3725*b88e3e88Schristos #line 3726 "rl78-parse.c" /* yacc.c:1648  */
3726ed0d50c3Schristos     break;
3727ed0d50c3Schristos 
3728ed0d50c3Schristos   case 252:
3729*b88e3e88Schristos #line 1034 "./config/rl78-parse.y" /* yacc.c:1648  */
3730ed0d50c3Schristos     { B2 (0x61, 0xf3); rl78_relax (RL78_RELAX_BRANCH, 0); }
3731*b88e3e88Schristos #line 3732 "rl78-parse.c" /* yacc.c:1648  */
3732ed0d50c3Schristos     break;
3733ed0d50c3Schristos 
3734ed0d50c3Schristos   case 253:
3735*b88e3e88Schristos #line 1037 "./config/rl78-parse.y" /* yacc.c:1648  */
3736ed0d50c3Schristos     { B2 (0x61, 0xf8); rl78_relax (RL78_RELAX_BRANCH, 0); }
3737*b88e3e88Schristos #line 3738 "rl78-parse.c" /* yacc.c:1648  */
3738ed0d50c3Schristos     break;
3739ed0d50c3Schristos 
3740ed0d50c3Schristos   case 254:
3741*b88e3e88Schristos #line 1040 "./config/rl78-parse.y" /* yacc.c:1648  */
3742ed0d50c3Schristos     { B2 (0x61, 0xe8); rl78_relax (RL78_RELAX_BRANCH, 0); }
3743*b88e3e88Schristos #line 3744 "rl78-parse.c" /* yacc.c:1648  */
3744ed0d50c3Schristos     break;
3745ed0d50c3Schristos 
3746ed0d50c3Schristos   case 255:
3747*b88e3e88Schristos #line 1045 "./config/rl78-parse.y" /* yacc.c:1648  */
3748ed0d50c3Schristos     { B2 (0x61, 0xfd); }
3749*b88e3e88Schristos #line 3750 "rl78-parse.c" /* yacc.c:1648  */
3750ed0d50c3Schristos     break;
3751ed0d50c3Schristos 
3752ed0d50c3Schristos   case 256:
3753*b88e3e88Schristos #line 1050 "./config/rl78-parse.y" /* yacc.c:1648  */
375406324dcfSchristos     { if ((yyvsp[0].regno) == 0) /* X */
3755ed0d50c3Schristos 	      { B1 (0x08); }
3756ed0d50c3Schristos 	    else
375706324dcfSchristos 	      { B2 (0x61, 0x88); F ((yyvsp[0].regno), 13, 3); }
3758ed0d50c3Schristos 	  }
3759*b88e3e88Schristos #line 3760 "rl78-parse.c" /* yacc.c:1648  */
3760ed0d50c3Schristos     break;
3761ed0d50c3Schristos 
3762ed0d50c3Schristos   case 257:
3763*b88e3e88Schristos #line 1057 "./config/rl78-parse.y" /* yacc.c:1648  */
376406324dcfSchristos     { B2 (0x61, 0xaa); O2 ((yyvsp[0].exp)); rl78_linkrelax_addr16 (); }
3765*b88e3e88Schristos #line 3766 "rl78-parse.c" /* yacc.c:1648  */
3766ed0d50c3Schristos     break;
3767ed0d50c3Schristos 
3768ed0d50c3Schristos   case 258:
3769*b88e3e88Schristos #line 1060 "./config/rl78-parse.y" /* yacc.c:1648  */
3770ed0d50c3Schristos     { B2 (0x61, 0xae); }
3771*b88e3e88Schristos #line 3772 "rl78-parse.c" /* yacc.c:1648  */
3772ed0d50c3Schristos     break;
3773ed0d50c3Schristos 
3774ed0d50c3Schristos   case 259:
3775*b88e3e88Schristos #line 1063 "./config/rl78-parse.y" /* yacc.c:1648  */
377606324dcfSchristos     { B2 (0x61, 0xaf); O1 ((yyvsp[-1].exp)); }
3777*b88e3e88Schristos #line 3778 "rl78-parse.c" /* yacc.c:1648  */
3778ed0d50c3Schristos     break;
3779ed0d50c3Schristos 
3780ed0d50c3Schristos   case 260:
3781*b88e3e88Schristos #line 1066 "./config/rl78-parse.y" /* yacc.c:1648  */
3782ed0d50c3Schristos     { B2 (0x61, 0xac); }
3783*b88e3e88Schristos #line 3784 "rl78-parse.c" /* yacc.c:1648  */
3784ed0d50c3Schristos     break;
3785ed0d50c3Schristos 
3786ed0d50c3Schristos   case 261:
3787*b88e3e88Schristos #line 1069 "./config/rl78-parse.y" /* yacc.c:1648  */
378806324dcfSchristos     { B2 (0x61, 0xad); O1 ((yyvsp[-1].exp)); }
3789*b88e3e88Schristos #line 3790 "rl78-parse.c" /* yacc.c:1648  */
3790ed0d50c3Schristos     break;
3791ed0d50c3Schristos 
3792ed0d50c3Schristos   case 262:
3793*b88e3e88Schristos #line 1072 "./config/rl78-parse.y" /* yacc.c:1648  */
3794ed0d50c3Schristos     { B2 (0x61, 0xb9); }
3795*b88e3e88Schristos #line 3796 "rl78-parse.c" /* yacc.c:1648  */
3796ed0d50c3Schristos     break;
3797ed0d50c3Schristos 
3798ed0d50c3Schristos   case 263:
3799*b88e3e88Schristos #line 1075 "./config/rl78-parse.y" /* yacc.c:1648  */
3800ed0d50c3Schristos     { B2 (0x61, 0xa9); }
3801*b88e3e88Schristos #line 3802 "rl78-parse.c" /* yacc.c:1648  */
3802ed0d50c3Schristos     break;
3803ed0d50c3Schristos 
3804ed0d50c3Schristos   case 264:
3805*b88e3e88Schristos #line 1078 "./config/rl78-parse.y" /* yacc.c:1648  */
380606324dcfSchristos     { if (expr_is_sfr ((yyvsp[0].exp)))
380706324dcfSchristos 	      { B2 (0x61, 0xab); O1 ((yyvsp[0].exp)); }
380806324dcfSchristos 	    else if (expr_is_saddr ((yyvsp[0].exp)))
380906324dcfSchristos 	      { B2 (0x61, 0xa8); SET_SA ((yyvsp[0].exp)); O1 ((yyvsp[0].exp)); }
3810ed0d50c3Schristos 	    else
3811ed0d50c3Schristos 	      NOT_SFR_OR_SADDR;
3812ed0d50c3Schristos 	  }
3813*b88e3e88Schristos #line 3814 "rl78-parse.c" /* yacc.c:1648  */
3814ed0d50c3Schristos     break;
3815ed0d50c3Schristos 
3816ed0d50c3Schristos   case 265:
3817*b88e3e88Schristos #line 1089 "./config/rl78-parse.y" /* yacc.c:1648  */
381806324dcfSchristos     { B1 (0x31); F ((yyvsp[0].regno), 5, 2); }
3819*b88e3e88Schristos #line 3820 "rl78-parse.c" /* yacc.c:1648  */
3820ed0d50c3Schristos     break;
3821ed0d50c3Schristos 
3822ed0d50c3Schristos   case 267:
3823*b88e3e88Schristos #line 1099 "./config/rl78-parse.y" /* yacc.c:1648  */
3824ed0d50c3Schristos     { rl78_prefix (0x11); }
3825*b88e3e88Schristos #line 3826 "rl78-parse.c" /* yacc.c:1648  */
3826ed0d50c3Schristos     break;
3827ed0d50c3Schristos 
3828ed0d50c3Schristos   case 268:
3829*b88e3e88Schristos #line 1102 "./config/rl78-parse.y" /* yacc.c:1648  */
3830ed0d50c3Schristos     { (yyval.regno) = 0; }
3831*b88e3e88Schristos #line 3832 "rl78-parse.c" /* yacc.c:1648  */
3832ed0d50c3Schristos     break;
3833ed0d50c3Schristos 
3834ed0d50c3Schristos   case 269:
3835*b88e3e88Schristos #line 1103 "./config/rl78-parse.y" /* yacc.c:1648  */
3836ed0d50c3Schristos     { (yyval.regno) = 1; }
3837*b88e3e88Schristos #line 3838 "rl78-parse.c" /* yacc.c:1648  */
3838ed0d50c3Schristos     break;
3839ed0d50c3Schristos 
3840ed0d50c3Schristos   case 270:
3841*b88e3e88Schristos #line 1104 "./config/rl78-parse.y" /* yacc.c:1648  */
3842ed0d50c3Schristos     { (yyval.regno) = 2; }
3843*b88e3e88Schristos #line 3844 "rl78-parse.c" /* yacc.c:1648  */
3844ed0d50c3Schristos     break;
3845ed0d50c3Schristos 
3846ed0d50c3Schristos   case 271:
3847*b88e3e88Schristos #line 1105 "./config/rl78-parse.y" /* yacc.c:1648  */
3848ed0d50c3Schristos     { (yyval.regno) = 3; }
3849*b88e3e88Schristos #line 3850 "rl78-parse.c" /* yacc.c:1648  */
3850ed0d50c3Schristos     break;
3851ed0d50c3Schristos 
3852ed0d50c3Schristos   case 272:
3853*b88e3e88Schristos #line 1106 "./config/rl78-parse.y" /* yacc.c:1648  */
3854ed0d50c3Schristos     { (yyval.regno) = 4; }
3855*b88e3e88Schristos #line 3856 "rl78-parse.c" /* yacc.c:1648  */
3856ed0d50c3Schristos     break;
3857ed0d50c3Schristos 
3858ed0d50c3Schristos   case 273:
3859*b88e3e88Schristos #line 1107 "./config/rl78-parse.y" /* yacc.c:1648  */
3860ed0d50c3Schristos     { (yyval.regno) = 5; }
3861*b88e3e88Schristos #line 3862 "rl78-parse.c" /* yacc.c:1648  */
3862ed0d50c3Schristos     break;
3863ed0d50c3Schristos 
3864ed0d50c3Schristos   case 274:
3865*b88e3e88Schristos #line 1108 "./config/rl78-parse.y" /* yacc.c:1648  */
3866ed0d50c3Schristos     { (yyval.regno) = 6; }
3867*b88e3e88Schristos #line 3868 "rl78-parse.c" /* yacc.c:1648  */
3868ed0d50c3Schristos     break;
3869ed0d50c3Schristos 
3870ed0d50c3Schristos   case 275:
3871*b88e3e88Schristos #line 1109 "./config/rl78-parse.y" /* yacc.c:1648  */
3872ed0d50c3Schristos     { (yyval.regno) = 7; }
3873*b88e3e88Schristos #line 3874 "rl78-parse.c" /* yacc.c:1648  */
3874ed0d50c3Schristos     break;
3875ed0d50c3Schristos 
3876ed0d50c3Schristos   case 276:
3877*b88e3e88Schristos #line 1112 "./config/rl78-parse.y" /* yacc.c:1648  */
3878ed0d50c3Schristos     { (yyval.regno) = 0; }
3879*b88e3e88Schristos #line 3880 "rl78-parse.c" /* yacc.c:1648  */
3880ed0d50c3Schristos     break;
3881ed0d50c3Schristos 
3882ed0d50c3Schristos   case 277:
3883*b88e3e88Schristos #line 1113 "./config/rl78-parse.y" /* yacc.c:1648  */
3884ed0d50c3Schristos     { (yyval.regno) = 2; }
3885*b88e3e88Schristos #line 3886 "rl78-parse.c" /* yacc.c:1648  */
3886ed0d50c3Schristos     break;
3887ed0d50c3Schristos 
3888ed0d50c3Schristos   case 278:
3889*b88e3e88Schristos #line 1114 "./config/rl78-parse.y" /* yacc.c:1648  */
3890ed0d50c3Schristos     { (yyval.regno) = 3; }
3891*b88e3e88Schristos #line 3892 "rl78-parse.c" /* yacc.c:1648  */
3892ed0d50c3Schristos     break;
3893ed0d50c3Schristos 
3894ed0d50c3Schristos   case 279:
3895*b88e3e88Schristos #line 1115 "./config/rl78-parse.y" /* yacc.c:1648  */
3896ed0d50c3Schristos     { (yyval.regno) = 4; }
3897*b88e3e88Schristos #line 3898 "rl78-parse.c" /* yacc.c:1648  */
3898ed0d50c3Schristos     break;
3899ed0d50c3Schristos 
3900ed0d50c3Schristos   case 280:
3901*b88e3e88Schristos #line 1116 "./config/rl78-parse.y" /* yacc.c:1648  */
3902ed0d50c3Schristos     { (yyval.regno) = 5; }
3903*b88e3e88Schristos #line 3904 "rl78-parse.c" /* yacc.c:1648  */
3904ed0d50c3Schristos     break;
3905ed0d50c3Schristos 
3906ed0d50c3Schristos   case 281:
3907*b88e3e88Schristos #line 1117 "./config/rl78-parse.y" /* yacc.c:1648  */
3908ed0d50c3Schristos     { (yyval.regno) = 6; }
3909*b88e3e88Schristos #line 3910 "rl78-parse.c" /* yacc.c:1648  */
3910ed0d50c3Schristos     break;
3911ed0d50c3Schristos 
3912ed0d50c3Schristos   case 282:
3913*b88e3e88Schristos #line 1118 "./config/rl78-parse.y" /* yacc.c:1648  */
3914ed0d50c3Schristos     { (yyval.regno) = 7; }
3915*b88e3e88Schristos #line 3916 "rl78-parse.c" /* yacc.c:1648  */
3916ed0d50c3Schristos     break;
3917ed0d50c3Schristos 
3918ed0d50c3Schristos   case 283:
3919*b88e3e88Schristos #line 1121 "./config/rl78-parse.y" /* yacc.c:1648  */
3920ed0d50c3Schristos     { (yyval.regno) = 0; }
3921*b88e3e88Schristos #line 3922 "rl78-parse.c" /* yacc.c:1648  */
3922ed0d50c3Schristos     break;
3923ed0d50c3Schristos 
3924ed0d50c3Schristos   case 284:
3925*b88e3e88Schristos #line 1122 "./config/rl78-parse.y" /* yacc.c:1648  */
3926ed0d50c3Schristos     { (yyval.regno) = 1; }
3927*b88e3e88Schristos #line 3928 "rl78-parse.c" /* yacc.c:1648  */
3928ed0d50c3Schristos     break;
3929ed0d50c3Schristos 
3930ed0d50c3Schristos   case 285:
3931*b88e3e88Schristos #line 1123 "./config/rl78-parse.y" /* yacc.c:1648  */
3932ed0d50c3Schristos     { (yyval.regno) = 2; }
3933*b88e3e88Schristos #line 3934 "rl78-parse.c" /* yacc.c:1648  */
3934ed0d50c3Schristos     break;
3935ed0d50c3Schristos 
3936ed0d50c3Schristos   case 286:
3937*b88e3e88Schristos #line 1124 "./config/rl78-parse.y" /* yacc.c:1648  */
3938ed0d50c3Schristos     { (yyval.regno) = 3; }
3939*b88e3e88Schristos #line 3940 "rl78-parse.c" /* yacc.c:1648  */
3940ed0d50c3Schristos     break;
3941ed0d50c3Schristos 
3942ed0d50c3Schristos   case 287:
3943*b88e3e88Schristos #line 1127 "./config/rl78-parse.y" /* yacc.c:1648  */
3944ed0d50c3Schristos     { (yyval.regno) = 1; }
3945*b88e3e88Schristos #line 3946 "rl78-parse.c" /* yacc.c:1648  */
3946ed0d50c3Schristos     break;
3947ed0d50c3Schristos 
3948ed0d50c3Schristos   case 288:
3949*b88e3e88Schristos #line 1128 "./config/rl78-parse.y" /* yacc.c:1648  */
3950ed0d50c3Schristos     { (yyval.regno) = 2; }
3951*b88e3e88Schristos #line 3952 "rl78-parse.c" /* yacc.c:1648  */
3952ed0d50c3Schristos     break;
3953ed0d50c3Schristos 
3954ed0d50c3Schristos   case 289:
3955*b88e3e88Schristos #line 1129 "./config/rl78-parse.y" /* yacc.c:1648  */
3956ed0d50c3Schristos     { (yyval.regno) = 3; }
3957*b88e3e88Schristos #line 3958 "rl78-parse.c" /* yacc.c:1648  */
3958ed0d50c3Schristos     break;
3959ed0d50c3Schristos 
3960ed0d50c3Schristos   case 290:
3961*b88e3e88Schristos #line 1132 "./config/rl78-parse.y" /* yacc.c:1648  */
3962ed0d50c3Schristos     { (yyval.regno) = 0xf8; }
3963*b88e3e88Schristos #line 3964 "rl78-parse.c" /* yacc.c:1648  */
3964ed0d50c3Schristos     break;
3965ed0d50c3Schristos 
3966ed0d50c3Schristos   case 291:
3967*b88e3e88Schristos #line 1133 "./config/rl78-parse.y" /* yacc.c:1648  */
3968ed0d50c3Schristos     { (yyval.regno) = 0xf9; }
3969*b88e3e88Schristos #line 3970 "rl78-parse.c" /* yacc.c:1648  */
3970ed0d50c3Schristos     break;
3971ed0d50c3Schristos 
3972ed0d50c3Schristos   case 292:
3973*b88e3e88Schristos #line 1134 "./config/rl78-parse.y" /* yacc.c:1648  */
3974ed0d50c3Schristos     { (yyval.regno) = 0xfa; }
3975*b88e3e88Schristos #line 3976 "rl78-parse.c" /* yacc.c:1648  */
3976ed0d50c3Schristos     break;
3977ed0d50c3Schristos 
3978ed0d50c3Schristos   case 293:
3979*b88e3e88Schristos #line 1135 "./config/rl78-parse.y" /* yacc.c:1648  */
3980ed0d50c3Schristos     { (yyval.regno) = 0xfc; }
3981*b88e3e88Schristos #line 3982 "rl78-parse.c" /* yacc.c:1648  */
3982ed0d50c3Schristos     break;
3983ed0d50c3Schristos 
3984ed0d50c3Schristos   case 294:
3985*b88e3e88Schristos #line 1136 "./config/rl78-parse.y" /* yacc.c:1648  */
3986ed0d50c3Schristos     { (yyval.regno) = 0xfd; }
3987*b88e3e88Schristos #line 3988 "rl78-parse.c" /* yacc.c:1648  */
3988ed0d50c3Schristos     break;
3989ed0d50c3Schristos 
3990ed0d50c3Schristos   case 295:
3991*b88e3e88Schristos #line 1137 "./config/rl78-parse.y" /* yacc.c:1648  */
3992ed0d50c3Schristos     { (yyval.regno) = 0xfe; }
3993*b88e3e88Schristos #line 3994 "rl78-parse.c" /* yacc.c:1648  */
3994ed0d50c3Schristos     break;
3995ed0d50c3Schristos 
3996ed0d50c3Schristos   case 296:
3997*b88e3e88Schristos #line 1138 "./config/rl78-parse.y" /* yacc.c:1648  */
3998ed0d50c3Schristos     { (yyval.regno) = 0xff; }
3999*b88e3e88Schristos #line 4000 "rl78-parse.c" /* yacc.c:1648  */
4000ed0d50c3Schristos     break;
4001ed0d50c3Schristos 
4002ed0d50c3Schristos   case 297:
4003*b88e3e88Schristos #line 1144 "./config/rl78-parse.y" /* yacc.c:1648  */
4004ed0d50c3Schristos     { (yyval.regno) = 0x00; }
4005*b88e3e88Schristos #line 4006 "rl78-parse.c" /* yacc.c:1648  */
4006ed0d50c3Schristos     break;
4007ed0d50c3Schristos 
4008ed0d50c3Schristos   case 298:
4009*b88e3e88Schristos #line 1145 "./config/rl78-parse.y" /* yacc.c:1648  */
4010ed0d50c3Schristos     { (yyval.regno) = 0x10; }
4011*b88e3e88Schristos #line 4012 "rl78-parse.c" /* yacc.c:1648  */
4012ed0d50c3Schristos     break;
4013ed0d50c3Schristos 
4014ed0d50c3Schristos   case 299:
4015*b88e3e88Schristos #line 1146 "./config/rl78-parse.y" /* yacc.c:1648  */
4016ed0d50c3Schristos     { (yyval.regno) = 0x20; }
4017*b88e3e88Schristos #line 4018 "rl78-parse.c" /* yacc.c:1648  */
4018ed0d50c3Schristos     break;
4019ed0d50c3Schristos 
4020ed0d50c3Schristos   case 300:
4021*b88e3e88Schristos #line 1147 "./config/rl78-parse.y" /* yacc.c:1648  */
4022ed0d50c3Schristos     { (yyval.regno) = 0x30; }
4023*b88e3e88Schristos #line 4024 "rl78-parse.c" /* yacc.c:1648  */
4024ed0d50c3Schristos     break;
4025ed0d50c3Schristos 
4026ed0d50c3Schristos   case 301:
4027*b88e3e88Schristos #line 1148 "./config/rl78-parse.y" /* yacc.c:1648  */
4028ed0d50c3Schristos     { (yyval.regno) = 0x40; }
4029*b88e3e88Schristos #line 4030 "rl78-parse.c" /* yacc.c:1648  */
4030ed0d50c3Schristos     break;
4031ed0d50c3Schristos 
4032ed0d50c3Schristos   case 302:
4033*b88e3e88Schristos #line 1149 "./config/rl78-parse.y" /* yacc.c:1648  */
4034ed0d50c3Schristos     { (yyval.regno) = 0x50; }
4035*b88e3e88Schristos #line 4036 "rl78-parse.c" /* yacc.c:1648  */
4036ed0d50c3Schristos     break;
4037ed0d50c3Schristos 
4038ed0d50c3Schristos   case 303:
4039*b88e3e88Schristos #line 1150 "./config/rl78-parse.y" /* yacc.c:1648  */
4040ed0d50c3Schristos     { (yyval.regno) = 0x60; }
4041*b88e3e88Schristos #line 4042 "rl78-parse.c" /* yacc.c:1648  */
4042ed0d50c3Schristos     break;
4043ed0d50c3Schristos 
4044ed0d50c3Schristos   case 304:
4045*b88e3e88Schristos #line 1151 "./config/rl78-parse.y" /* yacc.c:1648  */
4046ed0d50c3Schristos     { (yyval.regno) = 0x70; }
4047*b88e3e88Schristos #line 4048 "rl78-parse.c" /* yacc.c:1648  */
4048ed0d50c3Schristos     break;
4049ed0d50c3Schristos 
4050ed0d50c3Schristos   case 305:
4051*b88e3e88Schristos #line 1154 "./config/rl78-parse.y" /* yacc.c:1648  */
4052ed0d50c3Schristos     { (yyval.regno) = 0x00; }
4053*b88e3e88Schristos #line 4054 "rl78-parse.c" /* yacc.c:1648  */
4054ed0d50c3Schristos     break;
4055ed0d50c3Schristos 
4056ed0d50c3Schristos   case 306:
4057*b88e3e88Schristos #line 1155 "./config/rl78-parse.y" /* yacc.c:1648  */
4058ed0d50c3Schristos     { (yyval.regno) = 0x20; }
4059*b88e3e88Schristos #line 4060 "rl78-parse.c" /* yacc.c:1648  */
4060ed0d50c3Schristos     break;
4061ed0d50c3Schristos 
4062ed0d50c3Schristos   case 307:
4063*b88e3e88Schristos #line 1156 "./config/rl78-parse.y" /* yacc.c:1648  */
4064ed0d50c3Schristos     { (yyval.regno) = 0x40; }
4065*b88e3e88Schristos #line 4066 "rl78-parse.c" /* yacc.c:1648  */
4066ed0d50c3Schristos     break;
4067ed0d50c3Schristos 
4068ed0d50c3Schristos   case 308:
4069*b88e3e88Schristos #line 1159 "./config/rl78-parse.y" /* yacc.c:1648  */
4070ed0d50c3Schristos     { (yyval.regno) = 0x05; rl78_bit_insn = 1; }
4071*b88e3e88Schristos #line 4072 "rl78-parse.c" /* yacc.c:1648  */
4072ed0d50c3Schristos     break;
4073ed0d50c3Schristos 
4074ed0d50c3Schristos   case 309:
4075*b88e3e88Schristos #line 1160 "./config/rl78-parse.y" /* yacc.c:1648  */
4076ed0d50c3Schristos     { (yyval.regno) = 0x06; rl78_bit_insn = 1; }
4077*b88e3e88Schristos #line 4078 "rl78-parse.c" /* yacc.c:1648  */
4078ed0d50c3Schristos     break;
4079ed0d50c3Schristos 
4080ed0d50c3Schristos   case 310:
4081*b88e3e88Schristos #line 1161 "./config/rl78-parse.y" /* yacc.c:1648  */
4082ed0d50c3Schristos     { (yyval.regno) = 0x07; rl78_bit_insn = 1; }
4083*b88e3e88Schristos #line 4084 "rl78-parse.c" /* yacc.c:1648  */
4084ed0d50c3Schristos     break;
4085ed0d50c3Schristos 
4086ed0d50c3Schristos   case 311:
4087*b88e3e88Schristos #line 1164 "./config/rl78-parse.y" /* yacc.c:1648  */
4088ed0d50c3Schristos     { (yyval.regno) = 0x02;    rl78_bit_insn = 1; rl78_linkrelax_branch (); }
4089*b88e3e88Schristos #line 4090 "rl78-parse.c" /* yacc.c:1648  */
4090ed0d50c3Schristos     break;
4091ed0d50c3Schristos 
4092ed0d50c3Schristos   case 312:
4093*b88e3e88Schristos #line 1165 "./config/rl78-parse.y" /* yacc.c:1648  */
4094ed0d50c3Schristos     { (yyval.regno) = 0x04;    rl78_bit_insn = 1; rl78_linkrelax_branch (); }
4095*b88e3e88Schristos #line 4096 "rl78-parse.c" /* yacc.c:1648  */
4096ed0d50c3Schristos     break;
4097ed0d50c3Schristos 
4098ed0d50c3Schristos   case 313:
4099*b88e3e88Schristos #line 1166 "./config/rl78-parse.y" /* yacc.c:1648  */
4100ed0d50c3Schristos     { (yyval.regno) = 0x00; rl78_bit_insn = 1; }
4101*b88e3e88Schristos #line 4102 "rl78-parse.c" /* yacc.c:1648  */
4102ed0d50c3Schristos     break;
4103ed0d50c3Schristos 
4104ed0d50c3Schristos   case 314:
4105*b88e3e88Schristos #line 1169 "./config/rl78-parse.y" /* yacc.c:1648  */
4106ed0d50c3Schristos     { (yyval.regno) = 0; rl78_bit_insn = 1; }
4107*b88e3e88Schristos #line 4108 "rl78-parse.c" /* yacc.c:1648  */
4108ed0d50c3Schristos     break;
4109ed0d50c3Schristos 
4110ed0d50c3Schristos   case 315:
4111*b88e3e88Schristos #line 1170 "./config/rl78-parse.y" /* yacc.c:1648  */
4112ed0d50c3Schristos     { (yyval.regno) = 1; rl78_bit_insn = 1; }
4113*b88e3e88Schristos #line 4114 "rl78-parse.c" /* yacc.c:1648  */
4114ed0d50c3Schristos     break;
4115ed0d50c3Schristos 
4116ed0d50c3Schristos   case 316:
4117*b88e3e88Schristos #line 1173 "./config/rl78-parse.y" /* yacc.c:1648  */
4118ed0d50c3Schristos     { (yyval.regno) = 0x00; }
4119*b88e3e88Schristos #line 4120 "rl78-parse.c" /* yacc.c:1648  */
4120ed0d50c3Schristos     break;
4121ed0d50c3Schristos 
4122ed0d50c3Schristos   case 317:
4123*b88e3e88Schristos #line 1174 "./config/rl78-parse.y" /* yacc.c:1648  */
4124ed0d50c3Schristos     { (yyval.regno) = 0x10; }
4125*b88e3e88Schristos #line 4126 "rl78-parse.c" /* yacc.c:1648  */
4126ed0d50c3Schristos     break;
4127ed0d50c3Schristos 
4128ed0d50c3Schristos   case 318:
4129*b88e3e88Schristos #line 1177 "./config/rl78-parse.y" /* yacc.c:1648  */
4130ed0d50c3Schristos     { (yyval.regno) = 0x00; }
4131*b88e3e88Schristos #line 4132 "rl78-parse.c" /* yacc.c:1648  */
4132ed0d50c3Schristos     break;
4133ed0d50c3Schristos 
4134ed0d50c3Schristos   case 319:
4135*b88e3e88Schristos #line 1178 "./config/rl78-parse.y" /* yacc.c:1648  */
4136ed0d50c3Schristos     { (yyval.regno) = 0x10; }
4137*b88e3e88Schristos #line 4138 "rl78-parse.c" /* yacc.c:1648  */
4138ed0d50c3Schristos     break;
4139ed0d50c3Schristos 
4140ed0d50c3Schristos   case 320:
4141*b88e3e88Schristos #line 1181 "./config/rl78-parse.y" /* yacc.c:1648  */
4142ed0d50c3Schristos     { (yyval.regno) = 0x00; }
4143*b88e3e88Schristos #line 4144 "rl78-parse.c" /* yacc.c:1648  */
4144ed0d50c3Schristos     break;
4145ed0d50c3Schristos 
4146ed0d50c3Schristos   case 321:
4147*b88e3e88Schristos #line 1182 "./config/rl78-parse.y" /* yacc.c:1648  */
4148ed0d50c3Schristos     { (yyval.regno) = 0x10; }
4149*b88e3e88Schristos #line 4150 "rl78-parse.c" /* yacc.c:1648  */
4150ed0d50c3Schristos     break;
4151ed0d50c3Schristos 
4152ed0d50c3Schristos   case 322:
4153*b88e3e88Schristos #line 1185 "./config/rl78-parse.y" /* yacc.c:1648  */
4154ed0d50c3Schristos     { (yyval.regno) = 0x00; }
4155*b88e3e88Schristos #line 4156 "rl78-parse.c" /* yacc.c:1648  */
4156ed0d50c3Schristos     break;
4157ed0d50c3Schristos 
4158ed0d50c3Schristos   case 323:
4159*b88e3e88Schristos #line 1186 "./config/rl78-parse.y" /* yacc.c:1648  */
4160ed0d50c3Schristos     { (yyval.regno) = 0x10; }
4161*b88e3e88Schristos #line 4162 "rl78-parse.c" /* yacc.c:1648  */
4162ed0d50c3Schristos     break;
4163ed0d50c3Schristos 
4164ed0d50c3Schristos   case 324:
4165*b88e3e88Schristos #line 1189 "./config/rl78-parse.y" /* yacc.c:1648  */
4166ed0d50c3Schristos     { rl78_bit_insn = 1; }
4167*b88e3e88Schristos #line 4168 "rl78-parse.c" /* yacc.c:1648  */
4168ed0d50c3Schristos     break;
4169ed0d50c3Schristos 
4170ed0d50c3Schristos 
4171*b88e3e88Schristos #line 4172 "rl78-parse.c" /* yacc.c:1648  */
4172ed0d50c3Schristos       default: break;
4173ed0d50c3Schristos     }
417406324dcfSchristos   /* User semantic actions sometimes alter yychar, and that requires
417506324dcfSchristos      that yytoken be updated with the new translation.  We take the
417606324dcfSchristos      approach of translating immediately before every use of yytoken.
417706324dcfSchristos      One alternative is translating here after every semantic action,
417806324dcfSchristos      but that translation would be missed if the semantic action invokes
417906324dcfSchristos      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
418006324dcfSchristos      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
418106324dcfSchristos      incorrect destructor might then be invoked immediately.  In the
418206324dcfSchristos      case of YYERROR or YYBACKUP, subsequent parser actions might lead
418306324dcfSchristos      to an incorrect destructor call or verbose syntax error message
418406324dcfSchristos      before the lookahead is translated.  */
4185ed0d50c3Schristos   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
4186ed0d50c3Schristos 
4187ed0d50c3Schristos   YYPOPSTACK (yylen);
4188ed0d50c3Schristos   yylen = 0;
4189ed0d50c3Schristos   YY_STACK_PRINT (yyss, yyssp);
4190ed0d50c3Schristos 
4191ed0d50c3Schristos   *++yyvsp = yyval;
4192ed0d50c3Schristos 
419306324dcfSchristos   /* Now 'shift' the result of the reduction.  Determine what state
4194ed0d50c3Schristos      that goes to, based on the state we popped back to and the rule
4195ed0d50c3Schristos      number reduced by.  */
4196ed0d50c3Schristos 
4197ed0d50c3Schristos   yyn = yyr1[yyn];
4198ed0d50c3Schristos 
4199ed0d50c3Schristos   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
4200ed0d50c3Schristos   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4201ed0d50c3Schristos     yystate = yytable[yystate];
4202ed0d50c3Schristos   else
4203ed0d50c3Schristos     yystate = yydefgoto[yyn - YYNTOKENS];
4204ed0d50c3Schristos 
4205ed0d50c3Schristos   goto yynewstate;
4206ed0d50c3Schristos 
4207ed0d50c3Schristos 
420806324dcfSchristos /*--------------------------------------.
420906324dcfSchristos | yyerrlab -- here on detecting error.  |
421006324dcfSchristos `--------------------------------------*/
4211ed0d50c3Schristos yyerrlab:
421206324dcfSchristos   /* Make sure we have latest lookahead translation.  See comments at
421306324dcfSchristos      user semantic actions for why this is necessary.  */
421406324dcfSchristos   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
421506324dcfSchristos 
4216ed0d50c3Schristos   /* If not already recovering from an error, report this error.  */
4217ed0d50c3Schristos   if (!yyerrstatus)
4218ed0d50c3Schristos     {
4219ed0d50c3Schristos       ++yynerrs;
4220ed0d50c3Schristos #if ! YYERROR_VERBOSE
4221ed0d50c3Schristos       yyerror (YY_("syntax error"));
4222ed0d50c3Schristos #else
422306324dcfSchristos # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
422406324dcfSchristos                                         yyssp, yytoken)
4225ed0d50c3Schristos       {
422606324dcfSchristos         char const *yymsgp = YY_("syntax error");
422706324dcfSchristos         int yysyntax_error_status;
422806324dcfSchristos         yysyntax_error_status = YYSYNTAX_ERROR;
422906324dcfSchristos         if (yysyntax_error_status == 0)
423006324dcfSchristos           yymsgp = yymsg;
423106324dcfSchristos         else if (yysyntax_error_status == 1)
4232ed0d50c3Schristos           {
4233ed0d50c3Schristos             if (yymsg != yymsgbuf)
4234ed0d50c3Schristos               YYSTACK_FREE (yymsg);
423506324dcfSchristos             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
423606324dcfSchristos             if (!yymsg)
4237ed0d50c3Schristos               {
4238ed0d50c3Schristos                 yymsg = yymsgbuf;
4239ed0d50c3Schristos                 yymsg_alloc = sizeof yymsgbuf;
424006324dcfSchristos                 yysyntax_error_status = 2;
4241ed0d50c3Schristos               }
4242ed0d50c3Schristos             else
4243ed0d50c3Schristos               {
424406324dcfSchristos                 yysyntax_error_status = YYSYNTAX_ERROR;
424506324dcfSchristos                 yymsgp = yymsg;
424606324dcfSchristos               }
424706324dcfSchristos           }
424806324dcfSchristos         yyerror (yymsgp);
424906324dcfSchristos         if (yysyntax_error_status == 2)
4250ed0d50c3Schristos           goto yyexhaustedlab;
4251ed0d50c3Schristos       }
425206324dcfSchristos # undef YYSYNTAX_ERROR
4253ed0d50c3Schristos #endif
4254ed0d50c3Schristos     }
4255ed0d50c3Schristos 
4256ed0d50c3Schristos 
4257ed0d50c3Schristos 
4258ed0d50c3Schristos   if (yyerrstatus == 3)
4259ed0d50c3Schristos     {
426006324dcfSchristos       /* If just tried and failed to reuse lookahead token after an
4261ed0d50c3Schristos          error, discard it.  */
4262ed0d50c3Schristos 
4263ed0d50c3Schristos       if (yychar <= YYEOF)
4264ed0d50c3Schristos         {
4265ed0d50c3Schristos           /* Return failure if at end of input.  */
4266ed0d50c3Schristos           if (yychar == YYEOF)
4267ed0d50c3Schristos             YYABORT;
4268ed0d50c3Schristos         }
4269ed0d50c3Schristos       else
4270ed0d50c3Schristos         {
4271ed0d50c3Schristos           yydestruct ("Error: discarding",
4272ed0d50c3Schristos                       yytoken, &yylval);
4273ed0d50c3Schristos           yychar = YYEMPTY;
4274ed0d50c3Schristos         }
4275ed0d50c3Schristos     }
4276ed0d50c3Schristos 
427706324dcfSchristos   /* Else will try to reuse lookahead token after shifting the error
4278ed0d50c3Schristos      token.  */
4279ed0d50c3Schristos   goto yyerrlab1;
4280ed0d50c3Schristos 
4281ed0d50c3Schristos 
4282ed0d50c3Schristos /*---------------------------------------------------.
4283ed0d50c3Schristos | yyerrorlab -- error raised explicitly by YYERROR.  |
4284ed0d50c3Schristos `---------------------------------------------------*/
4285ed0d50c3Schristos yyerrorlab:
4286ed0d50c3Schristos 
4287ed0d50c3Schristos   /* Pacify compilers like GCC when the user code never invokes
4288ed0d50c3Schristos      YYERROR and the label yyerrorlab therefore never appears in user
4289ed0d50c3Schristos      code.  */
4290ed0d50c3Schristos   if (/*CONSTCOND*/ 0)
4291ed0d50c3Schristos      goto yyerrorlab;
4292ed0d50c3Schristos 
429306324dcfSchristos   /* Do not reclaim the symbols of the rule whose action triggered
4294ed0d50c3Schristos      this YYERROR.  */
4295ed0d50c3Schristos   YYPOPSTACK (yylen);
4296ed0d50c3Schristos   yylen = 0;
4297ed0d50c3Schristos   YY_STACK_PRINT (yyss, yyssp);
4298ed0d50c3Schristos   yystate = *yyssp;
4299ed0d50c3Schristos   goto yyerrlab1;
4300ed0d50c3Schristos 
4301ed0d50c3Schristos 
4302ed0d50c3Schristos /*-------------------------------------------------------------.
4303ed0d50c3Schristos | yyerrlab1 -- common code for both syntax error and YYERROR.  |
4304ed0d50c3Schristos `-------------------------------------------------------------*/
4305ed0d50c3Schristos yyerrlab1:
4306ed0d50c3Schristos   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
4307ed0d50c3Schristos 
4308ed0d50c3Schristos   for (;;)
4309ed0d50c3Schristos     {
4310ed0d50c3Schristos       yyn = yypact[yystate];
431106324dcfSchristos       if (!yypact_value_is_default (yyn))
4312ed0d50c3Schristos         {
4313ed0d50c3Schristos           yyn += YYTERROR;
4314ed0d50c3Schristos           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4315ed0d50c3Schristos             {
4316ed0d50c3Schristos               yyn = yytable[yyn];
4317ed0d50c3Schristos               if (0 < yyn)
4318ed0d50c3Schristos                 break;
4319ed0d50c3Schristos             }
4320ed0d50c3Schristos         }
4321ed0d50c3Schristos 
4322ed0d50c3Schristos       /* Pop the current state because it cannot handle the error token.  */
4323ed0d50c3Schristos       if (yyssp == yyss)
4324ed0d50c3Schristos         YYABORT;
4325ed0d50c3Schristos 
4326ed0d50c3Schristos 
4327ed0d50c3Schristos       yydestruct ("Error: popping",
4328ed0d50c3Schristos                   yystos[yystate], yyvsp);
4329ed0d50c3Schristos       YYPOPSTACK (1);
4330ed0d50c3Schristos       yystate = *yyssp;
4331ed0d50c3Schristos       YY_STACK_PRINT (yyss, yyssp);
4332ed0d50c3Schristos     }
4333ed0d50c3Schristos 
433406324dcfSchristos   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4335ed0d50c3Schristos   *++yyvsp = yylval;
433606324dcfSchristos   YY_IGNORE_MAYBE_UNINITIALIZED_END
4337ed0d50c3Schristos 
4338ed0d50c3Schristos 
4339ed0d50c3Schristos   /* Shift the error token.  */
4340ed0d50c3Schristos   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
4341ed0d50c3Schristos 
4342ed0d50c3Schristos   yystate = yyn;
4343ed0d50c3Schristos   goto yynewstate;
4344ed0d50c3Schristos 
4345ed0d50c3Schristos 
4346ed0d50c3Schristos /*-------------------------------------.
4347ed0d50c3Schristos | yyacceptlab -- YYACCEPT comes here.  |
4348ed0d50c3Schristos `-------------------------------------*/
4349ed0d50c3Schristos yyacceptlab:
4350ed0d50c3Schristos   yyresult = 0;
4351ed0d50c3Schristos   goto yyreturn;
4352ed0d50c3Schristos 
4353ed0d50c3Schristos /*-----------------------------------.
4354ed0d50c3Schristos | yyabortlab -- YYABORT comes here.  |
4355ed0d50c3Schristos `-----------------------------------*/
4356ed0d50c3Schristos yyabortlab:
4357ed0d50c3Schristos   yyresult = 1;
4358ed0d50c3Schristos   goto yyreturn;
4359ed0d50c3Schristos 
436006324dcfSchristos #if !defined yyoverflow || YYERROR_VERBOSE
4361ed0d50c3Schristos /*-------------------------------------------------.
4362ed0d50c3Schristos | yyexhaustedlab -- memory exhaustion comes here.  |
4363ed0d50c3Schristos `-------------------------------------------------*/
4364ed0d50c3Schristos yyexhaustedlab:
4365ed0d50c3Schristos   yyerror (YY_("memory exhausted"));
4366ed0d50c3Schristos   yyresult = 2;
4367ed0d50c3Schristos   /* Fall through.  */
4368ed0d50c3Schristos #endif
4369ed0d50c3Schristos 
4370ed0d50c3Schristos yyreturn:
437106324dcfSchristos   if (yychar != YYEMPTY)
437206324dcfSchristos     {
437306324dcfSchristos       /* Make sure we have latest lookahead translation.  See comments at
437406324dcfSchristos          user semantic actions for why this is necessary.  */
437506324dcfSchristos       yytoken = YYTRANSLATE (yychar);
4376ed0d50c3Schristos       yydestruct ("Cleanup: discarding lookahead",
4377ed0d50c3Schristos                   yytoken, &yylval);
437806324dcfSchristos     }
437906324dcfSchristos   /* Do not reclaim the symbols of the rule whose action triggered
4380ed0d50c3Schristos      this YYABORT or YYACCEPT.  */
4381ed0d50c3Schristos   YYPOPSTACK (yylen);
4382ed0d50c3Schristos   YY_STACK_PRINT (yyss, yyssp);
4383ed0d50c3Schristos   while (yyssp != yyss)
4384ed0d50c3Schristos     {
4385ed0d50c3Schristos       yydestruct ("Cleanup: popping",
4386ed0d50c3Schristos                   yystos[*yyssp], yyvsp);
4387ed0d50c3Schristos       YYPOPSTACK (1);
4388ed0d50c3Schristos     }
4389ed0d50c3Schristos #ifndef yyoverflow
4390ed0d50c3Schristos   if (yyss != yyssa)
4391ed0d50c3Schristos     YYSTACK_FREE (yyss);
4392ed0d50c3Schristos #endif
4393ed0d50c3Schristos #if YYERROR_VERBOSE
4394ed0d50c3Schristos   if (yymsg != yymsgbuf)
4395ed0d50c3Schristos     YYSTACK_FREE (yymsg);
4396ed0d50c3Schristos #endif
439706324dcfSchristos   return yyresult;
4398ed0d50c3Schristos }
4399*b88e3e88Schristos #line 1192 "./config/rl78-parse.y" /* yacc.c:1907  */
4400ed0d50c3Schristos 
4401ed0d50c3Schristos /* ====================================================================== */
4402ed0d50c3Schristos 
4403ed0d50c3Schristos static struct
4404ed0d50c3Schristos {
4405ed0d50c3Schristos   const char * string;
4406ed0d50c3Schristos   int          token;
4407ed0d50c3Schristos   int          val;
4408ed0d50c3Schristos }
4409ed0d50c3Schristos token_table[] =
4410ed0d50c3Schristos {
4411ed0d50c3Schristos   { "r0", X, 0 },
4412ed0d50c3Schristos   { "r1", A, 1 },
4413ed0d50c3Schristos   { "r2", C, 2 },
4414ed0d50c3Schristos   { "r3", B, 3 },
4415ed0d50c3Schristos   { "r4", E, 4 },
4416ed0d50c3Schristos   { "r5", D, 5 },
4417ed0d50c3Schristos   { "r6", L, 6 },
4418ed0d50c3Schristos   { "r7", H, 7 },
4419ed0d50c3Schristos   { "x", X, 0 },
4420ed0d50c3Schristos   { "a", A, 1 },
4421ed0d50c3Schristos   { "c", C, 2 },
4422ed0d50c3Schristos   { "b", B, 3 },
4423ed0d50c3Schristos   { "e", E, 4 },
4424ed0d50c3Schristos   { "d", D, 5 },
4425ed0d50c3Schristos   { "l", L, 6 },
4426ed0d50c3Schristos   { "h", H, 7 },
4427ed0d50c3Schristos 
4428ed0d50c3Schristos   { "rp0", AX, 0 },
4429ed0d50c3Schristos   { "rp1", BC, 1 },
4430ed0d50c3Schristos   { "rp2", DE, 2 },
4431ed0d50c3Schristos   { "rp3", HL, 3 },
4432ed0d50c3Schristos   { "ax", AX, 0 },
4433ed0d50c3Schristos   { "bc", BC, 1 },
4434ed0d50c3Schristos   { "de", DE, 2 },
4435ed0d50c3Schristos   { "hl", HL, 3 },
4436ed0d50c3Schristos 
4437ed0d50c3Schristos   { "RB0", RB0, 0 },
4438ed0d50c3Schristos   { "RB1", RB1, 1 },
4439ed0d50c3Schristos   { "RB2", RB2, 2 },
4440ed0d50c3Schristos   { "RB3", RB3, 3 },
4441ed0d50c3Schristos 
4442ed0d50c3Schristos   { "sp", SP, 0 },
4443ed0d50c3Schristos   { "cy", CY, 0 },
4444ed0d50c3Schristos 
4445ed0d50c3Schristos   { "spl", SPL, 0xf8 },
4446ed0d50c3Schristos   { "sph", SPH, 0xf9 },
4447ed0d50c3Schristos   { "psw", PSW, 0xfa },
4448ed0d50c3Schristos   { "cs", CS, 0xfc },
4449ed0d50c3Schristos   { "es", ES, 0xfd },
4450ed0d50c3Schristos   { "pmc", PMC, 0xfe },
4451ed0d50c3Schristos   { "mem", MEM, 0xff },
4452ed0d50c3Schristos 
4453ed0d50c3Schristos   { ".s", DOT_S, 0 },
4454ed0d50c3Schristos   { ".b", DOT_B, 0 },
4455ed0d50c3Schristos   { ".w", DOT_W, 0 },
4456ed0d50c3Schristos   { ".l", DOT_L, 0 },
4457ed0d50c3Schristos   { ".a", DOT_A , 0},
4458ed0d50c3Schristos   { ".ub", DOT_UB, 0 },
4459ed0d50c3Schristos   { ".uw", DOT_UW , 0},
4460ed0d50c3Schristos 
4461ed0d50c3Schristos   { "c", FLAG, 0 },
4462ed0d50c3Schristos   { "z", FLAG, 1 },
4463ed0d50c3Schristos   { "s", FLAG, 2 },
4464ed0d50c3Schristos   { "o", FLAG, 3 },
4465ed0d50c3Schristos   { "i", FLAG, 8 },
4466ed0d50c3Schristos   { "u", FLAG, 9 },
4467ed0d50c3Schristos 
4468ed0d50c3Schristos #define OPC(x) { #x, x, IS_OPCODE }
4469ed0d50c3Schristos 
4470ed0d50c3Schristos   OPC(ADD),
4471ed0d50c3Schristos   OPC(ADDC),
4472ed0d50c3Schristos   OPC(ADDW),
4473ed0d50c3Schristos   { "and", AND_, IS_OPCODE },
4474ed0d50c3Schristos   OPC(AND1),
4475ed0d50c3Schristos   OPC(BC),
4476ed0d50c3Schristos   OPC(BF),
4477ed0d50c3Schristos   OPC(BH),
4478ed0d50c3Schristos   OPC(BNC),
4479ed0d50c3Schristos   OPC(BNH),
4480ed0d50c3Schristos   OPC(BNZ),
4481ed0d50c3Schristos   OPC(BR),
4482ed0d50c3Schristos   OPC(BRK),
4483ed0d50c3Schristos   OPC(BRK1),
4484ed0d50c3Schristos   OPC(BT),
4485ed0d50c3Schristos   OPC(BTCLR),
4486ed0d50c3Schristos   OPC(BZ),
4487ed0d50c3Schristos   OPC(CALL),
4488ed0d50c3Schristos   OPC(CALLT),
4489ed0d50c3Schristos   OPC(CLR1),
4490ed0d50c3Schristos   OPC(CLRB),
4491ed0d50c3Schristos   OPC(CLRW),
4492ed0d50c3Schristos   OPC(CMP),
4493ed0d50c3Schristos   OPC(CMP0),
4494ed0d50c3Schristos   OPC(CMPS),
4495ed0d50c3Schristos   OPC(CMPW),
4496ed0d50c3Schristos   OPC(DEC),
4497ed0d50c3Schristos   OPC(DECW),
4498ed0d50c3Schristos   OPC(DI),
4499ed0d50c3Schristos   OPC(DIVHU),
4500ed0d50c3Schristos   OPC(DIVWU),
4501ed0d50c3Schristos   OPC(EI),
4502ed0d50c3Schristos   OPC(HALT),
4503ed0d50c3Schristos   OPC(INC),
4504ed0d50c3Schristos   OPC(INCW),
4505ed0d50c3Schristos   OPC(MACH),
4506ed0d50c3Schristos   OPC(MACHU),
4507ed0d50c3Schristos   OPC(MOV),
4508ed0d50c3Schristos   OPC(MOV1),
4509ed0d50c3Schristos   OPC(MOVS),
4510ed0d50c3Schristos   OPC(MOVW),
4511ed0d50c3Schristos   OPC(MULH),
4512ed0d50c3Schristos   OPC(MULHU),
4513ed0d50c3Schristos   OPC(MULU),
4514ed0d50c3Schristos   OPC(NOP),
4515ed0d50c3Schristos   OPC(NOT1),
4516ed0d50c3Schristos   OPC(ONEB),
4517ed0d50c3Schristos   OPC(ONEW),
4518ed0d50c3Schristos   OPC(OR),
4519ed0d50c3Schristos   OPC(OR1),
4520ed0d50c3Schristos   OPC(POP),
4521ed0d50c3Schristos   OPC(PUSH),
4522ed0d50c3Schristos   OPC(RET),
4523ed0d50c3Schristos   OPC(RETI),
4524ed0d50c3Schristos   OPC(RETB),
4525ed0d50c3Schristos   OPC(ROL),
4526ed0d50c3Schristos   OPC(ROLC),
4527ed0d50c3Schristos   OPC(ROLWC),
4528ed0d50c3Schristos   OPC(ROR),
4529ed0d50c3Schristos   OPC(RORC),
4530ed0d50c3Schristos   OPC(SAR),
4531ed0d50c3Schristos   OPC(SARW),
4532ed0d50c3Schristos   OPC(SEL),
4533ed0d50c3Schristos   OPC(SET1),
4534ed0d50c3Schristos   OPC(SHL),
4535ed0d50c3Schristos   OPC(SHLW),
4536ed0d50c3Schristos   OPC(SHR),
4537ed0d50c3Schristos   OPC(SHRW),
4538ed0d50c3Schristos   OPC(SKC),
4539ed0d50c3Schristos   OPC(SKH),
4540ed0d50c3Schristos   OPC(SKNC),
4541ed0d50c3Schristos   OPC(SKNH),
4542ed0d50c3Schristos   OPC(SKNZ),
4543ed0d50c3Schristos   OPC(SKZ),
4544ed0d50c3Schristos   OPC(STOP),
4545ed0d50c3Schristos   OPC(SUB),
4546ed0d50c3Schristos   OPC(SUBC),
4547ed0d50c3Schristos   OPC(SUBW),
4548ed0d50c3Schristos   OPC(XCH),
4549ed0d50c3Schristos   OPC(XCHW),
4550ed0d50c3Schristos   OPC(XOR),
4551ed0d50c3Schristos   OPC(XOR1),
4552ed0d50c3Schristos };
4553ed0d50c3Schristos 
4554ed0d50c3Schristos #define NUM_TOKENS (sizeof (token_table) / sizeof (token_table[0]))
4555ed0d50c3Schristos 
4556ed0d50c3Schristos void
rl78_lex_init(char * beginning,char * ending)4557ed0d50c3Schristos rl78_lex_init (char * beginning, char * ending)
4558ed0d50c3Schristos {
4559ed0d50c3Schristos   rl78_init_start = beginning;
4560ed0d50c3Schristos   rl78_lex_start = beginning;
4561ed0d50c3Schristos   rl78_lex_end = ending;
4562ed0d50c3Schristos   rl78_in_brackets = 0;
4563ed0d50c3Schristos   rl78_last_token = 0;
4564ed0d50c3Schristos 
4565ed0d50c3Schristos   rl78_bit_insn = 0;
4566ed0d50c3Schristos 
4567ed0d50c3Schristos   setbuf (stdout, 0);
4568ed0d50c3Schristos }
4569ed0d50c3Schristos 
4570ed0d50c3Schristos /* Return a pointer to the '.' in a bit index expression (like
4571ed0d50c3Schristos    foo.5), or NULL if none is found.  */
4572ed0d50c3Schristos static char *
find_bit_index(char * tok)4573ed0d50c3Schristos find_bit_index (char *tok)
4574ed0d50c3Schristos {
4575ed0d50c3Schristos   char *last_dot = NULL;
4576ed0d50c3Schristos   char *last_digit = NULL;
4577ed0d50c3Schristos   while (*tok && *tok != ',')
4578ed0d50c3Schristos     {
4579ed0d50c3Schristos       if (*tok == '.')
4580ed0d50c3Schristos 	{
4581ed0d50c3Schristos 	  last_dot = tok;
4582ed0d50c3Schristos 	  last_digit = NULL;
4583ed0d50c3Schristos 	}
4584ed0d50c3Schristos       else if (*tok >= '0' && *tok <= '7'
4585ed0d50c3Schristos 	       && last_dot != NULL
4586ed0d50c3Schristos 	       && last_digit == NULL)
4587ed0d50c3Schristos 	{
4588ed0d50c3Schristos 	  last_digit = tok;
4589ed0d50c3Schristos 	}
4590ed0d50c3Schristos       else if (ISSPACE (*tok))
4591ed0d50c3Schristos 	{
4592ed0d50c3Schristos 	  /* skip */
4593ed0d50c3Schristos 	}
4594ed0d50c3Schristos       else
4595ed0d50c3Schristos 	{
4596ed0d50c3Schristos 	  last_dot = NULL;
4597ed0d50c3Schristos 	  last_digit = NULL;
4598ed0d50c3Schristos 	}
4599ed0d50c3Schristos       tok ++;
4600ed0d50c3Schristos     }
4601ed0d50c3Schristos   if (last_dot != NULL
4602ed0d50c3Schristos       && last_digit != NULL)
4603ed0d50c3Schristos     return last_dot;
4604ed0d50c3Schristos   return NULL;
4605ed0d50c3Schristos }
4606ed0d50c3Schristos 
4607ed0d50c3Schristos static int
rl78_lex(void)4608ed0d50c3Schristos rl78_lex (void)
4609ed0d50c3Schristos {
4610ed0d50c3Schristos   /*unsigned int ci;*/
4611ed0d50c3Schristos   char * save_input_pointer;
4612ed0d50c3Schristos   char * bit = NULL;
4613ed0d50c3Schristos 
4614ed0d50c3Schristos   while (ISSPACE (*rl78_lex_start)
4615ed0d50c3Schristos 	 && rl78_lex_start != rl78_lex_end)
4616ed0d50c3Schristos     rl78_lex_start ++;
4617ed0d50c3Schristos 
4618ed0d50c3Schristos   rl78_last_exp_start = rl78_lex_start;
4619ed0d50c3Schristos 
4620ed0d50c3Schristos   if (rl78_lex_start == rl78_lex_end)
4621ed0d50c3Schristos     return 0;
4622ed0d50c3Schristos 
4623ed0d50c3Schristos   if (ISALPHA (*rl78_lex_start)
4624ed0d50c3Schristos       || (*rl78_lex_start == '.' && ISALPHA (rl78_lex_start[1])))
4625ed0d50c3Schristos     {
4626ed0d50c3Schristos       unsigned int i;
4627ed0d50c3Schristos       char * e;
4628ed0d50c3Schristos       char save;
4629ed0d50c3Schristos 
4630ed0d50c3Schristos       for (e = rl78_lex_start + 1;
4631ed0d50c3Schristos 	   e < rl78_lex_end && ISALNUM (*e);
4632ed0d50c3Schristos 	   e ++)
4633ed0d50c3Schristos 	;
4634ed0d50c3Schristos       save = *e;
4635ed0d50c3Schristos       *e = 0;
4636ed0d50c3Schristos 
4637ed0d50c3Schristos       for (i = 0; i < NUM_TOKENS; i++)
4638ed0d50c3Schristos 	if (strcasecmp (rl78_lex_start, token_table[i].string) == 0
4639ed0d50c3Schristos 	    && !(token_table[i].val == IS_OPCODE && rl78_last_token != 0)
4640ed0d50c3Schristos 	    && !(token_table[i].token == FLAG && !need_flag))
4641ed0d50c3Schristos 	  {
4642ed0d50c3Schristos 	    rl78_lval.regno = token_table[i].val;
4643ed0d50c3Schristos 	    *e = save;
4644ed0d50c3Schristos 	    rl78_lex_start = e;
4645ed0d50c3Schristos 	    rl78_last_token = token_table[i].token;
4646ed0d50c3Schristos 	    return token_table[i].token;
4647ed0d50c3Schristos 	  }
4648ed0d50c3Schristos       *e = save;
4649ed0d50c3Schristos     }
4650ed0d50c3Schristos 
4651ed0d50c3Schristos   if (rl78_last_token == 0)
4652ed0d50c3Schristos     {
4653ed0d50c3Schristos       rl78_last_token = UNKNOWN_OPCODE;
4654ed0d50c3Schristos       return UNKNOWN_OPCODE;
4655ed0d50c3Schristos     }
4656ed0d50c3Schristos 
4657ed0d50c3Schristos   if (rl78_last_token == UNKNOWN_OPCODE)
4658ed0d50c3Schristos     return 0;
4659ed0d50c3Schristos 
4660ed0d50c3Schristos   if (*rl78_lex_start == '[')
4661ed0d50c3Schristos     rl78_in_brackets = 1;
4662ed0d50c3Schristos   if (*rl78_lex_start == ']')
4663ed0d50c3Schristos     rl78_in_brackets = 0;
4664ed0d50c3Schristos 
4665ed0d50c3Schristos   /* '.' is funny - the syntax includes it for bitfields, but only for
4666ed0d50c3Schristos       bitfields.  We check for it specially so we can allow labels
4667ed0d50c3Schristos       with '.' in them.  */
4668ed0d50c3Schristos 
4669ed0d50c3Schristos   if (rl78_bit_insn
4670ed0d50c3Schristos       && *rl78_lex_start == '.'
4671ed0d50c3Schristos       && find_bit_index (rl78_lex_start) == rl78_lex_start)
4672ed0d50c3Schristos     {
4673ed0d50c3Schristos       rl78_last_token = *rl78_lex_start;
4674ed0d50c3Schristos       return *rl78_lex_start ++;
4675ed0d50c3Schristos     }
4676ed0d50c3Schristos 
4677ed0d50c3Schristos   if ((rl78_in_brackets && *rl78_lex_start == '+')
4678ed0d50c3Schristos       || strchr ("[],#!$:", *rl78_lex_start))
4679ed0d50c3Schristos     {
4680ed0d50c3Schristos       rl78_last_token = *rl78_lex_start;
4681ed0d50c3Schristos       return *rl78_lex_start ++;
4682ed0d50c3Schristos     }
4683ed0d50c3Schristos 
4684ed0d50c3Schristos   /* Again, '.' is funny.  Look for '.<digit>' at the end of the line
4685ed0d50c3Schristos      or before a comma, which is a bitfield, not an expression.  */
4686ed0d50c3Schristos 
4687ed0d50c3Schristos   if (rl78_bit_insn)
4688ed0d50c3Schristos     {
4689ed0d50c3Schristos       bit = find_bit_index (rl78_lex_start);
4690ed0d50c3Schristos       if (bit)
4691ed0d50c3Schristos 	*bit = 0;
4692ed0d50c3Schristos       else
4693ed0d50c3Schristos 	bit = NULL;
4694ed0d50c3Schristos     }
4695ed0d50c3Schristos 
4696ed0d50c3Schristos   save_input_pointer = input_line_pointer;
4697ed0d50c3Schristos   input_line_pointer = rl78_lex_start;
4698ed0d50c3Schristos   rl78_lval.exp.X_md = 0;
4699ed0d50c3Schristos   expression (&rl78_lval.exp);
4700ed0d50c3Schristos 
4701ed0d50c3Schristos   if (bit)
4702ed0d50c3Schristos     *bit = '.';
4703ed0d50c3Schristos 
4704ed0d50c3Schristos   rl78_lex_start = input_line_pointer;
4705ed0d50c3Schristos   input_line_pointer = save_input_pointer;
4706ed0d50c3Schristos   rl78_last_token = EXPR;
4707ed0d50c3Schristos   return EXPR;
4708ed0d50c3Schristos }
4709ed0d50c3Schristos 
4710ed0d50c3Schristos int
rl78_error(const char * str)4711ed0d50c3Schristos rl78_error (const char * str)
4712ed0d50c3Schristos {
4713ed0d50c3Schristos   int len;
4714ed0d50c3Schristos 
4715ed0d50c3Schristos   len = rl78_last_exp_start - rl78_init_start;
4716ed0d50c3Schristos 
4717ed0d50c3Schristos   as_bad ("%s", rl78_init_start);
4718ed0d50c3Schristos   as_bad ("%*s^ %s", len, "", str);
4719ed0d50c3Schristos   return 0;
4720ed0d50c3Schristos }
4721ed0d50c3Schristos 
4722ed0d50c3Schristos static int
expr_is_sfr(expressionS exp)4723ed0d50c3Schristos expr_is_sfr (expressionS exp)
4724ed0d50c3Schristos {
4725ed0d50c3Schristos   unsigned long v;
4726ed0d50c3Schristos 
4727ed0d50c3Schristos   if (exp.X_op != O_constant)
4728ed0d50c3Schristos     return 0;
4729ed0d50c3Schristos 
4730ed0d50c3Schristos   v = exp.X_add_number;
4731ed0d50c3Schristos   if (0xFFF00 <= v && v <= 0xFFFFF)
4732ed0d50c3Schristos     return 1;
4733ed0d50c3Schristos   return 0;
4734ed0d50c3Schristos }
4735ed0d50c3Schristos 
4736ed0d50c3Schristos static int
expr_is_saddr(expressionS exp)4737ed0d50c3Schristos expr_is_saddr (expressionS exp)
4738ed0d50c3Schristos {
4739ed0d50c3Schristos   unsigned long v;
4740ed0d50c3Schristos 
4741ed0d50c3Schristos   if (exp.X_op != O_constant)
4742ed0d50c3Schristos     return 1;
4743ed0d50c3Schristos 
4744ed0d50c3Schristos   v = exp.X_add_number;
4745ed0d50c3Schristos   if (0xFFE20 <= v && v <= 0xFFF1F)
4746ed0d50c3Schristos     return 1;
4747ed0d50c3Schristos   return 0;
4748ed0d50c3Schristos }
4749ed0d50c3Schristos 
4750ed0d50c3Schristos static int
expr_is_word_aligned(expressionS exp)4751ed0d50c3Schristos expr_is_word_aligned (expressionS exp)
4752ed0d50c3Schristos {
4753ed0d50c3Schristos   unsigned long v;
4754ed0d50c3Schristos 
4755ed0d50c3Schristos   if (exp.X_op != O_constant)
4756ed0d50c3Schristos     return 1;
4757ed0d50c3Schristos 
4758ed0d50c3Schristos   v = exp.X_add_number;
4759ed0d50c3Schristos   if (v & 1)
4760ed0d50c3Schristos     return 0;
4761ed0d50c3Schristos   return 1;
4762ed0d50c3Schristos 
4763ed0d50c3Schristos }
4764ed0d50c3Schristos 
4765ed0d50c3Schristos static void
check_expr_is_bit_index(expressionS exp)4766ed0d50c3Schristos check_expr_is_bit_index (expressionS exp)
4767ed0d50c3Schristos {
4768ed0d50c3Schristos   int val;
4769ed0d50c3Schristos 
4770ed0d50c3Schristos   if (exp.X_op != O_constant)
4771ed0d50c3Schristos     {
4772ed0d50c3Schristos       rl78_error (_("bit index must be a constant"));
4773ed0d50c3Schristos       return;
4774ed0d50c3Schristos     }
4775ed0d50c3Schristos   val = exp.X_add_number;
4776ed0d50c3Schristos 
4777ed0d50c3Schristos   if (val < 0 || val > 7)
4778ed0d50c3Schristos     rl78_error (_("rtsd size must be 0..7"));
4779ed0d50c3Schristos }
4780ed0d50c3Schristos 
4781ed0d50c3Schristos static int
exp_val(expressionS exp)4782ed0d50c3Schristos exp_val (expressionS exp)
4783ed0d50c3Schristos {
4784ed0d50c3Schristos   if (exp.X_op != O_constant)
4785ed0d50c3Schristos   {
4786ed0d50c3Schristos     rl78_error (_("constant expected"));
4787ed0d50c3Schristos     return 0;
4788ed0d50c3Schristos   }
4789ed0d50c3Schristos   return exp.X_add_number;
4790ed0d50c3Schristos }
4791ed0d50c3Schristos 
4792ed0d50c3Schristos static int
check_expr_is_const(expressionS e,int vmin,int vmax)4793ed0d50c3Schristos check_expr_is_const (expressionS e, int vmin, int vmax)
4794ed0d50c3Schristos {
4795ed0d50c3Schristos   static char buf[100];
4796ed0d50c3Schristos   if (e.X_op != O_constant
4797ed0d50c3Schristos       || e.X_add_number < vmin
4798ed0d50c3Schristos       || e.X_add_number > vmax)
4799ed0d50c3Schristos     {
4800ed0d50c3Schristos       if (vmin == vmax)
4801ed0d50c3Schristos 	sprintf (buf, "%d expected here", vmin);
4802ed0d50c3Schristos       else
4803ed0d50c3Schristos 	sprintf (buf, "%d..%d expected here", vmin, vmax);
4804ed0d50c3Schristos       rl78_error(buf);
4805ed0d50c3Schristos       return 0;
4806ed0d50c3Schristos     }
4807ed0d50c3Schristos   return 1;
4808ed0d50c3Schristos }
4809