From a293c7e68f64d3935c4720372cb26925e4d8353f Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Thu, 29 Jan 2015 13:50:19 -0500 Subject: [PATCH] cmd/9a: fix GLOBL instruction Because it was lumped in with the TEXT instruction, the high 32 bits of the 64-bit constant holding the size were always set to 0x80000000 (ArgsSizeUnknown). This only worked because cmd/9l was reading the 64-bit value into an int32. While we're here, fix 5a. It wasn't as much of a problem there because the two values were being stored in two different fields. But it was still wrong. Change-Id: I69a2214c7be939530d499e29cfdc3b26720ac05a Reviewed-on: https://go-review.googlesource.com/3570 Reviewed-by: Austin Clements --- src/cmd/5a/a.y | 17 +- src/cmd/5a/lex.c | 2 +- src/cmd/5a/y.tab.c | 1177 ++++++++++++++++++++-------------------- src/cmd/5a/y.tab.h | 152 +++--- src/cmd/9a/a.y | 18 +- src/cmd/9a/lex.c | 2 +- src/cmd/9a/y.tab.c | 1287 ++++++++++++++++++++++---------------------- src/cmd/9a/y.tab.h | 160 +++--- 8 files changed, 1449 insertions(+), 1366 deletions(-) diff --git a/src/cmd/5a/a.y b/src/cmd/5a/a.y index 9db688f0a5..89e8e73b25 100644 --- a/src/cmd/5a/a.y +++ b/src/cmd/5a/a.y @@ -51,7 +51,7 @@ %left '*' '/' '%' %token LTYPE1 LTYPE2 LTYPE3 LTYPE4 LTYPE5 %token LTYPE6 LTYPE7 LTYPE8 LTYPE9 LTYPEA -%token LTYPEB LTYPEC LTYPED LTYPEE +%token LTYPEB LGLOBL LTYPEC LTYPED LTYPEE %token LTYPEG LTYPEH LTYPEI LTYPEJ LTYPEK %token LTYPEL LTYPEM LTYPEN LTYPEBX LTYPEPLD %token LCONST LSP LSB LFP LPC @@ -210,7 +210,7 @@ inst: outcode($1, $2, &nullgen, 0, &nullgen); } /* - * TEXT/GLOBL + * TEXT */ | LTYPEB name ',' imm { @@ -233,6 +233,19 @@ inst: $6.u.argsize = $8; outcode($1, Always, &$2, $4, &$6); } +/* + * GLOBL + */ +| LGLOBL name ',' imm + { + settext($2.sym); + outcode($1, Always, &$2, 0, &$4); + } +| LGLOBL name ',' con ',' imm + { + settext($2.sym); + outcode($1, Always, &$2, $4, &$6); + } /* * DATA */ diff --git a/src/cmd/5a/lex.c b/src/cmd/5a/lex.c index 63b6bd7944..4c4a3b7920 100644 --- a/src/cmd/5a/lex.c +++ b/src/cmd/5a/lex.c @@ -406,7 +406,7 @@ struct "RFE", LTYPEA, ARFE, "TEXT", LTYPEB, ATEXT, - "GLOBL", LTYPEB, AGLOBL, + "GLOBL", LGLOBL, AGLOBL, "DATA", LTYPEC, ADATA, "CASE", LTYPED, ACASE, "END", LTYPEE, AEND, diff --git a/src/cmd/5a/y.tab.c b/src/cmd/5a/y.tab.c index c3c9c1cbf5..c9db3249b9 100644 --- a/src/cmd/5a/y.tab.c +++ b/src/cmd/5a/y.tab.c @@ -77,43 +77,44 @@ LTYPE9 = 266, LTYPEA = 267, LTYPEB = 268, - LTYPEC = 269, - LTYPED = 270, - LTYPEE = 271, - LTYPEG = 272, - LTYPEH = 273, - LTYPEI = 274, - LTYPEJ = 275, - LTYPEK = 276, - LTYPEL = 277, - LTYPEM = 278, - LTYPEN = 279, - LTYPEBX = 280, - LTYPEPLD = 281, - LCONST = 282, - LSP = 283, - LSB = 284, - LFP = 285, - LPC = 286, - LTYPEX = 287, - LTYPEPC = 288, - LTYPEF = 289, - LR = 290, - LREG = 291, - LF = 292, - LFREG = 293, - LC = 294, - LCREG = 295, - LPSR = 296, - LFCR = 297, - LCOND = 298, - LS = 299, - LAT = 300, - LFCONST = 301, - LSCONST = 302, - LNAME = 303, - LLAB = 304, - LVAR = 305 + LGLOBL = 269, + LTYPEC = 270, + LTYPED = 271, + LTYPEE = 272, + LTYPEG = 273, + LTYPEH = 274, + LTYPEI = 275, + LTYPEJ = 276, + LTYPEK = 277, + LTYPEL = 278, + LTYPEM = 279, + LTYPEN = 280, + LTYPEBX = 281, + LTYPEPLD = 282, + LCONST = 283, + LSP = 284, + LSB = 285, + LFP = 286, + LPC = 287, + LTYPEX = 288, + LTYPEPC = 289, + LTYPEF = 290, + LR = 291, + LREG = 292, + LF = 293, + LFREG = 294, + LC = 295, + LCREG = 296, + LPSR = 297, + LFCR = 298, + LCOND = 299, + LS = 300, + LAT = 301, + LFCONST = 302, + LSCONST = 303, + LNAME = 304, + LLAB = 305, + LVAR = 306 }; #endif /* Tokens. */ @@ -128,43 +129,44 @@ #define LTYPE9 266 #define LTYPEA 267 #define LTYPEB 268 -#define LTYPEC 269 -#define LTYPED 270 -#define LTYPEE 271 -#define LTYPEG 272 -#define LTYPEH 273 -#define LTYPEI 274 -#define LTYPEJ 275 -#define LTYPEK 276 -#define LTYPEL 277 -#define LTYPEM 278 -#define LTYPEN 279 -#define LTYPEBX 280 -#define LTYPEPLD 281 -#define LCONST 282 -#define LSP 283 -#define LSB 284 -#define LFP 285 -#define LPC 286 -#define LTYPEX 287 -#define LTYPEPC 288 -#define LTYPEF 289 -#define LR 290 -#define LREG 291 -#define LF 292 -#define LFREG 293 -#define LC 294 -#define LCREG 295 -#define LPSR 296 -#define LFCR 297 -#define LCOND 298 -#define LS 299 -#define LAT 300 -#define LFCONST 301 -#define LSCONST 302 -#define LNAME 303 -#define LLAB 304 -#define LVAR 305 +#define LGLOBL 269 +#define LTYPEC 270 +#define LTYPED 271 +#define LTYPEE 272 +#define LTYPEG 273 +#define LTYPEH 274 +#define LTYPEI 275 +#define LTYPEJ 276 +#define LTYPEK 277 +#define LTYPEL 278 +#define LTYPEM 279 +#define LTYPEN 280 +#define LTYPEBX 281 +#define LTYPEPLD 282 +#define LCONST 283 +#define LSP 284 +#define LSB 285 +#define LFP 286 +#define LPC 287 +#define LTYPEX 288 +#define LTYPEPC 289 +#define LTYPEF 290 +#define LR 291 +#define LREG 292 +#define LF 293 +#define LFREG 294 +#define LC 295 +#define LCREG 296 +#define LPSR 297 +#define LFCR 298 +#define LCOND 299 +#define LS 300 +#define LAT 301 +#define LFCONST 302 +#define LSCONST 303 +#define LNAME 304 +#define LLAB 305 +#define LVAR 306 @@ -208,7 +210,7 @@ typedef union YYSTYPE Addr addr; } /* Line 193 of yacc.c. */ -#line 212 "y.tab.c" +#line 214 "y.tab.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -221,7 +223,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 225 "y.tab.c" +#line 227 "y.tab.c" #ifdef short # undef short @@ -436,20 +438,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 624 +#define YYLAST 636 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 71 +#define YYNTOKENS 72 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 34 /* YYNRULES -- Number of rules. */ -#define YYNRULES 129 +#define YYNRULES 131 /* YYNRULES -- Number of states. */ -#define YYNSTATES 330 +#define YYNSTATES 337 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 305 +#define YYMAXUTOK 306 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -460,16 +462,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, 69, 12, 5, 2, - 67, 68, 10, 8, 64, 9, 2, 11, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 61, 63, - 6, 62, 7, 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, 2, 2, 62, 64, + 6, 63, 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, 65, 2, 66, 4, 2, 2, 2, 2, 2, + 2, 66, 2, 67, 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, 70, 2, 2, 2, + 2, 2, 2, 2, 3, 2, 71, 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, @@ -487,7 +489,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, 59, 60 + 55, 56, 57, 58, 59, 60, 61 }; #if YYDEBUG @@ -498,72 +500,75 @@ static const yytype_uint16 yyprhs[] = 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, 166, 171, 175, 181, 187, 195, 202, - 215, 223, 233, 236, 241, 246, 249, 250, 253, 256, - 257, 260, 265, 268, 271, 274, 277, 279, 282, 286, - 288, 292, 296, 298, 300, 302, 307, 309, 311, 313, - 315, 317, 319, 321, 325, 327, 332, 334, 339, 341, - 343, 345, 347, 350, 352, 358, 363, 368, 373, 378, - 380, 382, 384, 386, 391, 393, 395, 397, 402, 404, - 406, 408, 413, 418, 424, 432, 433, 436, 439, 441, - 443, 445, 447, 449, 452, 455, 458, 462, 463, 466, - 468, 472, 476, 480, 484, 488, 493, 498, 502, 506 + 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 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { - 72, 0, -1, -1, -1, 72, 73, 74, -1, -1, - 58, 61, 75, 74, -1, 58, 62, 104, 63, -1, - 60, 62, 104, 63, -1, 63, -1, 76, 63, -1, - 1, 63, -1, 13, 77, 88, 64, 95, 64, 90, - -1, 13, 77, 88, 64, 95, 64, -1, 13, 77, - 88, 64, 90, -1, 14, 77, 88, 64, 90, -1, - 15, 77, 83, 64, 83, -1, 16, 77, 78, 79, - -1, 16, 77, 78, 84, -1, 35, 78, 85, -1, - 17, 78, 79, -1, 18, 77, 78, 83, -1, 19, - 77, 88, 64, 95, 78, -1, 20, 77, 86, 64, - 65, 82, 66, -1, 20, 77, 65, 82, 66, 64, - 86, -1, 21, 77, 90, 64, 85, 64, 90, -1, - 21, 77, 90, 64, 85, 78, -1, 21, 77, 78, - 85, 64, 90, -1, 22, 77, 78, -1, 23, 99, - 64, 89, -1, 23, 99, 64, 102, 64, 89, -1, - 23, 99, 64, 102, 64, 89, 9, 102, -1, 24, - 99, 11, 102, 64, 80, -1, 25, 77, 90, 78, - -1, 28, 78, 80, -1, 29, 77, 98, 64, 98, - -1, 31, 77, 97, 64, 98, -1, 31, 77, 97, - 64, 48, 64, 98, -1, 32, 77, 98, 64, 98, - 78, -1, 30, 77, 102, 64, 104, 64, 95, 64, - 96, 64, 96, 103, -1, 33, 77, 90, 64, 90, - 64, 91, -1, 34, 77, 90, 64, 90, 64, 90, - 64, 95, -1, 36, 87, -1, 43, 83, 64, 83, - -1, 44, 83, 64, 83, -1, 26, 78, -1, -1, - 77, 53, -1, 77, 54, -1, -1, 64, 78, -1, - 102, 67, 41, 68, -1, 58, 100, -1, 69, 102, - -1, 69, 87, -1, 69, 57, -1, 81, -1, 69, - 56, -1, 69, 9, 56, -1, 95, -1, 95, 9, - 95, -1, 95, 78, 82, -1, 90, -1, 80, -1, - 92, -1, 92, 67, 95, 68, -1, 51, -1, 52, - -1, 102, -1, 87, -1, 98, -1, 85, -1, 99, - -1, 67, 95, 68, -1, 85, -1, 102, 67, 94, - 68, -1, 99, -1, 99, 67, 94, 68, -1, 86, - -1, 90, -1, 89, -1, 92, -1, 69, 102, -1, - 95, -1, 67, 95, 64, 95, 68, -1, 95, 6, - 6, 93, -1, 95, 7, 7, 93, -1, 95, 9, - 7, 93, -1, 95, 55, 7, 93, -1, 95, -1, - 102, -1, 46, -1, 41, -1, 45, 67, 104, 68, - -1, 94, -1, 38, -1, 50, -1, 49, 67, 104, - 68, -1, 98, -1, 81, -1, 48, -1, 47, 67, - 102, 68, -1, 102, 67, 101, 68, -1, 58, 100, - 67, 101, 68, -1, 58, 6, 7, 100, 67, 39, - 68, -1, -1, 8, 102, -1, 9, 102, -1, 39, - -1, 38, -1, 40, -1, 37, -1, 60, -1, 9, - 102, -1, 8, 102, -1, 70, 102, -1, 67, 104, - 68, -1, -1, 64, 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 + 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 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -572,16 +577,17 @@ static const yytype_uint16 yyrline[] = 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, 246, 253, 260, 264, 268, 272, 279, - 301, 309, 318, 325, 334, 345, 351, 354, 358, 363, - 364, 367, 373, 383, 389, 394, 400, 403, 409, 417, - 421, 430, 436, 437, 438, 439, 444, 450, 456, 462, - 463, 466, 467, 475, 484, 485, 494, 495, 501, 504, - 505, 506, 508, 516, 524, 533, 539, 545, 551, 559, - 565, 573, 574, 578, 586, 587, 593, 594, 602, 603, - 606, 612, 620, 628, 636, 646, 649, 653, 659, 660, - 661, 664, 665, 669, 673, 677, 681, 687, 690, 696, - 697, 701, 705, 709, 713, 717, 721, 725, 729, 733 + 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 }; #endif @@ -593,16 +599,16 @@ static const char *const yytname[] = "$end", "error", "$undefined", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'", "'-'", "'*'", "'/'", "'%'", "LTYPE1", "LTYPE2", "LTYPE3", "LTYPE4", "LTYPE5", "LTYPE6", "LTYPE7", "LTYPE8", "LTYPE9", "LTYPEA", "LTYPEB", - "LTYPEC", "LTYPED", "LTYPEE", "LTYPEG", "LTYPEH", "LTYPEI", "LTYPEJ", - "LTYPEK", "LTYPEL", "LTYPEM", "LTYPEN", "LTYPEBX", "LTYPEPLD", "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", "frcon", "freg", "name", - "offset", "pointer", "con", "oexpr", "expr", 0 + "LGLOBL", "LTYPEC", "LTYPED", "LTYPEE", "LTYPEG", "LTYPEH", "LTYPEI", + "LTYPEJ", "LTYPEK", "LTYPEL", "LTYPEM", "LTYPEN", "LTYPEBX", "LTYPEPLD", + "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", + "frcon", "freg", "name", "offset", "pointer", "con", "oexpr", "expr", 0 }; #endif @@ -617,27 +623,28 @@ static const yytype_uint16 yytoknum[] = 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, 58, 61, 59, 44, 91, 93, 40, 41, 36, - 126 + 305, 306, 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, 71, 72, 73, 72, 75, 74, 74, 74, 74, - 74, 74, 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, 76, 76, 76, 77, 77, 77, 78, - 78, 79, 79, 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 + 0, 72, 73, 74, 73, 76, 75, 75, 75, 75, + 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 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -646,16 +653,17 @@ static const yytype_uint8 yyr2[] = 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, 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 + 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 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -663,275 +671,280 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 3, 1, 0, 0, 46, 46, 46, 46, 49, - 46, 46, 46, 46, 46, 0, 0, 46, 49, 49, - 46, 46, 46, 46, 46, 46, 49, 0, 0, 0, - 0, 0, 9, 4, 0, 11, 0, 0, 0, 49, - 49, 0, 49, 0, 0, 49, 49, 0, 0, 111, - 105, 112, 0, 0, 0, 0, 0, 0, 45, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 74, 78, - 42, 76, 0, 95, 92, 0, 91, 0, 100, 66, - 67, 0, 63, 56, 0, 69, 62, 64, 94, 83, - 70, 68, 0, 5, 0, 0, 10, 47, 48, 0, - 0, 80, 79, 81, 0, 0, 0, 50, 105, 20, - 0, 0, 0, 0, 0, 0, 0, 0, 83, 28, - 114, 113, 0, 0, 0, 0, 119, 0, 115, 0, - 0, 0, 49, 34, 0, 0, 0, 99, 0, 98, - 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, - 0, 57, 55, 54, 53, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 82, 0, 0, 0, 105, - 17, 18, 71, 72, 0, 52, 0, 21, 0, 0, - 49, 0, 0, 0, 0, 105, 106, 107, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, - 29, 0, 109, 108, 110, 0, 0, 33, 0, 0, - 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, - 58, 43, 0, 0, 0, 0, 0, 44, 6, 7, - 8, 14, 83, 15, 16, 52, 0, 0, 49, 0, - 0, 0, 0, 0, 49, 0, 0, 129, 128, 127, - 0, 0, 120, 121, 122, 123, 124, 0, 102, 0, - 35, 0, 100, 36, 49, 0, 0, 77, 75, 93, - 101, 65, 85, 89, 90, 86, 87, 88, 13, 51, - 22, 0, 60, 61, 0, 27, 49, 26, 0, 103, - 125, 126, 30, 32, 0, 0, 38, 0, 0, 12, - 24, 23, 25, 0, 0, 0, 37, 0, 40, 0, - 104, 31, 0, 0, 0, 0, 96, 0, 0, 41, - 0, 0, 0, 0, 117, 84, 97, 0, 39, 118 + 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, + 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 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 3, 33, 162, 34, 36, 107, 109, 82, - 83, 179, 84, 171, 68, 69, 85, 100, 101, 86, - 308, 87, 272, 88, 118, 317, 138, 90, 71, 125, - 205, 126, 328, 127 + -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 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -124 +#define YYPACT_NINF -99 static const yytype_int16 yypact[] = { - -124, 5, -124, 329, -61, -124, -124, -124, -124, -57, - -124, -124, -124, -124, -124, 157, 157, -124, -57, -57, - -124, -124, -124, -124, -124, -124, -57, 264, 385, 385, - -31, -22, -124, -124, -12, -124, 512, 512, 358, -16, - -57, 268, -16, 512, 191, 337, -16, 432, 432, -124, - 164, -124, 432, 432, 0, 9, 58, 450, -124, 15, - 172, 49, 235, 172, 450, 450, 11, 34, -124, -124, - -124, 14, 21, -124, -124, 32, -124, 46, -124, -124, - -124, 87, -124, -124, 59, -124, -124, 69, -124, 91, - -124, 21, 75, -124, 432, 432, -124, -124, -124, 432, - 85, -124, -124, -124, 129, 141, 405, -124, 37, -124, - 84, 385, 147, 80, 152, 151, 11, 178, -124, -124, - -124, -124, 236, 432, 432, 180, -124, 173, -124, 411, - 231, 432, -57, -124, 185, 186, 18, -124, 189, -124, - 193, 200, 201, 80, -124, 199, 107, 471, 432, 432, - 430, -124, -124, -124, 21, 385, 80, 269, 273, 274, - 277, 385, 329, 526, 536, -124, 80, 80, 385, 164, - -124, -124, -124, -124, 218, -124, 261, -124, 80, 243, - 56, 260, 107, 263, 11, 37, -124, -124, 231, 432, - 432, 432, 323, 326, 432, 432, 432, 432, 432, -124, - -124, 272, -124, -124, -124, 303, 276, -124, 44, 432, - 281, 63, 44, 80, 80, -124, 306, 308, 288, 311, - -124, -124, 312, 34, 34, 34, 34, -124, -124, -124, - -124, -124, 317, -124, -124, 180, 148, 316, -57, 321, - 80, 80, 80, 80, 322, 330, 320, 586, 605, 612, - 432, 432, 296, 296, -124, -124, -124, 331, -124, 15, - -124, 516, 334, -124, -57, 338, 343, -124, -124, -124, - -124, -124, -124, -124, -124, -124, -124, -124, 80, -124, - -124, 448, -124, -124, 275, -124, 214, -124, 369, -124, - 225, 225, 406, -124, 80, 44, -124, 350, 80, -124, - -124, -124, -124, 353, 432, 360, -124, 80, -124, 365, - -124, -124, 82, 370, 80, 368, -124, 380, 80, -124, - 432, 82, 378, 309, 383, -124, -124, 432, -124, 597 + -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 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -124, -124, -124, 287, -124, -124, 562, 10, 344, -55, - 389, -19, 3, -124, -43, -41, -15, -17, -123, 25, - -124, 132, 144, -122, -28, 137, -124, -49, 2, -92, - 265, 6, -124, 12 + -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 }; /* 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 -62 static const yytype_int16 yytable[] = { - 89, 89, 35, 114, 133, 2, 200, 40, 89, 89, - 89, 134, 70, 139, 140, 89, 175, 54, 56, 41, - 104, 55, 55, 144, 216, 217, 112, 210, 58, 59, - 93, 94, 92, 72, 91, 91, 66, 97, 98, 145, - 95, 105, 47, 48, 91, 123, 124, 110, 40, 106, - 115, 96, 111, 120, 121, 116, 119, 47, 48, 128, - 217, 102, 102, 172, 129, 240, 153, 135, 102, 131, - 117, 49, 73, 183, 151, 74, 130, 235, 143, 75, - 76, 146, 132, 89, 81, 180, 49, 154, 147, 141, - 142, 77, 78, 245, 51, 47, 150, 157, 158, 148, - 159, 52, 97, 98, 53, 165, 163, 164, 173, 51, - 77, 262, 174, 149, 177, 145, 52, 91, 73, 53, - 40, 74, -59, 155, 49, 75, 76, 89, 222, 186, - 187, 315, 316, 89, 292, 201, 156, 206, 232, 161, - 89, 244, 207, 151, 152, 50, 160, 51, 74, 166, - 238, 176, 75, 76, 67, 219, 121, 53, 221, 260, - 218, 91, 263, 264, 227, 47, 48, 91, 103, 103, - 122, 234, 123, 124, 91, 103, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 202, 203, 204, 237, - 241, 231, 233, 167, 49, 273, 273, 273, 273, 47, - 48, 247, 248, 249, 293, 168, 252, 253, 254, 255, - 256, 178, 282, 180, 180, 50, 181, 51, 182, 77, - 78, 261, 283, 284, 52, 97, 98, 53, 49, 274, - 274, 274, 274, 194, 195, 196, 197, 198, 265, 266, - 300, 199, 184, 185, 97, 98, 306, 188, 280, 208, - 209, 51, 73, 211, 287, 74, 113, 212, 67, 75, - 76, 53, 290, 291, 213, 214, 305, 215, 285, 202, - 203, 204, 47, 48, 296, 223, 47, 48, 40, 313, - 224, 225, 77, 78, 226, 236, 319, 115, 97, 98, - 322, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 49, 237, 299, 136, 49, 196, 197, 198, 239, - 311, 302, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 50, 309, 51, 242, 108, 243, 51, 250, - 4, 67, 323, 251, 53, 52, 257, 220, 53, 329, - 259, 301, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 269, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 47, 48, 275, 276, - 277, 258, 28, 29, 267, 73, 268, 326, 74, 270, - 271, 278, 75, 76, 279, 281, 286, 30, 289, 31, - 97, 98, 32, 47, 48, 49, 73, 288, 295, 74, - 99, 40, 297, 75, 76, 77, 78, 298, 303, 79, - 80, 97, 98, 47, 48, 304, 50, 307, 51, 47, - 48, 310, 49, 73, 312, 67, 74, 81, 53, 314, - 75, 76, 77, 78, 318, 320, 79, 80, 47, 48, - 47, 48, 49, 50, 321, 51, 325, 327, 49, 228, - 170, 137, 67, 246, 81, 53, 47, 48, 324, 0, - 0, 0, 0, 169, 0, 51, 0, 49, 0, 49, - 0, 51, 67, 0, 0, 53, 0, 0, 52, 0, - 99, 53, 0, 0, 0, 49, 220, 0, 73, 0, - 51, 74, 51, 0, 0, 75, 76, 52, 0, 52, - 53, 0, 53, 97, 98, 0, 0, 0, 51, 202, - 203, 204, 74, 0, 0, 67, 75, 76, 53, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 0, - 73, 0, 0, 74, 0, 0, 0, 75, 76, 0, - 0, 0, 0, 0, 0, 97, 98, 0, 37, 38, - 39, 0, 42, 43, 44, 45, 46, 0, 0, 57, - 294, 99, 60, 61, 62, 63, 64, 65, 0, 229, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 230, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 191, 192, 193, 194, 195, 196, 197, 198, 192, 193, - 194, 195, 196, 197, 198 + 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 }; static const yytype_int16 yycheck[] = { - 28, 29, 63, 44, 59, 0, 129, 64, 36, 37, - 38, 60, 27, 62, 63, 43, 108, 15, 16, 9, - 37, 15, 16, 66, 146, 147, 43, 9, 18, 19, - 61, 62, 29, 27, 28, 29, 26, 53, 54, 67, - 62, 38, 8, 9, 38, 8, 9, 41, 64, 39, - 44, 63, 42, 47, 48, 45, 46, 8, 9, 53, - 182, 36, 37, 106, 64, 9, 81, 61, 43, 11, - 45, 37, 38, 116, 56, 41, 67, 169, 67, 45, - 46, 67, 57, 111, 69, 113, 37, 81, 67, 64, - 65, 47, 48, 185, 60, 8, 9, 6, 7, 67, - 9, 67, 53, 54, 70, 99, 94, 95, 106, 60, - 47, 48, 106, 67, 111, 143, 67, 111, 38, 70, - 64, 41, 66, 64, 37, 45, 46, 155, 156, 123, - 124, 49, 50, 161, 257, 129, 67, 131, 166, 64, - 168, 184, 132, 56, 57, 58, 55, 60, 41, 64, - 178, 67, 45, 46, 67, 149, 150, 70, 155, 208, - 148, 155, 211, 212, 161, 8, 9, 161, 36, 37, - 6, 168, 8, 9, 168, 43, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 38, 39, 40, 41, - 180, 166, 167, 64, 37, 223, 224, 225, 226, 8, - 9, 189, 190, 191, 259, 64, 194, 195, 196, 197, - 198, 64, 240, 241, 242, 58, 64, 60, 67, 47, - 48, 209, 241, 242, 67, 53, 54, 70, 37, 223, - 224, 225, 226, 8, 9, 10, 11, 12, 213, 214, - 281, 68, 64, 7, 53, 54, 295, 67, 238, 64, - 64, 60, 38, 64, 244, 41, 65, 64, 67, 45, - 46, 70, 250, 251, 64, 64, 294, 68, 243, 38, - 39, 40, 8, 9, 264, 6, 8, 9, 64, 307, - 7, 7, 47, 48, 7, 67, 314, 281, 53, 54, - 318, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 37, 41, 278, 69, 37, 10, 11, 12, 66, - 304, 286, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 58, 298, 60, 65, 58, 64, 60, 6, - 1, 67, 320, 7, 70, 67, 64, 56, 70, 327, - 64, 66, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 68, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 8, 9, 224, 225, - 226, 68, 43, 44, 68, 38, 68, 68, 41, 68, - 68, 64, 45, 46, 68, 64, 64, 58, 68, 60, - 53, 54, 63, 8, 9, 37, 38, 67, 64, 41, - 69, 64, 64, 45, 46, 47, 48, 64, 39, 51, - 52, 53, 54, 8, 9, 9, 58, 67, 60, 8, - 9, 68, 37, 38, 64, 67, 41, 69, 70, 64, - 45, 46, 47, 48, 64, 67, 51, 52, 8, 9, - 8, 9, 37, 58, 64, 60, 68, 64, 37, 162, - 106, 62, 67, 188, 69, 70, 8, 9, 321, -1, - -1, -1, -1, 58, -1, 60, -1, 37, -1, 37, - -1, 60, 67, -1, -1, 70, -1, -1, 67, -1, - 69, 70, -1, -1, -1, 37, 56, -1, 38, -1, - 60, 41, 60, -1, -1, 45, 46, 67, -1, 67, - 70, -1, 70, 53, 54, -1, -1, -1, 60, 38, - 39, 40, 41, -1, -1, 67, 45, 46, 70, 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, -1, - 38, -1, -1, 41, -1, -1, -1, 45, 46, -1, - -1, -1, -1, -1, -1, 53, 54, -1, 6, 7, - 8, -1, 10, 11, 12, 13, 14, -1, -1, 17, - 64, 69, 20, 21, 22, 23, 24, 25, -1, 63, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 63, - 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 + 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 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 72, 0, 73, 1, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 43, 44, - 58, 60, 63, 74, 76, 63, 77, 77, 77, 77, - 64, 78, 77, 77, 77, 77, 77, 8, 9, 37, - 58, 60, 67, 70, 99, 102, 99, 77, 78, 78, - 77, 77, 77, 77, 77, 77, 78, 67, 85, 86, - 87, 99, 102, 38, 41, 45, 46, 47, 48, 51, - 52, 69, 80, 81, 83, 87, 90, 92, 94, 95, - 98, 102, 83, 61, 62, 62, 63, 53, 54, 69, - 88, 89, 90, 92, 88, 83, 78, 78, 58, 79, - 102, 78, 88, 65, 86, 102, 78, 90, 95, 78, - 102, 102, 6, 8, 9, 100, 102, 104, 102, 64, - 67, 11, 90, 80, 98, 102, 69, 81, 97, 98, - 98, 90, 90, 67, 85, 95, 67, 67, 67, 67, - 9, 56, 57, 87, 102, 64, 67, 6, 7, 9, - 55, 64, 75, 104, 104, 102, 64, 64, 64, 58, - 79, 84, 85, 99, 102, 100, 67, 83, 64, 82, - 95, 64, 67, 85, 64, 7, 102, 102, 67, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 68, - 89, 102, 38, 39, 40, 101, 102, 78, 64, 64, - 9, 64, 64, 64, 64, 68, 94, 94, 104, 102, - 56, 83, 95, 6, 7, 7, 7, 83, 74, 63, - 63, 90, 95, 90, 83, 100, 67, 41, 95, 66, - 9, 78, 65, 64, 85, 100, 101, 104, 104, 104, - 6, 7, 104, 104, 104, 104, 104, 64, 68, 64, - 98, 104, 48, 98, 98, 90, 90, 68, 68, 68, - 68, 68, 93, 95, 102, 93, 93, 93, 64, 68, - 78, 64, 95, 82, 82, 90, 64, 78, 67, 68, - 104, 104, 89, 80, 64, 64, 78, 64, 64, 90, - 86, 66, 90, 39, 9, 95, 98, 67, 91, 90, - 68, 102, 64, 95, 64, 49, 50, 96, 64, 95, - 67, 64, 95, 104, 96, 68, 68, 64, 103, 104 + 0, 73, 0, 74, 1, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 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 }; #define yyerrok (yyerrstatus = 0) @@ -1942,54 +1955,70 @@ yyreduce: case 32: #line 240 "a.y" { - outcode((yyvsp[(1) - (6)].lval), Always, &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); + 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 247 "a.y" +#line 245 "a.y" { - outcode((yyvsp[(1) - (4)].lval), (yyvsp[(2) - (4)].lval), &(yyvsp[(3) - (4)].addr), 0, &nullgen); + 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 254 "a.y" +#line 253 "a.y" { - outcode((yyvsp[(1) - (3)].lval), Always, &nullgen, 0, &(yyvsp[(3) - (3)].addr)); + outcode((yyvsp[(1) - (6)].lval), Always, &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); } break; case 35: -#line 261 "a.y" +#line 260 "a.y" { - outcode((yyvsp[(1) - (5)].lval), (yyvsp[(2) - (5)].lval), &(yyvsp[(3) - (5)].addr), 0, &(yyvsp[(5) - (5)].addr)); + outcode((yyvsp[(1) - (4)].lval), (yyvsp[(2) - (4)].lval), &(yyvsp[(3) - (4)].addr), 0, &nullgen); } break; case 36: -#line 265 "a.y" +#line 267 "a.y" { - outcode((yyvsp[(1) - (5)].lval), (yyvsp[(2) - (5)].lval), &(yyvsp[(3) - (5)].addr), 0, &(yyvsp[(5) - (5)].addr)); + outcode((yyvsp[(1) - (3)].lval), Always, &nullgen, 0, &(yyvsp[(3) - (3)].addr)); } break; case 37: -#line 269 "a.y" +#line 274 "a.y" { - outcode((yyvsp[(1) - (7)].lval), (yyvsp[(2) - (7)].lval), &(yyvsp[(3) - (7)].addr), (yyvsp[(5) - (7)].lval), &(yyvsp[(7) - (7)].addr)); + outcode((yyvsp[(1) - (5)].lval), (yyvsp[(2) - (5)].lval), &(yyvsp[(3) - (5)].addr), 0, &(yyvsp[(5) - (5)].addr)); } break; case 38: -#line 273 "a.y" +#line 278 "a.y" { - outcode((yyvsp[(1) - (6)].lval), (yyvsp[(2) - (6)].lval), &(yyvsp[(3) - (6)].addr), (yyvsp[(5) - (6)].addr).reg, &nullgen); + outcode((yyvsp[(1) - (5)].lval), (yyvsp[(2) - (5)].lval), &(yyvsp[(3) - (5)].addr), 0, &(yyvsp[(5) - (5)].addr)); } break; case 39: -#line 280 "a.y" +#line 282 "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" + { + 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" { Addr g; @@ -2010,15 +2039,15 @@ yyreduce: } break; - case 40: -#line 302 "a.y" + case 42: +#line 315 "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 41: -#line 310 "a.y" + case 43: +#line 323 "a.y" { (yyvsp[(7) - (9)].addr).type = TYPE_REGREG2; (yyvsp[(7) - (9)].addr).offset = (yyvsp[(9) - (9)].lval); @@ -2026,15 +2055,15 @@ yyreduce: } break; - case 42: -#line 319 "a.y" + case 44: +#line 332 "a.y" { outcode((yyvsp[(1) - (2)].lval), Always, &(yyvsp[(2) - (2)].addr), 0, &nullgen); } break; - case 43: -#line 326 "a.y" + case 45: +#line 339 "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"); @@ -2042,8 +2071,8 @@ yyreduce: } break; - case 44: -#line 335 "a.y" + case 46: +#line 348 "a.y" { if((yyvsp[(2) - (4)].addr).type != TYPE_CONST) yyerror("index for FUNCDATA must be integer constant"); @@ -2053,36 +2082,36 @@ yyreduce: } break; - case 45: -#line 346 "a.y" + case 47: +#line 359 "a.y" { outcode((yyvsp[(1) - (2)].lval), Always, &nullgen, 0, &nullgen); } break; - case 46: -#line 351 "a.y" + case 48: +#line 364 "a.y" { (yyval.lval) = Always; } break; - case 47: -#line 355 "a.y" + case 49: +#line 368 "a.y" { (yyval.lval) = ((yyvsp[(1) - (2)].lval) & ~C_SCOND) | (yyvsp[(2) - (2)].lval); } break; - case 48: -#line 359 "a.y" + case 50: +#line 372 "a.y" { (yyval.lval) = (yyvsp[(1) - (2)].lval) | (yyvsp[(2) - (2)].lval); } break; - case 51: -#line 368 "a.y" + case 53: +#line 381 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_BRANCH; @@ -2090,8 +2119,8 @@ yyreduce: } break; - case 52: -#line 374 "a.y" + case 54: +#line 387 "a.y" { (yyvsp[(1) - (2)].sym) = labellookup((yyvsp[(1) - (2)].sym)); (yyval.addr) = nullgen; @@ -2102,8 +2131,8 @@ yyreduce: } break; - case 53: -#line 384 "a.y" + case 55: +#line 397 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_CONST; @@ -2111,16 +2140,16 @@ yyreduce: } break; - case 54: -#line 390 "a.y" + case 56: +#line 403 "a.y" { (yyval.addr) = (yyvsp[(2) - (2)].addr); (yyval.addr).type = TYPE_CONST; } break; - case 55: -#line 395 "a.y" + case 57: +#line 408 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_SCONST; @@ -2128,8 +2157,8 @@ yyreduce: } break; - case 57: -#line 404 "a.y" + case 59: +#line 417 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_FCONST; @@ -2137,8 +2166,8 @@ yyreduce: } break; - case 58: -#line 410 "a.y" + case 60: +#line 423 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_FCONST; @@ -2146,15 +2175,15 @@ yyreduce: } break; - case 59: -#line 418 "a.y" + case 61: +#line 431 "a.y" { (yyval.lval) = 1 << (yyvsp[(1) - (1)].lval); } break; - case 60: -#line 422 "a.y" + case 62: +#line 435 "a.y" { int i; (yyval.lval)=0; @@ -2165,23 +2194,23 @@ yyreduce: } break; - case 61: -#line 431 "a.y" + case 63: +#line 444 "a.y" { (yyval.lval) = (1<<(yyvsp[(1) - (3)].lval)) | (yyvsp[(3) - (3)].lval); } break; - case 65: -#line 440 "a.y" + case 67: +#line 453 "a.y" { (yyval.addr) = (yyvsp[(1) - (4)].addr); (yyval.addr).reg = (yyvsp[(3) - (4)].lval); } break; - case 66: -#line 445 "a.y" + case 68: +#line 458 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2189,8 +2218,8 @@ yyreduce: } break; - case 67: -#line 451 "a.y" + case 69: +#line 464 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2198,8 +2227,8 @@ yyreduce: } break; - case 68: -#line 457 "a.y" + case 70: +#line 470 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -2207,8 +2236,8 @@ yyreduce: } break; - case 72: -#line 468 "a.y" + case 74: +#line 481 "a.y" { (yyval.addr) = (yyvsp[(1) - (1)].addr); if((yyvsp[(1) - (1)].addr).name != NAME_EXTERN && (yyvsp[(1) - (1)].addr).name != NAME_STATIC) { @@ -2216,8 +2245,8 @@ yyreduce: } break; - case 73: -#line 476 "a.y" + case 75: +#line 489 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -2226,8 +2255,8 @@ yyreduce: } break; - case 75: -#line 486 "a.y" + case 77: +#line 499 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -2236,8 +2265,8 @@ yyreduce: } break; - case 77: -#line 496 "a.y" + case 79: +#line 509 "a.y" { (yyval.addr) = (yyvsp[(1) - (4)].addr); (yyval.addr).type = TYPE_MEM; @@ -2245,8 +2274,8 @@ yyreduce: } break; - case 82: -#line 509 "a.y" + case 84: +#line 522 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_CONST; @@ -2254,8 +2283,8 @@ yyreduce: } break; - case 83: -#line 517 "a.y" + case 85: +#line 530 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2263,8 +2292,8 @@ yyreduce: } break; - case 84: -#line 525 "a.y" + case 86: +#line 538 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REGREG; @@ -2273,8 +2302,8 @@ yyreduce: } break; - case 85: -#line 534 "a.y" + case 87: +#line 547 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_SHIFT; @@ -2282,8 +2311,8 @@ yyreduce: } break; - case 86: -#line 540 "a.y" + case 88: +#line 553 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_SHIFT; @@ -2291,8 +2320,8 @@ yyreduce: } break; - case 87: -#line 546 "a.y" + case 89: +#line 559 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_SHIFT; @@ -2300,8 +2329,8 @@ yyreduce: } break; - case 88: -#line 552 "a.y" + case 90: +#line 565 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_SHIFT; @@ -2309,8 +2338,8 @@ yyreduce: } break; - case 89: -#line 560 "a.y" + case 91: +#line 573 "a.y" { if((yyval.lval) < REG_R0 || (yyval.lval) > REG_R15) print("register value out of range in shift\n"); @@ -2318,8 +2347,8 @@ yyreduce: } break; - case 90: -#line 566 "a.y" + case 92: +#line 579 "a.y" { if((yyval.lval) < 0 || (yyval.lval) >= 32) print("shift value out of range\n"); @@ -2327,15 +2356,15 @@ yyreduce: } break; - case 92: -#line 575 "a.y" + case 94: +#line 588 "a.y" { (yyval.lval) = REGPC; } break; - case 93: -#line 579 "a.y" + case 95: +#line 592 "a.y" { if((yyvsp[(3) - (4)].lval) < 0 || (yyvsp[(3) - (4)].lval) >= NREG) print("register value out of range in R(...)\n"); @@ -2343,15 +2372,15 @@ yyreduce: } break; - case 95: -#line 588 "a.y" + case 97: +#line 601 "a.y" { (yyval.lval) = REGSP; } break; - case 97: -#line 595 "a.y" + case 99: +#line 608 "a.y" { if((yyvsp[(3) - (4)].lval) < 0 || (yyvsp[(3) - (4)].lval) >= NREG) print("register value out of range in C(...)\n"); @@ -2359,8 +2388,8 @@ yyreduce: } break; - case 100: -#line 607 "a.y" + case 102: +#line 620 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2368,8 +2397,8 @@ yyreduce: } break; - case 101: -#line 613 "a.y" + case 103: +#line 626 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2377,8 +2406,8 @@ yyreduce: } break; - case 102: -#line 621 "a.y" + case 104: +#line 634 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -2388,8 +2417,8 @@ yyreduce: } break; - case 103: -#line 629 "a.y" + case 105: +#line 642 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -2399,8 +2428,8 @@ yyreduce: } break; - case 104: -#line 637 "a.y" + case 106: +#line 650 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -2410,141 +2439,141 @@ yyreduce: } break; - case 105: -#line 646 "a.y" + case 107: +#line 659 "a.y" { (yyval.lval) = 0; } break; - case 106: -#line 650 "a.y" + case 108: +#line 663 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 107: -#line 654 "a.y" + case 109: +#line 667 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; - case 112: -#line 666 "a.y" + case 114: +#line 679 "a.y" { (yyval.lval) = (yyvsp[(1) - (1)].sym)->value; } break; - case 113: -#line 670 "a.y" + case 115: +#line 683 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; - case 114: -#line 674 "a.y" + case 116: +#line 687 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 115: -#line 678 "a.y" + case 117: +#line 691 "a.y" { (yyval.lval) = ~(yyvsp[(2) - (2)].lval); } break; - case 116: -#line 682 "a.y" + case 118: +#line 695 "a.y" { (yyval.lval) = (yyvsp[(2) - (3)].lval); } break; - case 117: -#line 687 "a.y" + case 119: +#line 700 "a.y" { (yyval.lval) = 0; } break; - case 118: -#line 691 "a.y" + case 120: +#line 704 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 120: -#line 698 "a.y" + case 122: +#line 711 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval); } break; - case 121: -#line 702 "a.y" + case 123: +#line 715 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval); } break; - case 122: -#line 706 "a.y" + case 124: +#line 719 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval); } break; - case 123: -#line 710 "a.y" + case 125: +#line 723 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval); } break; - case 124: -#line 714 "a.y" + case 126: +#line 727 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval); } break; - case 125: -#line 718 "a.y" + case 127: +#line 731 "a.y" { (yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval); } break; - case 126: -#line 722 "a.y" + case 128: +#line 735 "a.y" { (yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval); } break; - case 127: -#line 726 "a.y" + case 129: +#line 739 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval); } break; - case 128: -#line 730 "a.y" + case 130: +#line 743 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval); } break; - case 129: -#line 734 "a.y" + case 131: +#line 747 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval); } @@ -2552,7 +2581,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2556 "y.tab.c" +#line 2585 "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 f75cb22a75..fbbdbef99b 100644 --- a/src/cmd/5a/y.tab.h +++ b/src/cmd/5a/y.tab.h @@ -50,43 +50,44 @@ LTYPE9 = 266, LTYPEA = 267, LTYPEB = 268, - LTYPEC = 269, - LTYPED = 270, - LTYPEE = 271, - LTYPEG = 272, - LTYPEH = 273, - LTYPEI = 274, - LTYPEJ = 275, - LTYPEK = 276, - LTYPEL = 277, - LTYPEM = 278, - LTYPEN = 279, - LTYPEBX = 280, - LTYPEPLD = 281, - LCONST = 282, - LSP = 283, - LSB = 284, - LFP = 285, - LPC = 286, - LTYPEX = 287, - LTYPEPC = 288, - LTYPEF = 289, - LR = 290, - LREG = 291, - LF = 292, - LFREG = 293, - LC = 294, - LCREG = 295, - LPSR = 296, - LFCR = 297, - LCOND = 298, - LS = 299, - LAT = 300, - LFCONST = 301, - LSCONST = 302, - LNAME = 303, - LLAB = 304, - LVAR = 305 + LGLOBL = 269, + LTYPEC = 270, + LTYPED = 271, + LTYPEE = 272, + LTYPEG = 273, + LTYPEH = 274, + LTYPEI = 275, + LTYPEJ = 276, + LTYPEK = 277, + LTYPEL = 278, + LTYPEM = 279, + LTYPEN = 280, + LTYPEBX = 281, + LTYPEPLD = 282, + LCONST = 283, + LSP = 284, + LSB = 285, + LFP = 286, + LPC = 287, + LTYPEX = 288, + LTYPEPC = 289, + LTYPEF = 290, + LR = 291, + LREG = 292, + LF = 293, + LFREG = 294, + LC = 295, + LCREG = 296, + LPSR = 297, + LFCR = 298, + LCOND = 299, + LS = 300, + LAT = 301, + LFCONST = 302, + LSCONST = 303, + LNAME = 304, + LLAB = 305, + LVAR = 306 }; #endif /* Tokens. */ @@ -101,43 +102,44 @@ #define LTYPE9 266 #define LTYPEA 267 #define LTYPEB 268 -#define LTYPEC 269 -#define LTYPED 270 -#define LTYPEE 271 -#define LTYPEG 272 -#define LTYPEH 273 -#define LTYPEI 274 -#define LTYPEJ 275 -#define LTYPEK 276 -#define LTYPEL 277 -#define LTYPEM 278 -#define LTYPEN 279 -#define LTYPEBX 280 -#define LTYPEPLD 281 -#define LCONST 282 -#define LSP 283 -#define LSB 284 -#define LFP 285 -#define LPC 286 -#define LTYPEX 287 -#define LTYPEPC 288 -#define LTYPEF 289 -#define LR 290 -#define LREG 291 -#define LF 292 -#define LFREG 293 -#define LC 294 -#define LCREG 295 -#define LPSR 296 -#define LFCR 297 -#define LCOND 298 -#define LS 299 -#define LAT 300 -#define LFCONST 301 -#define LSCONST 302 -#define LNAME 303 -#define LLAB 304 -#define LVAR 305 +#define LGLOBL 269 +#define LTYPEC 270 +#define LTYPED 271 +#define LTYPEE 272 +#define LTYPEG 273 +#define LTYPEH 274 +#define LTYPEI 275 +#define LTYPEJ 276 +#define LTYPEK 277 +#define LTYPEL 278 +#define LTYPEM 279 +#define LTYPEN 280 +#define LTYPEBX 281 +#define LTYPEPLD 282 +#define LCONST 283 +#define LSP 284 +#define LSB 285 +#define LFP 286 +#define LPC 287 +#define LTYPEX 288 +#define LTYPEPC 289 +#define LTYPEF 290 +#define LR 291 +#define LREG 292 +#define LF 293 +#define LFREG 294 +#define LC 295 +#define LCREG 296 +#define LPSR 297 +#define LFCR 298 +#define LCOND 299 +#define LS 300 +#define LAT 301 +#define LFCONST 302 +#define LSCONST 303 +#define LNAME 304 +#define LLAB 305 +#define LVAR 306 @@ -153,7 +155,7 @@ typedef union YYSTYPE Addr addr; } /* Line 1529 of yacc.c. */ -#line 157 "y.tab.h" +#line 159 "y.tab.h" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff --git a/src/cmd/9a/a.y b/src/cmd/9a/a.y index 6ca161484b..5feb027a97 100644 --- a/src/cmd/9a/a.y +++ b/src/cmd/9a/a.y @@ -50,7 +50,7 @@ %left '*' '/' '%' %token LMOVW LMOVB LABS LLOGW LSHW LADDW LCMP LCROP %token LBRA LFMOV LFCONV LFCMP LFADD LFMA LTRAP LXORW -%token LNOP LEND LRETT LWORD LTEXT LDATA LRETRN +%token LNOP LEND LRETT LWORD LTEXT LGLOBL LDATA LRETRN %token LCONST LSP LSB LFP LPC LCREG LFLUSH %token LREG LFREG LR LCR LF LFPSCR %token LLR LCTR LSPR LSPREG LSEG LMSR @@ -611,7 +611,7 @@ inst: outcode($1, &nullgen, 0, &nullgen); } /* - * TEXT/GLOBL + * TEXT */ | LTEXT name ',' imm { @@ -632,6 +632,20 @@ inst: $6.offset |= ($8 & 0xffffffffull) << 32; outcode($1, &$2, $4, &$6); } +/* + * GLOBL + */ +| LGLOBL name ',' imm + { + settext($2.sym); + outcode($1, &$2, 0, &$4); + } +| LGLOBL name ',' con ',' imm + { + settext($2.sym); + outcode($1, &$2, $4, &$6); + } + /* * DATA */ diff --git a/src/cmd/9a/lex.c b/src/cmd/9a/lex.c index 210e3dfc12..a8bf520219 100644 --- a/src/cmd/9a/lex.c +++ b/src/cmd/9a/lex.c @@ -454,7 +454,7 @@ struct "FMOVS", LFMOV, AFMOVS, "FMOVDCC", LFCONV, AFMOVDCC, /* fmr. */ - "GLOBL", LTEXT, AGLOBL, + "GLOBL", LGLOBL, AGLOBL, "MOVB", LMOVB, AMOVB, "MOVBZ", LMOVB, AMOVBZ, diff --git a/src/cmd/9a/y.tab.c b/src/cmd/9a/y.tab.c index 9fbe0a914e..4428240dbe 100644 --- a/src/cmd/9a/y.tab.c +++ b/src/cmd/9a/y.tab.c @@ -87,45 +87,46 @@ LRETT = 276, LWORD = 277, LTEXT = 278, - LDATA = 279, - LRETRN = 280, - LCONST = 281, - LSP = 282, - LSB = 283, - LFP = 284, - LPC = 285, - LCREG = 286, - LFLUSH = 287, - LREG = 288, - LFREG = 289, - LR = 290, - LCR = 291, - LF = 292, - LFPSCR = 293, - LLR = 294, - LCTR = 295, - LSPR = 296, - LSPREG = 297, - LSEG = 298, - LMSR = 299, - LPCDAT = 300, - LFUNCDAT = 301, - LSCHED = 302, - LXLD = 303, - LXST = 304, - LXOP = 305, - LXMV = 306, - LRLWM = 307, - LMOVMW = 308, - LMOVEM = 309, - LMOVFL = 310, - LMTFSB = 311, - LMA = 312, - LFCONST = 313, - LSCONST = 314, - LNAME = 315, - LLAB = 316, - LVAR = 317 + LGLOBL = 279, + LDATA = 280, + LRETRN = 281, + LCONST = 282, + LSP = 283, + LSB = 284, + LFP = 285, + LPC = 286, + LCREG = 287, + LFLUSH = 288, + LREG = 289, + LFREG = 290, + LR = 291, + LCR = 292, + LF = 293, + LFPSCR = 294, + LLR = 295, + LCTR = 296, + LSPR = 297, + LSPREG = 298, + LSEG = 299, + LMSR = 300, + LPCDAT = 301, + LFUNCDAT = 302, + LSCHED = 303, + LXLD = 304, + LXST = 305, + LXOP = 306, + LXMV = 307, + LRLWM = 308, + LMOVMW = 309, + LMOVEM = 310, + LMOVFL = 311, + LMTFSB = 312, + LMA = 313, + LFCONST = 314, + LSCONST = 315, + LNAME = 316, + LLAB = 317, + LVAR = 318 }; #endif /* Tokens. */ @@ -150,45 +151,46 @@ #define LRETT 276 #define LWORD 277 #define LTEXT 278 -#define LDATA 279 -#define LRETRN 280 -#define LCONST 281 -#define LSP 282 -#define LSB 283 -#define LFP 284 -#define LPC 285 -#define LCREG 286 -#define LFLUSH 287 -#define LREG 288 -#define LFREG 289 -#define LR 290 -#define LCR 291 -#define LF 292 -#define LFPSCR 293 -#define LLR 294 -#define LCTR 295 -#define LSPR 296 -#define LSPREG 297 -#define LSEG 298 -#define LMSR 299 -#define LPCDAT 300 -#define LFUNCDAT 301 -#define LSCHED 302 -#define LXLD 303 -#define LXST 304 -#define LXOP 305 -#define LXMV 306 -#define LRLWM 307 -#define LMOVMW 308 -#define LMOVEM 309 -#define LMOVFL 310 -#define LMTFSB 311 -#define LMA 312 -#define LFCONST 313 -#define LSCONST 314 -#define LNAME 315 -#define LLAB 316 -#define LVAR 317 +#define LGLOBL 279 +#define LDATA 280 +#define LRETRN 281 +#define LCONST 282 +#define LSP 283 +#define LSB 284 +#define LFP 285 +#define LPC 286 +#define LCREG 287 +#define LFLUSH 288 +#define LREG 289 +#define LFREG 290 +#define LR 291 +#define LCR 292 +#define LF 293 +#define LFPSCR 294 +#define LLR 295 +#define LCTR 296 +#define LSPR 297 +#define LSPREG 298 +#define LSEG 299 +#define LMSR 300 +#define LPCDAT 301 +#define LFUNCDAT 302 +#define LSCHED 303 +#define LXLD 304 +#define LXST 305 +#define LXOP 306 +#define LXMV 307 +#define LRLWM 308 +#define LMOVMW 309 +#define LMOVEM 310 +#define LMOVFL 311 +#define LMTFSB 312 +#define LMA 313 +#define LFCONST 314 +#define LSCONST 315 +#define LNAME 316 +#define LLAB 317 +#define LVAR 318 @@ -232,7 +234,7 @@ typedef union YYSTYPE Addr addr; } /* Line 193 of yacc.c. */ -#line 236 "y.tab.c" +#line 238 "y.tab.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -245,7 +247,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 249 "y.tab.c" +#line 251 "y.tab.c" #ifdef short # undef short @@ -463,17 +465,17 @@ union yyalloc #define YYLAST 862 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 81 +#define YYNTOKENS 82 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 30 /* YYNRULES -- Number of rules. */ -#define YYNRULES 181 +#define YYNRULES 183 /* YYNRULES -- Number of states. */ -#define YYNSTATES 448 +#define YYNSTATES 455 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 317 +#define YYMAXUTOK 318 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -484,16 +486,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, 79, 12, 5, 2, - 77, 78, 10, 8, 76, 9, 2, 11, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 73, 75, - 6, 74, 7, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 80, 12, 5, 2, + 78, 79, 10, 8, 77, 9, 2, 11, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 74, 76, + 6, 75, 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, 2, 2, 2, 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, 80, 2, 2, 2, + 2, 2, 2, 2, 3, 2, 81, 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, @@ -512,7 +514,7 @@ static const yytype_uint8 yytranslate[] = 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72 + 65, 66, 67, 68, 69, 70, 71, 72, 73 }; #if YYDEBUG @@ -532,102 +534,103 @@ static const yytype_uint16 yyprhs[] = 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, 627, 634, 641, 644, 649, 652, 654, 656, 658, - 660, 662, 664, 666, 668, 673, 675, 677, 679, 684, - 686, 691, 693, 697, 700, 703, 706, 710, 713, 715, - 720, 724, 730, 732, 737, 742, 748, 756, 757, 759, - 760, 763, 766, 768, 770, 772, 774, 776, 779, 782, - 785, 789, 791, 795, 799, 803, 807, 811, 816, 821, - 825, 829 + 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 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { - 82, 0, -1, -1, 82, 83, -1, -1, 70, 73, - 84, 83, -1, 70, 74, 110, 75, -1, 72, 74, - 110, 75, -1, 57, 75, -1, 75, -1, 85, 75, - -1, 1, 75, -1, 13, 87, 76, 87, -1, 13, - 104, 76, 87, -1, 13, 103, 76, 87, -1, 14, - 87, 76, 87, -1, 14, 104, 76, 87, -1, 14, - 103, 76, 87, -1, 22, 104, 76, 95, -1, 22, - 103, 76, 95, -1, 22, 100, 76, 95, -1, 22, - 95, 76, 95, -1, 22, 95, 76, 104, -1, 22, - 95, 76, 103, -1, 13, 87, 76, 104, -1, 13, - 87, 76, 103, -1, 14, 87, 76, 104, -1, 14, - 87, 76, 103, -1, 13, 95, 76, 104, -1, 13, - 95, 76, 103, -1, 13, 94, 76, 95, -1, 13, - 95, 76, 94, -1, 13, 95, 76, 101, 76, 94, - -1, 13, 94, 76, 96, -1, 66, 101, 76, 109, - -1, 13, 87, 76, 101, 76, 90, -1, 13, 87, - 76, 96, -1, 13, 87, 76, 90, -1, 18, 87, - 76, 102, 76, 87, -1, 18, 101, 76, 102, 76, - 87, -1, 18, 87, 76, 101, 76, 87, -1, 18, - 87, 76, 87, -1, 18, 101, 76, 87, -1, 16, - 87, 76, 102, 76, 87, -1, 16, 87, 76, 87, - -1, 17, 87, 76, 102, 76, 87, -1, 17, 87, - 76, 87, -1, 17, 101, 76, 102, 76, 87, -1, - 17, 101, 76, 87, -1, 15, 87, 76, 87, -1, - 15, 87, -1, 67, 87, 76, 102, 76, 87, -1, - 13, 101, 76, 87, -1, 13, 99, 76, 87, -1, - 20, 97, 76, 97, -1, 20, 97, 76, 109, 76, - 97, -1, 13, 96, 76, 96, -1, 13, 93, 76, - 96, -1, 13, 90, 76, 87, -1, 13, 93, 76, - 87, -1, 13, 88, 76, 87, -1, 13, 87, 76, - 88, -1, 13, 96, 76, 93, -1, 13, 87, 76, - 93, -1, 21, 86, -1, 21, 104, -1, 21, 77, - 88, 78, -1, 21, 76, 86, -1, 21, 76, 104, - -1, 21, 76, 77, 88, 78, -1, 21, 96, 76, - 86, -1, 21, 96, 76, 104, -1, 21, 96, 76, - 77, 88, 78, -1, 21, 109, 76, 86, -1, 21, - 109, 76, 104, -1, 21, 109, 76, 77, 88, 78, - -1, 21, 109, 76, 109, 76, 86, -1, 21, 109, - 76, 109, 76, 104, -1, 21, 109, 76, 109, 76, - 77, 88, 78, -1, 27, 87, 76, 102, -1, 27, - 101, 76, 102, -1, 27, 87, 106, -1, 27, 106, - -1, 23, 95, 76, 95, -1, 25, 95, 76, 95, - -1, 25, 95, 76, 95, 76, 95, -1, 26, 95, - 76, 95, 76, 95, 76, 95, -1, 24, 95, 76, - 95, -1, 24, 95, 76, 95, 76, 96, -1, 19, - 87, 76, 87, -1, 19, 87, 76, 101, -1, 19, - 87, 76, 87, 76, 96, -1, 19, 87, 76, 101, - 76, 96, -1, 62, 101, 76, 87, 76, 101, 76, - 87, -1, 62, 101, 76, 87, 76, 98, 76, 87, - -1, 62, 87, 76, 87, 76, 101, 76, 87, -1, - 62, 87, 76, 87, 76, 98, 76, 87, -1, 63, - 104, 76, 87, -1, 63, 87, 76, 104, -1, 58, - 103, 76, 87, -1, 58, 103, 76, 101, 76, 87, - -1, 59, 87, 76, 103, -1, 59, 87, 76, 101, - 76, 103, -1, 61, 103, 76, 87, -1, 61, 87, - 76, 103, -1, 60, 103, -1, 29, 106, -1, 29, - 87, 106, -1, 29, 95, 106, -1, 29, 76, 87, - -1, 29, 76, 95, -1, 29, 101, -1, 32, 101, - 106, -1, 32, 99, 106, -1, 55, 101, 76, 101, - -1, 56, 101, 76, 104, -1, 30, 106, -1, 33, - 105, 76, 101, -1, 33, 105, 76, 109, 76, 101, - -1, 33, 105, 76, 109, 76, 101, 9, 109, -1, - 34, 105, 11, 109, 76, 101, -1, 34, 105, 11, - 109, 76, 99, -1, 34, 105, 11, 109, 76, 100, - -1, 35, 106, -1, 109, 77, 40, 78, -1, 70, - 107, -1, 102, -1, 89, -1, 91, -1, 49, -1, - 46, -1, 50, -1, 54, -1, 52, -1, 51, 77, - 109, 78, -1, 92, -1, 48, -1, 44, -1, 47, - 77, 109, 78, -1, 41, -1, 46, 77, 109, 78, - -1, 109, -1, 109, 76, 109, -1, 79, 104, -1, - 79, 69, -1, 79, 68, -1, 79, 9, 68, -1, - 79, 109, -1, 43, -1, 45, 77, 109, 78, -1, - 77, 102, 78, -1, 77, 102, 8, 102, 78, -1, - 105, -1, 109, 77, 102, 78, -1, 109, 77, 108, - 78, -1, 70, 107, 77, 108, 78, -1, 70, 6, - 7, 107, 77, 38, 78, -1, -1, 76, -1, -1, - 8, 109, -1, 9, 109, -1, 38, -1, 37, -1, - 39, -1, 36, -1, 72, -1, 9, 109, -1, 8, - 109, -1, 80, 109, -1, 77, 110, 78, -1, 109, - -1, 110, 8, 110, -1, 110, 9, 110, -1, 110, - 10, 110, -1, 110, 11, 110, -1, 110, 12, 110, - -1, 110, 6, 6, 110, -1, 110, 7, 7, 110, - -1, 110, 5, 110, -1, 110, 4, 110, -1, 110, - 3, 110, -1 + 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, + -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, + 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, + 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, + -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, + -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, + 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 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -645,13 +648,13 @@ static const yytype_uint16 yyrline[] = 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, 642, 646, 653, 659, 665, 676, 684, 685, 688, - 696, 704, 712, 720, 726, 734, 737, 745, 751, 759, - 765, 773, 781, 802, 807, 815, 821, 828, 836, 837, - 845, 852, 862, 863, 872, 880, 888, 897, 898, 901, - 904, 908, 914, 915, 916, 919, 920, 924, 928, 932, - 936, 942, 943, 947, 951, 955, 959, 963, 967, 971, - 975, 979 + 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 }; #endif @@ -664,15 +667,16 @@ static const char *const yytname[] = "'-'", "'*'", "'/'", "'%'", "LMOVW", "LMOVB", "LABS", "LLOGW", "LSHW", "LADDW", "LCMP", "LCROP", "LBRA", "LFMOV", "LFCONV", "LFCMP", "LFADD", "LFMA", "LTRAP", "LXORW", "LNOP", "LEND", "LRETT", "LWORD", "LTEXT", - "LDATA", "LRETRN", "LCONST", "LSP", "LSB", "LFP", "LPC", "LCREG", - "LFLUSH", "LREG", "LFREG", "LR", "LCR", "LF", "LFPSCR", "LLR", "LCTR", - "LSPR", "LSPREG", "LSEG", "LMSR", "LPCDAT", "LFUNCDAT", "LSCHED", "LXLD", - "LXST", "LXOP", "LXMV", "LRLWM", "LMOVMW", "LMOVEM", "LMOVFL", "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 + "LGLOBL", "LDATA", "LRETRN", "LCONST", "LSP", "LSB", "LFP", "LPC", + "LCREG", "LFLUSH", "LREG", "LFREG", "LR", "LCR", "LF", "LFPSCR", "LLR", + "LCTR", "LSPR", "LSPREG", "LSEG", "LMSR", "LPCDAT", "LFUNCDAT", "LSCHED", + "LXLD", "LXST", "LXOP", "LXMV", "LRLWM", "LMOVMW", "LMOVEM", "LMOVFL", + "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 }; #endif @@ -688,33 +692,33 @@ static const yytype_uint16 yytoknum[] = 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 58, 61, 59, 44, 40, 41, 36, - 126 + 315, 316, 317, 318, 58, 61, 59, 44, 40, 41, + 36, 126 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 81, 82, 82, 84, 83, 83, 83, 83, 83, - 83, 83, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 86, 86, 87, 88, 88, 89, - 90, 91, 92, 93, 93, 93, 94, 95, 95, 96, - 96, 97, 98, 99, 99, 100, 100, 101, 102, 102, - 103, 103, 104, 104, 105, 105, 105, 106, 106, 107, - 107, 107, 108, 108, 108, 109, 109, 109, 109, 109, - 109, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110 + 0, 82, 83, 83, 85, 84, 84, 84, 84, 84, + 84, 84, 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, 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, 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, + 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 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -732,13 +736,13 @@ static const yytype_uint8 yyr2[] = 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, - 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 + 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 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -747,58 +751,59 @@ static const yytype_uint8 yyr2[] = static const yytype_uint8 yydefact[] = { 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 157, 157, - 157, 0, 0, 0, 157, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, - 0, 11, 0, 0, 165, 139, 148, 137, 0, 130, - 0, 136, 129, 131, 0, 133, 132, 159, 166, 0, - 0, 0, 0, 0, 127, 0, 128, 135, 0, 0, - 0, 0, 0, 0, 126, 0, 0, 152, 0, 0, - 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 141, 0, 159, 0, 0, 64, 0, 65, + 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, 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, + 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 143, 0, 161, 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, + 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, 0, 0, 0, 0, 0, 0, 0, - 158, 157, 0, 82, 158, 157, 157, 111, 106, 116, - 157, 157, 0, 0, 0, 123, 0, 0, 8, 0, - 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 0, 0, 10, 168, 167, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 171, 0, 144, 143, - 147, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, - 0, 0, 0, 0, 0, 0, 125, 0, 67, 68, - 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, - 0, 0, 0, 0, 0, 158, 81, 0, 109, 110, - 107, 108, 113, 112, 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, + 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, 159, 160, 161, 0, - 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 12, 61, 37, 63, 36, 0, 25, - 24, 60, 58, 59, 57, 30, 33, 31, 0, 29, - 28, 62, 56, 53, 52, 14, 13, 163, 162, 164, - 0, 0, 15, 27, 26, 17, 16, 49, 44, 126, - 46, 126, 48, 126, 41, 0, 126, 42, 126, 89, - 90, 54, 141, 0, 66, 0, 70, 71, 0, 73, - 74, 0, 0, 146, 21, 23, 22, 20, 19, 18, - 83, 87, 84, 0, 79, 80, 117, 0, 0, 114, - 115, 99, 0, 0, 101, 104, 103, 0, 0, 98, - 97, 34, 0, 5, 6, 7, 149, 140, 138, 134, - 0, 0, 0, 181, 180, 179, 0, 0, 172, 173, - 174, 175, 176, 0, 0, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, - 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 151, 177, 178, 130, 35, 32, 43, - 45, 47, 40, 38, 39, 91, 92, 55, 72, 75, - 0, 76, 77, 88, 85, 0, 118, 0, 121, 122, - 120, 100, 102, 0, 0, 0, 0, 0, 51, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, - 78, 86, 119, 96, 95, 142, 94, 93 + 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, + 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, + 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 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 39, 229, 40, 97, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 91, 423, 72, 103, - 73, 74, 75, 159, 77, 113, 154, 281, 156, 157 + -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 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -806,59 +811,60 @@ static const yytype_int16 yydefgoto[] = #define YYPACT_NINF -178 static const yytype_int16 yypact[] = { - -178, 460, -178, -25, 556, 306, -11, -11, -24, -24, - -11, 419, 615, 632, -22, -22, -22, -22, -10, -27, - -23, -17, 267, 267, -23, 0, 0, 1, 15, -11, - 15, 11, -24, 654, 0, -11, -32, 52, -178, -178, - 54, -178, 419, 419, -178, -178, -178, -178, 74, 78, - 79, -178, -178, -178, 84, -178, -178, 55, -178, 692, - 51, 419, 68, 86, -178, 87, -178, -178, 92, 98, - 104, 110, 119, 120, -178, 127, 137, -178, 123, 139, - 140, 146, 147, 150, 419, 165, 169, 170, 172, 178, - 419, 179, -178, 78, 55, 724, 706, -178, 180, -178, - 41, 3, 182, 185, 187, 196, 197, 201, 204, 205, - -178, 210, 216, -178, 56, -23, -23, -178, -178, -178, - -23, -23, 217, 218, 286, -178, 223, 225, -178, -11, - 226, 231, -178, 232, 234, 245, 247, 248, 249, 252, - 253, -178, 419, 419, -178, -178, -178, 419, 419, 419, - 419, 302, 419, 419, 257, 7, -178, 384, -178, -178, - 123, -178, 603, -11, -11, 48, 26, 66, 233, -11, - -11, -11, -11, 251, 306, -11, -11, -11, -11, -178, - -11, -11, -24, -11, -24, 419, 257, 706, -178, -178, - 261, 262, 735, 739, 199, 273, -178, 669, -22, -22, - -22, -22, -22, -22, -22, -11, -178, -11, -178, -178, - -178, -178, -178, -178, 745, 73, 419, 0, 267, -24, - 70, 15, -11, -11, -11, 267, -11, 419, -11, 523, - 431, 563, 265, 268, 272, 274, 124, -178, -178, 73, - -11, -178, 419, 419, 419, 348, 352, 419, 419, 419, - 419, 419, -178, -178, -178, -178, -178, -178, 284, -178, - -178, -178, -178, -178, -178, -178, -178, -178, 285, -178, - -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, - 290, 293, -178, -178, -178, -178, -178, -178, -178, 296, - -178, 297, -178, 298, -178, 299, 301, -178, 303, 308, - 321, -178, 322, 323, -178, 706, -178, -178, 706, -178, - -178, 63, 324, -178, -178, -178, -178, -178, -178, -178, - -178, 328, 329, 330, -178, -178, -178, 331, 332, -178, - -178, -178, 333, 340, -178, -178, -178, 341, 342, -178, - -178, -178, 343, -178, -178, -178, -178, -178, -178, -178, - 344, 353, 366, 609, 502, 832, 419, 419, 96, 96, - -178, -178, -178, 354, 351, -178, -178, -11, -11, -11, - -11, -11, -11, -3, -3, 419, -178, 367, 368, 757, - -178, -3, -22, -22, 0, 369, -11, 15, 745, 745, - -11, 409, -178, -178, 181, 181, -178, -178, -178, -178, - -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, - 706, -178, -178, -178, -178, 346, 442, 650, -178, -178, - -178, -178, -178, 377, 378, 380, 381, 382, -178, 385, - 386, -22, 419, 782, -11, -11, 419, -11, -11, -178, - -178, -178, -178, -178, -178, -178, -178, -178 + -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 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -178, -178, 230, -178, -178, -88, -5, -65, -178, -153, - -178, -178, -139, -156, 67, 39, -177, 76, -15, 81, - 116, 175, 85, 32, 131, 211, -84, 258, 35, 69 + -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 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -868,235 +874,236 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint16 yytable[] = { - 79, 82, 83, 85, 87, 89, 120, 188, 301, 255, - 186, 267, 195, 111, 115, 240, 46, 47, 48, 46, - 50, 48, 47, 256, 131, 50, 133, 135, 137, 271, - 140, 191, 46, 46, 48, 48, 76, 81, 45, 78, - 78, 141, 142, 93, 99, 105, 92, 100, 78, 114, - 41, 98, 84, 110, 46, 84, 48, 123, 123, 42, - 43, 151, 60, 152, 153, 138, 110, 45, 78, 84, - 47, 196, 93, 50, 42, 43, 128, 145, 146, 84, - 102, 106, 107, 108, 109, 241, 116, 44, 129, 45, - 80, 46, 129, 48, 93, 160, 161, 254, 104, 46, - 47, 48, 44, 50, 306, 309, 249, 250, 251, 208, - 277, 278, 279, 130, 51, 132, 134, 193, 194, 179, - 158, 57, 303, 58, 86, 88, 143, 189, 90, 144, - 190, 61, 152, 153, 112, 117, 57, 121, 58, 379, - 194, 126, 127, 59, 162, 84, 61, 129, 136, 84, - 139, 147, 350, 122, 124, 148, 149, 253, 261, 262, - 263, 150, 163, 164, 273, 274, 275, 276, 165, 282, - 285, 286, 287, 288, 166, 290, 292, 294, 297, 299, - 167, 209, 232, 233, 234, 235, 168, 237, 238, 247, - 248, 249, 250, 251, 260, 169, 170, 78, 407, 270, - 173, 257, 78, 171, 264, 266, 284, 272, 398, 78, - 397, 230, 231, 172, 331, 174, 175, 336, 337, 338, - 302, 340, 176, 177, 307, 310, 178, 190, 311, 316, - 118, 119, 78, 265, 155, 125, 277, 278, 279, 312, - 377, 180, 46, 378, 48, 181, 182, 259, 183, 327, - 330, 328, 269, 78, 184, 185, 192, 339, 197, 283, - 78, 198, 341, 199, 314, 317, 318, 319, 320, 321, - 322, 323, 200, 201, 45, 42, 43, 202, 258, 93, - 203, 204, 315, 268, 54, 55, 205, 56, 277, 278, - 279, 411, 207, 214, 46, 215, 48, 216, 295, 217, - 300, 218, 219, 44, 155, 334, 335, 220, 221, 236, - 222, 353, 354, 355, 42, 43, 358, 359, 360, 361, - 362, 223, 206, 224, 225, 226, 210, 211, 227, 228, - 326, 212, 213, 329, 239, 332, 333, 57, 194, 58, - 304, 313, 44, 346, 90, 430, 347, 61, 280, 46, - 348, 48, 349, 289, 356, 291, 293, 296, 298, 357, - 363, 364, 399, 400, 401, 402, 403, 404, 365, 280, - 418, 366, 367, 368, 369, 370, 57, 371, 58, 372, - 324, 421, 325, 59, 373, 428, 61, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 374, 375, 51, - 396, 376, 380, 342, 381, 382, 383, 384, 385, 386, - 92, 412, 405, 406, 190, 352, 387, 388, 389, 390, - 413, 391, 431, 425, 425, 394, 395, 42, 43, 443, - 444, 392, 446, 447, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 393, 408, 409, 429, 417, 414, - 415, 432, 160, 434, 435, 44, 436, 437, 438, 343, - 2, 3, 252, 439, 440, 426, 419, 442, 146, 0, - 0, 445, 422, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 0, 19, - 20, 58, 21, 22, 23, 24, 90, 351, 441, 61, - 416, 420, 0, 0, 424, 427, 344, 244, 245, 246, - 247, 248, 249, 250, 251, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 3, 0, 34, 35, 0, 0, - 36, 0, 37, 0, 0, 38, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 0, 19, 20, 0, 21, 22, 23, 24, 0, - 0, 0, 0, 0, 42, 43, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 0, 0, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 0, 0, 34, - 35, 0, 44, 36, 0, 37, 0, 45, 38, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 0, - 56, 42, 43, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 0, 42, 43, 0, 57, 0, 58, 0, - 0, 0, 0, 59, 0, 60, 61, 0, 345, 44, - 42, 43, 0, 0, 45, 0, 46, 0, 48, 49, - 0, 44, 52, 53, 54, 55, 45, 56, 42, 433, - 0, 93, 42, 43, 0, 0, 0, 0, 44, 0, - 0, 0, 0, 57, 0, 58, 47, 42, 43, 50, - 59, 0, 84, 61, 0, 94, 44, 58, 0, 0, - 44, 95, 96, 0, 0, 61, 0, 46, 0, 48, - 42, 43, 57, 0, 58, 44, 0, 0, 0, 59, - 0, 101, 61, 47, 42, 43, 50, 0, 196, 158, - 57, 0, 58, 0, 57, 0, 58, 90, 44, 0, - 61, 90, 42, 43, 61, 46, 0, 48, 0, 57, - 0, 58, 44, 42, 43, 0, 59, 42, 43, 61, - 0, 0, 0, 42, 43, 52, 53, 0, 0, 0, - 44, 0, 0, 0, 58, 42, 43, 0, 0, 90, - 0, 44, 61, 0, 0, 44, 0, 0, 58, 0, - 0, 44, 0, 90, 0, 0, 61, 0, 0, 0, - 42, 43, 0, 44, 94, 0, 58, 0, 0, 0, - 0, 187, 0, 0, 61, 94, 0, 58, 0, 94, - 0, 58, 305, 0, 0, 61, 308, 58, 44, 61, - 0, 0, 90, 0, 84, 61, 0, 94, 0, 58, - 0, 0, 0, 0, 410, 0, 0, 61, 245, 246, - 247, 248, 249, 250, 251, 0, 0, 0, 0, 0, - 313, 0, 0, 0, 58, 0, 0, 0, 0, 90, - 0, 0, 61 + 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, + 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, + 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, + 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, 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 }; static const yytype_int16 yycheck[] = { - 5, 6, 7, 8, 9, 10, 21, 95, 185, 162, - 94, 167, 9, 18, 19, 8, 43, 44, 45, 43, - 47, 45, 44, 162, 29, 47, 31, 32, 33, 168, - 35, 96, 43, 43, 45, 45, 4, 5, 41, 4, - 5, 73, 74, 46, 12, 13, 11, 12, 13, 76, - 75, 12, 79, 76, 43, 79, 45, 22, 23, 8, - 9, 6, 79, 8, 9, 33, 76, 41, 33, 79, - 44, 68, 46, 47, 8, 9, 75, 42, 43, 79, - 13, 14, 15, 16, 17, 78, 19, 36, 77, 41, - 5, 43, 77, 45, 46, 60, 61, 162, 13, 43, - 44, 45, 36, 47, 192, 193, 10, 11, 12, 114, - 37, 38, 39, 28, 48, 30, 31, 76, 77, 84, - 69, 70, 187, 72, 8, 9, 74, 95, 77, 75, - 95, 80, 8, 9, 18, 19, 70, 21, 72, 76, - 77, 25, 26, 77, 76, 79, 80, 77, 32, 79, - 34, 77, 236, 22, 23, 77, 77, 162, 163, 164, - 165, 77, 76, 76, 169, 170, 171, 172, 76, 174, - 175, 176, 177, 178, 76, 180, 181, 182, 183, 184, - 76, 114, 147, 148, 149, 150, 76, 152, 153, 8, - 9, 10, 11, 12, 162, 76, 76, 162, 375, 167, - 77, 162, 167, 76, 165, 166, 174, 168, 364, 174, - 363, 142, 143, 76, 219, 76, 76, 222, 223, 224, - 185, 226, 76, 76, 192, 193, 76, 192, 193, 197, - 19, 20, 197, 166, 59, 24, 37, 38, 39, 40, - 305, 76, 43, 308, 45, 76, 76, 162, 76, 214, - 218, 216, 167, 218, 76, 76, 76, 225, 76, 174, - 225, 76, 227, 76, 197, 198, 199, 200, 201, 202, - 203, 204, 76, 76, 41, 8, 9, 76, 162, 46, - 76, 76, 197, 167, 51, 52, 76, 54, 37, 38, - 39, 379, 76, 76, 43, 77, 45, 11, 182, 76, - 184, 76, 76, 36, 129, 220, 221, 76, 76, 7, - 76, 242, 243, 244, 8, 9, 247, 248, 249, 250, - 251, 76, 111, 76, 76, 76, 115, 116, 76, 76, - 214, 120, 121, 217, 77, 219, 220, 70, 77, 72, - 78, 68, 36, 78, 77, 410, 78, 80, 173, 43, - 78, 45, 78, 178, 6, 180, 181, 182, 183, 7, - 76, 76, 367, 368, 369, 370, 371, 372, 78, 194, - 385, 78, 76, 76, 76, 76, 70, 76, 72, 76, - 205, 386, 207, 77, 76, 390, 80, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 76, 76, 48, - 46, 78, 78, 228, 76, 76, 76, 76, 76, 76, - 375, 379, 373, 374, 379, 240, 76, 76, 76, 76, - 381, 77, 76, 388, 389, 356, 357, 8, 9, 434, - 435, 78, 437, 438, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 78, 78, 78, 38, 79, 382, - 383, 9, 417, 76, 76, 36, 76, 76, 76, 229, - 0, 1, 78, 78, 78, 389, 385, 432, 433, -1, - -1, 436, 387, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, - 30, 72, 32, 33, 34, 35, 77, 239, 431, 80, - 384, 385, -1, -1, 388, 389, 75, 5, 6, 7, - 8, 9, 10, 11, 12, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 1, -1, 66, 67, -1, -1, - 70, -1, 72, -1, -1, 75, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, -1, 29, 30, -1, 32, 33, 34, 35, -1, - -1, -1, -1, -1, 8, 9, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, -1, -1, 55, 56, - 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, - 67, -1, 36, 70, -1, 72, -1, 41, 75, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, - 54, 8, 9, 4, 5, 6, 7, 8, 9, 10, - 11, 12, -1, 8, 9, -1, 70, -1, 72, -1, - -1, -1, -1, 77, -1, 79, 80, -1, 75, 36, - 8, 9, -1, -1, 41, -1, 43, -1, 45, 46, - -1, 36, 49, 50, 51, 52, 41, 54, 8, 9, - -1, 46, 8, 9, -1, -1, -1, -1, 36, -1, - -1, -1, -1, 70, -1, 72, 44, 8, 9, 47, - 77, -1, 79, 80, -1, 70, 36, 72, -1, -1, - 36, 76, 77, -1, -1, 80, -1, 43, -1, 45, - 8, 9, 70, -1, 72, 36, -1, -1, -1, 77, - -1, 79, 80, 44, 8, 9, 47, -1, 68, 69, - 70, -1, 72, -1, 70, -1, 72, 77, 36, -1, - 80, 77, 8, 9, 80, 43, -1, 45, -1, 70, - -1, 72, 36, 8, 9, -1, 77, 8, 9, 80, - -1, -1, -1, 8, 9, 49, 50, -1, -1, -1, - 36, -1, -1, -1, 72, 8, 9, -1, -1, 77, - -1, 36, 80, -1, -1, 36, -1, -1, 72, -1, - -1, 36, -1, 77, -1, -1, 80, -1, -1, -1, - 8, 9, -1, 36, 70, -1, 72, -1, -1, -1, - -1, 77, -1, -1, 80, 70, -1, 72, -1, 70, - -1, 72, 77, -1, -1, 80, 77, 72, 36, 80, - -1, -1, 77, -1, 79, 80, -1, 70, -1, 72, - -1, -1, -1, -1, 77, -1, -1, 80, 6, 7, + 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, + 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, + 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, - 68, -1, -1, -1, 72, -1, -1, -1, -1, 77, - -1, -1, 80 + 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, + -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, 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 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 82, 0, 1, 13, 14, 15, 16, 17, 18, + 0, 83, 0, 1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, - 30, 32, 33, 34, 35, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 66, 67, 70, 72, 75, 83, - 85, 75, 8, 9, 36, 41, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 54, 70, 72, 77, - 79, 80, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 99, 101, 102, 103, 104, 105, 109, 87, - 103, 104, 87, 87, 79, 87, 101, 87, 101, 87, - 77, 97, 109, 46, 70, 76, 77, 86, 96, 104, - 109, 79, 95, 100, 103, 104, 95, 95, 95, 95, - 76, 87, 101, 106, 76, 87, 95, 101, 106, 106, - 99, 101, 105, 109, 105, 106, 101, 101, 75, 77, - 103, 87, 103, 87, 103, 87, 101, 87, 104, 101, - 87, 73, 74, 74, 75, 109, 109, 77, 77, 77, - 77, 6, 8, 9, 107, 102, 109, 110, 69, 104, - 109, 109, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 77, 76, 76, 76, 76, 76, 109, - 76, 76, 76, 76, 76, 76, 107, 77, 86, 104, - 109, 88, 76, 76, 77, 9, 68, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 106, 76, 87, 95, - 106, 106, 106, 106, 76, 77, 11, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 84, - 110, 110, 109, 109, 109, 109, 7, 109, 109, 77, - 8, 78, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 78, 87, 88, 90, 93, 96, 101, 103, - 104, 87, 87, 87, 96, 95, 96, 94, 101, 103, - 104, 93, 96, 87, 87, 87, 87, 37, 38, 39, - 102, 108, 87, 103, 104, 87, 87, 87, 87, 102, - 87, 102, 87, 102, 87, 101, 102, 87, 102, 87, - 101, 97, 109, 88, 78, 77, 86, 104, 77, 86, - 104, 109, 40, 68, 95, 103, 104, 95, 95, 95, - 95, 95, 95, 95, 102, 102, 101, 109, 109, 101, - 104, 87, 101, 101, 103, 103, 87, 87, 87, 104, - 87, 109, 102, 83, 75, 75, 78, 78, 78, 78, - 107, 108, 102, 110, 110, 110, 6, 7, 110, 110, - 110, 110, 110, 76, 76, 78, 78, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 78, 88, 88, 76, - 78, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 77, 78, 78, 110, 110, 46, 90, 94, 87, - 87, 87, 87, 87, 87, 96, 96, 97, 78, 78, - 77, 86, 104, 96, 95, 95, 101, 79, 99, 100, - 101, 87, 103, 98, 101, 109, 98, 101, 87, 38, - 88, 76, 9, 9, 76, 76, 76, 76, 76, 78, - 78, 95, 109, 87, 87, 109, 87, 87 + 30, 32, 33, 34, 35, 36, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 67, 68, 71, 73, 76, + 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, + 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, 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, + 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, + 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 }; #define yyerrok (yyerrstatus = 0) @@ -2729,33 +2736,49 @@ yyreduce: case 120: #line 639 "a.y" { - outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); + settext((yyvsp[(2) - (4)].addr).sym); + outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), 0, &(yyvsp[(4) - (4)].addr)); } break; case 121: -#line 643 "a.y" +#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 647 "a.y" +#line 653 "a.y" { outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); } break; case 123: -#line 654 "a.y" +#line 657 "a.y" { - outcode((yyvsp[(1) - (2)].lval), &nullgen, 0, &nullgen); + outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr)); } break; case 124: -#line 660 "a.y" +#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" + { + outcode((yyvsp[(1) - (2)].lval), &nullgen, 0, &nullgen); + } + break; + + case 126: +#line 674 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_BRANCH; @@ -2763,8 +2786,8 @@ yyreduce: } break; - case 125: -#line 666 "a.y" + case 127: +#line 680 "a.y" { (yyvsp[(1) - (2)].sym) = labellookup((yyvsp[(1) - (2)].sym)); (yyval.addr) = nullgen; @@ -2775,8 +2798,8 @@ yyreduce: } break; - case 126: -#line 677 "a.y" + case 128: +#line 691 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2784,8 +2807,8 @@ yyreduce: } break; - case 129: -#line 689 "a.y" + case 131: +#line 703 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2793,8 +2816,8 @@ yyreduce: } break; - case 130: -#line 697 "a.y" + case 132: +#line 711 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2802,8 +2825,8 @@ yyreduce: } break; - case 131: -#line 705 "a.y" + case 133: +#line 719 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2811,8 +2834,8 @@ yyreduce: } break; - case 132: -#line 713 "a.y" + case 134: +#line 727 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2820,8 +2843,8 @@ yyreduce: } break; - case 133: -#line 721 "a.y" + case 135: +#line 735 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2829,8 +2852,8 @@ yyreduce: } break; - case 134: -#line 727 "a.y" + case 136: +#line 741 "a.y" { if((yyvsp[(3) - (4)].lval) < 0 || (yyvsp[(3) - (4)].lval) >= 1024) yyerror("SPR/DCR out of range"); @@ -2840,8 +2863,8 @@ yyreduce: } break; - case 136: -#line 738 "a.y" + case 138: +#line 752 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2849,8 +2872,8 @@ yyreduce: } break; - case 137: -#line 746 "a.y" + case 139: +#line 760 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2858,8 +2881,8 @@ yyreduce: } break; - case 138: -#line 752 "a.y" + case 140: +#line 766 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2867,8 +2890,8 @@ yyreduce: } break; - case 139: -#line 760 "a.y" + case 141: +#line 774 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2876,8 +2899,8 @@ yyreduce: } break; - case 140: -#line 766 "a.y" + case 142: +#line 780 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2885,8 +2908,8 @@ yyreduce: } break; - case 141: -#line 774 "a.y" + case 143: +#line 788 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_REG; @@ -2894,8 +2917,8 @@ yyreduce: } break; - case 142: -#line 782 "a.y" + case 144: +#line 796 "a.y" { int mb, me; uint32 v; @@ -2916,16 +2939,16 @@ yyreduce: } break; - case 143: -#line 803 "a.y" + case 145: +#line 817 "a.y" { (yyval.addr) = (yyvsp[(2) - (2)].addr); (yyval.addr).type = TYPE_CONST; } break; - case 144: -#line 808 "a.y" + case 146: +#line 822 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_SCONST; @@ -2933,8 +2956,8 @@ yyreduce: } break; - case 145: -#line 816 "a.y" + case 147: +#line 830 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_FCONST; @@ -2942,8 +2965,8 @@ yyreduce: } break; - case 146: -#line 822 "a.y" + case 148: +#line 836 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_FCONST; @@ -2951,8 +2974,8 @@ yyreduce: } break; - case 147: -#line 829 "a.y" + case 149: +#line 843 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_CONST; @@ -2960,8 +2983,8 @@ yyreduce: } break; - case 149: -#line 838 "a.y" + case 151: +#line 852 "a.y" { if((yyval.lval) < 0 || (yyval.lval) >= NREG) print("register value out of range\n"); @@ -2969,8 +2992,8 @@ yyreduce: } break; - case 150: -#line 846 "a.y" + case 152: +#line 860 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -2979,8 +3002,8 @@ yyreduce: } break; - case 151: -#line 853 "a.y" + case 153: +#line 867 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -2990,8 +3013,8 @@ yyreduce: } break; - case 153: -#line 864 "a.y" + case 155: +#line 878 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -3000,8 +3023,8 @@ yyreduce: } break; - case 154: -#line 873 "a.y" + case 156: +#line 887 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -3011,8 +3034,8 @@ yyreduce: } break; - case 155: -#line 881 "a.y" + case 157: +#line 895 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -3022,8 +3045,8 @@ yyreduce: } break; - case 156: -#line 889 "a.y" + case 158: +#line 903 "a.y" { (yyval.addr) = nullgen; (yyval.addr).type = TYPE_MEM; @@ -3033,127 +3056,127 @@ yyreduce: } break; - case 159: -#line 901 "a.y" + case 161: +#line 915 "a.y" { (yyval.lval) = 0; } break; - case 160: -#line 905 "a.y" + case 162: +#line 919 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 161: -#line 909 "a.y" + case 163: +#line 923 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; - case 166: -#line 921 "a.y" + case 168: +#line 935 "a.y" { (yyval.lval) = (yyvsp[(1) - (1)].sym)->value; } break; - case 167: -#line 925 "a.y" + case 169: +#line 939 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; - case 168: -#line 929 "a.y" + case 170: +#line 943 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 169: -#line 933 "a.y" + case 171: +#line 947 "a.y" { (yyval.lval) = ~(yyvsp[(2) - (2)].lval); } break; - case 170: -#line 937 "a.y" + case 172: +#line 951 "a.y" { (yyval.lval) = (yyvsp[(2) - (3)].lval); } break; - case 172: -#line 944 "a.y" + case 174: +#line 958 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval); } break; - case 173: -#line 948 "a.y" + case 175: +#line 962 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval); } break; - case 174: -#line 952 "a.y" + case 176: +#line 966 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval); } break; - case 175: -#line 956 "a.y" + case 177: +#line 970 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval); } break; - case 176: -#line 960 "a.y" + case 178: +#line 974 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval); } break; - case 177: -#line 964 "a.y" + case 179: +#line 978 "a.y" { (yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval); } break; - case 178: -#line 968 "a.y" + case 180: +#line 982 "a.y" { (yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval); } break; - case 179: -#line 972 "a.y" + case 181: +#line 986 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval); } break; - case 180: -#line 976 "a.y" + case 182: +#line 990 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval); } break; - case 181: -#line 980 "a.y" + case 183: +#line 994 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval); } @@ -3161,7 +3184,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 3165 "y.tab.c" +#line 3188 "y.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); diff --git a/src/cmd/9a/y.tab.h b/src/cmd/9a/y.tab.h index e6b93a2ece..e7b00330fa 100644 --- a/src/cmd/9a/y.tab.h +++ b/src/cmd/9a/y.tab.h @@ -60,45 +60,46 @@ LRETT = 276, LWORD = 277, LTEXT = 278, - LDATA = 279, - LRETRN = 280, - LCONST = 281, - LSP = 282, - LSB = 283, - LFP = 284, - LPC = 285, - LCREG = 286, - LFLUSH = 287, - LREG = 288, - LFREG = 289, - LR = 290, - LCR = 291, - LF = 292, - LFPSCR = 293, - LLR = 294, - LCTR = 295, - LSPR = 296, - LSPREG = 297, - LSEG = 298, - LMSR = 299, - LPCDAT = 300, - LFUNCDAT = 301, - LSCHED = 302, - LXLD = 303, - LXST = 304, - LXOP = 305, - LXMV = 306, - LRLWM = 307, - LMOVMW = 308, - LMOVEM = 309, - LMOVFL = 310, - LMTFSB = 311, - LMA = 312, - LFCONST = 313, - LSCONST = 314, - LNAME = 315, - LLAB = 316, - LVAR = 317 + LGLOBL = 279, + LDATA = 280, + LRETRN = 281, + LCONST = 282, + LSP = 283, + LSB = 284, + LFP = 285, + LPC = 286, + LCREG = 287, + LFLUSH = 288, + LREG = 289, + LFREG = 290, + LR = 291, + LCR = 292, + LF = 293, + LFPSCR = 294, + LLR = 295, + LCTR = 296, + LSPR = 297, + LSPREG = 298, + LSEG = 299, + LMSR = 300, + LPCDAT = 301, + LFUNCDAT = 302, + LSCHED = 303, + LXLD = 304, + LXST = 305, + LXOP = 306, + LXMV = 307, + LRLWM = 308, + LMOVMW = 309, + LMOVEM = 310, + LMOVFL = 311, + LMTFSB = 312, + LMA = 313, + LFCONST = 314, + LSCONST = 315, + LNAME = 316, + LLAB = 317, + LVAR = 318 }; #endif /* Tokens. */ @@ -123,45 +124,46 @@ #define LRETT 276 #define LWORD 277 #define LTEXT 278 -#define LDATA 279 -#define LRETRN 280 -#define LCONST 281 -#define LSP 282 -#define LSB 283 -#define LFP 284 -#define LPC 285 -#define LCREG 286 -#define LFLUSH 287 -#define LREG 288 -#define LFREG 289 -#define LR 290 -#define LCR 291 -#define LF 292 -#define LFPSCR 293 -#define LLR 294 -#define LCTR 295 -#define LSPR 296 -#define LSPREG 297 -#define LSEG 298 -#define LMSR 299 -#define LPCDAT 300 -#define LFUNCDAT 301 -#define LSCHED 302 -#define LXLD 303 -#define LXST 304 -#define LXOP 305 -#define LXMV 306 -#define LRLWM 307 -#define LMOVMW 308 -#define LMOVEM 309 -#define LMOVFL 310 -#define LMTFSB 311 -#define LMA 312 -#define LFCONST 313 -#define LSCONST 314 -#define LNAME 315 -#define LLAB 316 -#define LVAR 317 +#define LGLOBL 279 +#define LDATA 280 +#define LRETRN 281 +#define LCONST 282 +#define LSP 283 +#define LSB 284 +#define LFP 285 +#define LPC 286 +#define LCREG 287 +#define LFLUSH 288 +#define LREG 289 +#define LFREG 290 +#define LR 291 +#define LCR 292 +#define LF 293 +#define LFPSCR 294 +#define LLR 295 +#define LCTR 296 +#define LSPR 297 +#define LSPREG 298 +#define LSEG 299 +#define LMSR 300 +#define LPCDAT 301 +#define LFUNCDAT 302 +#define LSCHED 303 +#define LXLD 304 +#define LXST 305 +#define LXOP 306 +#define LXMV 307 +#define LRLWM 308 +#define LMOVMW 309 +#define LMOVEM 310 +#define LMOVFL 311 +#define LMTFSB 312 +#define LMA 313 +#define LFCONST 314 +#define LSCONST 315 +#define LNAME 316 +#define LLAB 317 +#define LVAR 318 @@ -177,7 +179,7 @@ typedef union YYSTYPE Addr addr; } /* Line 1529 of yacc.c. */ -#line 181 "y.tab.h" +#line 183 "y.tab.h" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -- 2.50.0