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