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