Commit 2031252f authored by Shenghou Ma's avatar Shenghou Ma

5a, 5l: add PLD (preload data) instruction

        Supported in ARMv5TE and above, excluding ARMv5TExP.
        For CL 5990066.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5999044
parent 9feddd0b
......@@ -52,7 +52,7 @@
%token <lval> LTYPE6 LTYPE7 LTYPE8 LTYPE9 LTYPEA
%token <lval> LTYPEB LTYPEC LTYPED LTYPEE LTYPEF
%token <lval> LTYPEG LTYPEH LTYPEI LTYPEJ LTYPEK
%token <lval> LTYPEL LTYPEM LTYPEN LTYPEBX
%token <lval> LTYPEL LTYPEM LTYPEN LTYPEBX LTYPEPLD
%token <lval> LCONST LSP LSB LFP LPC
%token <lval> LTYPEX LR LREG LF LFREG LC LCREG LPSR LFCR
%token <lval> LCOND LS LAT
......@@ -301,6 +301,13 @@ inst:
$7.offset = $9;
outcode($1, $2, &$3, $5.reg, &$7);
}
/*
* PLD
*/
| LTYPEPLD reg
{
outcode($1, Always, &$2, NREG, &nullgen);
}
/*
* END
*/
......
......@@ -403,6 +403,8 @@ struct
"MCR", LTYPEJ, 0,
"MRC", LTYPEJ, 1,
"PLD", LTYPEPLD, APLD,
0
};
......
......@@ -128,28 +128,29 @@
LTYPEM = 279,
LTYPEN = 280,
LTYPEBX = 281,
LCONST = 282,
LSP = 283,
LSB = 284,
LFP = 285,
LPC = 286,
LTYPEX = 287,
LR = 288,
LREG = 289,
LF = 290,
LFREG = 291,
LC = 292,
LCREG = 293,
LPSR = 294,
LFCR = 295,
LCOND = 296,
LS = 297,
LAT = 298,
LFCONST = 299,
LSCONST = 300,
LNAME = 301,
LLAB = 302,
LVAR = 303
LTYPEPLD = 282,
LCONST = 283,
LSP = 284,
LSB = 285,
LFP = 286,
LPC = 287,
LTYPEX = 288,
LR = 289,
LREG = 290,
LF = 291,
LFREG = 292,
LC = 293,
LCREG = 294,
LPSR = 295,
LFCR = 296,
LCOND = 297,
LS = 298,
LAT = 299,
LFCONST = 300,
LSCONST = 301,
LNAME = 302,
LLAB = 303,
LVAR = 304
};
#endif
/* Tokens. */
......@@ -177,28 +178,29 @@
#define LTYPEM 279
#define LTYPEN 280
#define LTYPEBX 281
#define LCONST 282
#define LSP 283
#define LSB 284
#define LFP 285
#define LPC 286
#define LTYPEX 287
#define LR 288
#define LREG 289
#define LF 290
#define LFREG 291
#define LC 292
#define LCREG 293
#define LPSR 294
#define LFCR 295
#define LCOND 296
#define LS 297
#define LAT 298
#define LFCONST 299
#define LSCONST 300
#define LNAME 301
#define LLAB 302
#define LVAR 303
#define LTYPEPLD 282
#define LCONST 283
#define LSP 284
#define LSB 285
#define LFP 286
#define LPC 287
#define LTYPEX 288
#define LR 289
#define LREG 290
#define LF 291
#define LFREG 292
#define LC 293
#define LCREG 294
#define LPSR 295
#define LFCR 296
#define LCOND 297
#define LS 298
#define LAT 299
#define LFCONST 300
#define LSCONST 301
#define LNAME 302
#define LLAB 303
#define LVAR 304
......@@ -219,7 +221,7 @@ typedef union YYSTYPE
/* Line 214 of yacc.c */
#line 223 "y.tab.c"
#line 225 "y.tab.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
......@@ -231,7 +233,7 @@ typedef union YYSTYPE
/* Line 264 of yacc.c */
#line 235 "y.tab.c"
#line 237 "y.tab.c"
#ifdef short
# undef short
......@@ -446,20 +448,20 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 643
#define YYLAST 609
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 69
#define YYNTOKENS 70
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 35
/* YYNRULES -- Number of rules. */
#define YYNRULES 129
#define YYNRULES 130
/* YYNRULES -- Number of states. */
#define YYNSTATES 327
#define YYNSTATES 329
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 303
#define YYMAXUTOK 304
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
......@@ -470,16 +472,16 @@ static const yytype_uint8 yytranslate[] =
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 67, 12, 5, 2,
65, 66, 10, 8, 62, 9, 2, 11, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 59, 61,
6, 60, 7, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 68, 12, 5, 2,
66, 67, 10, 8, 63, 9, 2, 11, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 60, 62,
6, 61, 7, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 63, 2, 64, 4, 2, 2, 2, 2, 2,
2, 64, 2, 65, 4, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 3, 2, 68, 2, 2, 2,
2, 2, 2, 2, 3, 2, 69, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
......@@ -497,7 +499,7 @@ static const yytype_uint8 yytranslate[] =
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58
55, 56, 57, 58, 59
};
#if YYDEBUG
......@@ -509,71 +511,72 @@ static const yytype_uint16 yyprhs[] =
26, 31, 33, 36, 39, 47, 54, 60, 66, 72,
77, 82, 86, 90, 95, 102, 110, 118, 126, 133,
140, 144, 149, 156, 163, 168, 172, 178, 184, 192,
199, 212, 220, 230, 233, 234, 237, 240, 241, 244,
249, 252, 255, 258, 261, 266, 269, 271, 274, 278,
280, 284, 288, 290, 292, 294, 299, 301, 303, 305,
307, 309, 311, 313, 317, 319, 324, 326, 331, 333,
335, 337, 339, 342, 344, 350, 355, 360, 365, 370,
372, 374, 376, 378, 383, 385, 387, 389, 394, 396,
398, 400, 405, 410, 416, 424, 425, 428, 431, 433,
435, 437, 439, 441, 444, 447, 450, 454, 455, 458,
460, 464, 468, 472, 476, 480, 485, 490, 494, 498
199, 212, 220, 230, 233, 236, 237, 240, 243, 244,
247, 252, 255, 258, 261, 264, 269, 272, 274, 277,
281, 283, 287, 291, 293, 295, 297, 302, 304, 306,
308, 310, 312, 314, 316, 320, 322, 327, 329, 334,
336, 338, 340, 342, 345, 347, 353, 358, 363, 368,
373, 375, 377, 379, 381, 386, 388, 390, 392, 397,
399, 401, 403, 408, 413, 419, 427, 428, 431, 434,
436, 438, 440, 442, 444, 447, 450, 453, 457, 458,
461, 463, 467, 471, 475, 479, 483, 488, 493, 497,
501
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
70, 0, -1, -1, -1, 70, 71, 72, -1, -1,
57, 59, 73, 72, -1, -1, 56, 59, 74, 72,
-1, 56, 60, 103, 61, -1, 58, 60, 103, 61,
-1, 61, -1, 75, 61, -1, 1, 61, -1, 13,
76, 87, 62, 94, 62, 89, -1, 13, 76, 87,
62, 94, 62, -1, 13, 76, 87, 62, 89, -1,
14, 76, 87, 62, 89, -1, 15, 76, 82, 62,
82, -1, 16, 76, 77, 78, -1, 16, 76, 77,
83, -1, 36, 77, 84, -1, 17, 77, 78, -1,
18, 76, 77, 82, -1, 19, 76, 87, 62, 94,
77, -1, 20, 76, 85, 62, 63, 81, 64, -1,
20, 76, 63, 81, 64, 62, 85, -1, 21, 76,
89, 62, 84, 62, 89, -1, 21, 76, 89, 62,
84, 77, -1, 21, 76, 77, 84, 62, 89, -1,
22, 76, 77, -1, 23, 98, 62, 88, -1, 23,
98, 62, 101, 62, 88, -1, 24, 98, 11, 101,
62, 79, -1, 25, 76, 89, 77, -1, 29, 77,
79, -1, 30, 76, 97, 62, 97, -1, 32, 76,
96, 62, 97, -1, 32, 76, 96, 62, 46, 62,
97, -1, 33, 76, 97, 62, 97, 77, -1, 31,
76, 101, 62, 103, 62, 94, 62, 95, 62, 95,
102, -1, 34, 76, 89, 62, 89, 62, 90, -1,
35, 76, 89, 62, 89, 62, 89, 62, 94, -1,
26, 77, -1, -1, 76, 51, -1, 76, 52, -1,
-1, 62, 77, -1, 101, 65, 41, 66, -1, 56,
99, -1, 57, 99, -1, 67, 101, -1, 67, 86,
-1, 67, 10, 67, 86, -1, 67, 55, -1, 80,
-1, 67, 54, -1, 67, 9, 54, -1, 94, -1,
94, 9, 94, -1, 94, 77, 81, -1, 89, -1,
79, -1, 91, -1, 91, 65, 94, 66, -1, 49,
-1, 50, -1, 101, -1, 86, -1, 97, -1, 84,
-1, 98, -1, 65, 94, 66, -1, 84, -1, 101,
65, 93, 66, -1, 98, -1, 98, 65, 93, 66,
-1, 85, -1, 89, -1, 88, -1, 91, -1, 67,
101, -1, 94, -1, 65, 94, 62, 94, 66, -1,
94, 6, 6, 92, -1, 94, 7, 7, 92, -1,
94, 9, 7, 92, -1, 94, 53, 7, 92, -1,
94, -1, 101, -1, 44, -1, 41, -1, 43, 65,
103, 66, -1, 93, -1, 38, -1, 48, -1, 47,
65, 103, 66, -1, 97, -1, 80, -1, 46, -1,
45, 65, 101, 66, -1, 101, 65, 100, 66, -1,
56, 99, 65, 100, 66, -1, 56, 6, 7, 99,
65, 39, 66, -1, -1, 8, 101, -1, 9, 101,
-1, 39, -1, 38, -1, 40, -1, 37, -1, 58,
-1, 9, 101, -1, 8, 101, -1, 68, 101, -1,
65, 103, 66, -1, -1, 62, 103, -1, 101, -1,
103, 8, 103, -1, 103, 9, 103, -1, 103, 10,
103, -1, 103, 11, 103, -1, 103, 12, 103, -1,
103, 6, 6, 103, -1, 103, 7, 7, 103, -1,
103, 5, 103, -1, 103, 4, 103, -1, 103, 3,
103, -1
71, 0, -1, -1, -1, 71, 72, 73, -1, -1,
58, 60, 74, 73, -1, -1, 57, 60, 75, 73,
-1, 57, 61, 104, 62, -1, 59, 61, 104, 62,
-1, 62, -1, 76, 62, -1, 1, 62, -1, 13,
77, 88, 63, 95, 63, 90, -1, 13, 77, 88,
63, 95, 63, -1, 13, 77, 88, 63, 90, -1,
14, 77, 88, 63, 90, -1, 15, 77, 83, 63,
83, -1, 16, 77, 78, 79, -1, 16, 77, 78,
84, -1, 36, 78, 85, -1, 17, 78, 79, -1,
18, 77, 78, 83, -1, 19, 77, 88, 63, 95,
78, -1, 20, 77, 86, 63, 64, 82, 65, -1,
20, 77, 64, 82, 65, 63, 86, -1, 21, 77,
90, 63, 85, 63, 90, -1, 21, 77, 90, 63,
85, 78, -1, 21, 77, 78, 85, 63, 90, -1,
22, 77, 78, -1, 23, 99, 63, 89, -1, 23,
99, 63, 102, 63, 89, -1, 24, 99, 11, 102,
63, 80, -1, 25, 77, 90, 78, -1, 29, 78,
80, -1, 30, 77, 98, 63, 98, -1, 32, 77,
97, 63, 98, -1, 32, 77, 97, 63, 47, 63,
98, -1, 33, 77, 98, 63, 98, 78, -1, 31,
77, 102, 63, 104, 63, 95, 63, 96, 63, 96,
103, -1, 34, 77, 90, 63, 90, 63, 91, -1,
35, 77, 90, 63, 90, 63, 90, 63, 95, -1,
37, 90, -1, 26, 78, -1, -1, 77, 52, -1,
77, 53, -1, -1, 63, 78, -1, 102, 66, 42,
67, -1, 57, 100, -1, 58, 100, -1, 68, 102,
-1, 68, 87, -1, 68, 10, 68, 87, -1, 68,
56, -1, 81, -1, 68, 55, -1, 68, 9, 55,
-1, 95, -1, 95, 9, 95, -1, 95, 78, 82,
-1, 90, -1, 80, -1, 92, -1, 92, 66, 95,
67, -1, 50, -1, 51, -1, 102, -1, 87, -1,
98, -1, 85, -1, 99, -1, 66, 95, 67, -1,
85, -1, 102, 66, 94, 67, -1, 99, -1, 99,
66, 94, 67, -1, 86, -1, 90, -1, 89, -1,
92, -1, 68, 102, -1, 95, -1, 66, 95, 63,
95, 67, -1, 95, 6, 6, 93, -1, 95, 7,
7, 93, -1, 95, 9, 7, 93, -1, 95, 54,
7, 93, -1, 95, -1, 102, -1, 45, -1, 42,
-1, 44, 66, 104, 67, -1, 94, -1, 39, -1,
49, -1, 48, 66, 104, 67, -1, 98, -1, 81,
-1, 47, -1, 46, 66, 102, 67, -1, 102, 66,
101, 67, -1, 57, 100, 66, 101, 67, -1, 57,
6, 7, 100, 66, 40, 67, -1, -1, 8, 102,
-1, 9, 102, -1, 40, -1, 39, -1, 41, -1,
38, -1, 59, -1, 9, 102, -1, 8, 102, -1,
69, 102, -1, 66, 104, 67, -1, -1, 63, 104,
-1, 102, -1, 104, 8, 104, -1, 104, 9, 104,
-1, 104, 10, 104, -1, 104, 11, 104, -1, 104,
12, 104, -1, 104, 6, 6, 104, -1, 104, 7,
7, 104, -1, 104, 5, 104, -1, 104, 4, 104,
-1, 104, 3, 104, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
......@@ -583,15 +586,16 @@ static const yytype_uint16 yyrline[] =
93, 99, 100, 101, 107, 111, 115, 122, 129, 136,
140, 147, 154, 161, 168, 175, 184, 196, 200, 204,
211, 218, 222, 229, 236, 243, 250, 254, 258, 262,
269, 291, 298, 307, 313, 316, 320, 325, 326, 329,
335, 344, 352, 358, 363, 368, 374, 377, 383, 391,
395, 404, 410, 411, 412, 413, 418, 424, 430, 436,
437, 440, 441, 449, 458, 459, 468, 469, 475, 478,
479, 480, 482, 490, 498, 507, 513, 519, 525, 533,
539, 547, 548, 552, 560, 561, 567, 568, 576, 577,
580, 586, 594, 602, 610, 620, 623, 627, 633, 634,
635, 638, 639, 643, 647, 651, 655, 661, 664, 670,
671, 675, 679, 683, 687, 691, 695, 699, 703, 707
269, 291, 298, 307, 315, 321, 324, 328, 333, 334,
337, 343, 352, 360, 366, 371, 376, 382, 385, 391,
399, 403, 412, 418, 419, 420, 421, 426, 432, 438,
444, 445, 448, 449, 457, 466, 467, 476, 477, 483,
486, 487, 488, 490, 498, 506, 515, 521, 527, 533,
541, 547, 555, 556, 560, 568, 569, 575, 576, 584,
585, 588, 594, 602, 610, 618, 628, 631, 635, 641,
642, 643, 646, 647, 651, 655, 659, 663, 669, 672,
678, 679, 683, 687, 691, 695, 699, 703, 707, 711,
715
};
#endif
......@@ -604,13 +608,13 @@ static const char *const yytname[] =
"'-'", "'*'", "'/'", "'%'", "LTYPE1", "LTYPE2", "LTYPE3", "LTYPE4",
"LTYPE5", "LTYPE6", "LTYPE7", "LTYPE8", "LTYPE9", "LTYPEA", "LTYPEB",
"LTYPEC", "LTYPED", "LTYPEE", "LTYPEF", "LTYPEG", "LTYPEH", "LTYPEI",
"LTYPEJ", "LTYPEK", "LTYPEL", "LTYPEM", "LTYPEN", "LTYPEBX", "LCONST",
"LSP", "LSB", "LFP", "LPC", "LTYPEX", "LR", "LREG", "LF", "LFREG", "LC",
"LCREG", "LPSR", "LFCR", "LCOND", "LS", "LAT", "LFCONST", "LSCONST",
"LNAME", "LLAB", "LVAR", "':'", "'='", "';'", "','", "'['", "']'", "'('",
"')'", "'$'", "'~'", "$accept", "prog", "$@1", "line", "$@2", "$@3",
"inst", "cond", "comma", "rel", "ximm", "fcon", "reglist", "gen",
"nireg", "ireg", "ioreg", "oreg", "imsr", "imm", "reg", "regreg",
"LTYPEJ", "LTYPEK", "LTYPEL", "LTYPEM", "LTYPEN", "LTYPEBX", "LTYPEPLD",
"LCONST", "LSP", "LSB", "LFP", "LPC", "LTYPEX", "LR", "LREG", "LF",
"LFREG", "LC", "LCREG", "LPSR", "LFCR", "LCOND", "LS", "LAT", "LFCONST",
"LSCONST", "LNAME", "LLAB", "LVAR", "':'", "'='", "';'", "','", "'['",
"']'", "'('", "')'", "'$'", "'~'", "$accept", "prog", "$@1", "line",
"$@2", "$@3", "inst", "cond", "comma", "rel", "ximm", "fcon", "reglist",
"gen", "nireg", "ireg", "ioreg", "oreg", "imsr", "imm", "reg", "regreg",
"shift", "rcon", "sreg", "spreg", "creg", "frcon", "freg", "name",
"offset", "pointer", "con", "oexpr", "expr", 0
};
......@@ -626,27 +630,28 @@ static const yytype_uint16 yytoknum[] =
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 58,
61, 59, 44, 91, 93, 40, 41, 36, 126
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
58, 61, 59, 44, 91, 93, 40, 41, 36, 126
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
0, 69, 70, 71, 70, 73, 72, 74, 72, 72,
72, 72, 72, 72, 75, 75, 75, 75, 75, 75,
75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
75, 75, 75, 75, 76, 76, 76, 77, 77, 78,
78, 78, 79, 79, 79, 79, 79, 80, 80, 81,
81, 81, 82, 82, 82, 82, 82, 82, 82, 82,
82, 83, 83, 84, 85, 85, 86, 86, 86, 87,
87, 87, 88, 89, 90, 91, 91, 91, 91, 92,
92, 93, 93, 93, 94, 94, 95, 95, 96, 96,
97, 97, 98, 98, 98, 99, 99, 99, 100, 100,
100, 101, 101, 101, 101, 101, 101, 102, 102, 103,
103, 103, 103, 103, 103, 103, 103, 103, 103, 103
0, 70, 71, 72, 71, 74, 73, 75, 73, 73,
73, 73, 73, 73, 76, 76, 76, 76, 76, 76,
76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
76, 76, 76, 76, 76, 77, 77, 77, 78, 78,
79, 79, 79, 80, 80, 80, 80, 80, 81, 81,
82, 82, 82, 83, 83, 83, 83, 83, 83, 83,
83, 83, 84, 84, 85, 86, 86, 87, 87, 87,
88, 88, 88, 89, 90, 91, 92, 92, 92, 92,
93, 93, 94, 94, 94, 95, 95, 96, 96, 97,
97, 98, 98, 99, 99, 99, 100, 100, 100, 101,
101, 101, 102, 102, 102, 102, 102, 102, 103, 103,
104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
104
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
......@@ -656,15 +661,16 @@ static const yytype_uint8 yyr2[] =
4, 1, 2, 2, 7, 6, 5, 5, 5, 4,
4, 3, 3, 4, 6, 7, 7, 7, 6, 6,
3, 4, 6, 6, 4, 3, 5, 5, 7, 6,
12, 7, 9, 2, 0, 2, 2, 0, 2, 4,
2, 2, 2, 2, 4, 2, 1, 2, 3, 1,
3, 3, 1, 1, 1, 4, 1, 1, 1, 1,
1, 1, 1, 3, 1, 4, 1, 4, 1, 1,
1, 1, 2, 1, 5, 4, 4, 4, 4, 1,
1, 1, 1, 4, 1, 1, 1, 4, 1, 1,
1, 4, 4, 5, 7, 0, 2, 2, 1, 1,
1, 1, 1, 2, 2, 2, 3, 0, 2, 1,
3, 3, 3, 3, 3, 4, 4, 3, 3, 3
12, 7, 9, 2, 2, 0, 2, 2, 0, 2,
4, 2, 2, 2, 2, 4, 2, 1, 2, 3,
1, 3, 3, 1, 1, 1, 4, 1, 1, 1,
1, 1, 1, 1, 3, 1, 4, 1, 4, 1,
1, 1, 1, 2, 1, 5, 4, 4, 4, 4,
1, 1, 1, 1, 4, 1, 1, 1, 4, 1,
1, 1, 4, 4, 5, 7, 0, 2, 2, 1,
1, 1, 1, 1, 2, 2, 2, 3, 0, 2,
1, 3, 3, 3, 3, 3, 4, 4, 3, 3,
3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
......@@ -672,279 +678,271 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
2, 3, 1, 0, 0, 44, 44, 44, 44, 47,
44, 44, 44, 44, 44, 0, 0, 44, 47, 47,
44, 44, 44, 44, 44, 44, 47, 0, 0, 0,
11, 4, 0, 13, 0, 0, 0, 47, 47, 0,
47, 0, 0, 47, 47, 0, 0, 111, 105, 112,
0, 0, 0, 0, 0, 0, 43, 0, 0, 0,
0, 0, 0, 0, 0, 7, 0, 5, 0, 12,
95, 92, 0, 91, 45, 46, 0, 0, 80, 79,
81, 94, 83, 0, 0, 100, 66, 67, 0, 0,
63, 56, 0, 74, 78, 69, 62, 64, 70, 76,
68, 0, 48, 105, 105, 22, 0, 0, 0, 0,
0, 0, 0, 0, 83, 30, 114, 113, 0, 0,
0, 0, 119, 0, 115, 0, 0, 0, 47, 35,
0, 0, 0, 99, 0, 98, 0, 0, 0, 0,
21, 0, 0, 0, 0, 0, 82, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 57, 55, 53,
52, 0, 0, 0, 0, 105, 19, 20, 71, 72,
0, 50, 51, 0, 23, 0, 0, 47, 0, 0,
0, 0, 105, 106, 107, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 116, 31, 0, 109,
108, 110, 0, 0, 34, 0, 0, 0, 0, 0,
0, 0, 8, 9, 6, 10, 0, 16, 83, 0,
0, 0, 0, 17, 0, 73, 58, 0, 18, 0,
0, 0, 50, 0, 0, 47, 0, 0, 0, 0,
0, 47, 0, 0, 129, 128, 127, 0, 0, 120,
121, 122, 123, 124, 0, 102, 0, 36, 0, 100,
37, 47, 0, 0, 93, 15, 85, 89, 90, 86,
87, 88, 101, 54, 0, 65, 77, 75, 49, 24,
0, 60, 61, 0, 29, 47, 28, 0, 103, 125,
126, 32, 33, 0, 0, 39, 0, 0, 14, 26,
25, 27, 0, 0, 38, 0, 41, 0, 104, 0,
0, 0, 0, 96, 0, 0, 42, 0, 0, 0,
0, 117, 84, 97, 0, 40, 118
2, 3, 1, 0, 0, 45, 45, 45, 45, 48,
45, 45, 45, 45, 45, 0, 0, 45, 48, 48,
45, 45, 45, 45, 45, 45, 48, 0, 0, 0,
0, 11, 4, 0, 13, 0, 0, 0, 48, 48,
0, 48, 0, 0, 48, 48, 0, 0, 112, 106,
113, 0, 0, 0, 0, 0, 0, 44, 0, 0,
0, 0, 0, 0, 0, 0, 96, 93, 0, 92,
43, 95, 84, 7, 0, 5, 0, 12, 46, 47,
0, 0, 81, 80, 82, 84, 0, 0, 101, 67,
68, 0, 0, 64, 57, 0, 75, 79, 70, 63,
65, 71, 77, 69, 0, 49, 106, 106, 22, 0,
0, 0, 0, 0, 0, 0, 0, 30, 115, 114,
0, 0, 0, 0, 120, 0, 116, 0, 0, 0,
48, 35, 0, 0, 0, 100, 0, 99, 0, 0,
0, 0, 21, 0, 0, 0, 0, 0, 83, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 58,
56, 54, 53, 0, 0, 0, 0, 106, 19, 20,
72, 73, 0, 51, 52, 0, 23, 0, 0, 48,
0, 0, 0, 0, 106, 107, 108, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 117, 31,
0, 110, 109, 111, 0, 0, 34, 0, 0, 0,
0, 0, 0, 0, 0, 8, 9, 6, 10, 16,
84, 0, 0, 0, 0, 17, 0, 74, 59, 0,
18, 0, 0, 0, 51, 0, 0, 48, 0, 0,
0, 0, 0, 48, 0, 0, 130, 129, 128, 0,
0, 121, 122, 123, 124, 125, 0, 103, 0, 36,
0, 101, 37, 48, 0, 0, 94, 15, 86, 90,
91, 87, 88, 89, 102, 55, 0, 66, 78, 76,
50, 24, 0, 61, 62, 0, 29, 48, 28, 0,
104, 126, 127, 32, 33, 0, 0, 39, 0, 0,
14, 26, 25, 27, 0, 0, 38, 0, 41, 0,
105, 0, 0, 0, 0, 97, 0, 0, 42, 0,
0, 0, 0, 118, 85, 98, 0, 40, 119
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 1, 3, 31, 143, 141, 32, 34, 102, 105,
90, 91, 176, 92, 167, 93, 94, 95, 77, 78,
79, 306, 80, 266, 81, 114, 314, 134, 98, 99,
121, 202, 122, 325, 123
-1, 1, 3, 32, 146, 144, 33, 35, 105, 108,
93, 94, 178, 95, 169, 96, 97, 98, 81, 82,
83, 308, 84, 268, 71, 72, 316, 136, 101, 102,
123, 204, 124, 327, 125
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -147
#define YYPACT_NINF -119
static const yytype_int16 yypact[] =
{
-147, 19, -147, 305, -37, -147, -147, -147, -147, -40,
-147, -147, -147, -147, -147, 448, 448, -147, -40, -40,
-147, -147, -147, -147, -147, -147, -40, -8, -22, -21,
-147, -147, -20, -147, 102, 102, 334, 108, -40, 416,
108, 102, 397, 48, 108, 482, 482, -147, 95, -147,
482, 482, -19, 18, 34, 223, -147, 5, 174, 424,
132, 174, 223, 223, 20, -147, 482, -147, 482, -147,
-147, -147, 30, -147, -147, -147, 482, 35, -147, -147,
-147, -147, 49, 76, 84, -147, -147, -147, 205, 339,
-147, -147, 93, -147, -147, -147, -147, 110, -147, 124,
125, 442, -147, 98, 98, -147, 128, 373, 134, 36,
144, 147, 20, 153, -147, -147, -147, -147, 60, 482,
482, 175, -147, 114, -147, 249, 21, 482, -40, -147,
182, 183, 12, -147, 185, -147, 188, 189, 198, 36,
-147, 305, 562, 305, 572, 482, -147, 36, 256, 258,
261, 269, 36, 482, 212, 460, 216, -147, -147, -147,
125, 373, 36, 138, 586, 95, -147, -147, -147, -147,
217, -147, -147, 247, -147, 36, 226, 7, 229, 138,
227, 20, 98, -147, -147, 21, 482, 482, 482, 287,
301, 482, 482, 482, 482, 482, -147, -147, 248, -147,
-147, -147, 243, 250, -147, 66, 482, 257, 106, 66,
36, 36, -147, -147, -147, -147, 225, -147, 251, 205,
205, 205, 205, -147, 266, -147, -147, 478, -147, 267,
278, 279, 175, 215, 280, -40, 253, 36, 36, 36,
36, 297, 295, 298, 601, 345, 609, 482, 482, 190,
190, -147, -147, -147, 300, -147, 5, -147, 552, 303,
-147, -40, 306, 307, -147, 36, -147, -147, -147, -147,
-147, -147, -147, -147, 125, -147, -147, -147, -147, -147,
486, -147, -147, 309, -147, 130, -147, 331, -147, 121,
121, -147, -147, 36, 66, -147, 322, 36, -147, -147,
-147, -147, 308, 326, -147, 36, -147, 327, -147, 119,
329, 36, 333, -147, 338, 36, -147, 482, 119, 330,
292, 341, -147, -147, 482, -147, 631
-119, 29, -119, 283, -9, -119, -119, -119, -119, -23,
-119, -119, -119, -119, -119, 407, 407, -119, -23, -23,
-119, -119, -119, -119, -119, -119, -23, 383, -24, 16,
18, -119, -119, 25, -119, 196, 196, 320, 52, -23,
374, 52, 196, 342, 294, 52, 447, 447, -119, 125,
-119, 447, 447, 45, 47, 109, 174, -119, 62, 98,
382, 130, 98, 174, 174, 69, -119, -119, 80, -119,
-119, -119, -119, -119, 447, -119, 447, -119, -119, -119,
447, 96, -119, -119, -119, 24, 105, 95, -119, -119,
-119, 360, 101, -119, -119, 108, -119, -119, -119, -119,
119, -119, 127, 131, 401, -119, 76, 76, -119, 141,
224, 111, 383, 154, 149, 69, 162, -119, -119, -119,
221, 447, 447, 163, -119, 40, -119, 409, 170, 447,
-23, -119, 167, 171, 2, -119, 176, -119, 181, 183,
184, 383, -119, 447, 283, 530, 283, 540, -119, 383,
244, 245, 251, 260, 383, 447, 206, 441, 208, -119,
-119, -119, 131, 224, 383, 110, 282, 125, -119, -119,
-119, -119, 213, -119, -119, 238, -119, 383, 220, 9,
222, 110, 225, 69, 76, -119, -119, 170, 447, 447,
447, 285, 287, 447, 447, 447, 447, 447, -119, -119,
247, -119, -119, -119, 263, 248, -119, 71, 447, 276,
79, 71, 383, 383, 56, -119, -119, -119, -119, -119,
271, 360, 360, 360, 360, -119, 268, -119, -119, 415,
-119, 270, 277, 281, 163, 60, 293, -23, 280, 383,
383, 383, 383, 286, 297, 311, 589, 579, 597, 447,
447, 211, 211, -119, -119, -119, 284, -119, 62, -119,
520, 318, -119, -23, 321, 322, -119, 383, -119, -119,
-119, -119, -119, -119, -119, -119, 131, -119, -119, -119,
-119, -119, 453, -119, -119, 327, -119, 77, -119, 347,
-119, 478, 478, -119, -119, 383, 71, -119, 330, 383,
-119, -119, -119, -119, 326, 334, -119, 383, -119, 337,
-119, 115, 340, 383, 341, -119, 350, 383, -119, 447,
115, 354, 86, 367, -119, -119, 447, -119, 570
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
-147, -147, -147, -114, -147, -147, -147, 579, 44, 311,
-49, 348, 0, -97, -147, -44, -39, -80, -9, -119,
-13, -147, -25, 2, -146, -34, 91, -147, -14, -3,
-89, 228, -11, -147, -30
-119, -119, -119, -73, -119, -119, -119, 547, -6, 332,
-50, 376, -60, -82, -119, -46, -39, -86, -15, -118,
-22, -119, -27, 152, -111, -35, 118, -119, -45, 8,
-81, 255, 132, -119, 6
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -60
#define YYTABLE_NINF -61
static const yytype_int16 yytable[] =
{
82, 82, 82, 110, 53, 53, 197, 82, 129, 159,
174, 97, 52, 54, 171, 172, 237, 230, 231, 2,
140, 207, 38, 96, 33, 100, 83, 212, 106, 214,
113, 111, 108, 231, 116, 117, 142, 67, 144, 68,
124, 69, 128, 125, 130, 127, 135, 136, 131, 137,
138, 65, 66, 39, 154, 148, 149, 168, 150, 199,
200, 201, 56, 57, 228, 146, 157, 182, 180, 38,
64, -59, 89, 82, 70, 177, 232, 71, 160, 72,
73, 101, 97, 126, 107, 139, 70, 112, 115, 71,
170, 72, 73, 242, 96, 145, 100, 147, 169, 74,
75, 118, 151, 119, 120, 154, 119, 120, 183, 184,
38, 84, 85, 218, 198, 216, 203, 186, 187, 188,
189, 190, 191, 192, 193, 194, 195, 82, 229, 191,
192, 193, 194, 195, 217, 291, 97, 241, 152, 223,
70, 235, 224, 71, 117, 72, 73, 273, 96, 153,
100, 84, 259, 74, 75, 161, 244, 245, 246, 74,
75, 249, 250, 251, 252, 253, 312, 313, 70, 76,
38, 71, 204, 72, 73, 162, 258, 84, 85, 71,
196, 72, 73, 74, 75, 267, 267, 267, 267, 163,
164, 257, 38, 173, 260, 261, 175, 262, 263, 132,
193, 194, 195, 281, 177, 177, 178, 292, 268, 268,
268, 268, 179, 45, 46, 181, 274, 289, 290, 84,
85, 238, 269, 270, 271, 74, 75, 284, 186, 187,
188, 189, 190, 191, 192, 193, 194, 195, 282, 283,
185, 299, 47, 70, 205, 206, 71, 208, 72, 73,
209, 210, 298, 199, 200, 201, 234, 45, 46, 303,
211, 70, 219, 49, 71, 220, 72, 73, 221, 111,
50, 310, 301, 51, 74, 75, 222, 316, 225, 279,
304, 319, 233, 227, 307, 286, 47, 320, 234, 240,
236, 264, 239, 247, 326, 186, 187, 188, 189, 190,
191, 192, 193, 194, 195, 295, 4, 49, 248, 255,
254, 226, 256, 265, 50, 280, 76, 51, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 272, 275, 19, 20, 21, 22, 23, 24,
25, 26, 45, 46, 276, 277, 278, 45, 155, 156,
188, 189, 190, 191, 192, 193, 194, 195, 323, 285,
287, 27, 28, 29, 288, 294, 30, 76, 296, 297,
302, 47, 70, 300, 308, 71, 47, 72, 73, 84,
85, 45, 46, 86, 87, 74, 75, 305, 309, 311,
48, 315, 49, 157, 158, 48, 322, 49, 317, 88,
318, 89, 51, 324, 88, 45, 46, 51, 133, 321,
47, 70, 166, 243, 71, 0, 72, 73, 84, 85,
0, 0, 86, 87, 45, 46, 0, 0, 0, 48,
0, 49, 45, 46, 47, 0, 0, 0, 88, 0,
89, 51, 0, 0, 0, 0, 0, 0, 74, 75,
45, 46, 0, 47, 0, 49, 45, 46, 0, 0,
109, 47, 88, 0, 0, 51, 0, 0, 45, 46,
0, 0, 103, 104, 49, 74, 75, 0, 0, 47,
0, 50, 49, 0, 51, 47, 45, 46, 0, 50,
45, 46, 51, 0, 45, 46, 0, 47, 165, 104,
49, 0, 0, 0, 48, 0, 49, 88, 0, 0,
51, 0, 0, 50, 226, 47, 51, 0, 49, 47,
0, 0, 0, 47, 0, 50, 0, 0, 51, 0,
0, 0, 0, 0, 48, 0, 49, 0, 0, 0,
49, 0, 0, 88, 49, 0, 51, 50, 0, 0,
51, 88, 0, 0, 51, 186, 187, 188, 189, 190,
191, 192, 193, 194, 195, 186, 187, 188, 189, 190,
191, 192, 193, 194, 195, 186, 187, 188, 189, 190,
191, 192, 193, 194, 195, 35, 36, 37, 0, 40,
41, 42, 43, 44, 0, 0, 55, 0, 0, 58,
59, 60, 61, 62, 63, 187, 188, 189, 190, 191,
192, 193, 194, 195, 293, 189, 190, 191, 192, 193,
194, 195, 0, 213, 199, 200, 201, 71, 0, 72,
73, 0, 0, 215, 186, 187, 188, 189, 190, 191,
192, 193, 194, 195
85, 85, 85, 40, 113, 70, 161, 85, 131, 199,
100, 209, 57, 58, 132, 99, 137, 138, 239, 142,
65, 86, 116, 53, 55, 173, 174, 111, 176, 2,
150, 151, 104, 152, 130, 110, 73, 74, 115, 117,
39, 139, 140, 188, 189, 190, 191, 192, 193, 194,
195, 196, 197, 34, 232, 233, 156, 159, 170, 188,
189, 190, 191, 192, 193, 194, 195, 196, 197, 182,
233, 215, 39, 217, -60, 85, 75, 179, 153, 76,
145, 230, 147, 100, 121, 122, 234, 77, 99, 188,
189, 190, 191, 192, 193, 194, 195, 196, 197, 201,
202, 203, 236, 244, 78, 79, 156, 198, 127, 46,
157, 158, 171, 128, 220, 39, 66, 87, 88, 67,
129, 68, 69, 266, 206, 87, 261, 219, 85, 231,
92, 120, 225, 121, 122, 141, 100, 243, 293, 48,
39, 99, 237, 275, 87, 88, 143, 54, 54, 214,
78, 79, 67, 325, 68, 69, 159, 160, 49, 149,
50, 155, 259, 314, 315, 262, 263, 91, 154, 103,
52, 163, 109, 240, 177, 114, 87, 88, 118, 119,
284, 285, 78, 79, 126, 164, 269, 269, 269, 269,
264, 265, 133, 165, 246, 247, 248, 166, 134, 251,
252, 253, 254, 255, 283, 179, 179, 175, 294, 201,
202, 203, 148, 66, 260, 181, 67, 180, 68, 69,
286, 195, 196, 197, 162, 183, 78, 79, 184, 187,
207, 281, 46, 47, 208, 66, 172, 288, 67, 210,
68, 69, 103, 301, 211, 300, 212, 213, 78, 79,
221, 306, 222, 185, 186, 291, 292, 297, 223, 200,
305, 205, 48, 66, 80, 303, 67, 224, 68, 69,
87, 88, 312, 227, 89, 90, 229, 309, 318, 235,
236, 49, 321, 50, 4, 238, 241, 226, 242, 119,
91, 249, 92, 52, 250, 103, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
256, 258, 19, 20, 21, 22, 23, 24, 25, 26,
27, 201, 202, 203, 67, 322, 68, 69, 46, 47,
257, 228, 328, 66, 267, 274, 67, 277, 68, 69,
28, 29, 30, 282, 278, 31, 78, 79, 279, 287,
46, 47, 80, 270, 270, 270, 270, 39, 48, 66,
280, 276, 67, 289, 68, 69, 87, 88, 46, 47,
89, 90, 78, 79, 271, 272, 273, 49, 290, 50,
48, 296, 46, 47, 298, 299, 91, 304, 92, 52,
46, 47, 302, 310, 78, 79, 307, 311, 48, 66,
313, 50, 67, 317, 68, 69, 112, 319, 91, 46,
47, 52, 48, 320, 114, 46, 47, 46, 47, 50,
48, 324, 66, 46, 47, 67, 51, 68, 69, 52,
326, 106, 107, 50, 78, 79, 168, 135, 323, 48,
51, 50, 245, 52, 0, 48, 0, 48, 51, 46,
47, 52, 0, 48, 0, 46, 47, 0, 167, 107,
50, 46, 47, 0, 49, 0, 50, 91, 50, 0,
52, 0, 49, 51, 50, 51, 52, 80, 52, 48,
0, 91, 0, 0, 52, 48, 193, 194, 195, 196,
197, 48, 0, 0, 0, 0, 228, 0, 0, 0,
50, 0, 0, 0, 0, 0, 50, 51, 0, 0,
52, 0, 50, 51, 0, 0, 52, 0, 0, 91,
0, 0, 52, 188, 189, 190, 191, 192, 193, 194,
195, 196, 197, 188, 189, 190, 191, 192, 193, 194,
195, 196, 197, 188, 189, 190, 191, 192, 193, 194,
195, 196, 197, 36, 37, 38, 0, 41, 42, 43,
44, 45, 0, 0, 56, 0, 0, 59, 60, 61,
62, 63, 64, 188, 189, 190, 191, 192, 193, 194,
195, 196, 197, 295, 190, 191, 192, 193, 194, 195,
196, 197, 216, 189, 190, 191, 192, 193, 194, 195,
196, 197, 218, 191, 192, 193, 194, 195, 196, 197
};
static const yytype_int16 yycheck[] =
{
34, 35, 36, 42, 15, 16, 125, 41, 57, 89,
107, 36, 15, 16, 103, 104, 9, 163, 164, 0,
64, 9, 62, 36, 61, 36, 35, 141, 39, 143,
43, 42, 41, 179, 45, 46, 66, 59, 68, 60,
51, 61, 55, 62, 58, 11, 60, 61, 59, 62,
63, 59, 60, 9, 88, 6, 7, 101, 9, 38,
39, 40, 18, 19, 161, 76, 54, 7, 112, 62,
26, 64, 67, 107, 38, 109, 165, 41, 89, 43,
44, 37, 107, 65, 40, 65, 38, 43, 44, 41,
101, 43, 44, 182, 107, 65, 107, 62, 101, 51,
52, 6, 53, 8, 9, 139, 8, 9, 119, 120,
62, 45, 46, 147, 125, 145, 127, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 161, 162, 8,
9, 10, 11, 12, 147, 254, 161, 181, 62, 152,
38, 175, 153, 41, 155, 43, 44, 227, 161, 65,
161, 45, 46, 51, 52, 62, 186, 187, 188, 51,
52, 191, 192, 193, 194, 195, 47, 48, 38, 67,
62, 41, 128, 43, 44, 65, 206, 45, 46, 41,
66, 43, 44, 51, 52, 219, 220, 221, 222, 65,
65, 205, 62, 65, 208, 209, 62, 210, 211, 67,
10, 11, 12, 237, 238, 239, 62, 256, 219, 220,
221, 222, 65, 8, 9, 62, 227, 247, 248, 45,
46, 177, 220, 221, 222, 51, 52, 240, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 238, 239,
65, 280, 37, 38, 62, 62, 41, 62, 43, 44,
62, 62, 265, 38, 39, 40, 41, 8, 9, 293,
62, 38, 6, 58, 41, 7, 43, 44, 7, 280,
65, 305, 285, 68, 51, 52, 7, 311, 66, 235,
294, 315, 65, 67, 297, 241, 37, 317, 41, 62,
64, 66, 63, 6, 324, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 261, 1, 58, 7, 66,
62, 54, 62, 62, 65, 62, 67, 68, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 66, 66, 29, 30, 31, 32, 33, 34,
35, 36, 8, 9, 66, 66, 66, 8, 9, 10,
5, 6, 7, 8, 9, 10, 11, 12, 66, 62,
65, 56, 57, 58, 66, 62, 61, 67, 62, 62,
39, 37, 38, 64, 66, 41, 37, 43, 44, 45,
46, 8, 9, 49, 50, 51, 52, 65, 62, 62,
56, 62, 58, 54, 55, 56, 66, 58, 65, 65,
62, 67, 68, 62, 65, 8, 9, 68, 60, 318,
37, 38, 101, 185, 41, -1, 43, 44, 45, 46,
-1, -1, 49, 50, 8, 9, -1, -1, -1, 56,
-1, 58, 8, 9, 37, -1, -1, -1, 65, -1,
67, 68, -1, -1, -1, -1, -1, -1, 51, 52,
8, 9, -1, 37, -1, 58, 8, 9, -1, -1,
63, 37, 65, -1, -1, 68, -1, -1, 8, 9,
-1, -1, 56, 57, 58, 51, 52, -1, -1, 37,
-1, 65, 58, -1, 68, 37, 8, 9, -1, 65,
8, 9, 68, -1, 8, 9, -1, 37, 56, 57,
58, -1, -1, -1, 56, -1, 58, 65, -1, -1,
68, -1, -1, 65, 54, 37, 68, -1, 58, 37,
-1, -1, -1, 37, -1, 65, -1, -1, 68, -1,
-1, -1, -1, -1, 56, -1, 58, -1, -1, -1,
58, -1, -1, 65, 58, -1, 68, 65, -1, -1,
68, 65, -1, -1, 68, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 6, 7, 8, -1, 10,
11, 12, 13, 14, -1, -1, 17, -1, -1, 20,
21, 22, 23, 24, 25, 4, 5, 6, 7, 8,
9, 10, 11, 12, 62, 6, 7, 8, 9, 10,
11, 12, -1, 61, 38, 39, 40, 41, -1, 43,
44, -1, -1, 61, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12
35, 36, 37, 9, 43, 27, 92, 42, 58, 127,
37, 9, 18, 19, 59, 37, 61, 62, 9, 65,
26, 36, 44, 15, 16, 106, 107, 42, 110, 0,
6, 7, 38, 9, 56, 41, 60, 61, 44, 45,
63, 63, 64, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 62, 165, 166, 91, 55, 104, 3,
4, 5, 6, 7, 8, 9, 10, 11, 12, 115,
181, 144, 63, 146, 65, 110, 60, 112, 54, 61,
74, 163, 76, 110, 8, 9, 167, 62, 110, 3,
4, 5, 6, 7, 8, 9, 10, 11, 12, 39,
40, 41, 42, 184, 52, 53, 141, 67, 63, 8,
9, 10, 104, 66, 149, 63, 39, 46, 47, 42,
11, 44, 45, 67, 130, 46, 47, 149, 163, 164,
68, 6, 154, 8, 9, 66, 163, 183, 256, 38,
63, 163, 177, 229, 46, 47, 66, 15, 16, 143,
52, 53, 42, 67, 44, 45, 55, 56, 57, 63,
59, 66, 207, 48, 49, 210, 211, 66, 63, 37,
69, 63, 40, 179, 63, 43, 46, 47, 46, 47,
240, 241, 52, 53, 52, 66, 221, 222, 223, 224,
212, 213, 60, 66, 188, 189, 190, 66, 68, 193,
194, 195, 196, 197, 239, 240, 241, 66, 258, 39,
40, 41, 80, 39, 208, 66, 42, 63, 44, 45,
242, 10, 11, 12, 92, 63, 52, 53, 7, 66,
63, 237, 8, 9, 63, 39, 104, 243, 42, 63,
44, 45, 110, 282, 63, 267, 63, 63, 52, 53,
6, 296, 7, 121, 122, 249, 250, 263, 7, 127,
295, 129, 38, 39, 68, 287, 42, 7, 44, 45,
46, 47, 307, 67, 50, 51, 68, 299, 313, 66,
42, 57, 317, 59, 1, 65, 64, 155, 63, 157,
66, 6, 68, 69, 7, 163, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
63, 63, 29, 30, 31, 32, 33, 34, 35, 36,
37, 39, 40, 41, 42, 319, 44, 45, 8, 9,
67, 55, 326, 39, 63, 67, 42, 67, 44, 45,
57, 58, 59, 63, 67, 62, 52, 53, 67, 63,
8, 9, 68, 221, 222, 223, 224, 63, 38, 39,
67, 229, 42, 66, 44, 45, 46, 47, 8, 9,
50, 51, 52, 53, 222, 223, 224, 57, 67, 59,
38, 63, 8, 9, 63, 63, 66, 40, 68, 69,
8, 9, 65, 67, 52, 53, 66, 63, 38, 39,
63, 59, 42, 63, 44, 45, 64, 66, 66, 8,
9, 69, 38, 63, 282, 8, 9, 8, 9, 59,
38, 67, 39, 8, 9, 42, 66, 44, 45, 69,
63, 57, 58, 59, 52, 53, 104, 61, 320, 38,
66, 59, 187, 69, -1, 38, -1, 38, 66, 8,
9, 69, -1, 38, -1, 8, 9, -1, 57, 58,
59, 8, 9, -1, 57, -1, 59, 66, 59, -1,
69, -1, 57, 66, 59, 66, 69, 68, 69, 38,
-1, 66, -1, -1, 69, 38, 8, 9, 10, 11,
12, 38, -1, -1, -1, -1, 55, -1, -1, -1,
59, -1, -1, -1, -1, -1, 59, 66, -1, -1,
69, -1, 59, 66, -1, -1, 69, -1, -1, 66,
-1, -1, 69, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 6, 7, 8, -1, 10, 11, 12,
13, 14, -1, -1, 17, -1, -1, 20, 21, 22,
23, 24, 25, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 63, 5, 6, 7, 8, 9, 10,
11, 12, 62, 4, 5, 6, 7, 8, 9, 10,
11, 12, 62, 6, 7, 8, 9, 10, 11, 12
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
0, 70, 0, 71, 1, 13, 14, 15, 16, 17,
0, 71, 0, 72, 1, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 29,
30, 31, 32, 33, 34, 35, 36, 56, 57, 58,
61, 72, 75, 61, 76, 76, 76, 76, 62, 77,
76, 76, 76, 76, 76, 8, 9, 37, 56, 58,
65, 68, 98, 101, 98, 76, 77, 77, 76, 76,
76, 76, 76, 76, 77, 59, 60, 59, 60, 61,
38, 41, 43, 44, 51, 52, 67, 87, 88, 89,
91, 93, 94, 87, 45, 46, 49, 50, 65, 67,
79, 80, 82, 84, 85, 86, 89, 91, 97, 98,
101, 77, 77, 56, 57, 78, 101, 77, 87, 63,
85, 101, 77, 89, 94, 77, 101, 101, 6, 8,
9, 99, 101, 103, 101, 62, 65, 11, 89, 79,
97, 101, 67, 80, 96, 97, 97, 89, 89, 65,
84, 74, 103, 73, 103, 65, 101, 62, 6, 7,
9, 53, 62, 65, 94, 9, 10, 54, 55, 86,
101, 62, 65, 65, 65, 56, 78, 83, 84, 98,
101, 99, 99, 65, 82, 62, 81, 94, 62, 65,
84, 62, 7, 101, 101, 65, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 66, 88, 101, 38,
39, 40, 100, 101, 77, 62, 62, 9, 62, 62,
62, 62, 72, 61, 72, 61, 103, 89, 94, 6,
7, 7, 7, 89, 101, 66, 54, 67, 82, 94,
93, 93, 99, 65, 41, 94, 64, 9, 77, 63,
62, 84, 99, 100, 103, 103, 103, 6, 7, 103,
103, 103, 103, 103, 62, 66, 62, 97, 103, 46,
97, 97, 89, 89, 66, 62, 92, 94, 101, 92,
92, 92, 66, 86, 101, 66, 66, 66, 66, 77,
62, 94, 81, 81, 89, 62, 77, 65, 66, 103,
103, 88, 79, 62, 62, 77, 62, 62, 89, 85,
64, 89, 39, 94, 97, 65, 90, 89, 66, 62,
94, 62, 47, 48, 95, 62, 94, 65, 62, 94,
103, 95, 66, 66, 62, 102, 103
30, 31, 32, 33, 34, 35, 36, 37, 57, 58,
59, 62, 73, 76, 62, 77, 77, 77, 77, 63,
78, 77, 77, 77, 77, 77, 8, 9, 38, 57,
59, 66, 69, 99, 102, 99, 77, 78, 78, 77,
77, 77, 77, 77, 77, 78, 39, 42, 44, 45,
90, 94, 95, 60, 61, 60, 61, 62, 52, 53,
68, 88, 89, 90, 92, 95, 88, 46, 47, 50,
51, 66, 68, 80, 81, 83, 85, 86, 87, 90,
92, 98, 99, 102, 78, 78, 57, 58, 79, 102,
78, 88, 64, 86, 102, 78, 90, 78, 102, 102,
6, 8, 9, 100, 102, 104, 102, 63, 66, 11,
90, 80, 98, 102, 68, 81, 97, 98, 98, 90,
90, 66, 85, 66, 75, 104, 74, 104, 102, 63,
6, 7, 9, 54, 63, 66, 95, 9, 10, 55,
56, 87, 102, 63, 66, 66, 66, 57, 79, 84,
85, 99, 102, 100, 100, 66, 83, 63, 82, 95,
63, 66, 85, 63, 7, 102, 102, 66, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 67, 89,
102, 39, 40, 41, 101, 102, 78, 63, 63, 9,
63, 63, 63, 63, 104, 73, 62, 73, 62, 90,
95, 6, 7, 7, 7, 90, 102, 67, 55, 68,
83, 95, 94, 94, 100, 66, 42, 95, 65, 9,
78, 64, 63, 85, 100, 101, 104, 104, 104, 6,
7, 104, 104, 104, 104, 104, 63, 67, 63, 98,
104, 47, 98, 98, 90, 90, 67, 63, 93, 95,
102, 93, 93, 93, 67, 87, 102, 67, 67, 67,
67, 78, 63, 95, 82, 82, 90, 63, 78, 66,
67, 104, 104, 89, 80, 63, 63, 78, 63, 63,
90, 86, 65, 90, 40, 95, 98, 66, 91, 90,
67, 63, 95, 63, 48, 49, 96, 63, 95, 66,
63, 95, 104, 96, 67, 67, 63, 103, 104
};
#define yyerrok (yyerrstatus = 0)
......@@ -1974,7 +1972,7 @@ yyreduce:
/* Line 1455 of yacc.c */
#line 219 "a.y"
{
outcode((yyvsp[(1) - (4)].lval), Always, &(yyvsp[(2) - (4)].gen), NREG, &(yyvsp[(4) - (4)].gen));
outcode((yyvsp[(1) - (4)].lval), Always, &(yyvsp[(2) - (4)].gen), 0, &(yyvsp[(4) - (4)].gen));
}
break;
......@@ -2099,41 +2097,51 @@ yyreduce:
/* Line 1455 of yacc.c */
#line 308 "a.y"
{
outcode((yyvsp[(1) - (2)].lval), Always, &nullgen, NREG, &nullgen);
// TODO
outcode((yyvsp[(1) - (2)].lval), Always, &(yyvsp[(2) - (2)].gen), NREG, &nullgen);
}
break;
case 44:
/* Line 1455 of yacc.c */
#line 313 "a.y"
#line 316 "a.y"
{
(yyval.lval) = Always;
outcode((yyvsp[(1) - (2)].lval), Always, &nullgen, NREG, &nullgen);
}
break;
case 45:
/* Line 1455 of yacc.c */
#line 317 "a.y"
#line 321 "a.y"
{
(yyval.lval) = ((yyvsp[(1) - (2)].lval) & ~C_SCOND) | (yyvsp[(2) - (2)].lval);
(yyval.lval) = Always;
}
break;
case 46:
/* Line 1455 of yacc.c */
#line 321 "a.y"
#line 325 "a.y"
{
(yyval.lval) = ((yyvsp[(1) - (2)].lval) & ~C_SCOND) | (yyvsp[(2) - (2)].lval);
}
break;
case 47:
/* Line 1455 of yacc.c */
#line 329 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (2)].lval) | (yyvsp[(2) - (2)].lval);
}
break;
case 49:
case 50:
/* Line 1455 of yacc.c */
#line 330 "a.y"
#line 338 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_BRANCH;
......@@ -2141,10 +2149,10 @@ yyreduce:
}
break;
case 50:
case 51:
/* Line 1455 of yacc.c */
#line 336 "a.y"
#line 344 "a.y"
{
(yyval.gen) = nullgen;
if(pass == 2)
......@@ -2155,10 +2163,10 @@ yyreduce:
}
break;
case 51:
case 52:
/* Line 1455 of yacc.c */
#line 345 "a.y"
#line 353 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_BRANCH;
......@@ -2167,10 +2175,10 @@ yyreduce:
}
break;
case 52:
case 53:
/* Line 1455 of yacc.c */
#line 353 "a.y"
#line 361 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_CONST;
......@@ -2178,30 +2186,30 @@ yyreduce:
}
break;
case 53:
case 54:
/* Line 1455 of yacc.c */
#line 359 "a.y"
#line 367 "a.y"
{
(yyval.gen) = (yyvsp[(2) - (2)].gen);
(yyval.gen).type = D_CONST;
}
break;
case 54:
case 55:
/* Line 1455 of yacc.c */
#line 364 "a.y"
#line 372 "a.y"
{
(yyval.gen) = (yyvsp[(4) - (4)].gen);
(yyval.gen).type = D_OCONST;
}
break;
case 55:
case 56:
/* Line 1455 of yacc.c */
#line 369 "a.y"
#line 377 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_SCONST;
......@@ -2209,10 +2217,10 @@ yyreduce:
}
break;
case 57:
case 58:
/* Line 1455 of yacc.c */
#line 378 "a.y"
#line 386 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
......@@ -2220,10 +2228,10 @@ yyreduce:
}
break;
case 58:
case 59:
/* Line 1455 of yacc.c */
#line 384 "a.y"
#line 392 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FCONST;
......@@ -2231,19 +2239,19 @@ yyreduce:
}
break;
case 59:
case 60:
/* Line 1455 of yacc.c */
#line 392 "a.y"
#line 400 "a.y"
{
(yyval.lval) = 1 << (yyvsp[(1) - (1)].lval);
}
break;
case 60:
case 61:
/* Line 1455 of yacc.c */
#line 396 "a.y"
#line 404 "a.y"
{
int i;
(yyval.lval)=0;
......@@ -2254,29 +2262,29 @@ yyreduce:
}
break;
case 61:
case 62:
/* Line 1455 of yacc.c */
#line 405 "a.y"
#line 413 "a.y"
{
(yyval.lval) = (1<<(yyvsp[(1) - (3)].lval)) | (yyvsp[(3) - (3)].lval);
}
break;
case 65:
case 66:
/* Line 1455 of yacc.c */
#line 414 "a.y"
#line 422 "a.y"
{
(yyval.gen) = (yyvsp[(1) - (4)].gen);
(yyval.gen).reg = (yyvsp[(3) - (4)].lval);
}
break;
case 66:
case 67:
/* Line 1455 of yacc.c */
#line 419 "a.y"
#line 427 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_PSR;
......@@ -2284,10 +2292,10 @@ yyreduce:
}
break;
case 67:
case 68:
/* Line 1455 of yacc.c */
#line 425 "a.y"
#line 433 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FPCR;
......@@ -2295,10 +2303,10 @@ yyreduce:
}
break;
case 68:
case 69:
/* Line 1455 of yacc.c */
#line 431 "a.y"
#line 439 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_OREG;
......@@ -2306,10 +2314,10 @@ yyreduce:
}
break;
case 72:
case 73:
/* Line 1455 of yacc.c */
#line 442 "a.y"
#line 450 "a.y"
{
(yyval.gen) = (yyvsp[(1) - (1)].gen);
if((yyvsp[(1) - (1)].gen).name != D_EXTERN && (yyvsp[(1) - (1)].gen).name != D_STATIC) {
......@@ -2317,10 +2325,10 @@ yyreduce:
}
break;
case 73:
case 74:
/* Line 1455 of yacc.c */
#line 450 "a.y"
#line 458 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_OREG;
......@@ -2329,10 +2337,10 @@ yyreduce:
}
break;
case 75:
case 76:
/* Line 1455 of yacc.c */
#line 460 "a.y"
#line 468 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_OREG;
......@@ -2341,10 +2349,10 @@ yyreduce:
}
break;
case 77:
case 78:
/* Line 1455 of yacc.c */
#line 470 "a.y"
#line 478 "a.y"
{
(yyval.gen) = (yyvsp[(1) - (4)].gen);
(yyval.gen).type = D_OREG;
......@@ -2352,10 +2360,10 @@ yyreduce:
}
break;
case 82:
case 83:
/* Line 1455 of yacc.c */
#line 483 "a.y"
#line 491 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_CONST;
......@@ -2363,10 +2371,10 @@ yyreduce:
}
break;
case 83:
case 84:
/* Line 1455 of yacc.c */
#line 491 "a.y"
#line 499 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_REG;
......@@ -2374,10 +2382,10 @@ yyreduce:
}
break;
case 84:
case 85:
/* Line 1455 of yacc.c */
#line 499 "a.y"
#line 507 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_REGREG;
......@@ -2386,10 +2394,10 @@ yyreduce:
}
break;
case 85:
case 86:
/* Line 1455 of yacc.c */
#line 508 "a.y"
#line 516 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_SHIFT;
......@@ -2397,10 +2405,10 @@ yyreduce:
}
break;
case 86:
case 87:
/* Line 1455 of yacc.c */
#line 514 "a.y"
#line 522 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_SHIFT;
......@@ -2408,10 +2416,10 @@ yyreduce:
}
break;
case 87:
case 88:
/* Line 1455 of yacc.c */
#line 520 "a.y"
#line 528 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_SHIFT;
......@@ -2419,10 +2427,10 @@ yyreduce:
}
break;
case 88:
case 89:
/* Line 1455 of yacc.c */
#line 526 "a.y"
#line 534 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_SHIFT;
......@@ -2430,10 +2438,10 @@ yyreduce:
}
break;
case 89:
case 90:
/* Line 1455 of yacc.c */
#line 534 "a.y"
#line 542 "a.y"
{
if((yyval.lval) < 0 || (yyval.lval) >= 16)
print("register value out of range\n");
......@@ -2441,10 +2449,10 @@ yyreduce:
}
break;
case 90:
case 91:
/* Line 1455 of yacc.c */
#line 540 "a.y"
#line 548 "a.y"
{
if((yyval.lval) < 0 || (yyval.lval) >= 32)
print("shift value out of range\n");
......@@ -2452,19 +2460,19 @@ yyreduce:
}
break;
case 92:
case 93:
/* Line 1455 of yacc.c */
#line 549 "a.y"
#line 557 "a.y"
{
(yyval.lval) = REGPC;
}
break;
case 93:
case 94:
/* Line 1455 of yacc.c */
#line 553 "a.y"
#line 561 "a.y"
{
if((yyvsp[(3) - (4)].lval) < 0 || (yyvsp[(3) - (4)].lval) >= NREG)
print("register value out of range\n");
......@@ -2472,19 +2480,19 @@ yyreduce:
}
break;
case 95:
case 96:
/* Line 1455 of yacc.c */
#line 562 "a.y"
#line 570 "a.y"
{
(yyval.lval) = REGSP;
}
break;
case 97:
case 98:
/* Line 1455 of yacc.c */
#line 569 "a.y"
#line 577 "a.y"
{
if((yyvsp[(3) - (4)].lval) < 0 || (yyvsp[(3) - (4)].lval) >= NREG)
print("register value out of range\n");
......@@ -2492,10 +2500,10 @@ yyreduce:
}
break;
case 100:
case 101:
/* Line 1455 of yacc.c */
#line 581 "a.y"
#line 589 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FREG;
......@@ -2503,10 +2511,10 @@ yyreduce:
}
break;
case 101:
case 102:
/* Line 1455 of yacc.c */
#line 587 "a.y"
#line 595 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_FREG;
......@@ -2514,10 +2522,10 @@ yyreduce:
}
break;
case 102:
case 103:
/* Line 1455 of yacc.c */
#line 595 "a.y"
#line 603 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_OREG;
......@@ -2527,10 +2535,10 @@ yyreduce:
}
break;
case 103:
case 104:
/* Line 1455 of yacc.c */
#line 603 "a.y"
#line 611 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_OREG;
......@@ -2540,10 +2548,10 @@ yyreduce:
}
break;
case 104:
case 105:
/* Line 1455 of yacc.c */
#line 611 "a.y"
#line 619 "a.y"
{
(yyval.gen) = nullgen;
(yyval.gen).type = D_OREG;
......@@ -2553,181 +2561,181 @@ yyreduce:
}
break;
case 105:
case 106:
/* Line 1455 of yacc.c */
#line 620 "a.y"
#line 628 "a.y"
{
(yyval.lval) = 0;
}
break;
case 106:
case 107:
/* Line 1455 of yacc.c */
#line 624 "a.y"
#line 632 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
case 107:
case 108:
/* Line 1455 of yacc.c */
#line 628 "a.y"
#line 636 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
case 112:
case 113:
/* Line 1455 of yacc.c */
#line 640 "a.y"
#line 648 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (1)].sym)->value;
}
break;
case 113:
case 114:
/* Line 1455 of yacc.c */
#line 644 "a.y"
#line 652 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
case 114:
case 115:
/* Line 1455 of yacc.c */
#line 648 "a.y"
#line 656 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
case 115:
case 116:
/* Line 1455 of yacc.c */
#line 652 "a.y"
#line 660 "a.y"
{
(yyval.lval) = ~(yyvsp[(2) - (2)].lval);
}
break;
case 116:
case 117:
/* Line 1455 of yacc.c */
#line 656 "a.y"
#line 664 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (3)].lval);
}
break;
case 117:
case 118:
/* Line 1455 of yacc.c */
#line 661 "a.y"
#line 669 "a.y"
{
(yyval.lval) = 0;
}
break;
case 118:
case 119:
/* Line 1455 of yacc.c */
#line 665 "a.y"
#line 673 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
case 120:
case 121:
/* Line 1455 of yacc.c */
#line 672 "a.y"
#line 680 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval);
}
break;
case 121:
case 122:
/* Line 1455 of yacc.c */
#line 676 "a.y"
#line 684 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval);
}
break;
case 122:
case 123:
/* Line 1455 of yacc.c */
#line 680 "a.y"
#line 688 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval);
}
break;
case 123:
case 124:
/* Line 1455 of yacc.c */
#line 684 "a.y"
#line 692 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval);
}
break;
case 124:
case 125:
/* Line 1455 of yacc.c */
#line 688 "a.y"
#line 696 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval);
}
break;
case 125:
case 126:
/* Line 1455 of yacc.c */
#line 692 "a.y"
#line 700 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval);
}
break;
case 126:
case 127:
/* Line 1455 of yacc.c */
#line 696 "a.y"
#line 704 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval);
}
break;
case 127:
case 128:
/* Line 1455 of yacc.c */
#line 700 "a.y"
#line 708 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval);
}
break;
case 128:
case 129:
/* Line 1455 of yacc.c */
#line 704 "a.y"
#line 712 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval);
}
break;
case 129:
case 130:
/* Line 1455 of yacc.c */
#line 708 "a.y"
#line 716 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval);
}
......@@ -2736,7 +2744,7 @@ yyreduce:
/* Line 1455 of yacc.c */
#line 2740 "y.tab.c"
#line 2748 "y.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
......
......@@ -63,28 +63,29 @@
LTYPEM = 279,
LTYPEN = 280,
LTYPEBX = 281,
LCONST = 282,
LSP = 283,
LSB = 284,
LFP = 285,
LPC = 286,
LTYPEX = 287,
LR = 288,
LREG = 289,
LF = 290,
LFREG = 291,
LC = 292,
LCREG = 293,
LPSR = 294,
LFCR = 295,
LCOND = 296,
LS = 297,
LAT = 298,
LFCONST = 299,
LSCONST = 300,
LNAME = 301,
LLAB = 302,
LVAR = 303
LTYPEPLD = 282,
LCONST = 283,
LSP = 284,
LSB = 285,
LFP = 286,
LPC = 287,
LTYPEX = 288,
LR = 289,
LREG = 290,
LF = 291,
LFREG = 292,
LC = 293,
LCREG = 294,
LPSR = 295,
LFCR = 296,
LCOND = 297,
LS = 298,
LAT = 299,
LFCONST = 300,
LSCONST = 301,
LNAME = 302,
LLAB = 303,
LVAR = 304
};
#endif
/* Tokens. */
......@@ -112,28 +113,29 @@
#define LTYPEM 279
#define LTYPEN 280
#define LTYPEBX 281
#define LCONST 282
#define LSP 283
#define LSB 284
#define LFP 285
#define LPC 286
#define LTYPEX 287
#define LR 288
#define LREG 289
#define LF 290
#define LFREG 291
#define LC 292
#define LCREG 293
#define LPSR 294
#define LFCR 295
#define LCOND 296
#define LS 297
#define LAT 298
#define LFCONST 299
#define LSCONST 300
#define LNAME 301
#define LLAB 302
#define LVAR 303
#define LTYPEPLD 282
#define LCONST 283
#define LSP 284
#define LSB 285
#define LFP 286
#define LPC 287
#define LTYPEX 288
#define LR 289
#define LREG 290
#define LF 291
#define LFREG 292
#define LC 293
#define LCREG 294
#define LPSR 295
#define LFCR 296
#define LCOND 297
#define LS 298
#define LAT 299
#define LFCONST 300
#define LSCONST 301
#define LNAME 302
#define LLAB 303
#define LVAR 304
......@@ -154,7 +156,7 @@ typedef union YYSTYPE
/* Line 1676 of yacc.c */
#line 158 "y.tab.h"
#line 160 "y.tab.h"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
......
......@@ -184,6 +184,8 @@ enum as
ALDREXD,
ASTREXD,
APLD,
ALAST,
};
......
......@@ -1429,6 +1429,9 @@ if(debug['G']) print("%ux: %s: arm %d\n", (uint32)(p->pc), p->from.sym->name, p-
break;
o2 = oshr(p->from.reg, 0, REGTMP, p->scond);
break;
case 95: /* PLD reg */
o1 = 0xf5d0f000;
o1 |= p->from.reg << 16;
}
out[0] = o1;
......
......@@ -232,5 +232,7 @@ Optab optab[] =
{ ALDREXD, C_SOREG,C_NONE, C_REG, 91, 4, 0 },
{ ASTREXD, C_SOREG,C_REG, C_REG, 92, 4, 0 },
{ APLD, C_REG, C_NONE, C_NONE, 95, 4, 0 },
{ AXXX, C_NONE, C_NONE, C_NONE, 0, 4, 0 },
};
......@@ -843,6 +843,7 @@ buildop(void)
case ALDREXD:
case ASTREXD:
case ATST:
case APLD:
break;
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment