%token <sym> LNAME LLAB LVAR
%type <lval> con expr oexpr pointer offset sreg spreg creg
%type <lval> rcon cond reglist
-%type <addr> gen rel reg regreg freg shift fcon frcon
+%type <addr> gen rel reg regreg freg shift fcon frcon textsize
%type <addr> imm ximm name oreg ireg nireg ioreg imsr
%%
prog:
/*
* TEXT
*/
-| LTYPEB name ',' imm
+| LTYPEB name ',' '$' textsize
{
settext($2.sym);
- $4.type = TYPE_TEXTSIZE;
- $4.u.argsize = ArgsSizeUnknown;
- outcode($1, Always, &$2, 0, &$4);
+ outcode($1, Always, &$2, 0, &$5);
}
-| LTYPEB name ',' con ',' imm
+| LTYPEB name ',' con ',' '$' textsize
{
settext($2.sym);
- $6.type = TYPE_TEXTSIZE;
- $6.u.argsize = ArgsSizeUnknown;
- outcode($1, Always, &$2, $4, &$6);
- }
-| LTYPEB name ',' con ',' imm '-' con
- {
- settext($2.sym);
- $6.type = TYPE_TEXTSIZE;
- $6.u.argsize = $8;
- outcode($1, Always, &$2, $4, &$6);
+ outcode($1, Always, &$2, $4, &$7);
}
/*
* GLOBL
$$.offset = $1->value + $2;
}
+textsize:
+ LCONST
+ {
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = $1;
+ $$.u.argsize = ArgsSizeUnknown;
+ }
+| '-' LCONST
+ {
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = -$2;
+ $$.u.argsize = ArgsSizeUnknown;
+ }
+| LCONST '-' LCONST
+ {
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = $1;
+ $$.u.argsize = $3;
+ }
+| '-' LCONST '-' LCONST
+ {
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = -$2;
+ $$.u.argsize = $4;
+ }
+
ximm: '$' con
{
$$ = nullgen;
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 636
+#define YYLAST 655
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 72
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 34
+#define YYNNTS 35
/* YYNRULES -- Number of rules. */
-#define YYNRULES 131
+#define YYNRULES 134
/* YYNRULES -- Number of states. */
-#define YYNSTATES 337
+#define YYNSTATES 344
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
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, 70, 12, 5, 2,
- 68, 69, 10, 8, 65, 9, 2, 11, 2, 2,
+ 2, 2, 2, 2, 2, 2, 68, 12, 5, 2,
+ 69, 70, 10, 8, 65, 9, 2, 11, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 62, 64,
6, 63, 7, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
0, 0, 3, 4, 5, 9, 10, 15, 20, 25,
27, 30, 33, 41, 48, 54, 60, 66, 71, 76,
80, 84, 89, 96, 104, 112, 120, 127, 134, 138,
- 143, 150, 159, 164, 171, 178, 183, 187, 193, 199,
- 207, 214, 227, 235, 245, 248, 253, 258, 261, 262,
- 265, 268, 269, 272, 277, 280, 283, 286, 289, 291,
- 294, 298, 300, 304, 308, 310, 312, 314, 319, 321,
- 323, 325, 327, 329, 331, 333, 337, 339, 344, 346,
- 351, 353, 355, 357, 359, 362, 364, 370, 375, 380,
- 385, 390, 392, 394, 396, 398, 403, 405, 407, 409,
- 414, 416, 418, 420, 425, 430, 436, 444, 445, 448,
- 451, 453, 455, 457, 459, 461, 464, 467, 470, 474,
- 475, 478, 480, 484, 488, 492, 496, 500, 505, 510,
- 514, 518
+ 144, 152, 157, 164, 171, 176, 180, 186, 192, 200,
+ 207, 220, 228, 238, 241, 246, 251, 254, 255, 258,
+ 261, 262, 265, 270, 273, 275, 278, 282, 287, 290,
+ 293, 296, 298, 301, 305, 307, 311, 315, 317, 319,
+ 321, 326, 328, 330, 332, 334, 336, 338, 340, 344,
+ 346, 351, 353, 358, 360, 362, 364, 366, 369, 371,
+ 377, 382, 387, 392, 397, 399, 401, 403, 405, 410,
+ 412, 414, 416, 421, 423, 425, 427, 432, 437, 443,
+ 451, 452, 455, 458, 460, 462, 464, 466, 468, 471,
+ 474, 477, 481, 482, 485, 487, 491, 495, 499, 503,
+ 507, 512, 517, 521, 525
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
73, 0, -1, -1, -1, 73, 74, 75, -1, -1,
- 59, 62, 76, 75, -1, 59, 63, 105, 64, -1,
- 61, 63, 105, 64, -1, 64, -1, 77, 64, -1,
- 1, 64, -1, 13, 78, 89, 65, 96, 65, 91,
- -1, 13, 78, 89, 65, 96, 65, -1, 13, 78,
- 89, 65, 91, -1, 14, 78, 89, 65, 91, -1,
- 15, 78, 84, 65, 84, -1, 16, 78, 79, 80,
- -1, 16, 78, 79, 85, -1, 36, 79, 86, -1,
- 17, 79, 80, -1, 18, 78, 79, 84, -1, 19,
- 78, 89, 65, 96, 79, -1, 20, 78, 87, 65,
- 66, 83, 67, -1, 20, 78, 66, 83, 67, 65,
- 87, -1, 21, 78, 91, 65, 86, 65, 91, -1,
- 21, 78, 91, 65, 86, 79, -1, 21, 78, 79,
- 86, 65, 91, -1, 22, 78, 79, -1, 23, 100,
- 65, 90, -1, 23, 100, 65, 103, 65, 90, -1,
- 23, 100, 65, 103, 65, 90, 9, 103, -1, 24,
- 100, 65, 90, -1, 24, 100, 65, 103, 65, 90,
- -1, 25, 100, 11, 103, 65, 81, -1, 26, 78,
- 91, 79, -1, 29, 79, 81, -1, 30, 78, 99,
- 65, 99, -1, 32, 78, 98, 65, 99, -1, 32,
- 78, 98, 65, 49, 65, 99, -1, 33, 78, 99,
- 65, 99, 79, -1, 31, 78, 103, 65, 105, 65,
- 96, 65, 97, 65, 97, 104, -1, 34, 78, 91,
- 65, 91, 65, 92, -1, 35, 78, 91, 65, 91,
- 65, 91, 65, 96, -1, 37, 88, -1, 44, 84,
- 65, 84, -1, 45, 84, 65, 84, -1, 27, 79,
- -1, -1, 78, 54, -1, 78, 55, -1, -1, 65,
- 79, -1, 103, 68, 42, 69, -1, 59, 101, -1,
- 70, 103, -1, 70, 88, -1, 70, 58, -1, 82,
- -1, 70, 57, -1, 70, 9, 57, -1, 96, -1,
- 96, 9, 96, -1, 96, 79, 83, -1, 91, -1,
- 81, -1, 93, -1, 93, 68, 96, 69, -1, 52,
- -1, 53, -1, 103, -1, 88, -1, 99, -1, 86,
- -1, 100, -1, 68, 96, 69, -1, 86, -1, 103,
- 68, 95, 69, -1, 100, -1, 100, 68, 95, 69,
- -1, 87, -1, 91, -1, 90, -1, 93, -1, 70,
- 103, -1, 96, -1, 68, 96, 65, 96, 69, -1,
- 96, 6, 6, 94, -1, 96, 7, 7, 94, -1,
- 96, 9, 7, 94, -1, 96, 56, 7, 94, -1,
- 96, -1, 103, -1, 47, -1, 42, -1, 46, 68,
- 105, 69, -1, 95, -1, 39, -1, 51, -1, 50,
- 68, 105, 69, -1, 99, -1, 82, -1, 49, -1,
- 48, 68, 103, 69, -1, 103, 68, 102, 69, -1,
- 59, 101, 68, 102, 69, -1, 59, 6, 7, 101,
- 68, 40, 69, -1, -1, 8, 103, -1, 9, 103,
- -1, 40, -1, 39, -1, 41, -1, 38, -1, 61,
- -1, 9, 103, -1, 8, 103, -1, 71, 103, -1,
- 68, 105, 69, -1, -1, 65, 105, -1, 103, -1,
- 105, 8, 105, -1, 105, 9, 105, -1, 105, 10,
- 105, -1, 105, 11, 105, -1, 105, 12, 105, -1,
- 105, 6, 6, 105, -1, 105, 7, 7, 105, -1,
- 105, 5, 105, -1, 105, 4, 105, -1, 105, 3,
- 105, -1
+ 59, 62, 76, 75, -1, 59, 63, 106, 64, -1,
+ 61, 63, 106, 64, -1, 64, -1, 77, 64, -1,
+ 1, 64, -1, 13, 78, 90, 65, 97, 65, 92,
+ -1, 13, 78, 90, 65, 97, 65, -1, 13, 78,
+ 90, 65, 92, -1, 14, 78, 90, 65, 92, -1,
+ 15, 78, 85, 65, 85, -1, 16, 78, 79, 80,
+ -1, 16, 78, 79, 86, -1, 36, 79, 87, -1,
+ 17, 79, 80, -1, 18, 78, 79, 85, -1, 19,
+ 78, 90, 65, 97, 79, -1, 20, 78, 88, 65,
+ 66, 84, 67, -1, 20, 78, 66, 84, 67, 65,
+ 88, -1, 21, 78, 92, 65, 87, 65, 92, -1,
+ 21, 78, 92, 65, 87, 79, -1, 21, 78, 79,
+ 87, 65, 92, -1, 22, 78, 79, -1, 23, 101,
+ 65, 68, 81, -1, 23, 101, 65, 104, 65, 68,
+ 81, -1, 24, 101, 65, 91, -1, 24, 101, 65,
+ 104, 65, 91, -1, 25, 101, 11, 104, 65, 82,
+ -1, 26, 78, 92, 79, -1, 29, 79, 82, -1,
+ 30, 78, 100, 65, 100, -1, 32, 78, 99, 65,
+ 100, -1, 32, 78, 99, 65, 49, 65, 100, -1,
+ 33, 78, 100, 65, 100, 79, -1, 31, 78, 104,
+ 65, 106, 65, 97, 65, 98, 65, 98, 105, -1,
+ 34, 78, 92, 65, 92, 65, 93, -1, 35, 78,
+ 92, 65, 92, 65, 92, 65, 97, -1, 37, 89,
+ -1, 44, 85, 65, 85, -1, 45, 85, 65, 85,
+ -1, 27, 79, -1, -1, 78, 54, -1, 78, 55,
+ -1, -1, 65, 79, -1, 104, 69, 42, 70, -1,
+ 59, 102, -1, 38, -1, 9, 38, -1, 38, 9,
+ 38, -1, 9, 38, 9, 38, -1, 68, 104, -1,
+ 68, 89, -1, 68, 58, -1, 83, -1, 68, 57,
+ -1, 68, 9, 57, -1, 97, -1, 97, 9, 97,
+ -1, 97, 79, 84, -1, 92, -1, 82, -1, 94,
+ -1, 94, 69, 97, 70, -1, 52, -1, 53, -1,
+ 104, -1, 89, -1, 100, -1, 87, -1, 101, -1,
+ 69, 97, 70, -1, 87, -1, 104, 69, 96, 70,
+ -1, 101, -1, 101, 69, 96, 70, -1, 88, -1,
+ 92, -1, 91, -1, 94, -1, 68, 104, -1, 97,
+ -1, 69, 97, 65, 97, 70, -1, 97, 6, 6,
+ 95, -1, 97, 7, 7, 95, -1, 97, 9, 7,
+ 95, -1, 97, 56, 7, 95, -1, 97, -1, 104,
+ -1, 47, -1, 42, -1, 46, 69, 106, 70, -1,
+ 96, -1, 39, -1, 51, -1, 50, 69, 106, 70,
+ -1, 100, -1, 83, -1, 49, -1, 48, 69, 104,
+ 70, -1, 104, 69, 103, 70, -1, 59, 102, 69,
+ 103, 70, -1, 59, 6, 7, 102, 69, 40, 70,
+ -1, -1, 8, 104, -1, 9, 104, -1, 40, -1,
+ 39, -1, 41, -1, 38, -1, 61, -1, 9, 104,
+ -1, 8, 104, -1, 71, 104, -1, 69, 106, 70,
+ -1, -1, 65, 106, -1, 104, -1, 106, 8, 106,
+ -1, 106, 9, 106, -1, 106, 10, 106, -1, 106,
+ 11, 106, -1, 106, 12, 106, -1, 106, 6, 6,
+ 106, -1, 106, 7, 7, 106, -1, 106, 5, 106,
+ -1, 106, 4, 106, -1, 106, 3, 106, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
0, 68, 68, 70, 69, 77, 76, 85, 90, 96,
97, 98, 104, 108, 112, 119, 126, 133, 137, 144,
151, 158, 165, 172, 181, 193, 197, 201, 208, 215,
- 222, 229, 239, 244, 252, 259, 266, 273, 277, 281,
- 285, 292, 314, 322, 331, 338, 347, 358, 364, 367,
- 371, 376, 377, 380, 386, 396, 402, 407, 413, 416,
- 422, 430, 434, 443, 449, 450, 451, 452, 457, 463,
- 469, 475, 476, 479, 480, 488, 497, 498, 507, 508,
- 514, 517, 518, 519, 521, 529, 537, 546, 552, 558,
- 564, 572, 578, 586, 587, 591, 599, 600, 606, 607,
- 615, 616, 619, 625, 633, 641, 649, 659, 662, 666,
- 672, 673, 674, 677, 678, 682, 686, 690, 694, 700,
- 703, 709, 710, 714, 718, 722, 726, 730, 734, 738,
- 742, 746
+ 220, 228, 233, 241, 248, 255, 262, 266, 270, 274,
+ 281, 303, 311, 320, 327, 336, 347, 353, 356, 360,
+ 365, 366, 369, 375, 386, 392, 398, 404, 411, 417,
+ 422, 428, 431, 437, 445, 449, 458, 464, 465, 466,
+ 467, 472, 478, 484, 490, 491, 494, 495, 503, 512,
+ 513, 522, 523, 529, 532, 533, 534, 536, 544, 552,
+ 561, 567, 573, 579, 587, 593, 601, 602, 606, 614,
+ 615, 621, 622, 630, 631, 634, 640, 648, 656, 664,
+ 674, 677, 681, 687, 688, 689, 692, 693, 697, 701,
+ 705, 709, 715, 718, 724, 725, 729, 733, 737, 741,
+ 745, 749, 753, 757, 761
};
#endif
"LCONST", "LSP", "LSB", "LFP", "LPC", "LTYPEX", "LTYPEPC", "LTYPEF",
"LR", "LREG", "LF", "LFREG", "LC", "LCREG", "LPSR", "LFCR", "LCOND",
"LS", "LAT", "LFCONST", "LSCONST", "LNAME", "LLAB", "LVAR", "':'", "'='",
- "';'", "','", "'['", "']'", "'('", "')'", "'$'", "'~'", "$accept",
- "prog", "@1", "line", "@2", "inst", "cond", "comma", "rel", "ximm",
- "fcon", "reglist", "gen", "nireg", "ireg", "ioreg", "oreg", "imsr",
- "imm", "reg", "regreg", "shift", "rcon", "sreg", "spreg", "creg",
+ "';'", "','", "'['", "']'", "'$'", "'('", "')'", "'~'", "$accept",
+ "prog", "@1", "line", "@2", "inst", "cond", "comma", "rel", "textsize",
+ "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
};
#endif
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, 304,
- 305, 306, 58, 61, 59, 44, 91, 93, 40, 41,
- 36, 126
+ 305, 306, 58, 61, 59, 44, 91, 93, 36, 40,
+ 41, 126
};
# endif
75, 75, 77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77, 78, 78,
- 78, 79, 79, 80, 80, 81, 81, 81, 81, 82,
- 82, 83, 83, 83, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 85, 85, 86, 87, 87, 88, 88,
- 88, 89, 89, 89, 90, 91, 92, 93, 93, 93,
- 93, 94, 94, 95, 95, 95, 96, 96, 97, 97,
- 98, 98, 99, 99, 100, 100, 100, 101, 101, 101,
- 102, 102, 102, 103, 103, 103, 103, 103, 103, 104,
- 104, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 105, 105
+ 77, 77, 77, 77, 77, 77, 77, 78, 78, 78,
+ 79, 79, 80, 80, 81, 81, 81, 81, 82, 82,
+ 82, 82, 83, 83, 84, 84, 84, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 86, 86, 87, 88,
+ 88, 89, 89, 89, 90, 90, 90, 91, 92, 93,
+ 94, 94, 94, 94, 95, 95, 96, 96, 96, 97,
+ 97, 98, 98, 99, 99, 100, 100, 101, 101, 101,
+ 102, 102, 102, 103, 103, 103, 104, 104, 104, 104,
+ 104, 104, 105, 105, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
{
0, 2, 0, 0, 3, 0, 4, 4, 4, 1,
2, 2, 7, 6, 5, 5, 5, 4, 4, 3,
- 3, 4, 6, 7, 7, 7, 6, 6, 3, 4,
- 6, 8, 4, 6, 6, 4, 3, 5, 5, 7,
- 6, 12, 7, 9, 2, 4, 4, 2, 0, 2,
- 2, 0, 2, 4, 2, 2, 2, 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
+ 3, 4, 6, 7, 7, 7, 6, 6, 3, 5,
+ 7, 4, 6, 6, 4, 3, 5, 5, 7, 6,
+ 12, 7, 9, 2, 4, 4, 2, 0, 2, 2,
+ 0, 2, 4, 2, 1, 2, 3, 4, 2, 2,
+ 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
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 2, 3, 1, 0, 0, 48, 48, 48, 48, 51,
- 48, 48, 48, 48, 48, 0, 0, 0, 48, 51,
- 51, 48, 48, 48, 48, 48, 48, 51, 0, 0,
+ 2, 3, 1, 0, 0, 47, 47, 47, 47, 50,
+ 47, 47, 47, 47, 47, 0, 0, 0, 47, 50,
+ 50, 47, 47, 47, 47, 47, 47, 50, 0, 0,
0, 0, 0, 9, 4, 0, 11, 0, 0, 0,
- 51, 51, 0, 51, 0, 0, 51, 51, 0, 0,
- 113, 107, 114, 0, 0, 0, 0, 0, 0, 0,
- 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 76, 80, 44, 78, 0, 97, 94, 0, 93, 0,
- 102, 68, 69, 0, 65, 58, 0, 71, 64, 66,
- 96, 85, 72, 70, 0, 5, 0, 0, 10, 49,
- 50, 0, 0, 82, 81, 83, 0, 0, 0, 52,
- 107, 20, 0, 0, 0, 0, 0, 0, 0, 0,
- 85, 28, 116, 115, 0, 0, 0, 0, 121, 0,
- 117, 0, 0, 0, 0, 51, 36, 0, 0, 0,
- 101, 0, 100, 0, 0, 0, 0, 19, 0, 0,
- 0, 0, 0, 0, 59, 57, 56, 55, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 84, 0,
- 0, 0, 107, 17, 18, 73, 74, 0, 54, 0,
- 21, 0, 0, 51, 0, 0, 0, 0, 107, 108,
- 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 118, 29, 0, 111, 110, 112, 0, 32,
- 0, 0, 35, 0, 0, 0, 0, 0, 0, 0,
- 75, 0, 0, 0, 0, 60, 45, 0, 0, 0,
- 0, 0, 46, 6, 7, 8, 14, 85, 15, 16,
- 54, 0, 0, 51, 0, 0, 0, 0, 0, 51,
- 0, 0, 131, 130, 129, 0, 0, 122, 123, 124,
- 125, 126, 0, 104, 0, 0, 37, 0, 102, 38,
- 51, 0, 0, 79, 77, 95, 103, 67, 87, 91,
- 92, 88, 89, 90, 13, 53, 22, 0, 62, 63,
- 0, 27, 51, 26, 0, 105, 127, 128, 30, 33,
- 34, 0, 0, 40, 0, 0, 12, 24, 23, 25,
- 0, 0, 0, 39, 0, 42, 0, 106, 31, 0,
- 0, 0, 0, 98, 0, 0, 43, 0, 0, 0,
- 0, 119, 86, 99, 0, 41, 120
+ 50, 50, 0, 50, 0, 0, 50, 50, 0, 0,
+ 116, 110, 117, 0, 0, 0, 0, 0, 0, 0,
+ 46, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 79, 83, 43, 81, 0, 100, 97, 0, 96, 0,
+ 105, 71, 72, 0, 68, 61, 0, 74, 67, 69,
+ 99, 88, 75, 73, 0, 5, 0, 0, 10, 48,
+ 49, 0, 0, 85, 84, 86, 0, 0, 0, 51,
+ 110, 20, 0, 0, 0, 0, 0, 0, 0, 0,
+ 88, 28, 119, 118, 0, 0, 0, 0, 124, 0,
+ 120, 0, 0, 0, 0, 50, 35, 0, 0, 0,
+ 104, 0, 103, 0, 0, 0, 0, 19, 0, 0,
+ 0, 0, 0, 0, 62, 60, 59, 58, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 87, 0,
+ 0, 0, 110, 17, 18, 76, 77, 0, 53, 0,
+ 21, 0, 0, 50, 0, 0, 0, 0, 110, 111,
+ 112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 121, 0, 0, 114, 113, 115, 0, 31,
+ 0, 0, 34, 0, 0, 0, 0, 0, 0, 0,
+ 78, 0, 0, 0, 0, 63, 44, 0, 0, 0,
+ 0, 0, 45, 6, 7, 8, 14, 88, 15, 16,
+ 53, 0, 0, 50, 0, 0, 0, 0, 0, 50,
+ 0, 0, 134, 133, 132, 0, 0, 125, 126, 127,
+ 128, 129, 0, 54, 29, 0, 107, 0, 0, 36,
+ 0, 105, 37, 50, 0, 0, 82, 80, 98, 106,
+ 70, 90, 94, 95, 91, 92, 93, 13, 52, 22,
+ 0, 65, 66, 0, 27, 50, 26, 0, 108, 130,
+ 131, 55, 0, 0, 32, 33, 0, 0, 39, 0,
+ 0, 12, 24, 23, 25, 0, 0, 56, 30, 0,
+ 38, 0, 41, 0, 109, 57, 0, 0, 0, 0,
+ 101, 0, 0, 42, 0, 0, 0, 0, 122, 89,
+ 102, 0, 40, 123
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 3, 34, 165, 35, 37, 109, 111, 84,
- 85, 182, 86, 174, 70, 71, 87, 102, 103, 88,
- 315, 89, 278, 90, 120, 324, 141, 92, 73, 127,
- 208, 128, 335, 129
+ -1, 1, 3, 34, 165, 35, 37, 109, 111, 264,
+ 84, 85, 182, 86, 174, 70, 71, 87, 102, 103,
+ 88, 322, 89, 281, 90, 120, 331, 141, 92, 73,
+ 127, 208, 128, 342, 129
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -99
+#define YYPACT_NINF -130
static const yytype_int16 yypact[] =
{
- -99, 8, -99, 307, -38, -99, -99, -99, -99, -37,
- -99, -99, -99, -99, -99, 64, 64, 64, -99, -37,
- -37, -99, -99, -99, -99, -99, -99, -37, 226, 364,
- 364, -8, -32, -99, -99, -29, -99, 514, 514, 337,
- 112, -37, 418, 112, 514, 386, 516, 112, 453, 453,
- -99, 304, -99, 453, 453, -27, -24, -2, 30, 464,
- -99, -3, 315, 410, 93, 315, 464, 464, -21, 53,
- -99, -99, -99, 2, 33, -99, -99, 35, -99, 52,
- -99, -99, -99, 392, -99, -99, 32, -99, -99, 54,
- -99, 98, -99, 33, 61, -99, 453, 453, -99, -99,
- -99, 453, 69, -99, -99, -99, 81, 88, 429, -99,
- 80, -99, 68, 364, 100, 272, 105, 110, -21, 154,
- -99, -99, -99, -99, 216, 453, 453, 156, -99, 181,
- -99, 434, 90, 434, 453, -37, -99, 171, 174, 12,
- -99, 177, -99, 178, 184, 196, 272, -99, 193, 29,
- 227, 453, 453, 232, -99, -99, -99, 33, 364, 272,
- 240, 258, 264, 274, 364, 307, 530, 540, -99, 272,
- 272, 364, 304, -99, -99, -99, -99, 220, -99, 242,
- -99, 272, 223, 20, 233, 29, 236, -21, 80, -99,
- -99, 90, 453, 453, 453, 286, 291, 453, 453, 453,
- 453, 453, -99, -99, 250, -99, -99, -99, 266, -99,
- 300, 302, -99, 146, 453, 317, 159, 146, 272, 272,
- -99, 309, 318, 194, 319, -99, -99, 324, 53, 53,
- 53, 53, -99, -99, -99, -99, -99, 312, -99, -99,
- 156, 308, 328, -37, 334, 272, 272, 272, 272, 339,
- 237, 340, 568, 617, 624, 453, 453, 221, 221, -99,
- -99, -99, 344, -99, 344, -3, -99, 350, 355, -99,
- -37, 356, 357, -99, -99, -99, -99, -99, -99, -99,
- -99, -99, -99, -99, 272, -99, -99, 461, -99, -99,
- 361, -99, 183, -99, 389, -99, 267, 267, 422, -99,
- -99, 272, 146, -99, 365, 272, -99, -99, -99, -99,
- 367, 453, 374, -99, 272, -99, 379, -99, -99, 62,
- 380, 272, 378, -99, 390, 272, -99, 453, 62, 397,
- 248, 393, -99, -99, 453, -99, 609
+ -130, 12, -130, 305, -35, -130, -130, -130, -130, -33,
+ -130, -130, -130, -130, -130, 427, 427, 427, -130, -33,
+ -33, -130, -130, -130, -130, -130, -130, -33, 445, 370,
+ 370, 10, -24, -130, -130, -30, -130, 140, 140, 335,
+ -13, -33, 449, -13, 140, 70, 484, -13, 359, 359,
+ -130, 114, -130, 359, 359, 27, -11, 62, 76, 167,
+ -130, 7, 171, 424, 64, 171, 167, 167, 65, 405,
+ -130, -130, -130, 68, 74, -130, -130, 78, -130, 86,
+ -130, -130, -130, 402, -130, -130, 96, -130, -130, 107,
+ -130, 21, -130, 74, 118, -130, 359, 359, -130, -130,
+ -130, 359, 131, -130, -130, -130, 150, 158, 473, -130,
+ 98, -130, 155, 370, 187, 43, 192, 199, 65, 205,
+ -130, -130, -130, -130, 262, 359, 359, 203, -130, 90,
+ -130, 106, 164, 233, 359, -33, -130, 211, 223, -3,
+ -130, 226, -130, 231, 235, 240, 43, -130, 220, 122,
+ 608, 359, 359, 491, -130, -130, -130, 74, 370, 43,
+ 287, 291, 300, 301, 370, 305, 560, 582, -130, 43,
+ 43, 370, 114, -130, -130, -130, -130, 264, -130, 267,
+ -130, 43, 279, -4, 281, 122, 283, 65, 98, -130,
+ -130, 164, 359, 359, 359, 345, 356, 359, 359, 359,
+ 359, 359, -130, 15, 306, -130, -130, -130, 282, -130,
+ 307, 310, -130, 32, 359, 308, 132, 32, 43, 43,
+ -130, 315, 316, 225, 321, -130, -130, 322, 405, 405,
+ 405, 405, -130, -130, -130, -130, -130, 311, -130, -130,
+ 203, 204, 323, -33, 333, 43, 43, 43, 43, 334,
+ 331, 337, 631, 611, 547, 359, 359, 228, 228, -130,
+ -130, -130, 332, 371, -130, 353, -130, 357, 7, -130,
+ 350, 336, -130, -33, 340, 361, -130, -130, -130, -130,
+ -130, -130, -130, -130, -130, -130, -130, 43, -130, -130,
+ 513, -130, -130, 360, -130, 146, -130, 384, -130, 303,
+ 303, 425, 399, 15, -130, -130, 43, 32, -130, 373,
+ 43, -130, -130, -130, -130, 375, 408, -130, -130, 383,
+ -130, 43, -130, 385, -130, -130, 120, 390, 43, 380,
+ -130, 391, 43, -130, 359, 120, 394, 275, 403, -130,
+ -130, 359, -130, 622
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -99, -99, -99, 294, -99, -99, 585, 37, 360, -44,
- 409, -86, -7, -99, -59, -42, -23, -22, -91, -1,
- -99, 71, 151, -68, -19, 147, -99, -58, 36, -98,
- 283, -15, -99, -18
+ -130, -130, -130, 302, -130, -130, 589, 24, 362, 166,
+ -58, 411, -57, -8, -130, -61, -43, -7, 22, -129,
+ -21, -130, 72, 34, -94, -29, 137, -130, -51, 3,
+ -84, 286, 20, -130, 61
};
/* 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 -62
+#define YYTABLE_NINF -65
static const yytype_int16 yytable[] =
{
- 56, 56, 56, 116, 137, 72, 142, 143, 2, 147,
- 91, 91, 178, 74, 93, 93, 106, 136, 91, 91,
- 91, 215, 114, 94, 93, 91, 36, 112, 41, 245,
- 117, 97, 107, 122, 123, 98, 104, 104, 131, 130,
- 203, 134, 209, 104, 132, 119, 42, 146, 138, 175,
- 148, 55, 57, 58, 95, 96, 60, 61, 135, 186,
- 156, 48, 49, 133, 68, 144, 145, 83, 157, 154,
- 149, 76, 48, 49, 240, 77, 78, 108, 166, 167,
- 113, 221, 222, 118, 121, 41, 168, -61, 125, 126,
- 250, 50, 75, 177, 91, 76, 183, 158, 93, 77,
- 78, 150, 50, 151, 160, 161, 180, 162, 105, 105,
- 189, 190, 322, 323, 52, 105, 204, 222, 210, 211,
- 152, 53, 159, 51, 54, 52, 164, 148, 249, 205,
- 206, 207, 53, 223, 169, 54, 179, 224, 123, 91,
- 227, 79, 80, 93, 176, 91, 170, 99, 100, 93,
- 237, 226, 91, 171, 163, 266, 93, 232, 269, 270,
- 289, 290, 243, 139, 239, 181, 99, 100, 236, 238,
- 184, 298, 212, 299, 252, 253, 254, 41, 185, 257,
- 258, 259, 260, 261, 192, 193, 194, 195, 196, 197,
- 198, 199, 200, 201, 79, 80, 267, 192, 193, 194,
- 195, 196, 197, 198, 199, 200, 201, 79, 268, 279,
- 279, 279, 279, 280, 280, 280, 280, 271, 272, 187,
- 246, 300, 75, 188, 191, 76, 288, 183, 183, 77,
- 78, 199, 200, 201, 48, 49, 213, 296, 297, 214,
- 48, 49, 216, 217, 313, 307, 228, 291, 41, 218,
- 202, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 201, 219, 220, 275, 50, 229, 205, 206, 207, 76,
- 50, 230, 117, 77, 78, 197, 198, 199, 200, 201,
- 286, 231, 312, 306, 242, 51, 293, 52, 241, 225,
- 244, 309, 255, 52, 69, 320, 318, 54, 256, 247,
- 53, 248, 326, 54, 316, 294, 329, 303, 4, 330,
- 124, 75, 125, 126, 76, 262, 336, 333, 77, 78,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 263, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 48, 49, 205, 206, 207,
- 242, 29, 30, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 79, 80, 264, 31, 265, 32, 99,
- 100, 33, 48, 49, 225, 50, 75, 284, 273, 76,
- 281, 282, 283, 77, 78, 79, 80, 274, 276, 81,
- 82, 99, 100, 277, 48, 49, 51, 285, 52, 287,
- 48, 153, 50, 75, 292, 69, 76, 83, 54, 295,
- 77, 78, 79, 80, 101, 301, 81, 82, 48, 49,
- 302, 304, 305, 51, 50, 52, 48, 49, 308, 310,
- 50, 311, 69, 314, 83, 54, 317, 48, 49, 319,
- 99, 100, 48, 49, 321, 325, 327, 52, 50, 154,
- 155, 51, 115, 52, 69, 328, 50, 54, 334, 233,
- 69, 48, 49, 54, 99, 100, 332, 50, 173, 48,
- 49, 52, 50, 140, 251, 331, 0, 110, 53, 52,
- 0, 54, 0, 0, 0, 0, 53, 0, 172, 54,
- 52, 50, 0, 0, 0, 52, 0, 69, 0, 50,
- 54, 0, 53, 75, 101, 54, 76, 0, 0, 0,
- 77, 78, 0, 0, 52, 0, 0, 0, 99, 100,
- 0, 53, 52, 0, 54, 0, 0, 0, 0, 69,
- 0, 0, 54, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 75, 0, 75, 76, 0, 76, 0,
- 77, 78, 77, 78, 0, 0, 0, 0, 99, 100,
- 99, 100, 193, 194, 195, 196, 197, 198, 199, 200,
- 201, 41, 0, 0, 101, 0, 0, 0, 0, 0,
- 0, 38, 39, 40, 234, 43, 44, 45, 46, 47,
- 0, 0, 0, 59, 235, 0, 62, 63, 64, 65,
- 66, 67, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 201, 194, 195, 196, 197, 198, 199, 200, 201,
- 195, 196, 197, 198, 199, 200, 201
+ 91, 91, 116, 136, 209, 245, 215, 147, 91, 91,
+ 91, 137, 2, 142, 143, 91, 104, 104, 55, 57,
+ 58, 72, 94, 104, 262, 119, 178, 160, 161, 36,
+ 162, 107, 41, 42, 98, 56, 56, 56, 135, 97,
+ 148, 99, 100, 60, 61, 144, 145, 175, 74, 93,
+ 93, 68, 41, 263, 154, 221, 222, 186, 132, 93,
+ 106, 41, 112, -64, 108, 117, 114, 113, 122, 123,
+ 118, 121, 95, 96, 130, 83, 156, 163, 48, 49,
+ 79, 80, 75, 138, 91, 76, 183, 134, 240, 77,
+ 78, 222, 131, 192, 193, 194, 195, 196, 197, 198,
+ 199, 200, 201, 157, 250, 180, 125, 126, 50, 105,
+ 105, 176, 79, 80, 48, 49, 105, 148, 99, 100,
+ 124, 168, 125, 126, 99, 100, 249, 133, 177, 91,
+ 227, 52, 139, 93, 146, 91, 115, 149, 304, 69,
+ 237, 54, 91, 150, 50, 189, 190, 151, 236, 238,
+ 226, 204, 243, 210, 211, 152, 232, 166, 167, 212,
+ 202, 158, 269, 239, 76, 272, 273, 52, 77, 78,
+ 329, 330, 224, 123, 203, 53, 159, 54, 93, 75,
+ 79, 271, 76, 164, 93, 75, 77, 78, 76, 292,
+ 293, 93, 77, 78, 99, 100, 169, 274, 275, 282,
+ 282, 282, 282, 205, 206, 207, 75, 246, 101, 76,
+ 305, 41, 223, 77, 78, 170, 291, 183, 183, 79,
+ 80, 99, 100, 171, 179, 99, 100, 294, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 199, 200,
+ 201, 48, 49, 205, 206, 207, 242, 312, 283, 283,
+ 283, 283, 181, 252, 253, 254, 320, 184, 257, 258,
+ 259, 260, 261, 284, 285, 286, 311, 289, 185, 188,
+ 187, 50, 191, 296, 314, 270, 213, 319, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 214, 323,
+ 220, 216, 327, 228, 52, 278, 217, 308, 229, 333,
+ 218, 101, 53, 336, 54, 219, 4, 230, 231, 242,
+ 117, 197, 198, 199, 200, 201, 299, 300, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 241, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 48, 49, 340, 244, 247, 248, 29,
+ 30, 255, 266, 192, 193, 194, 195, 196, 197, 198,
+ 199, 200, 201, 256, 31, 225, 32, 48, 49, 33,
+ 301, 265, 267, 50, 75, 268, 287, 76, 48, 49,
+ 302, 77, 78, 79, 80, 276, 277, 81, 82, 99,
+ 100, 279, 280, 288, 51, 337, 52, 50, 290, 295,
+ 297, 307, 343, 83, 69, 309, 54, 298, 50, 75,
+ 48, 153, 76, 48, 49, 306, 77, 78, 79, 80,
+ 52, 303, 81, 82, 315, 101, 310, 313, 53, 51,
+ 54, 52, 48, 49, 316, 48, 49, 317, 83, 69,
+ 50, 54, 321, 50, 75, 324, 325, 76, 326, 334,
+ 328, 77, 78, 48, 49, 332, 335, 48, 49, 154,
+ 155, 51, 50, 52, 339, 50, 52, 233, 341, 318,
+ 173, 69, 338, 54, 53, 140, 54, 251, 99, 100,
+ 0, 48, 49, 50, 0, 52, 51, 50, 52, 0,
+ 0, 0, 0, 53, 0, 54, 53, 0, 54, 48,
+ 49, 0, 0, 0, 51, 0, 52, 0, 110, 0,
+ 52, 50, 0, 0, 69, 0, 54, 0, 53, 0,
+ 54, 48, 49, 75, 0, 0, 76, 0, 0, 50,
+ 77, 78, 172, 0, 52, 0, 0, 0, 99, 100,
+ 0, 0, 69, 0, 54, 0, 0, 0, 225, 41,
+ 0, 50, 52, 195, 196, 197, 198, 199, 200, 201,
+ 53, 0, 54, 192, 193, 194, 195, 196, 197, 198,
+ 199, 200, 201, 0, 52, 0, 0, 0, 0, 0,
+ 0, 0, 69, 0, 54, 192, 193, 194, 195, 196,
+ 197, 198, 199, 200, 201, 38, 39, 40, 0, 43,
+ 44, 45, 46, 47, 0, 0, 0, 59, 0, 0,
+ 62, 63, 64, 65, 66, 67, 194, 195, 196, 197,
+ 198, 199, 200, 201, 234, 192, 193, 194, 195, 196,
+ 197, 198, 199, 200, 201, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 0, 0, 235, 205, 206, 207,
+ 76, 0, 0, 0, 77, 78
};
static const yytype_int16 yycheck[] =
{
- 15, 16, 17, 45, 62, 28, 64, 65, 0, 68,
- 29, 30, 110, 28, 29, 30, 38, 61, 37, 38,
- 39, 9, 44, 30, 39, 44, 64, 42, 65, 9,
- 45, 63, 39, 48, 49, 64, 37, 38, 65, 54,
- 131, 11, 133, 44, 68, 46, 9, 68, 63, 108,
- 69, 15, 16, 17, 62, 63, 19, 20, 59, 118,
- 83, 8, 9, 65, 27, 66, 67, 70, 83, 57,
- 68, 42, 8, 9, 172, 46, 47, 40, 96, 97,
- 43, 149, 150, 46, 47, 65, 101, 67, 8, 9,
- 188, 38, 39, 108, 113, 42, 115, 65, 113, 46,
- 47, 68, 38, 68, 6, 7, 113, 9, 37, 38,
- 125, 126, 50, 51, 61, 44, 131, 185, 133, 134,
- 68, 68, 68, 59, 71, 61, 65, 146, 187, 39,
- 40, 41, 68, 151, 65, 71, 68, 152, 153, 158,
- 159, 48, 49, 158, 108, 164, 65, 54, 55, 164,
- 169, 158, 171, 65, 56, 213, 171, 164, 216, 217,
- 246, 247, 181, 70, 171, 65, 54, 55, 169, 170,
- 65, 262, 135, 264, 192, 193, 194, 65, 68, 197,
- 198, 199, 200, 201, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 48, 49, 214, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 48, 49, 228,
- 229, 230, 231, 228, 229, 230, 231, 218, 219, 65,
- 183, 265, 39, 7, 68, 42, 245, 246, 247, 46,
- 47, 10, 11, 12, 8, 9, 65, 255, 256, 65,
- 8, 9, 65, 65, 302, 287, 6, 248, 65, 65,
- 69, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 65, 69, 69, 38, 7, 39, 40, 41, 42,
- 38, 7, 287, 46, 47, 8, 9, 10, 11, 12,
- 243, 7, 301, 284, 42, 59, 249, 61, 68, 57,
- 67, 292, 6, 61, 68, 314, 311, 71, 7, 66,
- 68, 65, 321, 71, 305, 68, 325, 270, 1, 327,
- 6, 39, 8, 9, 42, 65, 334, 69, 46, 47,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 69, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 8, 9, 39, 40, 41,
- 42, 44, 45, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 48, 49, 65, 59, 65, 61, 54,
- 55, 64, 8, 9, 57, 38, 39, 65, 69, 42,
- 229, 230, 231, 46, 47, 48, 49, 69, 69, 52,
- 53, 54, 55, 69, 8, 9, 59, 69, 61, 65,
- 8, 9, 38, 39, 65, 68, 42, 70, 71, 69,
- 46, 47, 48, 49, 70, 65, 52, 53, 8, 9,
- 65, 65, 65, 59, 38, 61, 8, 9, 67, 40,
- 38, 9, 68, 68, 70, 71, 69, 8, 9, 65,
- 54, 55, 8, 9, 65, 65, 68, 61, 38, 57,
- 58, 59, 66, 61, 68, 65, 38, 71, 65, 165,
- 68, 8, 9, 71, 54, 55, 69, 38, 108, 8,
- 9, 61, 38, 64, 191, 328, -1, 59, 68, 61,
- -1, 71, -1, -1, -1, -1, 68, -1, 59, 71,
- 61, 38, -1, -1, -1, 61, -1, 68, -1, 38,
- 71, -1, 68, 39, 70, 71, 42, -1, -1, -1,
- 46, 47, -1, -1, 61, -1, -1, -1, 54, 55,
- -1, 68, 61, -1, 71, -1, -1, -1, -1, 68,
- -1, -1, 71, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 39, -1, 39, 42, -1, 42, -1,
- 46, 47, 46, 47, -1, -1, -1, -1, 54, 55,
- 54, 55, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 65, -1, -1, 70, -1, -1, -1, -1, -1,
- -1, 6, 7, 8, 64, 10, 11, 12, 13, 14,
- -1, -1, -1, 18, 64, -1, 21, 22, 23, 24,
- 25, 26, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 5, 6, 7, 8, 9, 10, 11, 12,
- 6, 7, 8, 9, 10, 11, 12
+ 29, 30, 45, 61, 133, 9, 9, 68, 37, 38,
+ 39, 62, 0, 64, 65, 44, 37, 38, 15, 16,
+ 17, 28, 30, 44, 9, 46, 110, 6, 7, 64,
+ 9, 39, 65, 9, 64, 15, 16, 17, 59, 63,
+ 69, 54, 55, 19, 20, 66, 67, 108, 28, 29,
+ 30, 27, 65, 38, 57, 149, 150, 118, 69, 39,
+ 38, 65, 42, 67, 40, 45, 44, 43, 48, 49,
+ 46, 47, 62, 63, 54, 68, 83, 56, 8, 9,
+ 48, 49, 39, 63, 113, 42, 115, 11, 172, 46,
+ 47, 185, 65, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, 83, 188, 113, 8, 9, 38, 37,
+ 38, 108, 48, 49, 8, 9, 44, 146, 54, 55,
+ 6, 101, 8, 9, 54, 55, 187, 65, 108, 158,
+ 159, 61, 68, 113, 69, 164, 66, 69, 267, 69,
+ 169, 71, 171, 69, 38, 125, 126, 69, 169, 170,
+ 158, 131, 181, 133, 134, 69, 164, 96, 97, 135,
+ 70, 65, 213, 171, 42, 216, 217, 61, 46, 47,
+ 50, 51, 152, 153, 68, 69, 69, 71, 158, 39,
+ 48, 49, 42, 65, 164, 39, 46, 47, 42, 246,
+ 247, 171, 46, 47, 54, 55, 65, 218, 219, 228,
+ 229, 230, 231, 39, 40, 41, 39, 183, 68, 42,
+ 268, 65, 151, 46, 47, 65, 245, 246, 247, 48,
+ 49, 54, 55, 65, 69, 54, 55, 248, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 10, 11,
+ 12, 8, 9, 39, 40, 41, 42, 290, 228, 229,
+ 230, 231, 65, 192, 193, 194, 307, 65, 197, 198,
+ 199, 200, 201, 229, 230, 231, 287, 243, 69, 7,
+ 65, 38, 69, 249, 295, 214, 65, 306, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 65, 310,
+ 70, 65, 321, 6, 61, 70, 65, 273, 7, 328,
+ 65, 68, 69, 332, 71, 65, 1, 7, 7, 42,
+ 290, 8, 9, 10, 11, 12, 255, 256, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 69, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 8, 9, 70, 67, 66, 65, 44,
+ 45, 6, 70, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, 7, 59, 57, 61, 8, 9, 64,
+ 38, 65, 65, 38, 39, 65, 65, 42, 8, 9,
+ 9, 46, 47, 48, 49, 70, 70, 52, 53, 54,
+ 55, 70, 70, 70, 59, 334, 61, 38, 65, 65,
+ 69, 65, 341, 68, 69, 65, 71, 70, 38, 39,
+ 8, 9, 42, 8, 9, 65, 46, 47, 48, 49,
+ 61, 68, 52, 53, 40, 68, 65, 67, 69, 59,
+ 71, 61, 8, 9, 9, 8, 9, 38, 68, 69,
+ 38, 71, 69, 38, 39, 70, 38, 42, 65, 69,
+ 65, 46, 47, 8, 9, 65, 65, 8, 9, 57,
+ 58, 59, 38, 61, 70, 38, 61, 165, 65, 303,
+ 108, 69, 335, 71, 69, 64, 71, 191, 54, 55,
+ -1, 8, 9, 38, -1, 61, 59, 38, 61, -1,
+ -1, -1, -1, 69, -1, 71, 69, -1, 71, 8,
+ 9, -1, -1, -1, 59, -1, 61, -1, 59, -1,
+ 61, 38, -1, -1, 69, -1, 71, -1, 69, -1,
+ 71, 8, 9, 39, -1, -1, 42, -1, -1, 38,
+ 46, 47, 59, -1, 61, -1, -1, -1, 54, 55,
+ -1, -1, 69, -1, 71, -1, -1, -1, 57, 65,
+ -1, 38, 61, 6, 7, 8, 9, 10, 11, 12,
+ 69, -1, 71, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, -1, 61, -1, -1, -1, -1, -1,
+ -1, -1, 69, -1, 71, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 6, 7, 8, -1, 10,
+ 11, 12, 13, 14, -1, -1, -1, 18, -1, -1,
+ 21, 22, 23, 24, 25, 26, 5, 6, 7, 8,
+ 9, 10, 11, 12, 64, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, -1, -1, 64, 39, 40, 41,
+ 42, -1, -1, -1, 46, 47
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
29, 30, 31, 32, 33, 34, 35, 36, 37, 44,
45, 59, 61, 64, 75, 77, 64, 78, 78, 78,
78, 65, 79, 78, 78, 78, 78, 78, 8, 9,
- 38, 59, 61, 68, 71, 100, 103, 100, 100, 78,
- 79, 79, 78, 78, 78, 78, 78, 78, 79, 68,
- 86, 87, 88, 100, 103, 39, 42, 46, 47, 48,
- 49, 52, 53, 70, 81, 82, 84, 88, 91, 93,
- 95, 96, 99, 103, 84, 62, 63, 63, 64, 54,
- 55, 70, 89, 90, 91, 93, 89, 84, 79, 79,
- 59, 80, 103, 79, 89, 66, 87, 103, 79, 91,
- 96, 79, 103, 103, 6, 8, 9, 101, 103, 105,
- 103, 65, 68, 65, 11, 91, 81, 99, 103, 70,
- 82, 98, 99, 99, 91, 91, 68, 86, 96, 68,
- 68, 68, 68, 9, 57, 58, 88, 103, 65, 68,
- 6, 7, 9, 56, 65, 76, 105, 105, 103, 65,
- 65, 65, 59, 80, 85, 86, 100, 103, 101, 68,
- 84, 65, 83, 96, 65, 68, 86, 65, 7, 103,
- 103, 68, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 69, 90, 103, 39, 40, 41, 102, 90,
- 103, 103, 79, 65, 65, 9, 65, 65, 65, 65,
- 69, 95, 95, 105, 103, 57, 84, 96, 6, 7,
- 7, 7, 84, 75, 64, 64, 91, 96, 91, 84,
- 101, 68, 42, 96, 67, 9, 79, 66, 65, 86,
- 101, 102, 105, 105, 105, 6, 7, 105, 105, 105,
- 105, 105, 65, 69, 65, 65, 99, 105, 49, 99,
- 99, 91, 91, 69, 69, 69, 69, 69, 94, 96,
- 103, 94, 94, 94, 65, 69, 79, 65, 96, 83,
- 83, 91, 65, 79, 68, 69, 105, 105, 90, 90,
- 81, 65, 65, 79, 65, 65, 91, 87, 67, 91,
- 40, 9, 96, 99, 68, 92, 91, 69, 103, 65,
- 96, 65, 50, 51, 97, 65, 96, 68, 65, 96,
- 105, 97, 69, 69, 65, 104, 105
+ 38, 59, 61, 69, 71, 101, 104, 101, 101, 78,
+ 79, 79, 78, 78, 78, 78, 78, 78, 79, 69,
+ 87, 88, 89, 101, 104, 39, 42, 46, 47, 48,
+ 49, 52, 53, 68, 82, 83, 85, 89, 92, 94,
+ 96, 97, 100, 104, 85, 62, 63, 63, 64, 54,
+ 55, 68, 90, 91, 92, 94, 90, 85, 79, 79,
+ 59, 80, 104, 79, 90, 66, 88, 104, 79, 92,
+ 97, 79, 104, 104, 6, 8, 9, 102, 104, 106,
+ 104, 65, 69, 65, 11, 92, 82, 100, 104, 68,
+ 83, 99, 100, 100, 92, 92, 69, 87, 97, 69,
+ 69, 69, 69, 9, 57, 58, 89, 104, 65, 69,
+ 6, 7, 9, 56, 65, 76, 106, 106, 104, 65,
+ 65, 65, 59, 80, 86, 87, 101, 104, 102, 69,
+ 85, 65, 84, 97, 65, 69, 87, 65, 7, 104,
+ 104, 69, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, 70, 68, 104, 39, 40, 41, 103, 91,
+ 104, 104, 79, 65, 65, 9, 65, 65, 65, 65,
+ 70, 96, 96, 106, 104, 57, 85, 97, 6, 7,
+ 7, 7, 85, 75, 64, 64, 92, 97, 92, 85,
+ 102, 69, 42, 97, 67, 9, 79, 66, 65, 87,
+ 102, 103, 106, 106, 106, 6, 7, 106, 106, 106,
+ 106, 106, 9, 38, 81, 65, 70, 65, 65, 100,
+ 106, 49, 100, 100, 92, 92, 70, 70, 70, 70,
+ 70, 95, 97, 104, 95, 95, 95, 65, 70, 79,
+ 65, 97, 84, 84, 92, 65, 79, 69, 70, 106,
+ 106, 38, 9, 68, 91, 82, 65, 65, 79, 65,
+ 65, 92, 88, 67, 92, 40, 9, 38, 81, 97,
+ 100, 69, 93, 92, 70, 38, 65, 97, 65, 50,
+ 51, 98, 65, 97, 69, 65, 97, 106, 98, 70,
+ 70, 65, 105, 106
};
#define yyerrok (yyerrstatus = 0)
case 29:
#line 216 "a.y"
{
- settext((yyvsp[(2) - (4)].addr).sym);
- (yyvsp[(4) - (4)].addr).type = TYPE_TEXTSIZE;
- (yyvsp[(4) - (4)].addr).u.argsize = ArgsSizeUnknown;
- outcode((yyvsp[(1) - (4)].lval), Always, &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr));
+ settext((yyvsp[(2) - (5)].addr).sym);
+ outcode((yyvsp[(1) - (5)].lval), Always, &(yyvsp[(2) - (5)].addr), 0, &(yyvsp[(5) - (5)].addr));
}
break;
case 30:
-#line 223 "a.y"
+#line 221 "a.y"
{
- settext((yyvsp[(2) - (6)].addr).sym);
- (yyvsp[(6) - (6)].addr).type = TYPE_TEXTSIZE;
- (yyvsp[(6) - (6)].addr).u.argsize = ArgsSizeUnknown;
- outcode((yyvsp[(1) - (6)].lval), Always, &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
+ settext((yyvsp[(2) - (7)].addr).sym);
+ outcode((yyvsp[(1) - (7)].lval), Always, &(yyvsp[(2) - (7)].addr), (yyvsp[(4) - (7)].lval), &(yyvsp[(7) - (7)].addr));
}
break;
case 31:
-#line 230 "a.y"
- {
- settext((yyvsp[(2) - (8)].addr).sym);
- (yyvsp[(6) - (8)].addr).type = TYPE_TEXTSIZE;
- (yyvsp[(6) - (8)].addr).u.argsize = (yyvsp[(8) - (8)].lval);
- outcode((yyvsp[(1) - (8)].lval), Always, &(yyvsp[(2) - (8)].addr), (yyvsp[(4) - (8)].lval), &(yyvsp[(6) - (8)].addr));
- }
- break;
-
- case 32:
-#line 240 "a.y"
+#line 229 "a.y"
{
settext((yyvsp[(2) - (4)].addr).sym);
outcode((yyvsp[(1) - (4)].lval), Always, &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr));
}
break;
- case 33:
-#line 245 "a.y"
+ case 32:
+#line 234 "a.y"
{
settext((yyvsp[(2) - (6)].addr).sym);
outcode((yyvsp[(1) - (6)].lval), Always, &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
}
break;
- case 34:
-#line 253 "a.y"
+ case 33:
+#line 242 "a.y"
{
outcode((yyvsp[(1) - (6)].lval), Always, &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
}
break;
- case 35:
-#line 260 "a.y"
+ case 34:
+#line 249 "a.y"
{
outcode((yyvsp[(1) - (4)].lval), (yyvsp[(2) - (4)].lval), &(yyvsp[(3) - (4)].addr), 0, &nullgen);
}
break;
- case 36:
-#line 267 "a.y"
+ case 35:
+#line 256 "a.y"
{
outcode((yyvsp[(1) - (3)].lval), Always, &nullgen, 0, &(yyvsp[(3) - (3)].addr));
}
break;
- case 37:
-#line 274 "a.y"
+ case 36:
+#line 263 "a.y"
{
outcode((yyvsp[(1) - (5)].lval), (yyvsp[(2) - (5)].lval), &(yyvsp[(3) - (5)].addr), 0, &(yyvsp[(5) - (5)].addr));
}
break;
- case 38:
-#line 278 "a.y"
+ case 37:
+#line 267 "a.y"
{
outcode((yyvsp[(1) - (5)].lval), (yyvsp[(2) - (5)].lval), &(yyvsp[(3) - (5)].addr), 0, &(yyvsp[(5) - (5)].addr));
}
break;
- case 39:
-#line 282 "a.y"
+ case 38:
+#line 271 "a.y"
{
outcode((yyvsp[(1) - (7)].lval), (yyvsp[(2) - (7)].lval), &(yyvsp[(3) - (7)].addr), (yyvsp[(5) - (7)].lval), &(yyvsp[(7) - (7)].addr));
}
break;
- case 40:
-#line 286 "a.y"
+ case 39:
+#line 275 "a.y"
{
outcode((yyvsp[(1) - (6)].lval), (yyvsp[(2) - (6)].lval), &(yyvsp[(3) - (6)].addr), (yyvsp[(5) - (6)].addr).reg, &nullgen);
}
break;
- case 41:
-#line 293 "a.y"
+ case 40:
+#line 282 "a.y"
{
Addr g;
}
break;
- case 42:
-#line 315 "a.y"
+ case 41:
+#line 304 "a.y"
{
outcode((yyvsp[(1) - (7)].lval), (yyvsp[(2) - (7)].lval), &(yyvsp[(3) - (7)].addr), (yyvsp[(5) - (7)].addr).reg, &(yyvsp[(7) - (7)].addr));
}
break;
- case 43:
-#line 323 "a.y"
+ case 42:
+#line 312 "a.y"
{
(yyvsp[(7) - (9)].addr).type = TYPE_REGREG2;
(yyvsp[(7) - (9)].addr).offset = (yyvsp[(9) - (9)].lval);
}
break;
- case 44:
-#line 332 "a.y"
+ case 43:
+#line 321 "a.y"
{
outcode((yyvsp[(1) - (2)].lval), Always, &(yyvsp[(2) - (2)].addr), 0, &nullgen);
}
break;
- case 45:
-#line 339 "a.y"
+ case 44:
+#line 328 "a.y"
{
if((yyvsp[(2) - (4)].addr).type != TYPE_CONST || (yyvsp[(4) - (4)].addr).type != TYPE_CONST)
yyerror("arguments to PCDATA must be integer constants");
}
break;
- case 46:
-#line 348 "a.y"
+ case 45:
+#line 337 "a.y"
{
if((yyvsp[(2) - (4)].addr).type != TYPE_CONST)
yyerror("index for FUNCDATA must be integer constant");
}
break;
- case 47:
-#line 359 "a.y"
+ case 46:
+#line 348 "a.y"
{
outcode((yyvsp[(1) - (2)].lval), Always, &nullgen, 0, &nullgen);
}
break;
- case 48:
-#line 364 "a.y"
+ case 47:
+#line 353 "a.y"
{
(yyval.lval) = Always;
}
break;
- case 49:
-#line 368 "a.y"
+ case 48:
+#line 357 "a.y"
{
(yyval.lval) = ((yyvsp[(1) - (2)].lval) & ~C_SCOND) | (yyvsp[(2) - (2)].lval);
}
break;
- case 50:
-#line 372 "a.y"
+ case 49:
+#line 361 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (2)].lval) | (yyvsp[(2) - (2)].lval);
}
break;
- case 53:
-#line 381 "a.y"
+ case 52:
+#line 370 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_BRANCH;
}
break;
- case 54:
-#line 387 "a.y"
+ case 53:
+#line 376 "a.y"
{
(yyvsp[(1) - (2)].sym) = labellookup((yyvsp[(1) - (2)].sym));
(yyval.addr) = nullgen;
}
break;
+ case 54:
+#line 387 "a.y"
+ {
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = (yyvsp[(1) - (1)].lval);
+ (yyval.addr).u.argsize = ArgsSizeUnknown;
+ }
+ break;
+
case 55:
-#line 397 "a.y"
+#line 393 "a.y"
+ {
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = -(yyvsp[(2) - (2)].lval);
+ (yyval.addr).u.argsize = ArgsSizeUnknown;
+ }
+ break;
+
+ case 56:
+#line 399 "a.y"
+ {
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = (yyvsp[(1) - (3)].lval);
+ (yyval.addr).u.argsize = (yyvsp[(3) - (3)].lval);
+ }
+ break;
+
+ case 57:
+#line 405 "a.y"
+ {
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = -(yyvsp[(2) - (4)].lval);
+ (yyval.addr).u.argsize = (yyvsp[(4) - (4)].lval);
+ }
+ break;
+
+ case 58:
+#line 412 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_CONST;
}
break;
- case 56:
-#line 403 "a.y"
+ case 59:
+#line 418 "a.y"
{
(yyval.addr) = (yyvsp[(2) - (2)].addr);
(yyval.addr).type = TYPE_CONST;
}
break;
- case 57:
-#line 408 "a.y"
+ case 60:
+#line 423 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_SCONST;
}
break;
- case 59:
-#line 417 "a.y"
+ case 62:
+#line 432 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_FCONST;
}
break;
- case 60:
-#line 423 "a.y"
+ case 63:
+#line 438 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_FCONST;
}
break;
- case 61:
-#line 431 "a.y"
+ case 64:
+#line 446 "a.y"
{
(yyval.lval) = 1 << (yyvsp[(1) - (1)].lval);
}
break;
- case 62:
-#line 435 "a.y"
+ case 65:
+#line 450 "a.y"
{
int i;
(yyval.lval)=0;
}
break;
- case 63:
-#line 444 "a.y"
+ case 66:
+#line 459 "a.y"
{
(yyval.lval) = (1<<(yyvsp[(1) - (3)].lval)) | (yyvsp[(3) - (3)].lval);
}
break;
- case 67:
-#line 453 "a.y"
+ case 70:
+#line 468 "a.y"
{
(yyval.addr) = (yyvsp[(1) - (4)].addr);
(yyval.addr).reg = (yyvsp[(3) - (4)].lval);
}
break;
- case 68:
-#line 458 "a.y"
+ case 71:
+#line 473 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 69:
-#line 464 "a.y"
+ case 72:
+#line 479 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 70:
-#line 470 "a.y"
+ case 73:
+#line 485 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 74:
-#line 481 "a.y"
+ case 77:
+#line 496 "a.y"
{
(yyval.addr) = (yyvsp[(1) - (1)].addr);
if((yyvsp[(1) - (1)].addr).name != NAME_EXTERN && (yyvsp[(1) - (1)].addr).name != NAME_STATIC) {
}
break;
- case 75:
-#line 489 "a.y"
+ case 78:
+#line 504 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 77:
-#line 499 "a.y"
+ case 80:
+#line 514 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 79:
-#line 509 "a.y"
+ case 82:
+#line 524 "a.y"
{
(yyval.addr) = (yyvsp[(1) - (4)].addr);
(yyval.addr).type = TYPE_MEM;
}
break;
- case 84:
-#line 522 "a.y"
+ case 87:
+#line 537 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_CONST;
}
break;
- case 85:
-#line 530 "a.y"
+ case 88:
+#line 545 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 86:
-#line 538 "a.y"
+ case 89:
+#line 553 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REGREG;
}
break;
- case 87:
-#line 547 "a.y"
+ case 90:
+#line 562 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_SHIFT;
}
break;
- case 88:
-#line 553 "a.y"
+ case 91:
+#line 568 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_SHIFT;
}
break;
- case 89:
-#line 559 "a.y"
+ case 92:
+#line 574 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_SHIFT;
}
break;
- case 90:
-#line 565 "a.y"
+ case 93:
+#line 580 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_SHIFT;
}
break;
- case 91:
-#line 573 "a.y"
+ case 94:
+#line 588 "a.y"
{
if((yyval.lval) < REG_R0 || (yyval.lval) > REG_R15)
print("register value out of range in shift\n");
}
break;
- case 92:
-#line 579 "a.y"
+ case 95:
+#line 594 "a.y"
{
if((yyval.lval) < 0 || (yyval.lval) >= 32)
print("shift value out of range\n");
}
break;
- case 94:
-#line 588 "a.y"
+ case 97:
+#line 603 "a.y"
{
(yyval.lval) = REGPC;
}
break;
- case 95:
-#line 592 "a.y"
+ case 98:
+#line 607 "a.y"
{
if((yyvsp[(3) - (4)].lval) < 0 || (yyvsp[(3) - (4)].lval) >= NREG)
print("register value out of range in R(...)\n");
}
break;
- case 97:
-#line 601 "a.y"
+ case 100:
+#line 616 "a.y"
{
(yyval.lval) = REGSP;
}
break;
- case 99:
-#line 608 "a.y"
+ case 102:
+#line 623 "a.y"
{
if((yyvsp[(3) - (4)].lval) < 0 || (yyvsp[(3) - (4)].lval) >= NREG)
print("register value out of range in C(...)\n");
}
break;
- case 102:
-#line 620 "a.y"
+ case 105:
+#line 635 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 103:
-#line 626 "a.y"
+ case 106:
+#line 641 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 104:
-#line 634 "a.y"
+ case 107:
+#line 649 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 105:
-#line 642 "a.y"
+ case 108:
+#line 657 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 106:
-#line 650 "a.y"
+ case 109:
+#line 665 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 107:
-#line 659 "a.y"
+ case 110:
+#line 674 "a.y"
{
(yyval.lval) = 0;
}
break;
- case 108:
-#line 663 "a.y"
+ case 111:
+#line 678 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 109:
-#line 667 "a.y"
+ case 112:
+#line 682 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 114:
-#line 679 "a.y"
+ case 117:
+#line 694 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (1)].sym)->value;
}
break;
- case 115:
-#line 683 "a.y"
+ case 118:
+#line 698 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 116:
-#line 687 "a.y"
+ case 119:
+#line 702 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 117:
-#line 691 "a.y"
+ case 120:
+#line 706 "a.y"
{
(yyval.lval) = ~(yyvsp[(2) - (2)].lval);
}
break;
- case 118:
-#line 695 "a.y"
+ case 121:
+#line 710 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (3)].lval);
}
break;
- case 119:
-#line 700 "a.y"
+ case 122:
+#line 715 "a.y"
{
(yyval.lval) = 0;
}
break;
- case 120:
-#line 704 "a.y"
+ case 123:
+#line 719 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 122:
-#line 711 "a.y"
+ case 125:
+#line 726 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval);
}
break;
- case 123:
-#line 715 "a.y"
+ case 126:
+#line 730 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval);
}
break;
- case 124:
-#line 719 "a.y"
+ case 127:
+#line 734 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval);
}
break;
- case 125:
-#line 723 "a.y"
+ case 128:
+#line 738 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval);
}
break;
- case 126:
-#line 727 "a.y"
+ case 129:
+#line 742 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval);
}
break;
- case 127:
-#line 731 "a.y"
+ case 130:
+#line 746 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval);
}
break;
- case 128:
-#line 735 "a.y"
+ case 131:
+#line 750 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval);
}
break;
- case 129:
-#line 739 "a.y"
+ case 132:
+#line 754 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval);
}
break;
- case 130:
-#line 743 "a.y"
+ case 133:
+#line 758 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval);
}
break;
- case 131:
-#line 747 "a.y"
+ case 134:
+#line 762 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval);
}
/* Line 1267 of yacc.c. */
-#line 2585 "y.tab.c"
+#line 2614 "y.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
NodeList *l;
Node *n;
- // fill in argument size
+ // fill in argument size, stack size
ptxt->to.type = TYPE_TEXTSIZE;
ptxt->to.u.argsize = rnd(curfn->type->argwid, widthptr);
-
- // fill in final stack size
- frame = rnd(stksize+maxarg, widthptr);
+ frame = rnd(stksize+maxarg, widthreg);
ptxt->to.offset = frame;
// insert code to contain ambiguously live variables
C_HREG,
C_ADDR, /* reference to relocatable address */
+ C_TEXTSIZE,
C_GOK,
%token <dval> LFCONST
%token <sval> LSCONST LSP
%token <sym> LNAME LLAB LVAR
-%type <lval> con con2 expr pointer offset
-%type <addr> mem imm imm2 reg nam rel rem rim rom omem nmem
+%type <lval> con expr pointer offset
+%type <addr> mem imm reg nam rel rem rim rom omem nmem textsize
%type <addr2> nonnon nonrel nonrem rimnon rimrem remrim
%type <addr2> spec1 spec2 spec3 spec4 spec5 spec6 spec7 spec8 spec9
%type <addr2> spec10 spec11 spec12 spec13
}
spec2: /* TEXT */
- mem ',' imm2
+ mem ',' '$' textsize
{
settext($1.sym);
$$.from = $1;
- $$.to = $3;
+ $$.to = $4;
}
-| mem ',' con ',' imm2
+| mem ',' con ',' '$' textsize
{
settext($1.sym);
$$.from = $1;
$$.from.scale = $3;
- $$.to = $5;
+ $$.to = $6;
}
spec3: /* JMP/CALL */
$$.type = TYPE_REG;
$$.reg = $1;
}
-imm2:
- '$' con2
- {
- $$ = nullgen;
- $$.type = TYPE_CONST;
- $$.offset = $2;
- }
imm:
'$' con
$$ = $2;
}
-con2:
+textsize:
LCONST
{
- $$ = ($1 & 0xffffffffLL) +
- ((vlong)ArgsSizeUnknown << 32);
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = $1;
+ $$.u.argsize = ArgsSizeUnknown;
}
| '-' LCONST
{
- $$ = (-$2 & 0xffffffffLL) +
- ((vlong)ArgsSizeUnknown << 32);
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = -$2;
+ $$.u.argsize = ArgsSizeUnknown;
}
| LCONST '-' LCONST
{
- $$ = ($1 & 0xffffffffLL) +
- (($3 & 0xffffLL) << 32);
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = $1;
+ $$.u.argsize = $3;
}
| '-' LCONST '-' LCONST
{
- $$ = (-$2 & 0xffffffffLL) +
- (($4 & 0xffffLL) << 32);
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = -$2;
+ $$.u.argsize = $4;
}
expr:
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 549
+#define YYLAST 531
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 56
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 41
+#define YYNNTS 40
/* YYNRULES -- Number of rules. */
-#define YYNRULES 134
+#define YYNRULES 133
/* YYNRULES -- Number of states. */
#define YYNSTATES 271
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, 54, 12, 5, 2,
- 52, 53, 10, 8, 51, 9, 2, 11, 2, 2,
+ 2, 2, 2, 2, 2, 2, 52, 12, 5, 2,
+ 53, 54, 10, 8, 51, 9, 2, 11, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 48, 49,
6, 50, 7, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
23, 27, 31, 34, 37, 40, 43, 46, 49, 52,
55, 58, 61, 64, 67, 70, 73, 76, 79, 82,
85, 88, 89, 91, 95, 99, 102, 104, 107, 109,
- 112, 114, 118, 124, 128, 134, 137, 139, 141, 143,
- 147, 153, 157, 163, 166, 168, 172, 178, 184, 185,
- 187, 191, 197, 201, 205, 207, 209, 211, 213, 216,
- 219, 221, 223, 225, 227, 232, 235, 237, 239, 241,
- 243, 245, 247, 249, 252, 255, 258, 261, 264, 269,
- 275, 279, 281, 283, 285, 290, 295, 300, 307, 317,
- 327, 331, 335, 341, 350, 352, 359, 365, 373, 374,
- 377, 380, 382, 384, 386, 388, 390, 393, 396, 399,
- 403, 405, 408, 412, 417, 419, 423, 427, 431, 435,
- 439, 444, 449, 453, 457
+ 112, 114, 118, 124, 129, 136, 139, 141, 143, 145,
+ 149, 155, 159, 165, 168, 170, 174, 180, 186, 187,
+ 189, 193, 199, 203, 207, 209, 211, 213, 215, 218,
+ 221, 223, 225, 227, 229, 234, 237, 239, 241, 243,
+ 245, 247, 249, 251, 254, 257, 260, 263, 268, 274,
+ 278, 280, 282, 284, 289, 294, 299, 306, 316, 326,
+ 330, 334, 340, 349, 351, 358, 364, 372, 373, 376,
+ 379, 381, 383, 385, 387, 389, 392, 395, 398, 402,
+ 404, 407, 411, 416, 418, 422, 426, 430, 434, 438,
+ 443, 448, 452, 456
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
{
57, 0, -1, -1, -1, 57, 58, 59, -1, -1,
45, 48, 60, 59, -1, 49, -1, 61, 49, -1,
- 1, 49, -1, 45, 50, 96, -1, 47, 50, 96,
+ 1, 49, -1, 45, 50, 95, -1, 47, 50, 95,
-1, 13, 62, -1, 14, 66, -1, 15, 65, -1,
16, 63, -1, 17, 64, -1, 21, 67, -1, 19,
68, -1, 22, 69, -1, 18, 70, -1, 20, 71,
78, -1, 24, 79, -1, 31, 80, -1, -1, 51,
-1, 83, 51, 81, -1, 81, 51, 83, -1, 83,
51, -1, 83, -1, 51, 81, -1, 81, -1, 51,
- 84, -1, 84, -1, 87, 51, 84, -1, 91, 11,
- 94, 51, 87, -1, 88, 51, 86, -1, 88, 51,
- 94, 51, 86, -1, 51, 82, -1, 82, -1, 62,
- -1, 66, -1, 83, 51, 81, -1, 83, 51, 81,
- 48, 37, -1, 83, 51, 81, -1, 83, 51, 81,
- 48, 38, -1, 83, 51, -1, 83, -1, 83, 51,
- 81, -1, 85, 51, 81, 51, 94, -1, 87, 51,
- 81, 51, 85, -1, -1, 87, -1, 88, 51, 87,
- -1, 88, 51, 94, 51, 87, -1, 83, 51, 83,
- -1, 83, 51, 83, -1, 85, -1, 88, -1, 84,
- -1, 90, -1, 10, 85, -1, 10, 89, -1, 85,
- -1, 89, -1, 81, -1, 87, -1, 94, 52, 34,
- 53, -1, 45, 92, -1, 36, -1, 39, -1, 37,
- -1, 40, -1, 44, -1, 38, -1, 41, -1, 54,
- 95, -1, 54, 94, -1, 54, 91, -1, 54, 43,
- -1, 54, 42, -1, 54, 52, 42, 53, -1, 54,
- 52, 9, 42, 53, -1, 54, 9, 42, -1, 89,
- -1, 90, -1, 94, -1, 94, 52, 37, 53, -1,
- 94, 52, 44, 53, -1, 94, 52, 38, 53, -1,
- 94, 52, 37, 10, 94, 53, -1, 94, 52, 37,
- 53, 52, 37, 10, 94, 53, -1, 94, 52, 37,
- 53, 52, 38, 10, 94, 53, -1, 52, 37, 53,
- -1, 52, 44, 53, -1, 52, 37, 10, 94, 53,
- -1, 52, 37, 53, 52, 37, 10, 94, 53, -1,
- 91, -1, 91, 52, 37, 10, 94, 53, -1, 45,
- 92, 52, 93, 53, -1, 45, 6, 7, 92, 52,
- 35, 53, -1, -1, 8, 94, -1, 9, 94, -1,
- 35, -1, 44, -1, 33, -1, 32, -1, 47, -1,
- 9, 94, -1, 8, 94, -1, 55, 94, -1, 52,
- 96, 53, -1, 32, -1, 9, 32, -1, 32, 9,
- 32, -1, 9, 32, 9, 32, -1, 94, -1, 96,
- 8, 96, -1, 96, 9, 96, -1, 96, 10, 96,
- -1, 96, 11, 96, -1, 96, 12, 96, -1, 96,
- 6, 6, 96, -1, 96, 7, 7, 96, -1, 96,
- 5, 96, -1, 96, 4, 96, -1, 96, 3, 96,
- -1
+ 84, -1, 84, -1, 86, 51, 84, -1, 90, 11,
+ 93, 51, 86, -1, 87, 51, 52, 94, -1, 87,
+ 51, 93, 51, 52, 94, -1, 51, 82, -1, 82,
+ -1, 62, -1, 66, -1, 83, 51, 81, -1, 83,
+ 51, 81, 48, 37, -1, 83, 51, 81, -1, 83,
+ 51, 81, 48, 38, -1, 83, 51, -1, 83, -1,
+ 83, 51, 81, -1, 85, 51, 81, 51, 93, -1,
+ 86, 51, 81, 51, 85, -1, -1, 86, -1, 87,
+ 51, 86, -1, 87, 51, 93, 51, 86, -1, 83,
+ 51, 83, -1, 83, 51, 83, -1, 85, -1, 87,
+ -1, 84, -1, 89, -1, 10, 85, -1, 10, 88,
+ -1, 85, -1, 88, -1, 81, -1, 86, -1, 93,
+ 53, 34, 54, -1, 45, 91, -1, 36, -1, 39,
+ -1, 37, -1, 40, -1, 44, -1, 38, -1, 41,
+ -1, 52, 93, -1, 52, 90, -1, 52, 43, -1,
+ 52, 42, -1, 52, 53, 42, 54, -1, 52, 53,
+ 9, 42, 54, -1, 52, 9, 42, -1, 88, -1,
+ 89, -1, 93, -1, 93, 53, 37, 54, -1, 93,
+ 53, 44, 54, -1, 93, 53, 38, 54, -1, 93,
+ 53, 37, 10, 93, 54, -1, 93, 53, 37, 54,
+ 53, 37, 10, 93, 54, -1, 93, 53, 37, 54,
+ 53, 38, 10, 93, 54, -1, 53, 37, 54, -1,
+ 53, 44, 54, -1, 53, 37, 10, 93, 54, -1,
+ 53, 37, 54, 53, 37, 10, 93, 54, -1, 90,
+ -1, 90, 53, 37, 10, 93, 54, -1, 45, 91,
+ 53, 92, 54, -1, 45, 6, 7, 91, 53, 35,
+ 54, -1, -1, 8, 93, -1, 9, 93, -1, 35,
+ -1, 44, -1, 33, -1, 32, -1, 47, -1, 9,
+ 93, -1, 8, 93, -1, 55, 93, -1, 53, 95,
+ 54, -1, 32, -1, 9, 32, -1, 32, 9, 32,
+ -1, 9, 32, 9, 32, -1, 93, -1, 95, 8,
+ 95, -1, 95, 9, 95, -1, 95, 10, 95, -1,
+ 95, 11, 95, -1, 95, 12, 95, -1, 95, 6,
+ 6, 95, -1, 95, 7, 7, 95, -1, 95, 5,
+ 95, -1, 95, 4, 95, -1, 95, 3, 95, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
230, 240, 245, 255, 260, 265, 272, 280, 290, 294,
301, 306, 314, 323, 334, 335, 338, 339, 340, 344,
348, 349, 352, 353, 356, 362, 373, 379, 385, 391,
- 397, 403, 409, 416, 424, 430, 440, 446, 452, 458,
- 464, 472, 473, 476, 482, 489, 496, 503, 512, 522,
- 532, 538, 544, 552, 563, 567, 576, 584, 594, 597,
- 601, 607, 608, 612, 615, 616, 620, 624, 628, 632,
- 638, 643, 648, 653, 660, 661, 665, 669, 673, 677,
- 681, 685, 689, 693, 697
+ 397, 403, 409, 417, 423, 433, 439, 445, 451, 457,
+ 465, 466, 469, 475, 482, 489, 496, 505, 515, 525,
+ 531, 537, 545, 556, 560, 569, 577, 587, 590, 594,
+ 600, 601, 605, 608, 609, 613, 617, 621, 625, 631,
+ 637, 643, 649, 657, 658, 662, 666, 670, 674, 678,
+ 682, 686, 690, 694
};
#endif
"LTYPEPC", "LTYPES", "LTYPEM", "LTYPEI", "LTYPEXC", "LTYPEX", "LTYPERT",
"LTYPEF", "LCONST", "LFP", "LPC", "LSB", "LBREG", "LLREG", "LSREG",
"LFREG", "LMREG", "LXREG", "LFCONST", "LSCONST", "LSP", "LNAME", "LLAB",
- "LVAR", "':'", "';'", "'='", "','", "'('", "')'", "'$'", "'~'",
+ "LVAR", "':'", "';'", "'='", "','", "'$'", "'('", "')'", "'~'",
"$accept", "prog", "@1", "line", "@2", "inst", "nonnon", "rimrem",
"remrim", "rimnon", "nonrem", "nonrel", "spec1", "spec2", "spec3",
"spec4", "spec5", "spec6", "spec7", "spec8", "spec9", "spec10", "spec11",
- "spec12", "spec13", "rem", "rom", "rim", "rel", "reg", "imm2", "imm",
- "mem", "omem", "nmem", "nam", "offset", "pointer", "con", "con2", "expr", 0
+ "spec12", "spec13", "rem", "rom", "rim", "rel", "reg", "imm", "mem",
+ "omem", "nmem", "nam", "offset", "pointer", "con", "textsize", "expr", 0
};
#endif
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, 58, 59,
- 61, 44, 40, 41, 36, 126
+ 61, 44, 36, 40, 41, 126
};
# endif
72, 73, 73, 74, 74, 74, 75, 76, 77, 77,
78, 78, 79, 80, 81, 81, 82, 82, 82, 82,
82, 82, 83, 83, 84, 84, 85, 85, 85, 85,
- 85, 85, 85, 86, 87, 87, 87, 87, 87, 87,
- 87, 88, 88, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 90, 90, 91, 91, 92, 92,
- 92, 93, 93, 93, 94, 94, 94, 94, 94, 94,
- 95, 95, 95, 95, 96, 96, 96, 96, 96, 96,
- 96, 96, 96, 96, 96
+ 85, 85, 85, 86, 86, 86, 86, 86, 86, 86,
+ 87, 87, 88, 88, 88, 88, 88, 88, 88, 88,
+ 88, 88, 88, 89, 89, 90, 90, 91, 91, 91,
+ 92, 92, 92, 93, 93, 93, 93, 93, 93, 94,
+ 94, 94, 94, 95, 95, 95, 95, 95, 95, 95,
+ 95, 95, 95, 95
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
3, 3, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 0, 1, 3, 3, 2, 1, 2, 1, 2,
- 1, 3, 5, 3, 5, 2, 1, 1, 1, 3,
+ 1, 3, 5, 4, 6, 2, 1, 1, 1, 3,
5, 3, 5, 2, 1, 3, 5, 5, 0, 1,
3, 5, 3, 3, 1, 1, 1, 1, 2, 2,
1, 1, 1, 1, 4, 2, 1, 1, 1, 1,
- 1, 1, 1, 2, 2, 2, 2, 2, 4, 5,
- 3, 1, 1, 1, 4, 4, 4, 6, 9, 9,
- 3, 3, 5, 8, 1, 6, 5, 7, 0, 2,
- 2, 1, 1, 1, 1, 1, 2, 2, 2, 3,
- 1, 2, 3, 4, 1, 3, 3, 3, 3, 3,
- 4, 4, 3, 3, 3
+ 1, 1, 1, 2, 2, 2, 2, 4, 5, 3,
+ 1, 1, 1, 4, 4, 4, 6, 9, 9, 3,
+ 3, 5, 8, 1, 6, 5, 7, 0, 2, 2,
+ 1, 1, 1, 1, 1, 2, 2, 2, 3, 1,
+ 2, 3, 4, 1, 3, 3, 3, 3, 3, 4,
+ 4, 3, 3, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
2, 3, 1, 0, 0, 31, 0, 0, 0, 0,
0, 0, 31, 0, 0, 0, 0, 0, 0, 0,
0, 0, 58, 0, 0, 0, 7, 4, 0, 9,
- 32, 12, 0, 0, 114, 76, 78, 81, 77, 79,
- 82, 80, 108, 115, 0, 0, 0, 13, 38, 64,
- 65, 91, 92, 104, 93, 0, 14, 72, 36, 73,
- 15, 0, 16, 0, 0, 108, 0, 20, 46, 66,
- 70, 71, 67, 93, 18, 0, 32, 47, 48, 21,
- 108, 0, 0, 17, 40, 0, 0, 19, 0, 28,
+ 32, 12, 0, 0, 113, 76, 78, 81, 77, 79,
+ 82, 80, 107, 114, 0, 0, 0, 13, 38, 64,
+ 65, 90, 91, 103, 92, 0, 14, 72, 36, 73,
+ 15, 0, 16, 0, 0, 107, 0, 20, 46, 66,
+ 70, 71, 67, 92, 18, 0, 32, 47, 48, 21,
+ 107, 0, 0, 17, 40, 0, 0, 19, 0, 28,
0, 29, 0, 22, 0, 23, 0, 24, 54, 25,
0, 26, 0, 27, 59, 30, 0, 5, 0, 0,
- 8, 117, 116, 0, 0, 0, 0, 37, 0, 0,
- 124, 0, 118, 0, 0, 0, 87, 86, 0, 85,
- 84, 35, 0, 0, 68, 69, 75, 45, 0, 0,
+ 8, 116, 115, 0, 0, 0, 0, 37, 0, 0,
+ 123, 0, 117, 0, 0, 0, 86, 85, 0, 84,
+ 83, 35, 0, 0, 68, 69, 75, 45, 0, 0,
75, 39, 0, 0, 0, 0, 0, 0, 0, 53,
- 0, 0, 0, 0, 10, 11, 108, 109, 110, 0,
- 0, 100, 101, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 119, 0, 0, 0, 0, 90, 0,
- 0, 33, 34, 0, 0, 41, 0, 43, 0, 60,
- 0, 62, 49, 51, 55, 0, 0, 63, 6, 0,
- 113, 111, 112, 0, 0, 0, 134, 133, 132, 0,
- 0, 125, 126, 127, 128, 129, 0, 0, 94, 96,
- 95, 0, 88, 74, 0, 0, 120, 83, 0, 0,
- 0, 0, 0, 0, 0, 106, 102, 0, 130, 131,
- 0, 0, 0, 89, 42, 121, 0, 44, 61, 50,
- 52, 56, 57, 0, 0, 105, 97, 0, 0, 0,
- 122, 107, 0, 0, 0, 123, 103, 0, 0, 98,
- 99
+ 0, 0, 0, 0, 10, 11, 107, 108, 109, 0,
+ 0, 99, 100, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 118, 0, 0, 0, 0, 89, 0,
+ 0, 33, 34, 0, 0, 41, 0, 0, 60, 0,
+ 62, 49, 51, 55, 0, 0, 63, 6, 0, 112,
+ 110, 111, 0, 0, 0, 133, 132, 131, 0, 0,
+ 124, 125, 126, 127, 128, 0, 0, 93, 95, 94,
+ 0, 87, 74, 0, 0, 119, 43, 0, 0, 0,
+ 0, 0, 0, 0, 105, 101, 0, 129, 130, 0,
+ 0, 0, 88, 42, 120, 0, 0, 61, 50, 52,
+ 56, 57, 0, 0, 104, 96, 0, 0, 0, 121,
+ 44, 106, 0, 0, 0, 122, 102, 0, 0, 97,
+ 98
};
/* YYDEFGOTO[NTERM-NUM]. */
-1, 1, 3, 27, 153, 28, 31, 60, 62, 56,
47, 83, 74, 87, 67, 79, 93, 95, 97, 99,
101, 103, 89, 91, 105, 57, 68, 58, 69, 49,
- 187, 59, 50, 51, 52, 53, 116, 203, 54, 227,
- 121
+ 59, 50, 51, 52, 53, 116, 202, 54, 226, 121
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
#define YYPACT_NINF -89
static const yytype_int16 yypact[] =
{
- -89, 18, -89, 163, -5, -13, 219, 253, 253, 335,
- 194, 16, 274, 369, 418, 418, 253, 253, 253, 253,
- 240, 0, 0, 253, -17, 19, -89, -89, 24, -89,
- -89, -89, 479, 479, -89, -89, -89, -89, -89, -89,
- -89, -89, 111, -89, 335, 397, 479, -89, -89, -89,
- -89, -89, -89, 33, 51, 390, -89, -89, 65, -89,
- -89, 72, -89, 73, 356, 111, 314, -89, -89, -89,
- -89, -89, -89, 74, -89, 30, 335, -89, -89, -89,
- 70, 422, 479, -89, -89, 82, 86, -89, 88, -89,
- 89, -89, 90, -89, 91, -89, 92, -89, 101, -89,
- 105, -89, 114, -89, -89, -89, 116, -89, 479, 479,
- -89, -89, -89, 118, 479, 479, 120, -89, 5, 115,
- -89, 83, -89, 133, -12, 404, -89, -89, 439, -89,
- -89, -89, 335, 253, -89, -89, 120, -89, 9, 479,
- -89, -89, 422, 141, 119, 452, 253, 335, 335, 335,
- 335, 335, 253, 163, 327, 327, 70, -89, -89, 4,
- 479, 143, -89, 479, 479, 479, 190, 191, 479, 479,
- 479, 479, 479, -89, 187, 6, 148, 152, -89, 470,
- 156, -89, -89, 158, 162, -89, 8, -89, 164, -89,
- 166, -89, 170, 171, -89, 169, 172, -89, -89, 173,
- -89, -89, -89, 161, 176, 199, 102, 530, 537, 479,
- 479, 39, 39, -89, -89, -89, 479, 479, 185, -89,
- -89, 189, -89, -89, 0, 208, 234, -89, 193, 0,
- 211, 212, 479, 240, 217, -89, -89, 255, 55, 55,
- 214, 215, 59, -89, -89, 260, 241, -89, -89, -89,
- -89, -89, -89, 222, 479, -89, -89, 262, 276, 256,
- -89, -89, 242, 479, 479, -89, -89, 243, 246, -89,
+ -89, 16, -89, 163, 0, -13, 219, 241, 241, 317,
+ 193, 13, 267, 333, 164, 164, 241, 241, 241, 241,
+ 472, 17, 17, 241, -17, 23, -89, -89, 52, -89,
+ -89, -89, 433, 433, -89, -89, -89, -89, -89, -89,
+ -89, -89, 45, -89, 317, 358, 433, -89, -89, -89,
+ -89, -89, -89, 50, 63, 351, -89, -89, 68, -89,
+ -89, 71, -89, 73, 70, 45, 292, -89, -89, -89,
+ -89, -89, -89, 80, -89, 117, 317, -89, -89, -89,
+ 38, 365, 433, -89, -89, 87, 86, -89, 89, -89,
+ 90, -89, 91, -89, 92, -89, 100, -89, 101, -89,
+ 105, -89, 114, -89, -89, -89, 115, -89, 433, 433,
+ -89, -89, -89, 160, 433, 433, 118, -89, 5, 116,
+ -89, 82, -89, 131, -12, 383, -89, -89, 392, -89,
+ -89, -89, 317, 241, -89, -89, 118, -89, 6, 433,
+ -89, -89, 365, 140, 399, 408, 241, 317, 317, 317,
+ 317, 317, 241, 163, 486, 486, 38, -89, -89, 4,
+ 433, 122, -89, 433, 433, 433, 189, 190, 433, 433,
+ 433, 433, 433, -89, 194, 7, 146, 153, -89, 424,
+ 159, -89, -89, 162, 167, -89, 9, 171, -89, 173,
+ -89, 166, 178, -89, 184, 185, -89, -89, 186, -89,
+ -89, -89, 187, 188, 208, 495, 512, 519, 433, 433,
+ 85, 85, -89, -89, -89, 433, 433, 199, -89, -89,
+ 207, -89, -89, 17, 215, 253, -89, 213, 17, 230,
+ 231, 433, 472, 233, -89, -89, 261, 55, 55, 229,
+ 235, 75, -89, -89, 275, 255, 9, -89, -89, -89,
+ -89, -89, 236, 433, -89, -89, 281, 282, 263, -89,
+ -89, -89, 243, 433, 433, -89, -89, 244, 256, -89,
-89
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -89, -89, -89, 134, -89, -89, 289, -89, -89, -89,
- 290, -89, -89, -89, -89, -89, -89, -89, -89, -89,
- -89, -89, -89, -89, -89, -2, 237, 11, -11, -9,
- 76, -8, 87, -4, 2, -3, -56, -89, -10, -89,
- -88
+ -89, -89, -89, 156, -89, -89, 301, -89, -89, -89,
+ 303, -89, -89, -89, -89, -89, -89, -89, -89, -89,
+ -89, -89, -89, -89, -89, -2, 250, 11, -11, -9,
+ -8, 112, -4, 2, -3, -56, -89, -10, 77, -88
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
static const yytype_uint16 yytable[] =
{
73, 70, 84, 86, 48, 85, 71, 63, 75, 136,
- 48, 100, 72, 102, 104, 160, 217, 225, 2, 61,
+ 48, 100, 72, 102, 104, 160, 2, 216, 224, 61,
154, 155, 111, 112, 140, 175, 176, 92, 94, 96,
- 98, 107, 177, 108, 106, 120, 122, 200, 30, 201,
- 226, 139, 117, 183, 29, 130, 175, 176, 202, 170,
- 171, 172, 129, 177, 55, 134, 73, 70, 161, 218,
- 135, 42, 71, 168, 169, 170, 171, 172, 72, 109,
- 141, 86, 120, 110, 117, 206, 207, 208, 114, 115,
- 211, 212, 213, 214, 215, 123, 163, 164, 165, 166,
- 167, 168, 169, 170, 171, 172, 257, 258, 120, 120,
- 199, 88, 90, 124, 157, 158, 164, 165, 166, 167,
- 168, 169, 170, 171, 172, 112, 131, 113, 120, 114,
- 115, 238, 239, 132, 133, 156, 138, 32, 33, 184,
- 181, 185, 86, 142, 188, 190, 173, 189, 143, 144,
- 145, 146, 147, 148, 182, 192, 193, 194, 195, 196,
- 204, 34, 149, 120, 120, 120, 150, 191, 120, 120,
- 120, 120, 120, 197, 4, 151, 43, 152, 162, 112,
- 174, 82, 159, 186, 46, 183, 5, 6, 7, 8,
+ 98, 107, 177, 108, 106, 120, 122, 199, 30, 200,
+ 183, 225, 117, 175, 176, 130, 114, 115, 201, 29,
+ 177, 113, 129, 114, 115, 134, 73, 70, 42, 161,
+ 135, 217, 71, 168, 169, 170, 171, 172, 72, 55,
+ 141, 86, 120, 109, 117, 205, 206, 207, 32, 33,
+ 210, 211, 212, 213, 214, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 170, 171, 172, 120, 120,
+ 198, 110, 34, 123, 157, 158, 35, 36, 37, 38,
+ 39, 40, 256, 257, 41, 112, 124, 43, 120, 131,
+ 237, 238, 132, 45, 133, 46, 88, 90, 139, 184,
+ 181, 185, 86, 138, 187, 189, 173, 188, 142, 143,
+ 144, 145, 146, 147, 182, 191, 192, 193, 194, 195,
+ 203, 148, 149, 120, 120, 120, 150, 190, 120, 120,
+ 120, 120, 120, 196, 4, 151, 152, 156, 174, 112,
+ 162, 159, 32, 33, 183, 204, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 205, 209, 216, 210, 120,
- 120, 219, 32, 33, 64, 220, 240, 241, 24, 222,
- 25, 223, 26, 224, 235, 228, 244, 229, 230, 231,
- 232, 248, 251, 233, 252, 234, 34, 32, 33, 236,
- 35, 36, 37, 38, 39, 40, 237, 242, 41, 65,
- 245, 43, 243, 246, 262, 66, 45, 186, 249, 46,
- 250, 34, 253, 267, 268, 35, 36, 37, 38, 39,
- 40, 32, 33, 41, 42, 254, 43, 255, 256, 259,
- 44, 45, 263, 260, 46, 261, 35, 36, 37, 38,
- 39, 40, 32, 33, 41, 34, 264, 198, 265, 35,
- 36, 37, 38, 39, 40, 266, 269, 41, 42, 270,
- 43, 77, 78, 137, 247, 45, 34, 55, 46, 0,
- 35, 36, 37, 38, 39, 40, 0, 0, 41, 42,
- 0, 43, 32, 33, 64, 76, 45, 0, 0, 46,
- 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
- 0, 0, 0, 32, 33, 0, 34, 0, 0, 0,
- 35, 36, 37, 38, 39, 40, 0, 0, 41, 65,
- 0, 43, 0, 0, 32, 33, 45, 34, 0, 46,
- 0, 35, 36, 37, 38, 39, 40, 32, 33, 41,
- 42, 0, 43, 0, 0, 0, 0, 45, 34, 0,
- 46, 0, 35, 36, 37, 38, 39, 40, 32, 125,
- 41, 34, 0, 43, 0, 32, 33, 0, 45, 0,
- 0, 46, 32, 33, 80, 0, 43, 0, 0, 0,
- 81, 82, 34, 55, 46, 0, 32, 33, 0, 34,
- 32, 33, 126, 127, 118, 42, 34, 43, 0, 0,
- 0, 119, 128, 0, 43, 46, 178, 32, 179, 82,
- 34, 43, 46, 0, 34, 0, 82, 0, 0, 46,
- 32, 33, 0, 42, 0, 43, 0, 80, 0, 43,
- 45, 34, 0, 46, 82, 0, 0, 46, 32, 33,
- 0, 180, 0, 0, 34, 0, 43, 32, 33, 0,
- 0, 82, 0, 0, 46, 0, 0, 0, 0, 43,
- 0, 0, 34, 0, 82, 0, 55, 46, 0, 0,
- 0, 34, 221, 0, 0, 0, 0, 43, 0, 0,
- 0, 0, 82, 0, 0, 46, 43, 0, 0, 0,
- 0, 82, 0, 0, 46, 165, 166, 167, 168, 169,
- 170, 171, 172, 166, 167, 168, 169, 170, 171, 172
+ 19, 20, 21, 22, 23, 208, 34, 209, 120, 120,
+ 218, 32, 33, 64, 215, 239, 240, 219, 24, 42,
+ 25, 43, 26, 221, 229, 243, 222, 45, 223, 46,
+ 247, 250, 227, 251, 228, 34, 230, 32, 33, 35,
+ 36, 37, 38, 39, 40, 231, 232, 41, 65, 233,
+ 43, 234, 235, 262, 66, 236, 45, 244, 46, 32,
+ 33, 34, 241, 267, 268, 35, 36, 37, 38, 39,
+ 40, 242, 245, 41, 42, 246, 43, 248, 252, 249,
+ 44, 253, 45, 34, 46, 32, 33, 35, 36, 37,
+ 38, 39, 40, 254, 258, 41, 42, 259, 43, 255,
+ 261, 263, 264, 55, 45, 265, 46, 266, 269, 34,
+ 32, 33, 64, 35, 36, 37, 38, 39, 40, 197,
+ 270, 41, 42, 77, 43, 78, 137, 0, 76, 0,
+ 45, 0, 46, 260, 34, 32, 33, 0, 35, 36,
+ 37, 38, 39, 40, 0, 0, 41, 65, 0, 43,
+ 0, 32, 33, 0, 0, 45, 0, 46, 0, 34,
+ 0, 0, 0, 35, 36, 37, 38, 39, 40, 32,
+ 125, 41, 42, 0, 43, 34, 32, 33, 0, 0,
+ 45, 0, 46, 32, 33, 0, 0, 0, 80, 0,
+ 43, 0, 0, 34, 81, 55, 82, 0, 46, 0,
+ 34, 32, 33, 126, 127, 118, 42, 34, 43, 0,
+ 32, 179, 119, 0, 128, 43, 46, 32, 33, 0,
+ 80, 82, 43, 46, 0, 34, 32, 33, 82, 0,
+ 46, 0, 0, 0, 34, 178, 0, 0, 0, 0,
+ 43, 34, 32, 33, 180, 0, 82, 0, 46, 43,
+ 34, 32, 33, 0, 0, 82, 43, 46, 0, 0,
+ 0, 186, 82, 0, 46, 43, 34, 0, 0, 0,
+ 55, 82, 0, 46, 0, 34, 220, 0, 0, 0,
+ 0, 43, 0, 0, 0, 0, 0, 82, 0, 46,
+ 43, 0, 0, 0, 0, 0, 82, 0, 46, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 35, 36,
+ 37, 38, 39, 40, 0, 0, 41, 165, 166, 167,
+ 168, 169, 170, 171, 172, 166, 167, 168, 169, 170,
+ 171, 172
};
static const yytype_int16 yycheck[] =
{
10, 10, 13, 13, 6, 13, 10, 9, 11, 65,
- 12, 20, 10, 21, 22, 10, 10, 9, 0, 8,
+ 12, 20, 10, 21, 22, 10, 0, 10, 9, 8,
108, 109, 32, 33, 80, 37, 38, 16, 17, 18,
19, 48, 44, 50, 23, 45, 46, 33, 51, 35,
- 32, 11, 44, 34, 49, 55, 37, 38, 44, 10,
- 11, 12, 55, 44, 54, 64, 66, 66, 53, 53,
- 64, 45, 66, 8, 9, 10, 11, 12, 66, 50,
- 81, 81, 82, 49, 76, 163, 164, 165, 8, 9,
- 168, 169, 170, 171, 172, 52, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 37, 38, 108, 109,
- 156, 14, 15, 52, 114, 115, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 125, 51, 6, 128, 8,
- 9, 209, 210, 51, 51, 7, 52, 8, 9, 139,
- 132, 142, 142, 51, 144, 145, 53, 145, 52, 51,
+ 34, 32, 44, 37, 38, 55, 8, 9, 44, 49,
+ 44, 6, 55, 8, 9, 64, 66, 66, 45, 54,
+ 64, 54, 66, 8, 9, 10, 11, 12, 66, 52,
+ 81, 81, 82, 50, 76, 163, 164, 165, 8, 9,
+ 168, 169, 170, 171, 172, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 10, 11, 12, 108, 109,
+ 156, 49, 32, 53, 114, 115, 36, 37, 38, 39,
+ 40, 41, 37, 38, 44, 125, 53, 47, 128, 51,
+ 208, 209, 51, 53, 51, 55, 14, 15, 11, 139,
+ 132, 142, 142, 53, 144, 145, 54, 145, 51, 53,
51, 51, 51, 51, 133, 147, 148, 149, 150, 151,
- 160, 32, 51, 163, 164, 165, 51, 146, 168, 169,
- 170, 171, 172, 152, 1, 51, 47, 51, 53, 179,
- 37, 52, 52, 54, 55, 34, 13, 14, 15, 16,
+ 160, 51, 51, 163, 164, 165, 51, 146, 168, 169,
+ 170, 171, 172, 152, 1, 51, 51, 7, 37, 179,
+ 54, 53, 8, 9, 34, 53, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 52, 6, 10, 7, 209,
- 210, 53, 8, 9, 10, 53, 216, 217, 45, 53,
- 47, 53, 49, 51, 53, 51, 224, 51, 48, 48,
- 51, 229, 232, 51, 233, 52, 32, 8, 9, 53,
- 36, 37, 38, 39, 40, 41, 37, 52, 44, 45,
- 32, 47, 53, 9, 254, 51, 52, 54, 37, 55,
- 38, 32, 35, 263, 264, 36, 37, 38, 39, 40,
- 41, 8, 9, 44, 45, 10, 47, 53, 53, 9,
- 51, 52, 10, 32, 55, 53, 36, 37, 38, 39,
- 40, 41, 8, 9, 44, 32, 10, 153, 32, 36,
- 37, 38, 39, 40, 41, 53, 53, 44, 45, 53,
- 47, 12, 12, 66, 228, 52, 32, 54, 55, -1,
- 36, 37, 38, 39, 40, 41, -1, -1, 44, 45,
- -1, 47, 8, 9, 10, 51, 52, -1, -1, 55,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- -1, -1, -1, 8, 9, -1, 32, -1, -1, -1,
- 36, 37, 38, 39, 40, 41, -1, -1, 44, 45,
- -1, 47, -1, -1, 8, 9, 52, 32, -1, 55,
- -1, 36, 37, 38, 39, 40, 41, 8, 9, 44,
- 45, -1, 47, -1, -1, -1, -1, 52, 32, -1,
- 55, -1, 36, 37, 38, 39, 40, 41, 8, 9,
- 44, 32, -1, 47, -1, 8, 9, -1, 52, -1,
- -1, 55, 8, 9, 45, -1, 47, -1, -1, -1,
- 51, 52, 32, 54, 55, -1, 8, 9, -1, 32,
- 8, 9, 42, 43, 37, 45, 32, 47, -1, -1,
- -1, 44, 52, -1, 47, 55, 42, 8, 9, 52,
- 32, 47, 55, -1, 32, -1, 52, -1, -1, 55,
- 8, 9, -1, 45, -1, 47, -1, 45, -1, 47,
- 52, 32, -1, 55, 52, -1, -1, 55, 8, 9,
- -1, 42, -1, -1, 32, -1, 47, 8, 9, -1,
- -1, 52, -1, -1, 55, -1, -1, -1, -1, 47,
- -1, -1, 32, -1, 52, -1, 54, 55, -1, -1,
- -1, 32, 42, -1, -1, -1, -1, 47, -1, -1,
- -1, -1, 52, -1, -1, 55, 47, -1, -1, -1,
- -1, 52, -1, -1, 55, 5, 6, 7, 8, 9,
- 10, 11, 12, 6, 7, 8, 9, 10, 11, 12
+ 27, 28, 29, 30, 31, 6, 32, 7, 208, 209,
+ 54, 8, 9, 10, 10, 215, 216, 54, 45, 45,
+ 47, 47, 49, 54, 48, 223, 54, 53, 51, 55,
+ 228, 231, 51, 232, 51, 32, 48, 8, 9, 36,
+ 37, 38, 39, 40, 41, 51, 51, 44, 45, 53,
+ 47, 54, 54, 253, 51, 37, 53, 32, 55, 8,
+ 9, 32, 53, 263, 264, 36, 37, 38, 39, 40,
+ 41, 54, 9, 44, 45, 52, 47, 37, 35, 38,
+ 51, 10, 53, 32, 55, 8, 9, 36, 37, 38,
+ 39, 40, 41, 54, 9, 44, 45, 32, 47, 54,
+ 54, 10, 10, 52, 53, 32, 55, 54, 54, 32,
+ 8, 9, 10, 36, 37, 38, 39, 40, 41, 153,
+ 54, 44, 45, 12, 47, 12, 66, -1, 51, -1,
+ 53, -1, 55, 246, 32, 8, 9, -1, 36, 37,
+ 38, 39, 40, 41, -1, -1, 44, 45, -1, 47,
+ -1, 8, 9, -1, -1, 53, -1, 55, -1, 32,
+ -1, -1, -1, 36, 37, 38, 39, 40, 41, 8,
+ 9, 44, 45, -1, 47, 32, 8, 9, -1, -1,
+ 53, -1, 55, 8, 9, -1, -1, -1, 45, -1,
+ 47, -1, -1, 32, 51, 52, 53, -1, 55, -1,
+ 32, 8, 9, 42, 43, 37, 45, 32, 47, -1,
+ 8, 9, 44, -1, 53, 47, 55, 8, 9, -1,
+ 45, 53, 47, 55, -1, 32, 8, 9, 53, -1,
+ 55, -1, -1, -1, 32, 42, -1, -1, -1, -1,
+ 47, 32, 8, 9, 42, -1, 53, -1, 55, 47,
+ 32, 8, 9, -1, -1, 53, 47, 55, -1, -1,
+ -1, 52, 53, -1, 55, 47, 32, -1, -1, -1,
+ 52, 53, -1, 55, -1, 32, 42, -1, -1, -1,
+ -1, 47, -1, -1, -1, -1, -1, 53, -1, 55,
+ 47, -1, -1, -1, -1, -1, 53, -1, 55, 3,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 36, 37,
+ 38, 39, 40, 41, -1, -1, 44, 5, 6, 7,
+ 8, 9, 10, 11, 12, 6, 7, 8, 9, 10,
+ 11, 12
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 45, 47, 49, 59, 61, 49,
51, 62, 8, 9, 32, 36, 37, 38, 39, 40,
- 41, 44, 45, 47, 51, 52, 55, 66, 81, 85,
- 88, 89, 90, 91, 94, 54, 65, 81, 83, 87,
+ 41, 44, 45, 47, 51, 53, 55, 66, 81, 85,
+ 87, 88, 89, 90, 93, 52, 65, 81, 83, 86,
63, 83, 64, 81, 10, 45, 51, 70, 82, 84,
- 85, 89, 90, 94, 68, 91, 51, 62, 66, 71,
- 45, 51, 52, 67, 84, 87, 94, 69, 88, 78,
- 88, 79, 83, 72, 83, 73, 83, 74, 83, 75,
- 85, 76, 87, 77, 87, 80, 83, 48, 50, 50,
- 49, 94, 94, 6, 8, 9, 92, 81, 37, 44,
- 94, 96, 94, 52, 52, 9, 42, 43, 52, 91,
- 94, 51, 51, 51, 85, 89, 92, 82, 52, 11,
- 92, 84, 51, 52, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 60, 96, 96, 7, 94, 94, 52,
- 10, 53, 53, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 53, 37, 37, 38, 44, 42, 9,
- 42, 81, 83, 34, 94, 84, 54, 86, 94, 87,
- 94, 83, 81, 81, 81, 81, 81, 83, 59, 92,
- 33, 35, 44, 93, 94, 52, 96, 96, 96, 6,
- 7, 96, 96, 96, 96, 96, 10, 10, 53, 53,
- 53, 42, 53, 53, 51, 9, 32, 95, 51, 51,
- 48, 48, 51, 51, 52, 53, 53, 37, 96, 96,
- 94, 94, 52, 53, 87, 32, 9, 86, 87, 37,
- 38, 94, 85, 35, 10, 53, 53, 37, 38, 9,
- 32, 53, 94, 10, 10, 32, 53, 94, 94, 53,
- 53
+ 85, 88, 89, 93, 68, 90, 51, 62, 66, 71,
+ 45, 51, 53, 67, 84, 86, 93, 69, 87, 78,
+ 87, 79, 83, 72, 83, 73, 83, 74, 83, 75,
+ 85, 76, 86, 77, 86, 80, 83, 48, 50, 50,
+ 49, 93, 93, 6, 8, 9, 91, 81, 37, 44,
+ 93, 95, 93, 53, 53, 9, 42, 43, 53, 90,
+ 93, 51, 51, 51, 85, 88, 91, 82, 53, 11,
+ 91, 84, 51, 53, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 60, 95, 95, 7, 93, 93, 53,
+ 10, 54, 54, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, 54, 37, 37, 38, 44, 42, 9,
+ 42, 81, 83, 34, 93, 84, 52, 93, 86, 93,
+ 83, 81, 81, 81, 81, 81, 83, 59, 91, 33,
+ 35, 44, 92, 93, 53, 95, 95, 95, 6, 7,
+ 95, 95, 95, 95, 95, 10, 10, 54, 54, 54,
+ 42, 54, 54, 51, 9, 32, 94, 51, 51, 48,
+ 48, 51, 51, 53, 54, 54, 37, 95, 95, 93,
+ 93, 53, 54, 86, 32, 9, 52, 86, 37, 38,
+ 93, 85, 35, 10, 54, 54, 37, 38, 9, 32,
+ 94, 54, 93, 10, 10, 32, 54, 93, 93, 54,
+ 54
};
#define yyerrok (yyerrstatus = 0)
case 43:
#line 195 "a.y"
{
- settext((yyvsp[(1) - (3)].addr).sym);
- (yyval.addr2).from = (yyvsp[(1) - (3)].addr);
- (yyval.addr2).to = (yyvsp[(3) - (3)].addr);
+ settext((yyvsp[(1) - (4)].addr).sym);
+ (yyval.addr2).from = (yyvsp[(1) - (4)].addr);
+ (yyval.addr2).to = (yyvsp[(4) - (4)].addr);
}
break;
case 44:
#line 201 "a.y"
{
- settext((yyvsp[(1) - (5)].addr).sym);
- (yyval.addr2).from = (yyvsp[(1) - (5)].addr);
- (yyval.addr2).from.scale = (yyvsp[(3) - (5)].lval);
- (yyval.addr2).to = (yyvsp[(5) - (5)].addr);
+ settext((yyvsp[(1) - (6)].addr).sym);
+ (yyval.addr2).from = (yyvsp[(1) - (6)].addr);
+ (yyval.addr2).from.scale = (yyvsp[(3) - (6)].lval);
+ (yyval.addr2).to = (yyvsp[(6) - (6)].addr);
}
break;
break;
case 83:
-#line 417 "a.y"
+#line 418 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_CONST;
break;
case 84:
-#line 425 "a.y"
- {
- (yyval.addr) = nullgen;
- (yyval.addr).type = TYPE_CONST;
- (yyval.addr).offset = (yyvsp[(2) - (2)].lval);
- }
- break;
-
- case 85:
-#line 431 "a.y"
+#line 424 "a.y"
{
(yyval.addr) = (yyvsp[(2) - (2)].addr);
(yyval.addr).type = TYPE_ADDR;
}
break;
- case 86:
-#line 441 "a.y"
+ case 85:
+#line 434 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_SCONST;
}
break;
- case 87:
-#line 447 "a.y"
+ case 86:
+#line 440 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_FCONST;
}
break;
- case 88:
-#line 453 "a.y"
+ case 87:
+#line 446 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_FCONST;
}
break;
- case 89:
-#line 459 "a.y"
+ case 88:
+#line 452 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_FCONST;
}
break;
- case 90:
-#line 465 "a.y"
+ case 89:
+#line 458 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_FCONST;
}
break;
- case 93:
-#line 477 "a.y"
+ case 92:
+#line 470 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 94:
-#line 483 "a.y"
+ case 93:
+#line 476 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 95:
-#line 490 "a.y"
+ case 94:
+#line 483 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 96:
-#line 497 "a.y"
+ case 95:
+#line 490 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 97:
-#line 504 "a.y"
+ case 96:
+#line 497 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 98:
-#line 513 "a.y"
+ case 97:
+#line 506 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 99:
-#line 523 "a.y"
+ case 98:
+#line 516 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 100:
-#line 533 "a.y"
+ case 99:
+#line 526 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 101:
-#line 539 "a.y"
+ case 100:
+#line 532 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 102:
-#line 545 "a.y"
+ case 101:
+#line 538 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 103:
-#line 553 "a.y"
+ case 102:
+#line 546 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 104:
-#line 564 "a.y"
+ case 103:
+#line 557 "a.y"
{
(yyval.addr) = (yyvsp[(1) - (1)].addr);
}
break;
- case 105:
-#line 568 "a.y"
+ case 104:
+#line 561 "a.y"
{
(yyval.addr) = (yyvsp[(1) - (6)].addr);
(yyval.addr).index = (yyvsp[(3) - (6)].lval);
}
break;
- case 106:
-#line 577 "a.y"
+ case 105:
+#line 570 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 107:
-#line 585 "a.y"
+ case 106:
+#line 578 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 108:
-#line 594 "a.y"
+ case 107:
+#line 587 "a.y"
{
(yyval.lval) = 0;
}
break;
- case 109:
-#line 598 "a.y"
+ case 108:
+#line 591 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 110:
-#line 602 "a.y"
+ case 109:
+#line 595 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 112:
-#line 609 "a.y"
+ case 111:
+#line 602 "a.y"
{
(yyval.lval) = NAME_AUTO;
}
break;
- case 115:
-#line 617 "a.y"
+ case 114:
+#line 610 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (1)].sym)->value;
}
break;
- case 116:
-#line 621 "a.y"
+ case 115:
+#line 614 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 117:
-#line 625 "a.y"
+ case 116:
+#line 618 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 118:
-#line 629 "a.y"
+ case 117:
+#line 622 "a.y"
{
(yyval.lval) = ~(yyvsp[(2) - (2)].lval);
}
break;
- case 119:
-#line 633 "a.y"
+ case 118:
+#line 626 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (3)].lval);
}
break;
- case 120:
-#line 639 "a.y"
+ case 119:
+#line 632 "a.y"
{
- (yyval.lval) = ((yyvsp[(1) - (1)].lval) & 0xffffffffLL) +
- ((vlong)ArgsSizeUnknown << 32);
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = (yyvsp[(1) - (1)].lval);
+ (yyval.addr).u.argsize = ArgsSizeUnknown;
}
break;
- case 121:
-#line 644 "a.y"
+ case 120:
+#line 638 "a.y"
{
- (yyval.lval) = (-(yyvsp[(2) - (2)].lval) & 0xffffffffLL) +
- ((vlong)ArgsSizeUnknown << 32);
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = -(yyvsp[(2) - (2)].lval);
+ (yyval.addr).u.argsize = ArgsSizeUnknown;
}
break;
- case 122:
-#line 649 "a.y"
+ case 121:
+#line 644 "a.y"
{
- (yyval.lval) = ((yyvsp[(1) - (3)].lval) & 0xffffffffLL) +
- (((yyvsp[(3) - (3)].lval) & 0xffffLL) << 32);
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = (yyvsp[(1) - (3)].lval);
+ (yyval.addr).u.argsize = (yyvsp[(3) - (3)].lval);
}
break;
- case 123:
-#line 654 "a.y"
+ case 122:
+#line 650 "a.y"
{
- (yyval.lval) = (-(yyvsp[(2) - (4)].lval) & 0xffffffffLL) +
- (((yyvsp[(4) - (4)].lval) & 0xffffLL) << 32);
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = -(yyvsp[(2) - (4)].lval);
+ (yyval.addr).u.argsize = (yyvsp[(4) - (4)].lval);
}
break;
- case 125:
-#line 662 "a.y"
+ case 124:
+#line 659 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval);
}
break;
- case 126:
-#line 666 "a.y"
+ case 125:
+#line 663 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval);
}
break;
- case 127:
-#line 670 "a.y"
+ case 126:
+#line 667 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval);
}
break;
- case 128:
-#line 674 "a.y"
+ case 127:
+#line 671 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval);
}
break;
- case 129:
-#line 678 "a.y"
+ case 128:
+#line 675 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval);
}
break;
- case 130:
-#line 682 "a.y"
+ case 129:
+#line 679 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval);
}
break;
- case 131:
-#line 686 "a.y"
+ case 130:
+#line 683 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval);
}
break;
- case 132:
-#line 690 "a.y"
+ case 131:
+#line 687 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval);
}
break;
- case 133:
-#line 694 "a.y"
+ case 132:
+#line 691 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval);
}
break;
- case 134:
-#line 698 "a.y"
+ case 133:
+#line 695 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval);
}
/* Line 1267 of yacc.c. */
-#line 2588 "y.tab.c"
+#line 2578 "y.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
NodeList *l;
Node *n;
- // fill in argument size
- ptxt->to.offset = rnd(curfn->type->argwid, widthptr);
-
- // fill in final stack size
- ptxt->to.offset <<= 32;
+ // fill in argument size, stack size
+ ptxt->to.type = TYPE_TEXTSIZE;
+ ptxt->to.u.argsize = rnd(curfn->type->argwid, widthptr);
frame = rnd(stksize+maxarg, widthreg);
- ptxt->to.offset |= frame;
+ ptxt->to.offset = frame;
// insert code to zero ambiguously live variables
// so that the garbage collector only sees initialized values
%union {
Sym *sym;
int32 lval;
- struct {
- int32 v1;
- int32 v2;
- } con2;
double dval;
char sval[8];
Addr addr;
%token <sval> LSCONST LSP
%token <sym> LNAME LLAB LVAR
%type <lval> con expr pointer offset
-%type <con2> con2
-%type <addr> mem imm imm2 reg nam rel rem rim rom omem nmem
+%type <addr> mem imm reg nam rel rem rim rom omem nmem textsize
%type <addr2> nonnon nonrel nonrem rimnon rimrem remrim
%type <addr2> spec1 spec2 spec3 spec4 spec5 spec6 spec7 spec8 spec9 spec10 spec11 spec12
%%
}
spec2: /* TEXT */
- mem ',' imm2
+ mem ',' '$' textsize
{
settext($1.sym);
$$.from = $1;
- $$.to = $3;
+ $$.to = $4;
}
-| mem ',' con ',' imm2
+| mem ',' con ',' '$' textsize
{
settext($1.sym);
$$.from = $1;
$$.from.scale = $3;
- $$.to = $5;
+ $$.to = $6;
}
spec3: /* JMP/CALL */
$$.u.dval = -$3;
}
-imm2:
- '$' con2
- {
- $$ = nullgen;
- $$.type = TYPE_TEXTSIZE;
- $$.offset = $2.v1;
- $$.u.argsize = $2.v2;
- }
-
-con2:
+textsize:
LCONST
{
- $$.v1 = $1;
- $$.v2 = ArgsSizeUnknown;
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = $1;
+ $$.u.argsize = ArgsSizeUnknown;
}
| '-' LCONST
{
- $$.v1 = -$2;
- $$.v2 = ArgsSizeUnknown;
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = -$2;
+ $$.u.argsize = ArgsSizeUnknown;
}
| LCONST '-' LCONST
{
- $$.v1 = $1;
- $$.v2 = $3;
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = $1;
+ $$.u.argsize = $3;
}
| '-' LCONST '-' LCONST
{
- $$.v1 = -$2;
- $$.v2 = $4;
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = -$2;
+ $$.u.argsize = $4;
}
mem:
{
Sym *sym;
int32 lval;
- struct {
- int32 v1;
- int32 v2;
- } con2;
double dval;
char sval[8];
Addr addr;
Addr2 addr2;
}
/* Line 193 of yacc.c. */
-#line 187 "y.tab.c"
+#line 183 "y.tab.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
/* Line 216 of yacc.c. */
-#line 200 "y.tab.c"
+#line 196 "y.tab.c"
#ifdef short
# undef short
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 561
+#define YYLAST 544
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 54
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 40
+#define YYNNTS 39
/* YYNRULES -- Number of rules. */
-#define YYNRULES 132
+#define YYNRULES 131
/* YYNRULES -- Number of states. */
#define YYNSTATES 270
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, 52, 12, 5, 2,
- 50, 51, 10, 8, 49, 9, 2, 11, 2, 2,
+ 2, 2, 2, 2, 2, 2, 50, 12, 5, 2,
+ 51, 52, 10, 8, 49, 9, 2, 11, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 46, 47,
6, 48, 7, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
23, 27, 31, 34, 37, 40, 43, 46, 49, 52,
55, 58, 61, 64, 67, 70, 73, 76, 79, 82,
85, 86, 88, 92, 96, 99, 101, 104, 106, 109,
- 111, 115, 121, 125, 131, 134, 136, 139, 141, 143,
- 147, 153, 157, 163, 166, 168, 172, 176, 182, 188,
- 194, 198, 202, 204, 206, 208, 210, 213, 216, 218,
- 220, 222, 224, 226, 231, 234, 236, 238, 240, 242,
- 244, 246, 249, 252, 255, 258, 263, 269, 273, 276,
- 278, 281, 285, 290, 292, 294, 296, 301, 306, 313,
- 323, 333, 337, 341, 346, 352, 361, 363, 370, 376,
- 384, 385, 388, 391, 393, 395, 397, 399, 401, 404,
- 407, 410, 414, 416, 420, 424, 428, 432, 436, 441,
- 446, 450, 454
+ 111, 115, 121, 126, 133, 136, 138, 141, 143, 145,
+ 149, 155, 159, 165, 168, 170, 174, 178, 184, 190,
+ 196, 200, 204, 206, 208, 210, 212, 215, 218, 220,
+ 222, 224, 226, 228, 233, 236, 238, 240, 242, 244,
+ 246, 248, 251, 254, 257, 260, 265, 271, 275, 277,
+ 280, 284, 289, 291, 293, 295, 300, 305, 312, 322,
+ 332, 336, 340, 345, 351, 360, 362, 369, 375, 383,
+ 384, 387, 390, 392, 394, 396, 398, 400, 403, 406,
+ 409, 413, 415, 419, 423, 427, 431, 435, 440, 445,
+ 449, 453
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
{
55, 0, -1, -1, -1, 55, 56, 57, -1, -1,
43, 46, 58, 57, -1, 47, -1, 59, 47, -1,
- 1, 47, -1, 43, 48, 93, -1, 45, 48, 93,
+ 1, 47, -1, 43, 48, 92, -1, 45, 48, 92,
-1, 13, 60, -1, 14, 64, -1, 15, 63, -1,
16, 61, -1, 17, 62, -1, 21, 65, -1, 19,
66, -1, 22, 67, -1, 18, 68, -1, 20, 69,
76, -1, 30, 77, -1, -1, 49, -1, 80, 49,
78, -1, 78, 49, 80, -1, 80, 49, -1, 80,
-1, 49, 78, -1, 78, -1, 49, 81, -1, 81,
- -1, 83, 49, 81, -1, 89, 11, 92, 49, 83,
- -1, 86, 49, 84, -1, 86, 49, 92, 49, 84,
- -1, 49, 79, -1, 79, -1, 10, 89, -1, 60,
- -1, 64, -1, 80, 49, 78, -1, 80, 49, 78,
- 46, 36, -1, 80, 49, 78, -1, 80, 49, 78,
- 46, 37, -1, 80, 49, -1, 80, -1, 80, 49,
- 78, -1, 86, 49, 83, -1, 86, 49, 92, 49,
- 83, -1, 82, 49, 78, 49, 92, -1, 83, 49,
- 78, 49, 82, -1, 80, 49, 80, -1, 80, 49,
- 80, -1, 82, -1, 86, -1, 81, -1, 88, -1,
- 10, 82, -1, 10, 87, -1, 82, -1, 87, -1,
- 83, -1, 78, -1, 83, -1, 92, 50, 33, 51,
- -1, 43, 90, -1, 35, -1, 38, -1, 36, -1,
- 39, -1, 42, -1, 37, -1, 52, 92, -1, 52,
- 89, -1, 52, 41, -1, 52, 40, -1, 52, 50,
- 40, 51, -1, 52, 50, 9, 40, 51, -1, 52,
- 9, 40, -1, 52, 85, -1, 31, -1, 9, 31,
- -1, 31, 9, 31, -1, 9, 31, 9, 31, -1,
- 87, -1, 88, -1, 92, -1, 92, 50, 36, 51,
- -1, 92, 50, 42, 51, -1, 92, 50, 36, 10,
- 92, 51, -1, 92, 50, 36, 51, 50, 36, 10,
- 92, 51, -1, 92, 50, 36, 51, 50, 37, 10,
- 92, 51, -1, 50, 36, 51, -1, 50, 42, 51,
- -1, 92, 50, 37, 51, -1, 50, 36, 10, 92,
- 51, -1, 50, 36, 51, 50, 36, 10, 92, 51,
- -1, 89, -1, 89, 50, 36, 10, 92, 51, -1,
- 43, 90, 50, 91, 51, -1, 43, 6, 7, 90,
- 50, 34, 51, -1, -1, 8, 92, -1, 9, 92,
- -1, 34, -1, 42, -1, 32, -1, 31, -1, 45,
- -1, 9, 92, -1, 8, 92, -1, 53, 92, -1,
- 50, 93, 51, -1, 92, -1, 93, 8, 93, -1,
- 93, 9, 93, -1, 93, 10, 93, -1, 93, 11,
- 93, -1, 93, 12, 93, -1, 93, 6, 6, 93,
- -1, 93, 7, 7, 93, -1, 93, 5, 93, -1,
- 93, 4, 93, -1, 93, 3, 93, -1
+ -1, 83, 49, 81, -1, 88, 11, 91, 49, 83,
+ -1, 85, 49, 50, 84, -1, 85, 49, 91, 49,
+ 50, 84, -1, 49, 79, -1, 79, -1, 10, 88,
+ -1, 60, -1, 64, -1, 80, 49, 78, -1, 80,
+ 49, 78, 46, 36, -1, 80, 49, 78, -1, 80,
+ 49, 78, 46, 37, -1, 80, 49, -1, 80, -1,
+ 80, 49, 78, -1, 85, 49, 83, -1, 85, 49,
+ 91, 49, 83, -1, 82, 49, 78, 49, 91, -1,
+ 83, 49, 78, 49, 82, -1, 80, 49, 80, -1,
+ 80, 49, 80, -1, 82, -1, 85, -1, 81, -1,
+ 87, -1, 10, 82, -1, 10, 86, -1, 82, -1,
+ 86, -1, 83, -1, 78, -1, 83, -1, 91, 51,
+ 33, 52, -1, 43, 89, -1, 35, -1, 38, -1,
+ 36, -1, 39, -1, 42, -1, 37, -1, 50, 91,
+ -1, 50, 88, -1, 50, 41, -1, 50, 40, -1,
+ 50, 51, 40, 52, -1, 50, 51, 9, 40, 52,
+ -1, 50, 9, 40, -1, 31, -1, 9, 31, -1,
+ 31, 9, 31, -1, 9, 31, 9, 31, -1, 86,
+ -1, 87, -1, 91, -1, 91, 51, 36, 52, -1,
+ 91, 51, 42, 52, -1, 91, 51, 36, 10, 91,
+ 52, -1, 91, 51, 36, 52, 51, 36, 10, 91,
+ 52, -1, 91, 51, 36, 52, 51, 37, 10, 91,
+ 52, -1, 51, 36, 52, -1, 51, 42, 52, -1,
+ 91, 51, 37, 52, -1, 51, 36, 10, 91, 52,
+ -1, 51, 36, 52, 51, 36, 10, 91, 52, -1,
+ 88, -1, 88, 51, 36, 10, 91, 52, -1, 43,
+ 89, 51, 90, 52, -1, 43, 6, 7, 89, 51,
+ 34, 52, -1, -1, 8, 91, -1, 9, 91, -1,
+ 34, -1, 42, -1, 32, -1, 31, -1, 45, -1,
+ 9, 91, -1, 8, 91, -1, 53, 91, -1, 51,
+ 92, 52, -1, 91, -1, 92, 8, 92, -1, 92,
+ 9, 92, -1, 92, 10, 92, -1, 92, 11, 92,
+ -1, 92, 12, 92, -1, 92, 6, 6, 92, -1,
+ 92, 7, 7, 92, -1, 92, 5, 92, -1, 92,
+ 4, 92, -1, 92, 3, 92, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 69, 69, 71, 70, 78, 77, 86, 87, 88,
- 91, 96, 102, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 122, 126, 133, 140, 147, 152, 159, 164, 171, 176,
- 181, 188, 196, 202, 211, 216, 221, 229, 230, 233,
- 238, 248, 253, 263, 268, 273, 280, 285, 293, 301,
- 311, 320, 331, 332, 335, 336, 337, 341, 345, 346,
- 347, 350, 351, 354, 360, 371, 377, 383, 389, 395,
- 401, 409, 415, 425, 431, 437, 443, 449, 457, 466,
- 471, 476, 481, 488, 489, 492, 499, 506, 513, 523,
- 533, 543, 549, 555, 562, 571, 582, 586, 595, 603,
- 613, 616, 620, 626, 627, 631, 634, 635, 639, 643,
- 647, 651, 657, 658, 662, 666, 670, 674, 678, 682,
- 686, 690, 694
+ 0, 64, 64, 66, 65, 73, 72, 81, 82, 83,
+ 86, 91, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 117, 121, 128, 135, 142, 147, 154, 159, 166, 171,
+ 176, 183, 191, 197, 206, 211, 216, 224, 225, 228,
+ 233, 243, 248, 258, 263, 268, 275, 280, 288, 296,
+ 306, 315, 326, 327, 330, 331, 332, 336, 340, 341,
+ 342, 345, 346, 349, 355, 366, 372, 378, 384, 390,
+ 396, 404, 410, 420, 426, 432, 438, 444, 452, 458,
+ 464, 470, 478, 479, 482, 489, 496, 503, 513, 523,
+ 533, 539, 545, 552, 561, 572, 576, 585, 593, 603,
+ 606, 610, 616, 617, 621, 624, 625, 629, 633, 637,
+ 641, 647, 648, 652, 656, 660, 664, 668, 672, 676,
+ 680, 684
};
#endif
"LTYPEM", "LTYPEI", "LTYPEG", "LTYPEXC", "LTYPEX", "LTYPEPC", "LTYPEF",
"LCONST", "LFP", "LPC", "LSB", "LBREG", "LLREG", "LSREG", "LFREG",
"LXREG", "LFCONST", "LSCONST", "LSP", "LNAME", "LLAB", "LVAR", "':'",
- "';'", "'='", "','", "'('", "')'", "'$'", "'~'", "$accept", "prog", "@1",
+ "';'", "'='", "','", "'$'", "'('", "')'", "'~'", "$accept", "prog", "@1",
"line", "@2", "inst", "nonnon", "rimrem", "remrim", "rimnon", "nonrem",
"nonrel", "spec1", "spec2", "spec3", "spec4", "spec5", "spec6", "spec7",
"spec8", "spec9", "spec10", "spec11", "spec12", "rem", "rom", "rim",
- "rel", "reg", "imm", "imm2", "con2", "mem", "omem", "nmem", "nam",
- "offset", "pointer", "con", "expr", 0
+ "rel", "reg", "imm", "textsize", "mem", "omem", "nmem", "nam", "offset",
+ "pointer", "con", "expr", 0
};
#endif
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, 58, 59, 61, 44,
- 40, 41, 36, 126
+ 36, 40, 41, 126
};
# endif
70, 71, 71, 72, 72, 72, 73, 73, 74, 75,
76, 77, 78, 78, 79, 79, 79, 79, 79, 79,
79, 80, 80, 81, 81, 82, 82, 82, 82, 82,
- 82, 83, 83, 83, 83, 83, 83, 83, 84, 85,
- 85, 85, 85, 86, 86, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 88, 88, 89, 89,
- 90, 90, 90, 91, 91, 91, 92, 92, 92, 92,
- 92, 92, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93
+ 82, 83, 83, 83, 83, 83, 83, 83, 84, 84,
+ 84, 84, 85, 85, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 87, 87, 88, 88, 89,
+ 89, 89, 90, 90, 90, 91, 91, 91, 91, 91,
+ 91, 92, 92, 92, 92, 92, 92, 92, 92, 92,
+ 92, 92
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
3, 3, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
0, 1, 3, 3, 2, 1, 2, 1, 2, 1,
- 3, 5, 3, 5, 2, 1, 2, 1, 1, 3,
+ 3, 5, 4, 6, 2, 1, 2, 1, 1, 3,
5, 3, 5, 2, 1, 3, 3, 5, 5, 5,
3, 3, 1, 1, 1, 1, 2, 2, 1, 1,
1, 1, 1, 4, 2, 1, 1, 1, 1, 1,
- 1, 2, 2, 2, 2, 4, 5, 3, 2, 1,
- 2, 3, 4, 1, 1, 1, 4, 4, 6, 9,
- 9, 3, 3, 4, 5, 8, 1, 6, 5, 7,
- 0, 2, 2, 1, 1, 1, 1, 1, 2, 2,
- 2, 3, 1, 3, 3, 3, 3, 3, 4, 4,
- 3, 3, 3
+ 1, 2, 2, 2, 2, 4, 5, 3, 1, 2,
+ 3, 4, 1, 1, 1, 4, 4, 6, 9, 9,
+ 3, 3, 4, 5, 8, 1, 6, 5, 7, 0,
+ 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+ 3, 1, 3, 3, 3, 3, 3, 4, 4, 3,
+ 3, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
2, 3, 1, 0, 0, 30, 0, 0, 0, 0,
0, 0, 30, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 7, 4, 0, 9, 31,
- 12, 0, 0, 116, 75, 77, 80, 76, 78, 79,
- 110, 117, 0, 0, 0, 13, 37, 62, 63, 93,
- 94, 106, 95, 0, 14, 71, 35, 72, 15, 0,
- 16, 0, 0, 110, 0, 20, 45, 64, 68, 70,
- 69, 65, 95, 18, 0, 31, 47, 48, 21, 110,
+ 12, 0, 0, 115, 75, 77, 80, 76, 78, 79,
+ 109, 116, 0, 0, 0, 13, 37, 62, 63, 92,
+ 93, 105, 94, 0, 14, 71, 35, 72, 15, 0,
+ 16, 0, 0, 109, 0, 20, 45, 64, 68, 70,
+ 69, 65, 94, 18, 0, 31, 47, 48, 21, 109,
0, 0, 17, 39, 0, 0, 19, 0, 22, 0,
23, 0, 24, 54, 25, 0, 26, 0, 27, 0,
- 28, 0, 29, 0, 5, 0, 0, 8, 119, 118,
- 0, 0, 0, 0, 36, 0, 0, 122, 0, 120,
+ 28, 0, 29, 0, 5, 0, 0, 8, 118, 117,
+ 0, 0, 0, 0, 36, 0, 0, 121, 0, 119,
0, 0, 0, 84, 83, 0, 82, 81, 34, 0,
0, 66, 67, 46, 74, 0, 44, 0, 0, 74,
38, 0, 0, 0, 0, 0, 53, 0, 0, 0,
- 0, 0, 0, 10, 11, 110, 111, 112, 0, 0,
- 101, 102, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 121, 0, 0, 0, 0, 87, 0, 0,
- 32, 33, 0, 0, 40, 0, 42, 0, 49, 51,
- 55, 56, 0, 0, 0, 60, 61, 6, 0, 115,
- 113, 114, 0, 0, 0, 132, 131, 130, 0, 0,
- 123, 124, 125, 126, 127, 0, 0, 96, 103, 97,
- 0, 85, 73, 0, 0, 89, 88, 0, 0, 0,
- 0, 0, 0, 0, 108, 104, 0, 128, 129, 0,
- 0, 0, 86, 41, 90, 0, 43, 50, 52, 57,
- 58, 59, 0, 0, 107, 98, 0, 0, 0, 91,
- 109, 0, 0, 0, 92, 105, 0, 0, 99, 100
+ 0, 0, 0, 10, 11, 109, 110, 111, 0, 0,
+ 100, 101, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 120, 0, 0, 0, 0, 87, 0, 0,
+ 32, 33, 0, 0, 40, 0, 0, 49, 51, 55,
+ 56, 0, 0, 0, 60, 61, 6, 0, 114, 112,
+ 113, 0, 0, 0, 131, 130, 129, 0, 0, 122,
+ 123, 124, 125, 126, 0, 0, 95, 102, 96, 0,
+ 85, 73, 0, 0, 88, 42, 0, 0, 0, 0,
+ 0, 0, 0, 107, 103, 0, 127, 128, 0, 0,
+ 0, 86, 41, 89, 0, 0, 50, 52, 57, 58,
+ 59, 0, 0, 106, 97, 0, 0, 0, 90, 43,
+ 108, 0, 0, 0, 91, 104, 0, 0, 98, 99
};
/* YYDEFGOTO[NTERM-NUM]. */
-1, 1, 3, 26, 152, 27, 30, 58, 60, 54,
45, 82, 73, 86, 65, 78, 88, 90, 92, 94,
96, 98, 100, 102, 55, 66, 56, 67, 47, 57,
- 186, 226, 48, 49, 50, 51, 113, 202, 52, 118
+ 225, 48, 49, 50, 51, 113, 201, 52, 118
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
#define YYPACT_NINF -89
static const yytype_int16 yypact[] =
{
- -89, 8, -89, 211, -33, -23, 288, 308, 308, 360,
- 236, -11, 340, 54, 41, 308, 308, 308, 41, 106,
- -13, 308, 308, 62, -4, -89, -89, 45, -89, -89,
- -89, 484, 484, -89, -89, -89, -89, -89, -89, -89,
- 81, -89, 360, 413, 484, -89, -89, -89, -89, -89,
- -89, 38, 48, 407, -89, -89, -2, -89, -89, 64,
- -89, 78, 360, 81, 256, -89, -89, -89, -89, -89,
- -89, -89, 61, -89, 107, 360, -89, -89, -89, 59,
- 431, 484, -89, -89, 86, 79, -89, 87, -89, 89,
- -89, 91, -89, 97, -89, 102, -89, 116, -89, 120,
- -89, 148, -89, 151, -89, 484, 484, -89, -89, -89,
- 123, 484, 484, 105, -89, 1, 150, -89, 169, -89,
- 166, 9, 69, -89, -89, 456, -89, -89, -89, 360,
- 308, -89, -89, -89, 105, 392, -89, -17, 484, -89,
- -89, 431, 170, 460, 360, 360, 360, 469, 360, 360,
- 308, 308, 211, 179, 179, 59, -89, -89, 6, 484,
- 154, -89, 484, 484, 484, 201, 149, 484, 484, 484,
- 484, 484, -89, 198, 13, 158, 159, -89, 480, 160,
- -89, -89, 162, 165, -89, 0, -89, 167, 171, 172,
- -89, -89, 193, 199, 200, -89, -89, -89, 197, -89,
- -89, -89, 168, 204, 214, 534, 542, 549, 484, 484,
- 113, 113, -89, -89, -89, 484, 484, 207, -89, -89,
- 208, -89, -89, -13, 220, 251, -89, 209, 226, 231,
- -13, 484, 106, 229, -89, -89, 259, 184, 184, 219,
- 225, 80, -89, -89, 268, 249, -89, -89, -89, -89,
- -89, -89, 232, 484, -89, -89, 272, 274, 269, -89,
- -89, 239, 484, 484, -89, -89, 252, 253, -89, -89
+ -89, 8, -89, 211, -36, -35, 164, 283, 283, 331,
+ 235, 9, 307, 41, 409, 283, 283, 283, 409, 502,
+ -18, 283, 283, 60, 30, -89, -89, 21, -89, -89,
+ -89, 466, 466, -89, -89, -89, -89, -89, -89, -89,
+ 79, -89, 331, 394, 466, -89, -89, -89, -89, -89,
+ -89, 38, 46, 370, -89, -89, 58, -89, -89, 64,
+ -89, 65, 331, 79, 259, -89, -89, -89, -89, -89,
+ -89, -89, 66, -89, 105, 331, -89, -89, -89, 31,
+ 418, 466, -89, -89, 69, 71, -89, 75, -89, 76,
+ -89, 78, -89, 80, -89, 87, -89, 89, -89, 91,
+ -89, 93, -89, 95, -89, 466, 466, -89, -89, -89,
+ 116, 466, 466, 94, -89, -1, 96, -89, 171, -89,
+ 110, -11, 90, -89, -89, 425, -89, -89, -89, 331,
+ 283, -89, -89, -89, 94, 355, -89, 67, 466, -89,
+ -89, 418, 118, 435, 331, 331, 331, 442, 331, 331,
+ 283, 283, 211, 181, 181, 31, -89, -89, 35, 466,
+ 104, -89, 466, 466, 466, 150, 158, 466, 466, 466,
+ 466, 466, -89, 159, 10, 142, 144, -89, 459, 156,
+ -89, -89, 166, 161, -89, 7, 162, 170, 173, -89,
+ -89, 197, 198, 199, -89, -89, -89, 200, -89, -89,
+ -89, 203, 205, 213, 516, 524, 253, 466, 466, 53,
+ 53, -89, -89, -89, 466, 466, 224, -89, -89, 227,
+ -89, -89, -18, 219, 267, -89, 231, 246, 250, -18,
+ 466, 502, 249, -89, -89, 279, 36, 36, 241, 247,
+ 74, -89, -89, 291, 272, 7, -89, -89, -89, -89,
+ -89, 254, 466, -89, -89, 295, 297, 277, -89, -89,
+ -89, 261, 466, 466, -89, -89, 265, 271, -89, -89
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -89, -89, -89, 153, -89, -89, 290, -89, -89, -89,
- 295, -89, -89, -89, -89, -89, -89, -89, -89, -89,
- -89, -89, -89, -89, 18, 246, 20, -7, -9, -8,
- 84, -89, 51, -3, -6, 4, -50, -89, -10, -88
+ -89, -89, -89, 172, -89, -89, 299, -89, -89, -89,
+ 315, -89, -89, -89, -89, -89, -89, -89, -89, -89,
+ -89, -89, -89, -89, 18, 266, 20, -7, -9, -8,
+ 84, 5, -3, -6, 4, -50, -89, -10, -88
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
#define YYTABLE_NINF -1
static const yytype_uint16 yytable[] =
{
- 72, 68, 69, 85, 71, 84, 83, 70, 2, 224,
- 97, 159, 99, 134, 28, 74, 182, 153, 154, 174,
- 175, 108, 109, 216, 46, 176, 29, 61, 59, 139,
- 46, 225, 40, 117, 119, 89, 91, 93, 199, 53,
- 200, 101, 103, 127, 106, 174, 175, 128, 201, 31,
- 32, 176, 160, 131, 72, 68, 69, 126, 71, 132,
- 114, 70, 31, 32, 217, 87, 133, 111, 112, 95,
- 85, 117, 33, 140, 205, 206, 207, 31, 32, 210,
- 211, 212, 213, 214, 40, 33, 41, 110, 120, 111,
- 112, 43, 107, 114, 44, 117, 117, 79, 121, 41,
- 33, 156, 157, 80, 81, 198, 53, 44, 104, 177,
- 105, 137, 109, 129, 41, 117, 256, 257, 138, 81,
- 237, 238, 44, 169, 170, 171, 131, 130, 183, 142,
- 155, 85, 132, 187, 184, 141, 143, 192, 144, 191,
- 145, 34, 35, 36, 37, 38, 146, 180, 39, 203,
- 181, 147, 117, 117, 117, 158, 209, 117, 117, 117,
- 117, 117, 188, 189, 190, 148, 193, 194, 109, 149,
- 195, 196, 162, 163, 164, 165, 166, 167, 168, 169,
- 170, 171, 162, 163, 164, 165, 166, 167, 168, 169,
- 170, 171, 167, 168, 169, 170, 171, 150, 117, 117,
- 151, 161, 173, 182, 204, 239, 240, 208, 215, 218,
- 219, 221, 4, 222, 223, 243, 227, 228, 229, 234,
- 172, 250, 249, 251, 5, 6, 7, 8, 9, 10,
+ 72, 68, 69, 85, 71, 84, 83, 70, 2, 159,
+ 97, 28, 99, 134, 29, 74, 223, 153, 154, 87,
+ 215, 108, 109, 95, 46, 174, 175, 61, 59, 139,
+ 46, 176, 53, 117, 119, 89, 91, 93, 224, 111,
+ 112, 101, 103, 127, 167, 168, 169, 170, 171, 31,
+ 32, 160, 40, 131, 72, 68, 69, 126, 71, 132,
+ 114, 70, 216, 169, 170, 171, 133, 198, 107, 199,
+ 85, 117, 33, 140, 204, 205, 206, 200, 106, 209,
+ 210, 211, 212, 213, 79, 110, 41, 111, 112, 120,
+ 80, 53, 81, 114, 44, 117, 117, 121, 31, 32,
+ 182, 156, 157, 174, 175, 197, 104, 128, 105, 176,
+ 255, 256, 109, 129, 130, 117, 138, 137, 141, 236,
+ 237, 33, 142, 155, 143, 144, 131, 145, 183, 146,
+ 177, 85, 132, 186, 184, 41, 147, 191, 148, 190,
+ 149, 81, 150, 44, 151, 158, 173, 180, 161, 202,
+ 181, 182, 117, 117, 117, 203, 207, 117, 117, 117,
+ 117, 117, 187, 188, 189, 208, 192, 193, 109, 214,
+ 194, 195, 31, 32, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 217, 33, 218, 117, 117, 34,
+ 35, 36, 37, 38, 238, 239, 39, 40, 220, 41,
+ 222, 226, 4, 42, 242, 43, 227, 44, 221, 228,
+ 249, 248, 250, 172, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 230, 261, 31, 32, 62, 233, 231, 232,
- 236, 244, 266, 267, 23, 235, 24, 241, 25, 242,
- 245, 185, 247, 252, 31, 32, 135, 33, 248, 253,
- 254, 34, 35, 36, 37, 38, 255, 258, 39, 63,
- 259, 41, 262, 260, 263, 64, 43, 33, 53, 44,
- 265, 34, 35, 36, 37, 38, 31, 32, 39, 63,
- 264, 41, 76, 268, 269, 197, 43, 77, 53, 44,
- 136, 246, 0, 0, 0, 0, 31, 32, 0, 33,
- 0, 0, 0, 34, 35, 36, 37, 38, 0, 0,
- 39, 40, 0, 41, 0, 0, 0, 42, 43, 33,
- 0, 44, 0, 34, 35, 36, 37, 38, 31, 32,
- 39, 40, 0, 41, 0, 0, 0, 0, 43, 0,
- 53, 44, 0, 0, 0, 0, 0, 0, 31, 32,
- 0, 33, 0, 0, 0, 34, 35, 36, 37, 38,
- 0, 0, 39, 40, 0, 41, 0, 0, 0, 75,
- 43, 33, 0, 44, 0, 34, 35, 36, 37, 38,
- 31, 32, 39, 40, 0, 41, 0, 0, 0, 0,
- 43, 0, 0, 44, 0, 31, 122, 0, 0, 0,
- 0, 31, 32, 33, 0, 0, 0, 34, 35, 36,
- 37, 38, 0, 0, 39, 0, 0, 41, 33, 31,
- 32, 0, 43, 0, 33, 44, 0, 123, 124, 115,
- 40, 0, 41, 0, 0, 116, 0, 125, 41, 0,
- 44, 0, 33, 81, 31, 178, 44, 0, 31, 32,
- 0, 0, 0, 0, 79, 0, 41, 31, 32, 0,
- 0, 81, 0, 0, 44, 0, 0, 33, 31, 32,
- 0, 33, 31, 32, 0, 0, 179, 0, 0, 0,
- 33, 41, 0, 0, 0, 41, 81, 0, 0, 44,
- 81, 33, 185, 44, 41, 33, 0, 0, 0, 81,
- 220, 53, 44, 0, 0, 41, 0, 0, 0, 41,
- 81, 0, 0, 44, 81, 0, 0, 44, 163, 164,
- 165, 166, 167, 168, 169, 170, 171, 164, 165, 166,
- 167, 168, 169, 170, 171, 165, 166, 167, 168, 169,
- 170, 171
+ 21, 22, 261, 31, 32, 62, 229, 230, 231, 235,
+ 243, 232, 266, 267, 23, 233, 24, 234, 25, 165,
+ 166, 167, 168, 169, 170, 171, 33, 31, 32, 135,
+ 34, 35, 36, 37, 38, 240, 244, 39, 63, 241,
+ 41, 245, 246, 251, 64, 53, 43, 247, 44, 252,
+ 33, 31, 32, 253, 34, 35, 36, 37, 38, 254,
+ 257, 39, 63, 258, 41, 262, 260, 263, 264, 53,
+ 43, 76, 44, 265, 33, 31, 32, 268, 34, 35,
+ 36, 37, 38, 269, 196, 39, 40, 77, 41, 259,
+ 136, 0, 0, 53, 43, 0, 44, 0, 33, 31,
+ 32, 0, 34, 35, 36, 37, 38, 0, 0, 39,
+ 40, 0, 41, 0, 0, 0, 75, 0, 43, 0,
+ 44, 0, 33, 31, 32, 0, 34, 35, 36, 37,
+ 38, 0, 0, 39, 40, 0, 41, 0, 31, 122,
+ 0, 0, 43, 0, 44, 0, 33, 0, 0, 0,
+ 34, 35, 36, 37, 38, 0, 0, 39, 0, 0,
+ 41, 33, 31, 32, 0, 0, 43, 0, 44, 0,
+ 123, 124, 0, 40, 0, 41, 0, 31, 32, 0,
+ 0, 125, 0, 44, 0, 33, 31, 32, 0, 0,
+ 115, 0, 0, 31, 178, 0, 116, 0, 0, 41,
+ 33, 0, 0, 31, 32, 81, 0, 44, 0, 33,
+ 31, 32, 40, 0, 41, 0, 33, 0, 0, 0,
+ 43, 79, 44, 41, 0, 179, 33, 31, 32, 81,
+ 41, 44, 0, 33, 31, 32, 81, 0, 44, 0,
+ 41, 0, 0, 0, 0, 185, 81, 41, 44, 0,
+ 33, 0, 53, 81, 0, 44, 0, 33, 0, 219,
+ 0, 0, 0, 0, 41, 0, 0, 0, 0, 0,
+ 81, 41, 44, 0, 0, 0, 0, 81, 0, 44,
+ 163, 164, 165, 166, 167, 168, 169, 170, 171, 164,
+ 165, 166, 167, 168, 169, 170, 171, 34, 35, 36,
+ 37, 38, 0, 0, 39
};
static const yytype_int16 yycheck[] =
{
- 10, 10, 10, 13, 10, 13, 13, 10, 0, 9,
- 19, 10, 20, 63, 47, 11, 33, 105, 106, 36,
- 37, 31, 32, 10, 6, 42, 49, 9, 8, 79,
- 12, 31, 43, 43, 44, 15, 16, 17, 32, 52,
- 34, 21, 22, 53, 48, 36, 37, 49, 42, 8,
- 9, 42, 51, 62, 64, 64, 64, 53, 64, 62,
- 42, 64, 8, 9, 51, 14, 62, 8, 9, 18,
- 80, 81, 31, 80, 162, 163, 164, 8, 9, 167,
- 168, 169, 170, 171, 43, 31, 45, 6, 50, 8,
- 9, 50, 47, 75, 53, 105, 106, 43, 50, 45,
- 31, 111, 112, 49, 50, 155, 52, 53, 46, 40,
- 48, 50, 122, 49, 45, 125, 36, 37, 11, 50,
- 208, 209, 53, 10, 11, 12, 135, 49, 138, 50,
- 7, 141, 135, 143, 141, 49, 49, 147, 49, 147,
- 49, 35, 36, 37, 38, 39, 49, 129, 42, 159,
- 130, 49, 162, 163, 164, 50, 7, 167, 168, 169,
- 170, 171, 144, 145, 146, 49, 148, 149, 178, 49,
- 150, 151, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 8, 9, 10, 11, 12, 49, 208, 209,
- 49, 51, 36, 33, 50, 215, 216, 6, 10, 51,
- 51, 51, 1, 51, 49, 223, 49, 46, 46, 51,
- 51, 231, 230, 232, 13, 14, 15, 16, 17, 18,
+ 10, 10, 10, 13, 10, 13, 13, 10, 0, 10,
+ 19, 47, 20, 63, 49, 11, 9, 105, 106, 14,
+ 10, 31, 32, 18, 6, 36, 37, 9, 8, 79,
+ 12, 42, 50, 43, 44, 15, 16, 17, 31, 8,
+ 9, 21, 22, 53, 8, 9, 10, 11, 12, 8,
+ 9, 52, 43, 62, 64, 64, 64, 53, 64, 62,
+ 42, 64, 52, 10, 11, 12, 62, 32, 47, 34,
+ 80, 81, 31, 80, 162, 163, 164, 42, 48, 167,
+ 168, 169, 170, 171, 43, 6, 45, 8, 9, 51,
+ 49, 50, 51, 75, 53, 105, 106, 51, 8, 9,
+ 33, 111, 112, 36, 37, 155, 46, 49, 48, 42,
+ 36, 37, 122, 49, 49, 125, 11, 51, 49, 207,
+ 208, 31, 51, 7, 49, 49, 135, 49, 138, 49,
+ 40, 141, 135, 143, 141, 45, 49, 147, 49, 147,
+ 49, 51, 49, 53, 49, 51, 36, 129, 52, 159,
+ 130, 33, 162, 163, 164, 51, 6, 167, 168, 169,
+ 170, 171, 144, 145, 146, 7, 148, 149, 178, 10,
+ 150, 151, 8, 9, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 52, 31, 52, 207, 208, 35,
+ 36, 37, 38, 39, 214, 215, 42, 43, 52, 45,
+ 49, 49, 1, 49, 222, 51, 46, 53, 52, 46,
+ 230, 229, 231, 52, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 49, 253, 8, 9, 10, 50, 49, 49,
- 36, 31, 262, 263, 43, 51, 45, 50, 47, 51,
- 9, 52, 36, 34, 8, 9, 10, 31, 37, 10,
- 51, 35, 36, 37, 38, 39, 51, 9, 42, 43,
- 31, 45, 10, 51, 10, 49, 50, 31, 52, 53,
- 51, 35, 36, 37, 38, 39, 8, 9, 42, 43,
- 31, 45, 12, 51, 51, 152, 50, 12, 52, 53,
- 64, 227, -1, -1, -1, -1, 8, 9, -1, 31,
- -1, -1, -1, 35, 36, 37, 38, 39, -1, -1,
- 42, 43, -1, 45, -1, -1, -1, 49, 50, 31,
- -1, 53, -1, 35, 36, 37, 38, 39, 8, 9,
- 42, 43, -1, 45, -1, -1, -1, -1, 50, -1,
- 52, 53, -1, -1, -1, -1, -1, -1, 8, 9,
- -1, 31, -1, -1, -1, 35, 36, 37, 38, 39,
- -1, -1, 42, 43, -1, 45, -1, -1, -1, 49,
- 50, 31, -1, 53, -1, 35, 36, 37, 38, 39,
- 8, 9, 42, 43, -1, 45, -1, -1, -1, -1,
- 50, -1, -1, 53, -1, 8, 9, -1, -1, -1,
- -1, 8, 9, 31, -1, -1, -1, 35, 36, 37,
- 38, 39, -1, -1, 42, -1, -1, 45, 31, 8,
- 9, -1, 50, -1, 31, 53, -1, 40, 41, 36,
- 43, -1, 45, -1, -1, 42, -1, 50, 45, -1,
- 53, -1, 31, 50, 8, 9, 53, -1, 8, 9,
- -1, -1, -1, -1, 43, -1, 45, 8, 9, -1,
- -1, 50, -1, -1, 53, -1, -1, 31, 8, 9,
- -1, 31, 8, 9, -1, -1, 40, -1, -1, -1,
- 31, 45, -1, -1, -1, 45, 50, -1, -1, 53,
- 50, 31, 52, 53, 45, 31, -1, -1, -1, 50,
- 40, 52, 53, -1, -1, 45, -1, -1, -1, 45,
- 50, -1, -1, 53, 50, -1, -1, 53, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 5, 6, 7,
- 8, 9, 10, 11, 12, 6, 7, 8, 9, 10,
- 11, 12
+ 29, 30, 252, 8, 9, 10, 49, 49, 49, 36,
+ 31, 51, 262, 263, 43, 52, 45, 52, 47, 6,
+ 7, 8, 9, 10, 11, 12, 31, 8, 9, 10,
+ 35, 36, 37, 38, 39, 51, 9, 42, 43, 52,
+ 45, 50, 36, 34, 49, 50, 51, 37, 53, 10,
+ 31, 8, 9, 52, 35, 36, 37, 38, 39, 52,
+ 9, 42, 43, 31, 45, 10, 52, 10, 31, 50,
+ 51, 12, 53, 52, 31, 8, 9, 52, 35, 36,
+ 37, 38, 39, 52, 152, 42, 43, 12, 45, 245,
+ 64, -1, -1, 50, 51, -1, 53, -1, 31, 8,
+ 9, -1, 35, 36, 37, 38, 39, -1, -1, 42,
+ 43, -1, 45, -1, -1, -1, 49, -1, 51, -1,
+ 53, -1, 31, 8, 9, -1, 35, 36, 37, 38,
+ 39, -1, -1, 42, 43, -1, 45, -1, 8, 9,
+ -1, -1, 51, -1, 53, -1, 31, -1, -1, -1,
+ 35, 36, 37, 38, 39, -1, -1, 42, -1, -1,
+ 45, 31, 8, 9, -1, -1, 51, -1, 53, -1,
+ 40, 41, -1, 43, -1, 45, -1, 8, 9, -1,
+ -1, 51, -1, 53, -1, 31, 8, 9, -1, -1,
+ 36, -1, -1, 8, 9, -1, 42, -1, -1, 45,
+ 31, -1, -1, 8, 9, 51, -1, 53, -1, 31,
+ 8, 9, 43, -1, 45, -1, 31, -1, -1, -1,
+ 51, 43, 53, 45, -1, 40, 31, 8, 9, 51,
+ 45, 53, -1, 31, 8, 9, 51, -1, 53, -1,
+ 45, -1, -1, -1, -1, 50, 51, 45, 53, -1,
+ 31, -1, 50, 51, -1, 53, -1, 31, -1, 40,
+ -1, -1, -1, -1, 45, -1, -1, -1, -1, -1,
+ 51, 45, 53, -1, -1, -1, -1, 51, -1, 53,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 5,
+ 6, 7, 8, 9, 10, 11, 12, 35, 36, 37,
+ 38, 39, -1, -1, 42
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 43, 45, 47, 57, 59, 47, 49,
60, 8, 9, 31, 35, 36, 37, 38, 39, 42,
- 43, 45, 49, 50, 53, 64, 78, 82, 86, 87,
- 88, 89, 92, 52, 63, 78, 80, 83, 61, 80,
+ 43, 45, 49, 51, 53, 64, 78, 82, 85, 86,
+ 87, 88, 91, 50, 63, 78, 80, 83, 61, 80,
62, 78, 10, 43, 49, 68, 79, 81, 82, 83,
- 87, 88, 92, 66, 89, 49, 60, 64, 69, 43,
- 49, 50, 65, 81, 83, 92, 67, 86, 70, 80,
- 71, 80, 72, 80, 73, 86, 74, 82, 75, 83,
- 76, 80, 77, 80, 46, 48, 48, 47, 92, 92,
- 6, 8, 9, 90, 78, 36, 42, 92, 93, 92,
- 50, 50, 9, 40, 41, 50, 89, 92, 49, 49,
- 49, 82, 87, 89, 90, 10, 79, 50, 11, 90,
- 81, 49, 50, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 58, 93, 93, 7, 92, 92, 50, 10,
- 51, 51, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 51, 36, 36, 37, 42, 40, 9, 40,
- 78, 80, 33, 92, 81, 52, 84, 92, 78, 78,
- 78, 83, 92, 78, 78, 80, 80, 57, 90, 32,
- 34, 42, 91, 92, 50, 93, 93, 93, 6, 7,
- 93, 93, 93, 93, 93, 10, 10, 51, 51, 51,
- 40, 51, 51, 49, 9, 31, 85, 49, 46, 46,
- 49, 49, 49, 50, 51, 51, 36, 93, 93, 92,
- 92, 50, 51, 83, 31, 9, 84, 36, 37, 83,
- 92, 82, 34, 10, 51, 51, 36, 37, 9, 31,
- 51, 92, 10, 10, 31, 51, 92, 92, 51, 51
+ 86, 87, 91, 66, 88, 49, 60, 64, 69, 43,
+ 49, 51, 65, 81, 83, 91, 67, 85, 70, 80,
+ 71, 80, 72, 80, 73, 85, 74, 82, 75, 83,
+ 76, 80, 77, 80, 46, 48, 48, 47, 91, 91,
+ 6, 8, 9, 89, 78, 36, 42, 91, 92, 91,
+ 51, 51, 9, 40, 41, 51, 88, 91, 49, 49,
+ 49, 82, 86, 88, 89, 10, 79, 51, 11, 89,
+ 81, 49, 51, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 58, 92, 92, 7, 91, 91, 51, 10,
+ 52, 52, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, 52, 36, 36, 37, 42, 40, 9, 40,
+ 78, 80, 33, 91, 81, 50, 91, 78, 78, 78,
+ 83, 91, 78, 78, 80, 80, 57, 89, 32, 34,
+ 42, 90, 91, 51, 92, 92, 92, 6, 7, 92,
+ 92, 92, 92, 92, 10, 10, 52, 52, 52, 40,
+ 52, 52, 49, 9, 31, 84, 49, 46, 46, 49,
+ 49, 49, 51, 52, 52, 36, 92, 92, 91, 91,
+ 51, 52, 83, 31, 9, 50, 36, 37, 83, 91,
+ 82, 34, 10, 52, 52, 36, 37, 9, 31, 84,
+ 52, 91, 10, 10, 31, 52, 91, 91, 52, 52
};
#define yyerrok (yyerrstatus = 0)
switch (yyn)
{
case 3:
-#line 71 "a.y"
+#line 66 "a.y"
{
stmtline = lineno;
}
break;
case 5:
-#line 78 "a.y"
+#line 73 "a.y"
{
(yyvsp[(1) - (2)].sym) = labellookup((yyvsp[(1) - (2)].sym));
if((yyvsp[(1) - (2)].sym)->type == LLAB && (yyvsp[(1) - (2)].sym)->value != pc)
break;
case 10:
-#line 92 "a.y"
+#line 87 "a.y"
{
(yyvsp[(1) - (3)].sym)->type = LVAR;
(yyvsp[(1) - (3)].sym)->value = (yyvsp[(3) - (3)].lval);
break;
case 11:
-#line 97 "a.y"
+#line 92 "a.y"
{
if((yyvsp[(1) - (3)].sym)->value != (yyvsp[(3) - (3)].lval))
yyerror("redeclaration of %s", (yyvsp[(1) - (3)].sym)->name);
break;
case 12:
-#line 102 "a.y"
+#line 97 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 13:
-#line 103 "a.y"
+#line 98 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 14:
-#line 104 "a.y"
+#line 99 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 15:
-#line 105 "a.y"
+#line 100 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 16:
-#line 106 "a.y"
+#line 101 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 17:
-#line 107 "a.y"
+#line 102 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 18:
-#line 108 "a.y"
+#line 103 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 19:
-#line 109 "a.y"
+#line 104 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 20:
-#line 110 "a.y"
+#line 105 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 21:
-#line 111 "a.y"
+#line 106 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 22:
-#line 112 "a.y"
+#line 107 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 23:
-#line 113 "a.y"
+#line 108 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 24:
-#line 114 "a.y"
+#line 109 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 25:
-#line 115 "a.y"
+#line 110 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 26:
-#line 116 "a.y"
+#line 111 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 27:
-#line 117 "a.y"
+#line 112 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 28:
-#line 118 "a.y"
+#line 113 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 29:
-#line 119 "a.y"
+#line 114 "a.y"
{ outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr2)); }
break;
case 30:
-#line 122 "a.y"
+#line 117 "a.y"
{
(yyval.addr2).from = nullgen;
(yyval.addr2).to = nullgen;
break;
case 31:
-#line 127 "a.y"
+#line 122 "a.y"
{
(yyval.addr2).from = nullgen;
(yyval.addr2).to = nullgen;
break;
case 32:
-#line 134 "a.y"
+#line 129 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (3)].addr);
(yyval.addr2).to = (yyvsp[(3) - (3)].addr);
break;
case 33:
-#line 141 "a.y"
+#line 136 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (3)].addr);
(yyval.addr2).to = (yyvsp[(3) - (3)].addr);
break;
case 34:
-#line 148 "a.y"
+#line 143 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (2)].addr);
(yyval.addr2).to = nullgen;
break;
case 35:
-#line 153 "a.y"
+#line 148 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (1)].addr);
(yyval.addr2).to = nullgen;
break;
case 36:
-#line 160 "a.y"
+#line 155 "a.y"
{
(yyval.addr2).from = nullgen;
(yyval.addr2).to = (yyvsp[(2) - (2)].addr);
break;
case 37:
-#line 165 "a.y"
+#line 160 "a.y"
{
(yyval.addr2).from = nullgen;
(yyval.addr2).to = (yyvsp[(1) - (1)].addr);
break;
case 38:
-#line 172 "a.y"
+#line 167 "a.y"
{
(yyval.addr2).from = nullgen;
(yyval.addr2).to = (yyvsp[(2) - (2)].addr);
break;
case 39:
-#line 177 "a.y"
+#line 172 "a.y"
{
(yyval.addr2).from = nullgen;
(yyval.addr2).to = (yyvsp[(1) - (1)].addr);
break;
case 40:
-#line 182 "a.y"
+#line 177 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (3)].addr);
(yyval.addr2).to = (yyvsp[(3) - (3)].addr);
break;
case 41:
-#line 189 "a.y"
+#line 184 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (5)].addr);
(yyval.addr2).from.scale = (yyvsp[(3) - (5)].lval);
break;
case 42:
-#line 197 "a.y"
+#line 192 "a.y"
{
- settext((yyvsp[(1) - (3)].addr).sym);
- (yyval.addr2).from = (yyvsp[(1) - (3)].addr);
- (yyval.addr2).to = (yyvsp[(3) - (3)].addr);
+ settext((yyvsp[(1) - (4)].addr).sym);
+ (yyval.addr2).from = (yyvsp[(1) - (4)].addr);
+ (yyval.addr2).to = (yyvsp[(4) - (4)].addr);
}
break;
case 43:
-#line 203 "a.y"
+#line 198 "a.y"
{
- settext((yyvsp[(1) - (5)].addr).sym);
- (yyval.addr2).from = (yyvsp[(1) - (5)].addr);
- (yyval.addr2).from.scale = (yyvsp[(3) - (5)].lval);
- (yyval.addr2).to = (yyvsp[(5) - (5)].addr);
+ settext((yyvsp[(1) - (6)].addr).sym);
+ (yyval.addr2).from = (yyvsp[(1) - (6)].addr);
+ (yyval.addr2).from.scale = (yyvsp[(3) - (6)].lval);
+ (yyval.addr2).to = (yyvsp[(6) - (6)].addr);
}
break;
case 44:
-#line 212 "a.y"
+#line 207 "a.y"
{
(yyval.addr2).from = nullgen;
(yyval.addr2).to = (yyvsp[(2) - (2)].addr);
break;
case 45:
-#line 217 "a.y"
+#line 212 "a.y"
{
(yyval.addr2).from = nullgen;
(yyval.addr2).to = (yyvsp[(1) - (1)].addr);
break;
case 46:
-#line 222 "a.y"
+#line 217 "a.y"
{
(yyval.addr2).from = nullgen;
(yyval.addr2).to = (yyvsp[(2) - (2)].addr);
break;
case 49:
-#line 234 "a.y"
+#line 229 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (3)].addr);
(yyval.addr2).to = (yyvsp[(3) - (3)].addr);
break;
case 50:
-#line 239 "a.y"
+#line 234 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (5)].addr);
(yyval.addr2).to = (yyvsp[(3) - (5)].addr);
break;
case 51:
-#line 249 "a.y"
+#line 244 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (3)].addr);
(yyval.addr2).to = (yyvsp[(3) - (3)].addr);
break;
case 52:
-#line 254 "a.y"
+#line 249 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (5)].addr);
(yyval.addr2).to = (yyvsp[(3) - (5)].addr);
break;
case 53:
-#line 264 "a.y"
+#line 259 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (2)].addr);
(yyval.addr2).to = nullgen;
break;
case 54:
-#line 269 "a.y"
+#line 264 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (1)].addr);
(yyval.addr2).to = nullgen;
break;
case 55:
-#line 274 "a.y"
+#line 269 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (3)].addr);
(yyval.addr2).to = (yyvsp[(3) - (3)].addr);
break;
case 56:
-#line 281 "a.y"
+#line 276 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (3)].addr);
(yyval.addr2).to = (yyvsp[(3) - (3)].addr);
break;
case 57:
-#line 286 "a.y"
+#line 281 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (5)].addr);
(yyval.addr2).from.scale = (yyvsp[(3) - (5)].lval);
break;
case 58:
-#line 294 "a.y"
+#line 289 "a.y"
{
(yyval.addr2).from = (yyvsp[(1) - (5)].addr);
(yyval.addr2).to = (yyvsp[(3) - (5)].addr);
break;
case 59:
-#line 302 "a.y"
+#line 297 "a.y"
{
(yyval.addr2).from = (yyvsp[(3) - (5)].addr);
(yyval.addr2).to = (yyvsp[(5) - (5)].addr);
break;
case 60:
-#line 312 "a.y"
+#line 307 "a.y"
{
if((yyvsp[(1) - (3)].addr).type != TYPE_CONST || (yyvsp[(3) - (3)].addr).type != TYPE_CONST)
yyerror("arguments to PCDATA must be integer constants");
break;
case 61:
-#line 321 "a.y"
+#line 316 "a.y"
{
if((yyvsp[(1) - (3)].addr).type != TYPE_CONST)
yyerror("index for FUNCDATA must be integer constant");
break;
case 66:
-#line 338 "a.y"
+#line 333 "a.y"
{
(yyval.addr) = (yyvsp[(2) - (2)].addr);
}
break;
case 67:
-#line 342 "a.y"
+#line 337 "a.y"
{
(yyval.addr) = (yyvsp[(2) - (2)].addr);
}
break;
case 73:
-#line 355 "a.y"
+#line 350 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_BRANCH;
break;
case 74:
-#line 361 "a.y"
+#line 356 "a.y"
{
(yyvsp[(1) - (2)].sym) = labellookup((yyvsp[(1) - (2)].sym));
(yyval.addr) = nullgen;
break;
case 75:
-#line 372 "a.y"
+#line 367 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
break;
case 76:
-#line 378 "a.y"
+#line 373 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
break;
case 77:
-#line 384 "a.y"
+#line 379 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
break;
case 78:
-#line 390 "a.y"
+#line 385 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
break;
case 79:
-#line 396 "a.y"
+#line 391 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
break;
case 80:
-#line 402 "a.y"
+#line 397 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
break;
case 81:
-#line 410 "a.y"
+#line 405 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_CONST;
break;
case 82:
-#line 416 "a.y"
+#line 411 "a.y"
{
(yyval.addr) = (yyvsp[(2) - (2)].addr);
(yyval.addr).type = TYPE_ADDR;
break;
case 83:
-#line 426 "a.y"
+#line 421 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_SCONST;
break;
case 84:
-#line 432 "a.y"
+#line 427 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_FCONST;
break;
case 85:
-#line 438 "a.y"
+#line 433 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_FCONST;
break;
case 86:
-#line 444 "a.y"
+#line 439 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_FCONST;
break;
case 87:
-#line 450 "a.y"
+#line 445 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_FCONST;
break;
case 88:
-#line 458 "a.y"
+#line 453 "a.y"
{
- (yyval.addr) = nullgen;
(yyval.addr).type = TYPE_TEXTSIZE;
- (yyval.addr).offset = (yyvsp[(2) - (2)].con2).v1;
- (yyval.addr).u.argsize = (yyvsp[(2) - (2)].con2).v2;
+ (yyval.addr).offset = (yyvsp[(1) - (1)].lval);
+ (yyval.addr).u.argsize = ArgsSizeUnknown;
}
break;
case 89:
-#line 467 "a.y"
+#line 459 "a.y"
{
- (yyval.con2).v1 = (yyvsp[(1) - (1)].lval);
- (yyval.con2).v2 = ArgsSizeUnknown;
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = -(yyvsp[(2) - (2)].lval);
+ (yyval.addr).u.argsize = ArgsSizeUnknown;
}
break;
case 90:
-#line 472 "a.y"
+#line 465 "a.y"
{
- (yyval.con2).v1 = -(yyvsp[(2) - (2)].lval);
- (yyval.con2).v2 = ArgsSizeUnknown;
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = (yyvsp[(1) - (3)].lval);
+ (yyval.addr).u.argsize = (yyvsp[(3) - (3)].lval);
}
break;
case 91:
-#line 477 "a.y"
- {
- (yyval.con2).v1 = (yyvsp[(1) - (3)].lval);
- (yyval.con2).v2 = (yyvsp[(3) - (3)].lval);
- }
- break;
-
- case 92:
-#line 482 "a.y"
+#line 471 "a.y"
{
- (yyval.con2).v1 = -(yyvsp[(2) - (4)].lval);
- (yyval.con2).v2 = (yyvsp[(4) - (4)].lval);
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = -(yyvsp[(2) - (4)].lval);
+ (yyval.addr).u.argsize = (yyvsp[(4) - (4)].lval);
}
break;
- case 95:
-#line 493 "a.y"
+ case 94:
+#line 483 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 96:
-#line 500 "a.y"
+ case 95:
+#line 490 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 97:
-#line 507 "a.y"
+ case 96:
+#line 497 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 98:
-#line 514 "a.y"
+ case 97:
+#line 504 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 99:
-#line 524 "a.y"
+ case 98:
+#line 514 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 100:
-#line 534 "a.y"
+ case 99:
+#line 524 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 101:
-#line 544 "a.y"
+ case 100:
+#line 534 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 102:
-#line 550 "a.y"
+ case 101:
+#line 540 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 103:
-#line 556 "a.y"
+ case 102:
+#line 546 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 104:
-#line 563 "a.y"
+ case 103:
+#line 553 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 105:
-#line 572 "a.y"
+ case 104:
+#line 562 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 106:
-#line 583 "a.y"
+ case 105:
+#line 573 "a.y"
{
(yyval.addr) = (yyvsp[(1) - (1)].addr);
}
break;
- case 107:
-#line 587 "a.y"
+ case 106:
+#line 577 "a.y"
{
(yyval.addr) = (yyvsp[(1) - (6)].addr);
(yyval.addr).index = (yyvsp[(3) - (6)].lval);
}
break;
- case 108:
-#line 596 "a.y"
+ case 107:
+#line 586 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 109:
-#line 604 "a.y"
+ case 108:
+#line 594 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 110:
-#line 613 "a.y"
+ case 109:
+#line 603 "a.y"
{
(yyval.lval) = 0;
}
break;
- case 111:
-#line 617 "a.y"
+ case 110:
+#line 607 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 112:
-#line 621 "a.y"
+ case 111:
+#line 611 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 114:
-#line 628 "a.y"
+ case 113:
+#line 618 "a.y"
{
(yyval.lval) = NAME_AUTO;
}
break;
- case 117:
-#line 636 "a.y"
+ case 116:
+#line 626 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (1)].sym)->value;
}
break;
- case 118:
-#line 640 "a.y"
+ case 117:
+#line 630 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 119:
-#line 644 "a.y"
+ case 118:
+#line 634 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 120:
-#line 648 "a.y"
+ case 119:
+#line 638 "a.y"
{
(yyval.lval) = ~(yyvsp[(2) - (2)].lval);
}
break;
- case 121:
-#line 652 "a.y"
+ case 120:
+#line 642 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (3)].lval);
}
break;
- case 123:
-#line 659 "a.y"
+ case 122:
+#line 649 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval);
}
break;
- case 124:
-#line 663 "a.y"
+ case 123:
+#line 653 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval);
}
break;
- case 125:
-#line 667 "a.y"
+ case 124:
+#line 657 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval);
}
break;
- case 126:
-#line 671 "a.y"
+ case 125:
+#line 661 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval);
}
break;
- case 127:
-#line 675 "a.y"
+ case 126:
+#line 665 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval);
}
break;
- case 128:
-#line 679 "a.y"
+ case 127:
+#line 669 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval);
}
break;
- case 129:
-#line 683 "a.y"
+ case 128:
+#line 673 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval);
}
break;
- case 130:
-#line 687 "a.y"
+ case 129:
+#line 677 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval);
}
break;
- case 131:
-#line 691 "a.y"
+ case 130:
+#line 681 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval);
}
break;
- case 132:
-#line 695 "a.y"
+ case 131:
+#line 685 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval);
}
/* Line 1267 of yacc.c. */
-#line 2569 "y.tab.c"
+#line 2555 "y.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
{
Sym *sym;
int32 lval;
- struct {
- int32 v1;
- int32 v2;
- } con2;
double dval;
char sval[8];
Addr addr;
Addr2 addr2;
}
/* Line 1529 of yacc.c. */
-#line 132 "y.tab.h"
+#line 128 "y.tab.h"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
NodeList *l;
Node *n;
- // fill in argument size
+ // fill in argument size, stack size
+ ptxt->to.type = TYPE_TEXTSIZE;
ptxt->to.u.argsize = rnd(curfn->type->argwid, widthptr);
-
- // fill in final stack size
- frame = rnd(stksize+maxarg, widthptr);
+ frame = rnd(stksize+maxarg, widthreg);
ptxt->to.offset = frame;
// insert code to zero ambiguously live variables
%token <sval> LSCONST
%token <sym> LNAME LLAB LVAR
%type <lval> con expr pointer offset sreg
-%type <addr> addr rreg regaddr name creg freg xlreg lr ctr
+%type <addr> addr rreg regaddr name creg freg xlreg lr ctr textsize
%type <addr> imm ximm fimm rel psr lcr cbit fpscr msr mask
%%
prog:
/*
* TEXT
*/
-| LTEXT name ',' imm
+| LTEXT name ',' '$' textsize
{
settext($2.sym);
- outcode($1, &$2, 0, &$4);
- }
-| LTEXT name ',' con ',' imm
- {
- settext($2.sym);
- $6.offset &= 0xffffffffull;
- $6.offset |= (vlong)ArgsSizeUnknown << 32;
- outcode($1, &$2, $4, &$6);
+ outcode($1, &$2, 0, &$5);
}
-| LTEXT name ',' con ',' imm '-' con
+| LTEXT name ',' con ',' '$' textsize
{
settext($2.sym);
- $6.offset &= 0xffffffffull;
- $6.offset |= ($8 & 0xffffffffull) << 32;
- outcode($1, &$2, $4, &$6);
+ outcode($1, &$2, $4, &$7);
}
/*
* GLOBL
$$.offset = v;
}
+textsize:
+ LCONST
+ {
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = $1;
+ $$.u.argsize = ArgsSizeUnknown;
+ }
+| '-' LCONST
+ {
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = -$2;
+ $$.u.argsize = ArgsSizeUnknown;
+ }
+| LCONST '-' LCONST
+ {
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = $1;
+ $$.u.argsize = $3;
+ }
+| '-' LCONST '-' LCONST
+ {
+ $$.type = TYPE_TEXTSIZE;
+ $$.offset = -$2;
+ $$.u.argsize = $4;
+ }
+
ximm:
'$' addr
{
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 862
+#define YYLAST 932
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 82
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 30
+#define YYNNTS 31
/* YYNRULES -- Number of rules. */
-#define YYNRULES 183
+#define YYNRULES 186
/* YYNRULES -- Number of states. */
-#define YYNSTATES 455
+#define YYNSTATES 462
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
399, 404, 408, 411, 416, 421, 428, 437, 442, 449,
454, 459, 466, 473, 482, 491, 500, 509, 514, 519,
524, 531, 536, 543, 548, 553, 556, 559, 563, 567,
- 571, 575, 578, 582, 586, 591, 596, 599, 604, 611,
- 620, 625, 632, 639, 646, 653, 656, 661, 664, 666,
- 668, 670, 672, 674, 676, 678, 680, 685, 687, 689,
- 691, 696, 698, 703, 705, 709, 712, 715, 718, 722,
- 725, 727, 732, 736, 742, 744, 749, 754, 760, 768,
- 769, 771, 772, 775, 778, 780, 782, 784, 786, 788,
- 791, 794, 797, 801, 803, 807, 811, 815, 819, 823,
- 828, 833, 837, 841
+ 571, 575, 578, 582, 586, 591, 596, 599, 605, 613,
+ 618, 625, 632, 639, 646, 649, 654, 657, 659, 661,
+ 663, 665, 667, 669, 671, 673, 678, 680, 682, 684,
+ 689, 691, 696, 698, 702, 704, 707, 711, 716, 719,
+ 722, 725, 729, 732, 734, 739, 743, 749, 751, 756,
+ 761, 767, 775, 776, 778, 779, 782, 785, 787, 789,
+ 791, 793, 795, 798, 801, 804, 808, 810, 814, 818,
+ 822, 826, 830, 835, 840, 844, 848
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
83, 0, -1, -1, 83, 84, -1, -1, 71, 74,
- 85, 84, -1, 71, 75, 111, 76, -1, 73, 75,
- 111, 76, -1, 58, 76, -1, 76, -1, 86, 76,
+ 85, 84, -1, 71, 75, 112, 76, -1, 73, 75,
+ 112, 76, -1, 58, 76, -1, 76, -1, 86, 76,
-1, 1, 76, -1, 13, 88, 77, 88, -1, 13,
- 105, 77, 88, -1, 13, 104, 77, 88, -1, 14,
- 88, 77, 88, -1, 14, 105, 77, 88, -1, 14,
- 104, 77, 88, -1, 22, 105, 77, 96, -1, 22,
- 104, 77, 96, -1, 22, 101, 77, 96, -1, 22,
- 96, 77, 96, -1, 22, 96, 77, 105, -1, 22,
- 96, 77, 104, -1, 13, 88, 77, 105, -1, 13,
- 88, 77, 104, -1, 14, 88, 77, 105, -1, 14,
- 88, 77, 104, -1, 13, 96, 77, 105, -1, 13,
- 96, 77, 104, -1, 13, 95, 77, 96, -1, 13,
- 96, 77, 95, -1, 13, 96, 77, 102, 77, 95,
- -1, 13, 95, 77, 97, -1, 67, 102, 77, 110,
- -1, 13, 88, 77, 102, 77, 91, -1, 13, 88,
+ 106, 77, 88, -1, 13, 105, 77, 88, -1, 14,
+ 88, 77, 88, -1, 14, 106, 77, 88, -1, 14,
+ 105, 77, 88, -1, 22, 106, 77, 96, -1, 22,
+ 105, 77, 96, -1, 22, 102, 77, 96, -1, 22,
+ 96, 77, 96, -1, 22, 96, 77, 106, -1, 22,
+ 96, 77, 105, -1, 13, 88, 77, 106, -1, 13,
+ 88, 77, 105, -1, 14, 88, 77, 106, -1, 14,
+ 88, 77, 105, -1, 13, 96, 77, 106, -1, 13,
+ 96, 77, 105, -1, 13, 95, 77, 96, -1, 13,
+ 96, 77, 95, -1, 13, 96, 77, 103, 77, 95,
+ -1, 13, 95, 77, 97, -1, 67, 103, 77, 111,
+ -1, 13, 88, 77, 103, 77, 91, -1, 13, 88,
77, 97, -1, 13, 88, 77, 91, -1, 18, 88,
- 77, 103, 77, 88, -1, 18, 102, 77, 103, 77,
- 88, -1, 18, 88, 77, 102, 77, 88, -1, 18,
- 88, 77, 88, -1, 18, 102, 77, 88, -1, 16,
- 88, 77, 103, 77, 88, -1, 16, 88, 77, 88,
- -1, 17, 88, 77, 103, 77, 88, -1, 17, 88,
- 77, 88, -1, 17, 102, 77, 103, 77, 88, -1,
- 17, 102, 77, 88, -1, 15, 88, 77, 88, -1,
- 15, 88, -1, 68, 88, 77, 103, 77, 88, -1,
- 13, 102, 77, 88, -1, 13, 100, 77, 88, -1,
- 20, 98, 77, 98, -1, 20, 98, 77, 110, 77,
+ 77, 104, 77, 88, -1, 18, 103, 77, 104, 77,
+ 88, -1, 18, 88, 77, 103, 77, 88, -1, 18,
+ 88, 77, 88, -1, 18, 103, 77, 88, -1, 16,
+ 88, 77, 104, 77, 88, -1, 16, 88, 77, 88,
+ -1, 17, 88, 77, 104, 77, 88, -1, 17, 88,
+ 77, 88, -1, 17, 103, 77, 104, 77, 88, -1,
+ 17, 103, 77, 88, -1, 15, 88, 77, 88, -1,
+ 15, 88, -1, 68, 88, 77, 104, 77, 88, -1,
+ 13, 103, 77, 88, -1, 13, 101, 77, 88, -1,
+ 20, 98, 77, 98, -1, 20, 98, 77, 111, 77,
98, -1, 13, 97, 77, 97, -1, 13, 94, 77,
97, -1, 13, 91, 77, 88, -1, 13, 94, 77,
88, -1, 13, 89, 77, 88, -1, 13, 88, 77,
89, -1, 13, 97, 77, 94, -1, 13, 88, 77,
- 94, -1, 21, 87, -1, 21, 105, -1, 21, 78,
- 89, 79, -1, 21, 77, 87, -1, 21, 77, 105,
+ 94, -1, 21, 87, -1, 21, 106, -1, 21, 78,
+ 89, 79, -1, 21, 77, 87, -1, 21, 77, 106,
-1, 21, 77, 78, 89, 79, -1, 21, 97, 77,
- 87, -1, 21, 97, 77, 105, -1, 21, 97, 77,
- 78, 89, 79, -1, 21, 110, 77, 87, -1, 21,
- 110, 77, 105, -1, 21, 110, 77, 78, 89, 79,
- -1, 21, 110, 77, 110, 77, 87, -1, 21, 110,
- 77, 110, 77, 105, -1, 21, 110, 77, 110, 77,
- 78, 89, 79, -1, 27, 88, 77, 103, -1, 27,
- 102, 77, 103, -1, 27, 88, 107, -1, 27, 107,
+ 87, -1, 21, 97, 77, 106, -1, 21, 97, 77,
+ 78, 89, 79, -1, 21, 111, 77, 87, -1, 21,
+ 111, 77, 106, -1, 21, 111, 77, 78, 89, 79,
+ -1, 21, 111, 77, 111, 77, 87, -1, 21, 111,
+ 77, 111, 77, 106, -1, 21, 111, 77, 111, 77,
+ 78, 89, 79, -1, 27, 88, 77, 104, -1, 27,
+ 103, 77, 104, -1, 27, 88, 108, -1, 27, 108,
-1, 23, 96, 77, 96, -1, 25, 96, 77, 96,
-1, 25, 96, 77, 96, 77, 96, -1, 26, 96,
77, 96, 77, 96, 77, 96, -1, 24, 96, 77,
96, -1, 24, 96, 77, 96, 77, 97, -1, 19,
- 88, 77, 88, -1, 19, 88, 77, 102, -1, 19,
- 88, 77, 88, 77, 97, -1, 19, 88, 77, 102,
- 77, 97, -1, 63, 102, 77, 88, 77, 102, 77,
- 88, -1, 63, 102, 77, 88, 77, 99, 77, 88,
- -1, 63, 88, 77, 88, 77, 102, 77, 88, -1,
+ 88, 77, 88, -1, 19, 88, 77, 103, -1, 19,
+ 88, 77, 88, 77, 97, -1, 19, 88, 77, 103,
+ 77, 97, -1, 63, 103, 77, 88, 77, 103, 77,
+ 88, -1, 63, 103, 77, 88, 77, 99, 77, 88,
+ -1, 63, 88, 77, 88, 77, 103, 77, 88, -1,
63, 88, 77, 88, 77, 99, 77, 88, -1, 64,
- 105, 77, 88, -1, 64, 88, 77, 105, -1, 59,
- 104, 77, 88, -1, 59, 104, 77, 102, 77, 88,
- -1, 60, 88, 77, 104, -1, 60, 88, 77, 102,
- 77, 104, -1, 62, 104, 77, 88, -1, 62, 88,
- 77, 104, -1, 61, 104, -1, 29, 107, -1, 29,
- 88, 107, -1, 29, 96, 107, -1, 29, 77, 88,
- -1, 29, 77, 96, -1, 29, 102, -1, 32, 102,
- 107, -1, 32, 100, 107, -1, 56, 102, 77, 102,
- -1, 57, 102, 77, 105, -1, 30, 107, -1, 33,
- 106, 77, 102, -1, 33, 106, 77, 110, 77, 102,
- -1, 33, 106, 77, 110, 77, 102, 9, 110, -1,
- 34, 106, 77, 102, -1, 34, 106, 77, 110, 77,
- 102, -1, 35, 106, 11, 110, 77, 102, -1, 35,
- 106, 11, 110, 77, 100, -1, 35, 106, 11, 110,
- 77, 101, -1, 36, 107, -1, 110, 78, 41, 79,
- -1, 71, 108, -1, 103, -1, 90, -1, 92, -1,
- 50, -1, 47, -1, 51, -1, 55, -1, 53, -1,
- 52, 78, 110, 79, -1, 93, -1, 49, -1, 45,
- -1, 48, 78, 110, 79, -1, 42, -1, 47, 78,
- 110, 79, -1, 110, -1, 110, 77, 110, -1, 80,
- 105, -1, 80, 70, -1, 80, 69, -1, 80, 9,
- 69, -1, 80, 110, -1, 44, -1, 46, 78, 110,
- 79, -1, 78, 103, 79, -1, 78, 103, 8, 103,
- 79, -1, 106, -1, 110, 78, 103, 79, -1, 110,
- 78, 109, 79, -1, 71, 108, 78, 109, 79, -1,
- 71, 6, 7, 108, 78, 39, 79, -1, -1, 77,
- -1, -1, 8, 110, -1, 9, 110, -1, 39, -1,
- 38, -1, 40, -1, 37, -1, 73, -1, 9, 110,
- -1, 8, 110, -1, 81, 110, -1, 78, 111, 79,
- -1, 110, -1, 111, 8, 111, -1, 111, 9, 111,
- -1, 111, 10, 111, -1, 111, 11, 111, -1, 111,
- 12, 111, -1, 111, 6, 6, 111, -1, 111, 7,
- 7, 111, -1, 111, 5, 111, -1, 111, 4, 111,
- -1, 111, 3, 111, -1
+ 106, 77, 88, -1, 64, 88, 77, 106, -1, 59,
+ 105, 77, 88, -1, 59, 105, 77, 103, 77, 88,
+ -1, 60, 88, 77, 105, -1, 60, 88, 77, 103,
+ 77, 105, -1, 62, 105, 77, 88, -1, 62, 88,
+ 77, 105, -1, 61, 105, -1, 29, 108, -1, 29,
+ 88, 108, -1, 29, 96, 108, -1, 29, 77, 88,
+ -1, 29, 77, 96, -1, 29, 103, -1, 32, 103,
+ 108, -1, 32, 101, 108, -1, 56, 103, 77, 103,
+ -1, 57, 103, 77, 106, -1, 30, 108, -1, 33,
+ 107, 77, 80, 100, -1, 33, 107, 77, 111, 77,
+ 80, 100, -1, 34, 107, 77, 103, -1, 34, 107,
+ 77, 111, 77, 103, -1, 35, 107, 11, 111, 77,
+ 103, -1, 35, 107, 11, 111, 77, 101, -1, 35,
+ 107, 11, 111, 77, 102, -1, 36, 108, -1, 111,
+ 78, 41, 79, -1, 71, 109, -1, 104, -1, 90,
+ -1, 92, -1, 50, -1, 47, -1, 51, -1, 55,
+ -1, 53, -1, 52, 78, 111, 79, -1, 93, -1,
+ 49, -1, 45, -1, 48, 78, 111, 79, -1, 42,
+ -1, 47, 78, 111, 79, -1, 111, -1, 111, 77,
+ 111, -1, 37, -1, 9, 37, -1, 37, 9, 37,
+ -1, 9, 37, 9, 37, -1, 80, 106, -1, 80,
+ 70, -1, 80, 69, -1, 80, 9, 69, -1, 80,
+ 111, -1, 44, -1, 46, 78, 111, 79, -1, 78,
+ 104, 79, -1, 78, 104, 8, 104, 79, -1, 107,
+ -1, 111, 78, 104, 79, -1, 111, 78, 110, 79,
+ -1, 71, 109, 78, 110, 79, -1, 71, 6, 7,
+ 109, 78, 39, 79, -1, -1, 77, -1, -1, 8,
+ 111, -1, 9, 111, -1, 39, -1, 38, -1, 40,
+ -1, 37, -1, 73, -1, 9, 111, -1, 8, 111,
+ -1, 81, 111, -1, 78, 112, 79, -1, 111, -1,
+ 112, 8, 112, -1, 112, 9, 112, -1, 112, 10,
+ 112, -1, 112, 11, 112, -1, 112, 12, 112, -1,
+ 112, 6, 6, 112, -1, 112, 7, 7, 112, -1,
+ 112, 5, 112, -1, 112, 4, 112, -1, 112, 3,
+ 112, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
428, 432, 436, 443, 447, 451, 455, 459, 463, 470,
474, 478, 482, 489, 493, 497, 501, 508, 512, 520,
524, 528, 532, 536, 540, 544, 551, 555, 559, 563,
- 567, 571, 578, 582, 589, 598, 609, 616, 621, 628,
- 638, 643, 652, 656, 660, 667, 673, 679, 690, 698,
- 699, 702, 710, 718, 726, 734, 740, 748, 751, 759,
- 765, 773, 779, 787, 795, 816, 821, 829, 835, 842,
- 850, 851, 859, 866, 876, 877, 886, 894, 902, 911,
- 912, 915, 918, 922, 928, 929, 930, 933, 934, 938,
- 942, 946, 950, 956, 957, 961, 965, 969, 973, 977,
- 981, 985, 989, 993
+ 567, 571, 578, 582, 589, 598, 609, 616, 621, 629,
+ 634, 643, 647, 651, 658, 664, 670, 681, 689, 690,
+ 693, 701, 709, 717, 725, 731, 739, 742, 750, 756,
+ 764, 770, 778, 786, 807, 813, 819, 825, 833, 838,
+ 846, 852, 859, 867, 868, 876, 883, 893, 894, 903,
+ 911, 919, 928, 929, 932, 935, 939, 945, 946, 947,
+ 950, 951, 955, 959, 963, 967, 973, 974, 978, 982,
+ 986, 990, 994, 998, 1002, 1006, 1010
};
#endif
"LMTFSB", "LMA", "LFCONST", "LSCONST", "LNAME", "LLAB", "LVAR", "':'",
"'='", "';'", "','", "'('", "')'", "'$'", "'~'", "$accept", "prog",
"line", "@1", "inst", "rel", "rreg", "xlreg", "lr", "lcr", "ctr", "msr",
- "psr", "fpscr", "freg", "creg", "cbit", "mask", "ximm", "fimm", "imm",
- "sreg", "regaddr", "addr", "name", "comma", "offset", "pointer", "con",
- "expr", 0
+ "psr", "fpscr", "freg", "creg", "cbit", "mask", "textsize", "ximm",
+ "fimm", "imm", "sreg", "regaddr", "addr", "name", "comma", "offset",
+ "pointer", "con", "expr", 0
};
#endif
86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 87, 87, 88, 89,
- 89, 90, 91, 92, 93, 94, 94, 94, 95, 96,
- 96, 97, 97, 98, 99, 100, 100, 101, 101, 102,
- 103, 103, 104, 104, 105, 105, 106, 106, 106, 107,
- 107, 108, 108, 108, 109, 109, 109, 110, 110, 110,
- 110, 110, 110, 111, 111, 111, 111, 111, 111, 111,
- 111, 111, 111, 111
+ 86, 86, 86, 86, 86, 87, 87, 88, 89, 89,
+ 90, 91, 92, 93, 94, 94, 94, 95, 96, 96,
+ 97, 97, 98, 99, 100, 100, 100, 100, 101, 101,
+ 102, 102, 103, 104, 104, 105, 105, 106, 106, 107,
+ 107, 107, 108, 108, 109, 109, 109, 110, 110, 110,
+ 111, 111, 111, 111, 111, 111, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
4, 3, 2, 4, 4, 6, 8, 4, 6, 4,
4, 6, 6, 8, 8, 8, 8, 4, 4, 4,
6, 4, 6, 4, 4, 2, 2, 3, 3, 3,
- 3, 2, 3, 3, 4, 4, 2, 4, 6, 8,
- 4, 6, 6, 6, 6, 2, 4, 2, 1, 1,
- 1, 1, 1, 1, 1, 1, 4, 1, 1, 1,
- 4, 1, 4, 1, 3, 2, 2, 2, 3, 2,
- 1, 4, 3, 5, 1, 4, 4, 5, 7, 0,
- 1, 0, 2, 2, 1, 1, 1, 1, 1, 2,
- 2, 2, 3, 1, 3, 3, 3, 3, 3, 4,
- 4, 3, 3, 3
+ 3, 2, 3, 3, 4, 4, 2, 5, 7, 4,
+ 6, 6, 6, 6, 2, 4, 2, 1, 1, 1,
+ 1, 1, 1, 1, 1, 4, 1, 1, 1, 4,
+ 1, 4, 1, 3, 1, 2, 3, 4, 2, 2,
+ 2, 3, 2, 1, 4, 3, 5, 1, 4, 4,
+ 5, 7, 0, 1, 0, 2, 2, 1, 1, 1,
+ 1, 1, 2, 2, 2, 3, 1, 3, 3, 3,
+ 3, 3, 4, 4, 3, 3, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
static const yytype_uint8 yydefact[] =
{
2, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 159, 159,
- 159, 0, 0, 0, 0, 159, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 162, 162,
+ 162, 0, 0, 0, 0, 162, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 3, 0, 11, 0, 0, 167, 141, 150, 139, 0,
- 132, 0, 138, 131, 133, 0, 135, 134, 161, 168,
- 0, 0, 0, 0, 0, 129, 0, 130, 137, 0,
- 0, 0, 0, 0, 0, 128, 0, 0, 154, 0,
+ 3, 0, 11, 0, 0, 170, 140, 153, 138, 0,
+ 131, 0, 137, 130, 132, 0, 134, 133, 164, 171,
+ 0, 0, 0, 0, 0, 128, 0, 129, 136, 0,
+ 0, 0, 0, 0, 0, 127, 0, 0, 157, 0,
0, 0, 0, 50, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 143, 0, 161, 0, 0, 64, 0,
+ 0, 0, 0, 142, 0, 164, 0, 0, 64, 0,
65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 160, 159, 0, 82, 160, 159, 159, 111, 106,
- 116, 159, 159, 0, 0, 0, 0, 125, 0, 0,
+ 0, 163, 162, 0, 82, 163, 162, 162, 111, 106,
+ 116, 162, 162, 0, 0, 0, 0, 124, 0, 0,
8, 0, 0, 0, 105, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 0, 0, 10, 170, 169, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 173, 0,
- 146, 145, 149, 171, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4, 0, 0, 10, 173, 172, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 176, 0,
+ 149, 148, 152, 174, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 149, 0, 0, 0, 0, 0, 0, 127, 0,
- 67, 68, 0, 0, 0, 0, 0, 0, 147, 0,
- 0, 0, 0, 0, 0, 0, 0, 160, 81, 0,
+ 0, 152, 0, 0, 0, 0, 0, 0, 126, 0,
+ 67, 68, 0, 0, 0, 0, 0, 0, 150, 0,
+ 0, 0, 0, 0, 0, 0, 0, 163, 81, 0,
109, 110, 107, 108, 113, 112, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 161,
- 162, 163, 0, 0, 152, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 172, 12, 61, 37, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 164,
+ 165, 166, 0, 0, 155, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 175, 12, 61, 37, 63,
36, 0, 25, 24, 60, 58, 59, 57, 30, 33,
31, 0, 29, 28, 62, 56, 53, 52, 14, 13,
- 165, 164, 166, 0, 0, 15, 27, 26, 17, 16,
- 49, 44, 128, 46, 128, 48, 128, 41, 0, 128,
- 42, 128, 89, 90, 54, 143, 0, 66, 0, 70,
- 71, 0, 73, 74, 0, 0, 148, 21, 23, 22,
- 20, 19, 18, 83, 87, 84, 0, 79, 80, 117,
- 0, 120, 0, 0, 114, 115, 99, 0, 0, 101,
+ 168, 167, 169, 0, 0, 15, 27, 26, 17, 16,
+ 49, 44, 127, 46, 127, 48, 127, 41, 0, 127,
+ 42, 127, 89, 90, 54, 142, 0, 66, 0, 70,
+ 71, 0, 73, 74, 0, 0, 151, 21, 23, 22,
+ 20, 19, 18, 83, 87, 84, 0, 79, 80, 0,
+ 0, 119, 0, 0, 114, 115, 99, 0, 0, 101,
104, 103, 0, 0, 98, 97, 34, 0, 5, 6,
- 7, 151, 142, 140, 136, 0, 0, 0, 183, 182,
- 181, 0, 0, 174, 175, 176, 177, 178, 0, 0,
- 155, 156, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 69, 0, 0, 0, 126, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 157, 153,
- 179, 180, 132, 35, 32, 43, 45, 47, 40, 38,
- 39, 91, 92, 55, 72, 75, 0, 76, 77, 88,
- 85, 0, 118, 121, 0, 123, 124, 122, 100, 102,
- 0, 0, 0, 0, 0, 51, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 158, 78, 86, 119,
- 96, 95, 144, 94, 93
+ 7, 154, 141, 139, 135, 0, 0, 0, 186, 185,
+ 184, 0, 0, 177, 178, 179, 180, 181, 0, 0,
+ 158, 159, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 69, 0, 0, 0, 125, 0, 0, 0, 0,
+ 144, 117, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 160, 156, 182, 183, 131, 35, 32, 43, 45,
+ 47, 40, 38, 39, 91, 92, 55, 72, 75, 0,
+ 76, 77, 88, 85, 0, 145, 0, 0, 120, 0,
+ 122, 123, 121, 100, 102, 0, 0, 0, 0, 0,
+ 51, 0, 0, 0, 0, 146, 118, 0, 0, 0,
+ 0, 0, 0, 161, 78, 86, 147, 96, 95, 143,
+ 94, 93
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 1, 40, 232, 41, 98, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 92, 430, 73, 104,
- 74, 75, 76, 161, 78, 114, 156, 284, 158, 159
+ 67, 68, 69, 70, 71, 72, 92, 435, 391, 73,
+ 104, 74, 75, 76, 161, 78, 114, 156, 284, 158,
+ 159
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -178
+#define YYPACT_NINF -179
static const yytype_int16 yypact[] =
{
- -178, 494, -178, -50, 591, 30, -1, -1, 20, 20,
- -1, 317, 315, 615, 17, 17, 17, 17, 48, 9,
- -42, -17, 720, 720, 720, -42, -12, -12, 26, -3,
- -1, -3, 0, 20, 639, -12, -1, 63, 13, -178,
- -178, 33, -178, 317, 317, -178, -178, -178, -178, 38,
- 42, 52, -178, -178, -178, 55, -178, -178, 198, -178,
- 690, 696, 317, 35, 72, -178, 76, -178, -178, 81,
- 93, 99, 105, 107, 117, -178, 124, 131, -178, 135,
- 155, 160, 161, 164, 165, 317, 171, 172, 176, 179,
- 182, 317, 184, -178, 42, 198, 743, 722, -178, 185,
- -178, 121, 3, 200, 202, 204, 209, 214, 215, 218,
- 220, -178, 223, 225, -178, 181, -42, -42, -178, -178,
- -178, -42, -42, 230, 180, 233, 79, -178, 234, 238,
- -178, -1, 240, 250, -178, 251, 253, 254, 255, 256,
- 264, 266, 269, -178, 317, 317, -178, -178, -178, 317,
- 317, 317, 317, 277, 317, 317, 271, 34, -178, 12,
- -178, -178, 135, -178, 371, -1, -1, 259, 109, 645,
- 192, -1, -1, -1, -1, 320, 30, -1, -1, -1,
- -1, -178, -1, -1, 20, -1, 20, 317, 271, 722,
- -178, -178, 275, 265, 747, 767, 106, 286, -178, 666,
- 17, 17, 17, 17, 17, 17, 17, -1, -178, -1,
- -178, -178, -178, -178, -178, -178, 267, 125, 267, 317,
- -12, 720, 20, -7, -3, -1, -1, -1, 720, -1,
- 317, -1, 558, 458, 532, 296, 299, 302, 303, 207,
- -178, -178, 125, -1, -178, 317, 317, 317, 350, 358,
- 317, 317, 317, 317, 317, -178, -178, -178, -178, -178,
- -178, 300, -178, -178, -178, -178, -178, -178, -178, -178,
- -178, 306, -178, -178, -178, -178, -178, -178, -178, -178,
- -178, -178, -178, 305, 310, -178, -178, -178, -178, -178,
- -178, -178, 322, -178, 323, -178, 324, -178, 328, 329,
- -178, 330, 332, 333, -178, 335, 340, -178, 722, -178,
- -178, 722, -178, -178, 141, 346, -178, -178, -178, -178,
- -178, -178, -178, -178, 337, 351, 352, -178, -178, -178,
- 355, -178, 356, 364, -178, -178, -178, 368, 370, -178,
- -178, -178, 373, 376, -178, -178, -178, 377, -178, -178,
- -178, -178, -178, -178, -178, 316, 348, 369, 825, 850,
- 493, 317, 317, 40, 40, -178, -178, -178, 388, 409,
- -178, -178, -1, -1, -1, -1, -1, -1, 14, 14,
- 317, -178, 380, 392, 773, -178, 14, 17, 17, -12,
- -12, 393, -1, -3, 267, 267, -1, 433, -178, -178,
- 472, 472, -178, -178, -178, -178, -178, -178, -178, -178,
- -178, -178, -178, -178, -178, -178, 722, -178, -178, -178,
- -178, 397, 468, -178, 672, -178, -178, -178, -178, -178,
- 401, 411, 412, 415, 416, -178, 417, 418, 17, 317,
- 365, -1, -1, 317, -1, -1, -178, -178, -178, -178,
- -178, -178, -178, -178, -178
+ -179, 484, -179, -64, 581, 686, 74, 74, -24, -24,
+ 74, 845, 641, 656, -29, -29, -29, -29, 19, -11,
+ -54, -38, 747, 747, 747, -54, -19, -19, -50, -6,
+ 74, -6, -14, -24, 707, -19, 74, -36, 18, -179,
+ -179, 2, -179, 845, 845, -179, -179, -179, -179, 24,
+ 27, 48, -179, -179, -179, 61, -179, -179, 188, -179,
+ 717, 738, 845, 79, 81, -179, 93, -179, -179, 99,
+ 107, 116, 126, 127, 130, -179, 132, 133, -179, 87,
+ 136, 138, 157, 159, 171, 845, 176, 179, 182, 184,
+ 186, 845, 194, -179, 27, 188, 762, 764, -179, 196,
+ -179, 66, 8, 198, 200, 201, 202, 203, 206, 215,
+ 216, -179, 217, 219, -179, 181, -54, -54, -179, -179,
+ -179, -54, -54, 220, 167, 221, 178, -179, 223, 224,
+ -179, 74, 225, 226, -179, 227, 231, 232, 233, 234,
+ 236, 237, 238, -179, 845, 845, -179, -179, -179, 845,
+ 845, 845, 845, 242, 845, 845, 229, 3, -179, 377,
+ -179, -179, 87, -179, 629, 74, 74, 172, 26, 732,
+ 39, 74, 74, 74, 74, 230, 686, 74, 74, 74,
+ 74, -179, 74, 74, -24, 74, -24, 845, 229, 764,
+ -179, -179, 241, 243, 784, 814, 111, 254, -179, 67,
+ -29, -29, -29, -29, -29, -29, -29, 74, -179, 74,
+ -179, -179, -179, -179, -179, -179, 821, 45, 830, 845,
+ -19, 747, -24, 49, -6, 74, 74, 74, 747, 74,
+ 845, 74, 548, 463, 518, 246, 247, 248, 249, 155,
+ -179, -179, 45, 74, -179, 845, 845, 845, 323, 325,
+ 845, 845, 845, 845, 845, -179, -179, -179, -179, -179,
+ -179, 259, -179, -179, -179, -179, -179, -179, -179, -179,
+ -179, 260, -179, -179, -179, -179, -179, -179, -179, -179,
+ -179, -179, -179, 265, 266, -179, -179, -179, -179, -179,
+ -179, -179, 269, -179, 270, -179, 272, -179, 278, 279,
+ -179, 280, 283, 284, -179, 285, 275, -179, 764, -179,
+ -179, 764, -179, -179, 105, 286, -179, -179, -179, -179,
+ -179, -179, -179, -179, 289, 296, 297, -179, -179, 9,
+ 299, -179, 301, 319, -179, -179, -179, 320, 321, -179,
+ -179, -179, 324, 327, -179, -179, -179, 328, -179, -179,
+ -179, -179, -179, -179, -179, 329, 333, 334, 591, 430,
+ 451, 845, 845, 78, 78, -179, -179, -179, 316, 353,
+ -179, -179, 74, 74, 74, 74, 74, 74, 20, 20,
+ 845, -179, 335, 336, 841, -179, 20, -29, -29, 369,
+ 399, -179, 338, -19, 339, 74, -6, 830, 830, 74,
+ 382, -179, -179, 277, 277, -179, -179, -179, -179, -179,
+ -179, -179, -179, -179, -179, -179, -179, -179, -179, 764,
+ -179, -179, -179, -179, 345, 414, 387, 9, -179, 322,
+ -179, -179, -179, -179, -179, 350, 351, 352, 354, 355,
+ -179, 366, 372, -29, 393, -179, -179, 851, 74, 74,
+ 845, 74, 74, -179, -179, -179, -179, -179, -179, -179,
+ -179, -179
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -178, -178, 290, -178, -178, -88, -5, -65, -178, -157,
- -178, -178, -134, -160, 68, 25, -177, 130, -15, 140,
- 96, 154, 64, 114, 298, 177, -84, 291, 36, -111
+ -179, -179, 222, -179, -179, -72, -5, -61, -179, -157,
+ -179, -179, -149, -161, 38, 31, -178, 50, 28, -15,
+ 58, 98, 168, 82, 96, 112, 25, -85, 211, 36,
+ 88
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
#define YYTABLE_NINF -1
static const yytype_uint16 yytable[] =
{
- 80, 83, 84, 86, 88, 90, 121, 258, 190, 270,
- 304, 188, 197, 112, 116, 245, 246, 247, 248, 249,
- 250, 251, 252, 253, 254, 133, 42, 135, 137, 139,
- 259, 142, 193, 233, 234, 111, 274, 99, 43, 44,
- 79, 79, 243, 47, 47, 49, 49, 93, 101, 79,
- 252, 253, 254, 47, 48, 49, 46, 51, 124, 124,
- 124, 94, 48, 61, 47, 51, 49, 45, 85, 81,
- 79, 131, 198, 85, 47, 131, 49, 105, 131, 147,
- 148, 103, 107, 108, 109, 110, 115, 117, 145, 85,
- 219, 255, 47, 132, 49, 134, 136, 162, 163, 257,
- 85, 58, 130, 59, 87, 89, 309, 312, 60, 146,
- 210, 62, 164, 244, 113, 118, 149, 122, 77, 82,
- 150, 181, 128, 129, 306, 111, 100, 106, 85, 138,
- 151, 141, 192, 152, 358, 359, 360, 143, 144, 363,
- 364, 365, 366, 367, 280, 281, 282, 315, 140, 165,
- 47, 46, 49, 166, 48, 355, 94, 51, 167, 256,
- 264, 265, 266, 280, 281, 282, 276, 277, 278, 279,
- 168, 285, 288, 289, 290, 291, 169, 293, 295, 297,
- 300, 302, 170, 211, 171, 235, 236, 237, 238, 260,
- 240, 241, 267, 269, 172, 275, 119, 120, 195, 196,
- 79, 173, 127, 413, 153, 79, 154, 155, 174, 404,
- 191, 403, 79, 175, 157, 154, 155, 336, 384, 196,
- 341, 342, 343, 305, 345, 47, 48, 49, 262, 51,
- 192, 314, 176, 272, 46, 79, 268, 177, 178, 94,
- 286, 179, 180, 382, 55, 56, 383, 57, 182, 183,
- 400, 401, 330, 184, 332, 333, 185, 79, 217, 186,
- 261, 187, 194, 318, 79, 271, 346, 317, 320, 321,
- 322, 323, 324, 325, 326, 43, 44, 199, 263, 200,
- 298, 201, 303, 273, 239, 157, 202, 339, 340, 208,
- 287, 203, 204, 212, 213, 205, 417, 206, 214, 215,
- 207, 46, 209, 47, 45, 49, 94, 216, 310, 313,
- 218, 220, 329, 319, 331, 221, 334, 222, 337, 338,
- 123, 125, 126, 43, 44, 43, 44, 223, 224, 283,
- 225, 226, 227, 228, 292, 335, 294, 296, 299, 301,
- 59, 229, 344, 230, 307, 91, 231, 85, 62, 242,
- 283, 437, 45, 196, 45, 316, 361, 46, 280, 281,
- 282, 327, 94, 328, 47, 362, 49, 405, 406, 407,
- 408, 409, 410, 43, 44, 351, 425, 368, 352, 43,
- 44, 353, 354, 369, 370, 347, 95, 428, 59, 371,
- 59, 435, 96, 97, 397, 91, 62, 357, 62, 372,
- 373, 374, 45, 411, 412, 375, 376, 377, 45, 378,
- 379, 419, 380, 46, 386, 47, 93, 49, 50, 381,
- 192, 53, 54, 55, 56, 385, 57, 398, 387, 388,
- 432, 432, 389, 390, 316, 402, 450, 451, 59, 453,
- 454, 391, 58, 91, 59, 392, 62, 393, 399, 60,
- 394, 85, 62, 395, 396, 420, 421, 429, 52, 414,
- 162, 245, 246, 247, 248, 249, 250, 251, 252, 253,
- 254, 415, 436, 424, 438, 449, 148, 439, 441, 452,
- 250, 251, 252, 253, 254, 422, 423, 427, 442, 443,
- 431, 434, 444, 445, 2, 3, 446, 447, 418, 248,
- 249, 250, 251, 252, 253, 254, 448, 4, 5, 6,
+ 80, 83, 84, 86, 88, 90, 121, 258, 270, 304,
+ 188, 243, 42, 112, 116, 259, 48, 197, 389, 51,
+ 47, 274, 49, 111, 190, 133, 130, 135, 137, 139,
+ 47, 142, 49, 47, 48, 49, 193, 51, 143, 144,
+ 79, 79, 61, 99, 119, 120, 390, 93, 101, 79,
+ 127, 103, 107, 108, 109, 110, 85, 117, 124, 124,
+ 124, 85, 46, 47, 131, 49, 115, 94, 46, 85,
+ 79, 48, 131, 94, 51, 43, 44, 198, 146, 147,
+ 148, 46, 244, 280, 281, 282, 94, 81, 252, 253,
+ 254, 55, 56, 145, 57, 105, 111, 162, 163, 85,
+ 77, 82, 149, 257, 45, 150, 87, 89, 100, 106,
+ 210, 132, 48, 134, 136, 51, 113, 118, 47, 122,
+ 49, 181, 309, 312, 128, 129, 151, 131, 306, 85,
+ 140, 138, 192, 141, 123, 125, 126, 208, 58, 152,
+ 59, 212, 213, 195, 196, 60, 214, 215, 62, 280,
+ 281, 282, 315, 211, 355, 47, 164, 49, 165, 256,
+ 264, 265, 266, 154, 155, 175, 276, 277, 278, 279,
+ 166, 285, 288, 289, 290, 291, 167, 293, 295, 297,
+ 300, 302, 384, 196, 168, 235, 236, 237, 238, 219,
+ 240, 241, 191, 169, 153, 260, 154, 155, 267, 269,
+ 79, 275, 416, 170, 171, 79, 268, 172, 407, 173,
+ 174, 406, 79, 176, 46, 177, 47, 336, 49, 94,
+ 341, 342, 343, 305, 345, 47, 48, 49, 157, 51,
+ 192, 314, 233, 234, 178, 79, 179, 317, 320, 321,
+ 322, 323, 324, 325, 326, 217, 262, 382, 180, 239,
+ 383, 272, 330, 182, 332, 333, 183, 79, 286, 184,
+ 263, 185, 261, 186, 79, 273, 346, 271, 280, 281,
+ 282, 187, 287, 194, 47, 199, 49, 200, 201, 202,
+ 203, 318, 298, 204, 303, 250, 251, 252, 253, 254,
+ 310, 313, 205, 206, 207, 319, 209, 216, 218, 157,
+ 220, 221, 222, 223, 224, 339, 340, 242, 225, 226,
+ 227, 228, 420, 229, 230, 231, 331, 335, 334, 196,
+ 337, 338, 307, 316, 344, 351, 352, 353, 354, 361,
+ 43, 447, 362, 358, 359, 360, 368, 369, 363, 364,
+ 365, 366, 367, 283, 370, 371, 372, 373, 292, 374,
+ 294, 296, 299, 301, 381, 375, 376, 377, 442, 45,
+ 378, 379, 380, 405, 283, 385, 386, 408, 409, 410,
+ 411, 412, 413, 387, 388, 327, 392, 328, 393, 430,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 433, 198, 160, 58, 440, 59, 394, 395, 396, 347,
+ 91, 397, 52, 62, 398, 399, 425, 400, 426, 414,
+ 415, 357, 401, 402, 417, 418, 93, 422, 427, 429,
+ 192, 441, 443, 444, 445, 423, 424, 448, 449, 450,
+ 456, 451, 452, 437, 437, 247, 248, 249, 250, 251,
+ 252, 253, 254, 457, 458, 453, 460, 461, 438, 403,
+ 404, 454, 431, 356, 348, 446, 255, 248, 249, 250,
+ 251, 252, 253, 254, 0, 162, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 0, 0, 434, 0,
+ 421, 455, 0, 148, 2, 3, 459, 0, 0, 0,
+ 0, 428, 432, 0, 0, 436, 439, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 348, 19, 20, 433, 21, 22, 23, 24,
- 25, 426, 0, 356, 349, 245, 246, 247, 248, 249,
- 250, 251, 252, 253, 254, 0, 0, 0, 0, 0,
+ 17, 18, 0, 19, 20, 0, 21, 22, 23, 24,
+ 25, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 0, 0, 0, 0, 0, 0, 0, 0, 349,
26, 27, 28, 29, 30, 31, 32, 33, 34, 3,
0, 35, 36, 0, 0, 37, 0, 38, 0, 0,
39, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 0, 19, 20, 0,
21, 22, 23, 24, 25, 0, 0, 0, 0, 43,
- 44, 0, 0, 0, 0, 0, 0, 0, 350, 0,
- 0, 0, 0, 0, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 43, 44, 35, 36, 0, 45, 37,
+ 44, 0, 0, 0, 350, 246, 247, 248, 249, 250,
+ 251, 252, 253, 254, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 0, 0, 35, 36, 0, 45, 37,
0, 38, 0, 46, 39, 47, 48, 49, 50, 51,
52, 53, 54, 55, 56, 0, 57, 43, 44, 0,
- 0, 0, 45, 43, 44, 0, 0, 0, 0, 0,
- 48, 0, 58, 51, 59, 0, 0, 0, 0, 60,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
+ 44, 0, 58, 0, 59, 0, 0, 0, 0, 60,
0, 61, 62, 0, 43, 44, 45, 0, 0, 0,
- 43, 440, 45, 47, 0, 49, 58, 0, 59, 0,
- 0, 0, 0, 60, 52, 102, 62, 0, 43, 44,
- 0, 0, 0, 45, 43, 44, 0, 0, 0, 45,
- 58, 48, 59, 0, 51, 0, 58, 91, 59, 0,
- 62, 0, 0, 60, 0, 85, 62, 45, 43, 44,
- 43, 44, 0, 45, 47, 0, 49, 58, 0, 59,
- 0, 198, 160, 58, 60, 59, 0, 62, 0, 0,
- 91, 43, 44, 62, 0, 43, 44, 45, 0, 45,
- 0, 0, 0, 59, 0, 0, 160, 58, 91, 59,
- 0, 62, 53, 54, 91, 43, 44, 62, 0, 0,
- 45, 43, 44, 0, 45, 0, 0, 0, 0, 0,
- 0, 58, 0, 59, 0, 59, 0, 0, 91, 0,
- 91, 62, 0, 62, 45, 0, 0, 0, 0, 0,
- 45, 0, 0, 0, 95, 0, 59, 0, 95, 0,
- 59, 189, 0, 0, 62, 308, 0, 0, 62, 246,
- 247, 248, 249, 250, 251, 252, 253, 254, 95, 0,
- 59, 0, 0, 0, 95, 311, 59, 0, 62, 0,
- 0, 416, 0, 0, 62, 247, 248, 249, 250, 251,
- 252, 253, 254
+ 0, 46, 0, 47, 0, 49, 50, 0, 45, 53,
+ 54, 55, 56, 46, 57, 0, 0, 0, 94, 0,
+ 0, 0, 0, 45, 43, 44, 0, 0, 0, 0,
+ 58, 48, 59, 0, 51, 0, 0, 60, 0, 85,
+ 62, 0, 95, 0, 59, 43, 44, 0, 96, 97,
+ 0, 0, 62, 45, 0, 43, 44, 58, 0, 59,
+ 47, 0, 49, 0, 60, 0, 102, 62, 0, 0,
+ 43, 44, 0, 0, 45, 0, 43, 44, 0, 0,
+ 0, 47, 0, 49, 45, 43, 44, 58, 0, 59,
+ 0, 47, 0, 49, 60, 0, 0, 62, 0, 45,
+ 43, 44, 43, 44, 0, 45, 0, 0, 58, 0,
+ 59, 52, 0, 0, 45, 91, 0, 0, 62, 0,
+ 59, 0, 43, 44, 0, 91, 0, 0, 62, 45,
+ 0, 45, 0, 58, 0, 59, 0, 0, 160, 58,
+ 60, 59, 85, 62, 53, 54, 91, 0, 58, 62,
+ 59, 45, 43, 44, 0, 91, 0, 0, 62, 43,
+ 44, 0, 0, 95, 0, 59, 0, 59, 43, 44,
+ 189, 0, 91, 62, 0, 62, 0, 0, 0, 43,
+ 44, 45, 0, 43, 44, 95, 0, 59, 45, 43,
+ 44, 0, 308, 0, 0, 62, 0, 45, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 45, 0,
+ 0, 0, 45, 0, 0, 95, 0, 59, 45, 0,
+ 0, 0, 311, 0, 59, 62, 0, 0, 0, 91,
+ 0, 329, 62, 59, 0, 0, 0, 0, 91, 0,
+ 85, 62, 95, 0, 59, 0, 0, 0, 59, 419,
+ 316, 0, 62, 91, 59, 0, 62, 0, 0, 91,
+ 0, 0, 62
};
static const yytype_int16 yycheck[] =
{
- 5, 6, 7, 8, 9, 10, 21, 164, 96, 169,
- 187, 95, 9, 18, 19, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 30, 76, 32, 33, 34,
- 164, 36, 97, 144, 145, 77, 170, 12, 8, 9,
- 4, 5, 8, 44, 44, 46, 46, 11, 12, 13,
- 10, 11, 12, 44, 45, 46, 42, 48, 22, 23,
- 24, 47, 45, 80, 44, 48, 46, 37, 80, 5,
- 34, 78, 69, 80, 44, 78, 46, 13, 78, 43,
- 44, 13, 14, 15, 16, 17, 77, 19, 75, 80,
- 11, 79, 44, 29, 46, 31, 32, 61, 62, 164,
- 80, 71, 76, 73, 8, 9, 194, 195, 78, 76,
- 115, 81, 77, 79, 18, 19, 78, 21, 4, 5,
- 78, 85, 26, 27, 189, 77, 12, 13, 80, 33,
- 78, 35, 96, 78, 245, 246, 247, 74, 75, 250,
- 251, 252, 253, 254, 38, 39, 40, 41, 34, 77,
- 44, 42, 46, 77, 45, 239, 47, 48, 77, 164,
- 165, 166, 167, 38, 39, 40, 171, 172, 173, 174,
+ 5, 6, 7, 8, 9, 10, 21, 164, 169, 187,
+ 95, 8, 76, 18, 19, 164, 45, 9, 9, 48,
+ 44, 170, 46, 77, 96, 30, 76, 32, 33, 34,
+ 44, 36, 46, 44, 45, 46, 97, 48, 74, 75,
+ 4, 5, 80, 12, 19, 20, 37, 11, 12, 13,
+ 25, 13, 14, 15, 16, 17, 80, 19, 22, 23,
+ 24, 80, 42, 44, 78, 46, 77, 47, 42, 80,
+ 34, 45, 78, 47, 48, 8, 9, 69, 76, 43,
+ 44, 42, 79, 38, 39, 40, 47, 5, 10, 11,
+ 12, 52, 53, 75, 55, 13, 77, 61, 62, 80,
+ 4, 5, 78, 164, 37, 78, 8, 9, 12, 13,
+ 115, 29, 45, 31, 32, 48, 18, 19, 44, 21,
+ 46, 85, 194, 195, 26, 27, 78, 78, 189, 80,
+ 34, 33, 96, 35, 22, 23, 24, 112, 71, 78,
+ 73, 116, 117, 77, 78, 78, 121, 122, 81, 38,
+ 39, 40, 41, 115, 239, 44, 77, 46, 77, 164,
+ 165, 166, 167, 8, 9, 78, 171, 172, 173, 174,
77, 176, 177, 178, 179, 180, 77, 182, 183, 184,
- 185, 186, 77, 115, 77, 149, 150, 151, 152, 164,
- 154, 155, 167, 168, 77, 170, 19, 20, 77, 78,
- 164, 77, 25, 380, 6, 169, 8, 9, 77, 369,
- 96, 368, 176, 78, 60, 8, 9, 222, 77, 78,
- 225, 226, 227, 187, 229, 44, 45, 46, 164, 48,
- 194, 195, 77, 169, 42, 199, 168, 77, 77, 47,
- 176, 77, 77, 308, 52, 53, 311, 55, 77, 77,
- 361, 362, 216, 77, 218, 219, 77, 221, 78, 77,
- 164, 77, 77, 199, 228, 169, 230, 199, 200, 201,
- 202, 203, 204, 205, 206, 8, 9, 77, 164, 77,
- 184, 77, 186, 169, 7, 131, 77, 223, 224, 112,
- 176, 77, 77, 116, 117, 77, 384, 77, 121, 122,
- 77, 42, 77, 44, 37, 46, 47, 77, 194, 195,
- 77, 77, 216, 199, 218, 77, 220, 77, 222, 223,
- 22, 23, 24, 8, 9, 8, 9, 77, 77, 175,
- 77, 77, 77, 77, 180, 221, 182, 183, 184, 185,
- 73, 77, 228, 77, 79, 78, 77, 80, 81, 78,
- 196, 416, 37, 78, 37, 69, 6, 42, 38, 39,
- 40, 207, 47, 209, 44, 7, 46, 372, 373, 374,
- 375, 376, 377, 8, 9, 79, 391, 77, 79, 8,
- 9, 79, 79, 77, 79, 231, 71, 392, 73, 79,
- 73, 396, 77, 78, 78, 78, 81, 243, 81, 77,
- 77, 77, 37, 378, 379, 77, 77, 77, 37, 77,
- 77, 386, 77, 42, 77, 44, 380, 46, 47, 79,
- 384, 50, 51, 52, 53, 79, 55, 79, 77, 77,
- 394, 395, 77, 77, 69, 47, 441, 442, 73, 444,
- 445, 77, 71, 78, 73, 77, 81, 77, 79, 78,
- 77, 80, 81, 77, 77, 387, 388, 393, 49, 79,
- 424, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 79, 39, 80, 77, 439, 440, 9, 77, 443,
- 8, 9, 10, 11, 12, 389, 390, 391, 77, 77,
- 394, 395, 77, 77, 0, 1, 79, 79, 384, 6,
- 7, 8, 9, 10, 11, 12, 438, 13, 14, 15,
+ 185, 186, 77, 78, 77, 149, 150, 151, 152, 11,
+ 154, 155, 96, 77, 6, 164, 8, 9, 167, 168,
+ 164, 170, 380, 77, 77, 169, 168, 77, 369, 77,
+ 77, 368, 176, 77, 42, 77, 44, 222, 46, 47,
+ 225, 226, 227, 187, 229, 44, 45, 46, 60, 48,
+ 194, 195, 144, 145, 77, 199, 77, 199, 200, 201,
+ 202, 203, 204, 205, 206, 78, 164, 308, 77, 7,
+ 311, 169, 216, 77, 218, 219, 77, 221, 176, 77,
+ 164, 77, 164, 77, 228, 169, 230, 169, 38, 39,
+ 40, 77, 176, 77, 44, 77, 46, 77, 77, 77,
+ 77, 199, 184, 77, 186, 8, 9, 10, 11, 12,
+ 194, 195, 77, 77, 77, 199, 77, 77, 77, 131,
+ 77, 77, 77, 77, 77, 223, 224, 78, 77, 77,
+ 77, 77, 384, 77, 77, 77, 218, 221, 220, 78,
+ 222, 223, 79, 69, 228, 79, 79, 79, 79, 6,
+ 8, 9, 7, 245, 246, 247, 77, 77, 250, 251,
+ 252, 253, 254, 175, 79, 79, 77, 77, 180, 77,
+ 182, 183, 184, 185, 79, 77, 77, 77, 419, 37,
+ 77, 77, 77, 47, 196, 79, 77, 372, 373, 374,
+ 375, 376, 377, 77, 77, 207, 77, 209, 77, 394,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ 395, 69, 70, 71, 399, 73, 77, 77, 77, 231,
+ 78, 77, 49, 81, 77, 77, 37, 78, 9, 378,
+ 379, 243, 79, 79, 79, 79, 380, 386, 80, 80,
+ 384, 39, 77, 9, 37, 387, 388, 77, 77, 77,
+ 37, 77, 77, 397, 398, 5, 6, 7, 8, 9,
+ 10, 11, 12, 448, 449, 79, 451, 452, 398, 361,
+ 362, 79, 394, 242, 232, 427, 79, 6, 7, 8,
+ 9, 10, 11, 12, -1, 429, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, -1, -1, 396, -1,
+ 384, 443, -1, 447, 0, 1, 450, -1, -1, -1,
+ -1, 393, 394, -1, -1, 397, 398, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 232, 29, 30, 395, 32, 33, 34, 35,
- 36, 391, -1, 242, 76, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
+ 26, 27, -1, 29, 30, -1, 32, 33, 34, 35,
+ 36, 3, 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, -1, -1, -1, -1, -1, -1, -1, -1, 76,
56, 57, 58, 59, 60, 61, 62, 63, 64, 1,
-1, 67, 68, -1, -1, 71, -1, 73, -1, -1,
76, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, -1, 29, 30, -1,
32, 33, 34, 35, 36, -1, -1, -1, -1, 8,
- 9, -1, -1, -1, -1, -1, -1, -1, 76, -1,
- -1, -1, -1, -1, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 8, 9, 67, 68, -1, 37, 71,
+ 9, -1, -1, -1, 76, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, -1, -1, 67, 68, -1, 37, 71,
-1, 73, -1, 42, 76, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, -1, 55, 8, 9, -1,
- -1, -1, 37, 8, 9, -1, -1, -1, -1, -1,
- 45, -1, 71, 48, 73, -1, -1, -1, -1, 78,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 8,
+ 9, -1, 71, -1, 73, -1, -1, -1, -1, 78,
-1, 80, 81, -1, 8, 9, 37, -1, -1, -1,
- 8, 9, 37, 44, -1, 46, 71, -1, 73, -1,
- -1, -1, -1, 78, 49, 80, 81, -1, 8, 9,
- -1, -1, -1, 37, 8, 9, -1, -1, -1, 37,
- 71, 45, 73, -1, 48, -1, 71, 78, 73, -1,
- 81, -1, -1, 78, -1, 80, 81, 37, 8, 9,
- 8, 9, -1, 37, 44, -1, 46, 71, -1, 73,
- -1, 69, 70, 71, 78, 73, -1, 81, -1, -1,
- 78, 8, 9, 81, -1, 8, 9, 37, -1, 37,
- -1, -1, -1, 73, -1, -1, 70, 71, 78, 73,
- -1, 81, 50, 51, 78, 8, 9, 81, -1, -1,
- 37, 8, 9, -1, 37, -1, -1, -1, -1, -1,
- -1, 71, -1, 73, -1, 73, -1, -1, 78, -1,
- 78, 81, -1, 81, 37, -1, -1, -1, -1, -1,
- 37, -1, -1, -1, 71, -1, 73, -1, 71, -1,
- 73, 78, -1, -1, 81, 78, -1, -1, 81, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 71, -1,
- 73, -1, -1, -1, 71, 78, 73, -1, 81, -1,
- -1, 78, -1, -1, 81, 5, 6, 7, 8, 9,
- 10, 11, 12
+ -1, 42, -1, 44, -1, 46, 47, -1, 37, 50,
+ 51, 52, 53, 42, 55, -1, -1, -1, 47, -1,
+ -1, -1, -1, 37, 8, 9, -1, -1, -1, -1,
+ 71, 45, 73, -1, 48, -1, -1, 78, -1, 80,
+ 81, -1, 71, -1, 73, 8, 9, -1, 77, 78,
+ -1, -1, 81, 37, -1, 8, 9, 71, -1, 73,
+ 44, -1, 46, -1, 78, -1, 80, 81, -1, -1,
+ 8, 9, -1, -1, 37, -1, 8, 9, -1, -1,
+ -1, 44, -1, 46, 37, 8, 9, 71, -1, 73,
+ -1, 44, -1, 46, 78, -1, -1, 81, -1, 37,
+ 8, 9, 8, 9, -1, 37, -1, -1, 71, -1,
+ 73, 49, -1, -1, 37, 78, -1, -1, 81, -1,
+ 73, -1, 8, 9, -1, 78, -1, -1, 81, 37,
+ -1, 37, -1, 71, -1, 73, -1, -1, 70, 71,
+ 78, 73, 80, 81, 50, 51, 78, -1, 71, 81,
+ 73, 37, 8, 9, -1, 78, -1, -1, 81, 8,
+ 9, -1, -1, 71, -1, 73, -1, 73, 8, 9,
+ 78, -1, 78, 81, -1, 81, -1, -1, -1, 8,
+ 9, 37, -1, 8, 9, 71, -1, 73, 37, 8,
+ 9, -1, 78, -1, -1, 81, -1, 37, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 37, -1,
+ -1, -1, 37, -1, -1, 71, -1, 73, 37, -1,
+ -1, -1, 78, -1, 73, 81, -1, -1, -1, 78,
+ -1, 80, 81, 73, -1, -1, -1, -1, 78, -1,
+ 80, 81, 71, -1, 73, -1, -1, -1, 73, 78,
+ 69, -1, 81, 78, 73, -1, 81, -1, -1, 78,
+ -1, -1, 81
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
84, 86, 76, 8, 9, 37, 42, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 55, 71, 73,
78, 80, 81, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 100, 102, 103, 104, 105, 106, 110,
- 88, 104, 105, 88, 88, 80, 88, 102, 88, 102,
- 88, 78, 98, 110, 47, 71, 77, 78, 87, 97,
- 105, 110, 80, 96, 101, 104, 105, 96, 96, 96,
- 96, 77, 88, 102, 107, 77, 88, 96, 102, 107,
- 107, 100, 102, 106, 110, 106, 106, 107, 102, 102,
- 76, 78, 104, 88, 104, 88, 104, 88, 102, 88,
- 105, 102, 88, 74, 75, 75, 76, 110, 110, 78,
- 78, 78, 78, 6, 8, 9, 108, 103, 110, 111,
- 70, 105, 110, 110, 77, 77, 77, 77, 77, 77,
+ 95, 96, 97, 101, 103, 104, 105, 106, 107, 111,
+ 88, 105, 106, 88, 88, 80, 88, 103, 88, 103,
+ 88, 78, 98, 111, 47, 71, 77, 78, 87, 97,
+ 106, 111, 80, 96, 102, 105, 106, 96, 96, 96,
+ 96, 77, 88, 103, 108, 77, 88, 96, 103, 108,
+ 108, 101, 103, 107, 111, 107, 107, 108, 103, 103,
+ 76, 78, 105, 88, 105, 88, 105, 88, 103, 88,
+ 106, 103, 88, 74, 75, 75, 76, 111, 111, 78,
+ 78, 78, 78, 6, 8, 9, 109, 104, 111, 112,
+ 70, 106, 111, 111, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 78, 77, 77, 77, 77,
- 77, 110, 77, 77, 77, 77, 77, 77, 108, 78,
- 87, 105, 110, 89, 77, 77, 78, 9, 69, 77,
- 77, 77, 77, 77, 77, 77, 77, 77, 107, 77,
- 88, 96, 107, 107, 107, 107, 77, 78, 77, 11,
+ 77, 111, 77, 77, 77, 77, 77, 77, 109, 78,
+ 87, 106, 111, 89, 77, 77, 78, 9, 69, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 108, 77,
+ 88, 96, 108, 108, 108, 108, 77, 78, 77, 11,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 85, 111, 111, 110, 110, 110, 110, 7,
- 110, 110, 78, 8, 79, 3, 4, 5, 6, 7,
+ 77, 77, 85, 112, 112, 111, 111, 111, 111, 7,
+ 111, 111, 78, 8, 79, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 79, 88, 89, 91, 94,
- 97, 102, 104, 105, 88, 88, 88, 97, 96, 97,
- 95, 102, 104, 105, 94, 97, 88, 88, 88, 88,
- 38, 39, 40, 103, 109, 88, 104, 105, 88, 88,
- 88, 88, 103, 88, 103, 88, 103, 88, 102, 103,
- 88, 103, 88, 102, 98, 110, 89, 79, 78, 87,
- 105, 78, 87, 105, 110, 41, 69, 96, 104, 105,
- 96, 96, 96, 96, 96, 96, 96, 103, 103, 102,
- 110, 102, 110, 110, 102, 105, 88, 102, 102, 104,
- 104, 88, 88, 88, 105, 88, 110, 103, 84, 76,
- 76, 79, 79, 79, 79, 108, 109, 103, 111, 111,
- 111, 6, 7, 111, 111, 111, 111, 111, 77, 77,
+ 97, 103, 105, 106, 88, 88, 88, 97, 96, 97,
+ 95, 103, 105, 106, 94, 97, 88, 88, 88, 88,
+ 38, 39, 40, 104, 110, 88, 105, 106, 88, 88,
+ 88, 88, 104, 88, 104, 88, 104, 88, 103, 104,
+ 88, 104, 88, 103, 98, 111, 89, 79, 78, 87,
+ 106, 78, 87, 106, 111, 41, 69, 96, 105, 106,
+ 96, 96, 96, 96, 96, 96, 96, 104, 104, 80,
+ 111, 103, 111, 111, 103, 106, 88, 103, 103, 105,
+ 105, 88, 88, 88, 106, 88, 111, 104, 84, 76,
+ 76, 79, 79, 79, 79, 109, 110, 104, 112, 112,
+ 112, 6, 7, 112, 112, 112, 112, 112, 77, 77,
79, 79, 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 79, 89, 89, 77, 79, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 78, 79, 79,
- 111, 111, 47, 91, 95, 88, 88, 88, 88, 88,
- 88, 97, 97, 98, 79, 79, 78, 87, 105, 97,
- 96, 96, 102, 102, 80, 100, 101, 102, 88, 104,
- 99, 102, 110, 99, 102, 88, 39, 89, 77, 9,
- 9, 77, 77, 77, 77, 77, 79, 79, 96, 110,
- 88, 88, 110, 88, 88
+ 77, 79, 89, 89, 77, 79, 77, 77, 77, 9,
+ 37, 100, 77, 77, 77, 77, 77, 77, 77, 77,
+ 78, 79, 79, 112, 112, 47, 91, 95, 88, 88,
+ 88, 88, 88, 88, 97, 97, 98, 79, 79, 78,
+ 87, 106, 97, 96, 96, 37, 9, 80, 103, 80,
+ 101, 102, 103, 88, 105, 99, 103, 111, 99, 103,
+ 88, 39, 89, 77, 9, 37, 100, 9, 77, 77,
+ 77, 77, 77, 79, 79, 96, 37, 88, 88, 111,
+ 88, 88
};
#define yyerrok (yyerrstatus = 0)
case 117:
#line 617 "a.y"
{
- settext((yyvsp[(2) - (4)].addr).sym);
- outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr));
+ settext((yyvsp[(2) - (5)].addr).sym);
+ outcode((yyvsp[(1) - (5)].lval), &(yyvsp[(2) - (5)].addr), 0, &(yyvsp[(5) - (5)].addr));
}
break;
case 118:
#line 622 "a.y"
{
- settext((yyvsp[(2) - (6)].addr).sym);
- (yyvsp[(6) - (6)].addr).offset &= 0xffffffffull;
- (yyvsp[(6) - (6)].addr).offset |= (vlong)ArgsSizeUnknown << 32;
- outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
+ settext((yyvsp[(2) - (7)].addr).sym);
+ outcode((yyvsp[(1) - (7)].lval), &(yyvsp[(2) - (7)].addr), (yyvsp[(4) - (7)].lval), &(yyvsp[(7) - (7)].addr));
}
break;
case 119:
-#line 629 "a.y"
+#line 630 "a.y"
{
- settext((yyvsp[(2) - (8)].addr).sym);
- (yyvsp[(6) - (8)].addr).offset &= 0xffffffffull;
- (yyvsp[(6) - (8)].addr).offset |= ((yyvsp[(8) - (8)].lval) & 0xffffffffull) << 32;
- outcode((yyvsp[(1) - (8)].lval), &(yyvsp[(2) - (8)].addr), (yyvsp[(4) - (8)].lval), &(yyvsp[(6) - (8)].addr));
+ settext((yyvsp[(2) - (4)].addr).sym);
+ outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr));
}
break;
case 120:
-#line 639 "a.y"
+#line 635 "a.y"
{
- settext((yyvsp[(2) - (4)].addr).sym);
- outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr));
+ settext((yyvsp[(2) - (6)].addr).sym);
+ outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
}
break;
case 121:
#line 644 "a.y"
{
- settext((yyvsp[(2) - (6)].addr).sym);
outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
}
break;
case 122:
-#line 653 "a.y"
+#line 648 "a.y"
{
outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
}
break;
case 123:
-#line 657 "a.y"
+#line 652 "a.y"
{
outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
}
break;
case 124:
-#line 661 "a.y"
- {
- outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
- }
- break;
-
- case 125:
-#line 668 "a.y"
+#line 659 "a.y"
{
outcode((yyvsp[(1) - (2)].lval), &nullgen, 0, &nullgen);
}
break;
- case 126:
-#line 674 "a.y"
+ case 125:
+#line 665 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_BRANCH;
}
break;
- case 127:
-#line 680 "a.y"
+ case 126:
+#line 671 "a.y"
{
(yyvsp[(1) - (2)].sym) = labellookup((yyvsp[(1) - (2)].sym));
(yyval.addr) = nullgen;
}
break;
- case 128:
-#line 691 "a.y"
+ case 127:
+#line 682 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 131:
-#line 703 "a.y"
+ case 130:
+#line 694 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 132:
-#line 711 "a.y"
+ case 131:
+#line 702 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 133:
-#line 719 "a.y"
+ case 132:
+#line 710 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 134:
-#line 727 "a.y"
+ case 133:
+#line 718 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 135:
-#line 735 "a.y"
+ case 134:
+#line 726 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 136:
-#line 741 "a.y"
+ case 135:
+#line 732 "a.y"
{
if((yyvsp[(3) - (4)].lval) < 0 || (yyvsp[(3) - (4)].lval) >= 1024)
yyerror("SPR/DCR out of range");
}
break;
- case 138:
-#line 752 "a.y"
+ case 137:
+#line 743 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 139:
-#line 760 "a.y"
+ case 138:
+#line 751 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 140:
-#line 766 "a.y"
+ case 139:
+#line 757 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 141:
-#line 774 "a.y"
+ case 140:
+#line 765 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 142:
-#line 780 "a.y"
+ case 141:
+#line 771 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 143:
-#line 788 "a.y"
+ case 142:
+#line 779 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_REG;
}
break;
- case 144:
-#line 796 "a.y"
+ case 143:
+#line 787 "a.y"
{
int mb, me;
uint32 v;
}
break;
+ case 144:
+#line 808 "a.y"
+ {
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = (yyvsp[(1) - (1)].lval);
+ (yyval.addr).u.argsize = ArgsSizeUnknown;
+ }
+ break;
+
case 145:
-#line 817 "a.y"
+#line 814 "a.y"
+ {
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = -(yyvsp[(2) - (2)].lval);
+ (yyval.addr).u.argsize = ArgsSizeUnknown;
+ }
+ break;
+
+ case 146:
+#line 820 "a.y"
+ {
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = (yyvsp[(1) - (3)].lval);
+ (yyval.addr).u.argsize = (yyvsp[(3) - (3)].lval);
+ }
+ break;
+
+ case 147:
+#line 826 "a.y"
+ {
+ (yyval.addr).type = TYPE_TEXTSIZE;
+ (yyval.addr).offset = -(yyvsp[(2) - (4)].lval);
+ (yyval.addr).u.argsize = (yyvsp[(4) - (4)].lval);
+ }
+ break;
+
+ case 148:
+#line 834 "a.y"
{
(yyval.addr) = (yyvsp[(2) - (2)].addr);
(yyval.addr).type = TYPE_CONST;
}
break;
- case 146:
-#line 822 "a.y"
+ case 149:
+#line 839 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_SCONST;
}
break;
- case 147:
-#line 830 "a.y"
+ case 150:
+#line 847 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_FCONST;
}
break;
- case 148:
-#line 836 "a.y"
+ case 151:
+#line 853 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_FCONST;
}
break;
- case 149:
-#line 843 "a.y"
+ case 152:
+#line 860 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_CONST;
}
break;
- case 151:
-#line 852 "a.y"
+ case 154:
+#line 869 "a.y"
{
if((yyval.lval) < 0 || (yyval.lval) >= NREG)
print("register value out of range\n");
}
break;
- case 152:
-#line 860 "a.y"
+ case 155:
+#line 877 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 153:
-#line 867 "a.y"
+ case 156:
+#line 884 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 155:
-#line 878 "a.y"
+ case 158:
+#line 895 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 156:
-#line 887 "a.y"
+ case 159:
+#line 904 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 157:
-#line 895 "a.y"
+ case 160:
+#line 912 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 158:
-#line 903 "a.y"
+ case 161:
+#line 920 "a.y"
{
(yyval.addr) = nullgen;
(yyval.addr).type = TYPE_MEM;
}
break;
- case 161:
-#line 915 "a.y"
+ case 164:
+#line 932 "a.y"
{
(yyval.lval) = 0;
}
break;
- case 162:
-#line 919 "a.y"
+ case 165:
+#line 936 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 163:
-#line 923 "a.y"
+ case 166:
+#line 940 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 168:
-#line 935 "a.y"
+ case 171:
+#line 952 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (1)].sym)->value;
}
break;
- case 169:
-#line 939 "a.y"
+ case 172:
+#line 956 "a.y"
{
(yyval.lval) = -(yyvsp[(2) - (2)].lval);
}
break;
- case 170:
-#line 943 "a.y"
+ case 173:
+#line 960 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (2)].lval);
}
break;
- case 171:
-#line 947 "a.y"
+ case 174:
+#line 964 "a.y"
{
(yyval.lval) = ~(yyvsp[(2) - (2)].lval);
}
break;
- case 172:
-#line 951 "a.y"
+ case 175:
+#line 968 "a.y"
{
(yyval.lval) = (yyvsp[(2) - (3)].lval);
}
break;
- case 174:
-#line 958 "a.y"
+ case 177:
+#line 975 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval);
}
break;
- case 175:
-#line 962 "a.y"
+ case 178:
+#line 979 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval);
}
break;
- case 176:
-#line 966 "a.y"
+ case 179:
+#line 983 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval);
}
break;
- case 177:
-#line 970 "a.y"
+ case 180:
+#line 987 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval);
}
break;
- case 178:
-#line 974 "a.y"
+ case 181:
+#line 991 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval);
}
break;
- case 179:
-#line 978 "a.y"
+ case 182:
+#line 995 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval);
}
break;
- case 180:
-#line 982 "a.y"
+ case 183:
+#line 999 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval);
}
break;
- case 181:
-#line 986 "a.y"
+ case 184:
+#line 1003 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval);
}
break;
- case 182:
-#line 990 "a.y"
+ case 185:
+#line 1007 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval);
}
break;
- case 183:
-#line 994 "a.y"
+ case 186:
+#line 1011 "a.y"
{
(yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval);
}
/* Line 1267 of yacc.c. */
-#line 3188 "y.tab.c"
+#line 3232 "y.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
NodeList *l;
Node *n;
- // fill in argument size
- ptxt->to.offset = rnd(curfn->type->argwid, widthptr);
-
- // fill in final stack size
- ptxt->to.offset <<= 32;
+ // fill in argument size, stack size
+ ptxt->to.type = TYPE_TEXTSIZE;
+ ptxt->to.u.argsize = rnd(curfn->type->argwid, widthptr);
frame = rnd(stksize+maxarg, widthreg);
- ptxt->to.offset |= frame;
+ ptxt->to.offset = frame;
// insert code to zero ambiguously live variables
// so that the garbage collector only sees initialized values
C_ANY,
C_GOK,
C_ADDR,
+ C_TEXTSIZE,
C_NCLASS, /* must be the last */
};
{
/* struct Optab:
OPCODE, from, prog->reg, to, type,size,param,flag */
- { ATEXT, C_ADDR, C_NONE, C_LCON, 0, 0, 0 },
- { ATEXT, C_ADDR, C_REG, C_LCON, 0, 0, 0 },
+ { ATEXT, C_ADDR, C_NONE, C_TEXTSIZE, 0, 0, 0 },
+ { ATEXT, C_ADDR, C_REG, C_TEXTSIZE, 0, 0, 0 },
{ AADD, C_REG, C_REG, C_REG, 1, 4, 0 },
{ AADD, C_REG, C_NONE, C_REG, 1, 4, 0 },
return C_SFCON;
return C_LFCON;
- case TYPE_CONST:
case TYPE_TEXTSIZE:
+ return C_TEXTSIZE;
+
+ case TYPE_CONST:
switch(a->name) {
case TYPE_NONE:
Ymr, Ymm,
Yxr, Yxm,
Ytls,
+ Ytextsize,
Ymax,
Zxxx = 0,
};
static uchar ytext[] =
{
- Ymb, Yi64, Zpseudo,1,
+ Ymb, Ytextsize, Zpseudo,1,
0
};
static uchar ynop[] =
if((v>>32) == 0)
return Yi32; /* unsigned */
return Yi64;
+
+ case TYPE_TEXTSIZE:
+ return Ytextsize;
}
if(a->type != TYPE_REG) {
Ym,
Ybr,
Ycol,
+ Ytextsize,
Ytls,
Ycs, Yss, Yds, Yes, Yfs, Ygs,
};
static uchar ytext[] =
{
- Ymb, Yi32, Zpseudo,1,
+ Ymb, Ytextsize, Zpseudo,1,
0
};
static uchar ynop[] =
// fall through
case TYPE_CONST:
- case TYPE_TEXTSIZE:
if(a->sym != nil)
ctxt->diag("TYPE_CONST with symbol: %D", a);
if(v >= -128 && v <= 127)
return Yi8;
return Yi32;
+
+ case TYPE_TEXTSIZE:
+ return Ytextsize;
}
if(a->type != TYPE_REG) {
};
static Optab optab[] = {
- { ATEXT, C_LEXT, C_NONE, C_NONE, C_LCON, 0, 0, 0 },
- { ATEXT, C_LEXT, C_REG, C_NONE, C_LCON, 0, 0, 0 },
- { ATEXT, C_LEXT, C_NONE, C_LCON, C_LCON, 0, 0, 0 },
- { ATEXT, C_LEXT, C_REG, C_LCON, C_LCON, 0, 0, 0 },
- { ATEXT, C_ADDR, C_NONE, C_NONE, C_LCON, 0, 0, 0 },
- { ATEXT, C_ADDR, C_REG, C_NONE, C_LCON, 0, 0, 0 },
- { ATEXT, C_ADDR, C_NONE, C_LCON, C_LCON, 0, 0, 0 },
- { ATEXT, C_ADDR, C_REG, C_LCON, C_LCON, 0, 0, 0 },
+ { ATEXT, C_LEXT, C_NONE, C_NONE, C_TEXTSIZE, 0, 0, 0 },
+ { ATEXT, C_LEXT, C_REG, C_NONE, C_TEXTSIZE, 0, 0, 0 },
+ { ATEXT, C_LEXT, C_NONE, C_LCON, C_TEXTSIZE, 0, 0, 0 },
+ { ATEXT, C_LEXT, C_REG, C_LCON, C_TEXTSIZE, 0, 0, 0 },
+ { ATEXT, C_ADDR, C_NONE, C_NONE, C_TEXTSIZE, 0, 0, 0 },
+ { ATEXT, C_ADDR, C_REG, C_NONE, C_TEXTSIZE, 0, 0, 0 },
+ { ATEXT, C_ADDR, C_NONE, C_LCON, C_TEXTSIZE, 0, 0, 0 },
+ { ATEXT, C_ADDR, C_REG, C_LCON, C_TEXTSIZE, 0, 0, 0 },
/* move register */
{ AMOVD, C_REG, C_NONE, C_NONE, C_REG, 1, 4, 0 },
if(p == nil || p->link == nil) // handle external functions and ELF section symbols
return;
ctxt->cursym = cursym;
- ctxt->autosize = (int32)(p->to.offset & 0xffffffffll) + 8;
+ ctxt->autosize = p->to.offset + 8;
if(oprange[AANDN].start == nil)
buildop(ctxt);
}
return C_GOK;
+ case TYPE_TEXTSIZE:
+ return C_TEXTSIZE;
+
case TYPE_CONST:
switch(a->name) {
case TYPE_NONE:
#include <bio.h>
#include <link.h>
#include "../cmd/5l/5.out.h"
+#include "../runtime/funcdata.h"
enum
{
break;
case TYPE_TEXTSIZE:
- sprint(str, "$%lld-%d", a->offset, a->u.argsize);
+ if(a->u.argsize == ArgsSizeUnknown)
+ sprint(str, "$%lld", a->offset);
+ else
+ sprint(str, "$%lld-%lld", a->offset, a->u.argsize);
break;
case TYPE_SHIFT:
#include <bio.h>
#include <link.h>
#include "../cmd/6l/6.out.h"
+#include "../runtime/funcdata.h"
//
// Format conversions
// %A int Opcodes (instruction mnemonics)
//
// %D Addr* Addresses (instruction operands)
-// Flags: "%lD": seperate the high and low words of a constant by "-"
//
// %P Prog* Instructions
//
case ATEXT:
if(p->from.scale) {
- sprint(str, "%.5lld (%L) %A %D,%d,%lD",
+ sprint(str, "%.5lld (%L) %A %D,%d,%D",
p->pc, p->lineno, p->as, &p->from, p->from.scale, &p->to);
break;
}
- sprint(str, "%.5lld (%L) %A %D,%lD",
+ sprint(str, "%.5lld (%L) %A %D,%D",
p->pc, p->lineno, p->as, &p->from, &p->to);
break;
break;
case TYPE_CONST:
- if(fp->flags & FmtLong) {
- sprint(str, "$%lld-%lld", a->offset&0xffffffffLL, a->offset>>32);
- break;
- }
sprint(str, "$%lld", a->offset);
// TODO(rsc): This special case is for SHRQ $32, AX:DX, which encodes as
// SHRQ $32(DX*0), AX
strcat(str, s);
}
break;
+
+ case TYPE_TEXTSIZE:
+ if(a->u.argsize == ArgsSizeUnknown)
+ sprint(str, "$%lld", a->offset);
+ else
+ sprint(str, "$%lld-%lld", a->offset, a->u.argsize);
+ break;
case TYPE_FCONST:
sprint(str, "$(%.17g)", a->u.dval);
#include <bio.h>
#include <link.h>
#include "../cmd/8l/8.out.h"
+#include "../runtime/funcdata.h"
static int Aconv(Fmt *fp);
static int Dconv(Fmt *fp);
case ATEXT:
if(p->from.scale) {
- sprint(str, "%.5lld (%L) %A %D,%d,%lD",
+ sprint(str, "%.5lld (%L) %A %D,%d,%D",
p->pc, p->lineno, p->as, &p->from, p->from.scale, &p->to);
break;
}
- sprint(str, "%.5lld (%L) %A %D,%lD",
+ sprint(str, "%.5lld (%L) %A %D,%D",
p->pc, p->lineno, p->as, &p->from, &p->to);
break;
break;
case TYPE_TEXTSIZE:
- sprint(str, "$%lld-%d", a->offset, a->u.argsize);
+ if(a->u.argsize == ArgsSizeUnknown)
+ sprint(str, "$%lld", a->offset);
+ else
+ sprint(str, "$%lld-%lld", a->offset, a->u.argsize);
break;
case TYPE_FCONST:
#include <bio.h>
#include <link.h>
#include "../cmd/9l/9.out.h"
+#include "../runtime/funcdata.h"
enum
{
// %A int Opcodes (instruction mnemonics)
//
// %D Addr* Addresses (instruction operands)
-// Flags: "%lD": seperate the high and low words of a constant by "-"
//
// %P Prog* Instructions
//
sprint(str, "%.5lld (%L) %A %D/%d,%D", p->pc, p->lineno, a, &p->from, p->reg, &p->to);
else if(a == ATEXT) {
if(p->reg != 0)
- sprint(str, "%.5lld (%L) %A %D,%d,%lD", p->pc, p->lineno, a, &p->from, p->reg, &p->to);
+ sprint(str, "%.5lld (%L) %A %D,%d,%D", p->pc, p->lineno, a, &p->from, p->reg, &p->to);
else
- sprint(str, "%.5lld (%L) %A %D,%lD", p->pc, p->lineno, a, &p->from, &p->to);
+ sprint(str, "%.5lld (%L) %A %D,%D", p->pc, p->lineno, a, &p->from, &p->to);
} else if(a == AGLOBL) {
if(p->reg != 0)
sprint(str, "%.5lld (%L) %A %D,%d,%D", p->pc, p->lineno, a, &p->from, p->reg, &p->to);
a = va_arg(fp->args, Addr*);
- if(fp->flags & FmtLong) {
- if(a->type == TYPE_CONST)
- sprint(str, "$%d-%d", (int32)a->offset, (int32)(a->offset>>32));
- else {
- // ATEXT dst is not constant
- sprint(str, "!!%D", a);
- }
- goto ret;
- }
-
switch(a->type) {
default:
sprint(str, "GOK-type(%d)", a->type);
sprint(str, "$%M", a);
break;
+ case TYPE_TEXTSIZE:
+ if(a->u.argsize == ArgsSizeUnknown)
+ sprint(str, "$%lld", a->offset);
+ else
+ sprint(str, "$%lld-%lld", a->offset, a->u.argsize);
+ break;
+
case TYPE_MEM:
if(a->reg != 0)
sprint(str, "%M(%R)", a, a->reg);
break;
}
-ret:
return fmtstrcpy(fp, str);
}
static Prog* stacksplit(Link*, Prog*, int32, int32, int, Prog**);
static void indir_cx(Link*, Addr*);
-static void
-parsetextconst(vlong arg, vlong *textstksiz, vlong *textarg)
-{
- *textstksiz = arg & 0xffffffffLL;
- if(*textstksiz & 0x80000000LL)
- *textstksiz = -(-*textstksiz & 0xffffffffLL);
-
- *textarg = (arg >> 32) & 0xffffffffLL;
- if(*textarg & 0x80000000LL)
- *textarg = 0;
- *textarg = (*textarg+7) & ~7LL;
-}
-
static void
preprocess(Link *ctxt, LSym *cursym)
{
Prog *p, *q, *p1, *p2;
int32 autoffset, deltasp;
int a, pcsize, bpsize;
- vlong textstksiz, textarg;
+ vlong textarg;
if(ctxt->tlsg == nil)
ctxt->tlsg = linklookup(ctxt, "runtime.tlsg", 0);
return;
p = cursym->text;
- parsetextconst(p->to.offset, &textstksiz, &textarg);
- autoffset = textstksiz;
+ autoffset = p->to.offset;
if(autoffset < 0)
autoffset = 0;
// another function, so in that case we omit this.
bpsize = ctxt->arch->ptrsize;
autoffset += bpsize;
- textstksiz += bpsize;
- p->to.offset = ((uint64)p->to.offset & (0xffffffffull<<32)) | (uint32)autoffset;
+ p->to.offset += bpsize;
} else {
bpsize = 0;
}
- cursym->args = p->to.offset>>32;
- cursym->locals = textstksiz;
+ textarg = p->to.u.argsize;
+ cursym->args = textarg;
+ cursym->locals = p->to.offset;
if(autoffset < StackSmall && !(p->from.scale & NOSPLIT)) {
for(q = p; q != nil; q = q->link) {
static Prog* stacksplit(Link*, Prog*, int32, int);
-static void
-parsetextconst(vlong arg, vlong *textstksiz, vlong *textarg)
-{
- *textstksiz = arg & 0xffffffffLL;
- if(*textstksiz & 0x80000000LL)
- *textstksiz = -(-*textstksiz & 0xffffffffLL);
-
- *textarg = (arg >> 32) & 0xffffffffLL;
- if(*textarg & 0x80000000LL)
- *textarg = 0;
- *textarg = (*textarg+7) & ~7LL;
-}
-
static void
preprocess(Link *ctxt, LSym *cursym)
{
Prog *p, *q, *p1, *p2, *q1;
int o, mov, aoffset;
- vlong textstksiz, textarg;
+ vlong textstksiz;
int32 autosize;
if(ctxt->symmorestack[0] == nil) {
return;
p = cursym->text;
- parsetextconst(p->to.offset, &textstksiz, &textarg);
+ textstksiz = p->to.offset;
- cursym->args = p->to.offset>>32;
+ cursym->args = p->to.u.argsize;
cursym->locals = textstksiz;
/*
else
if(autosize & 4)
autosize += 4;
- p->to.offset = ((uint64)p->to.offset & (0xffffffffull<<32)) | (uint32)(autosize-8);
+ p->to.offset = autosize-8;
if(!(p->reg & NOSPLIT))
p = stacksplit(ctxt, p, autosize, !(cursym->text->reg&NEEDCTXT)); // emit split check