diff options
Diffstat (limited to 'src/cmd/6a')
-rw-r--r-- | src/cmd/6a/a.y | 5 | ||||
-rw-r--r-- | src/cmd/6a/doc.go | 6 | ||||
-rw-r--r-- | src/cmd/6a/lex.c | 61 | ||||
-rw-r--r-- | src/cmd/6a/y.tab.c | 829 |
4 files changed, 477 insertions, 424 deletions
diff --git a/src/cmd/6a/a.y b/src/cmd/6a/a.y index 8459ff323..42af65e35 100644 --- a/src/cmd/6a/a.y +++ b/src/cmd/6a/a.y @@ -176,6 +176,11 @@ nonrel: $$.from = nullgen; $$.to = $1; } +| imm ',' rel + { + $$.from = $1; + $$.to = $3; + } spec1: /* DATA */ nam '/' con ',' imm diff --git a/src/cmd/6a/doc.go b/src/cmd/6a/doc.go index 92fb74de6..a5f3f87f0 100644 --- a/src/cmd/6a/doc.go +++ b/src/cmd/6a/doc.go @@ -2,13 +2,15 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// +build ignore + /* 6a is a version of the Plan 9 assembler. The original is documented at - http://plan9.bell-labs.com/magic/man2html/1/2a + http://plan9.bell-labs.com/magic/man2html/1/8a Its target architecture is the x86-64, referred to by these tools as amd64. */ -package documentation +package main diff --git a/src/cmd/6a/lex.c b/src/cmd/6a/lex.c index e013bec2a..d65802a20 100644 --- a/src/cmd/6a/lex.c +++ b/src/cmd/6a/lex.c @@ -340,6 +340,8 @@ struct "BSRL", LTYPE3, ABSRL, "BSRQ", LTYPE3, ABSRQ, "BSRW", LTYPE3, ABSRW, + "BSWAPL", LTYPE1, ABSWAPL, + "BSWAPQ", LTYPE1, ABSWAPQ, "BTCL", LTYPE3, ABTCL, "BTCQ", LTYPE3, ABTCQ, "BTCW", LTYPE3, ABTCW, @@ -1001,6 +1003,19 @@ struct "XORPS", LTYPE3, AXORPS, "CRC32B", LTYPE4, ACRC32B, "CRC32Q", LTYPE4, ACRC32Q, + "PREFETCHT0", LTYPE2, APREFETCHT0, + "PREFETCHT1", LTYPE2, APREFETCHT1, + "PREFETCHT2", LTYPE2, APREFETCHT2, + "PREFETCHNTA", LTYPE2, APREFETCHNTA, + "UNDEF", LTYPE0, AUNDEF, + "AESENC", LTYPE3, AAESENC, + "AESENCLAST", LTYPE3, AAESENCLAST, + "AESDEC", LTYPE3, AAESDEC, + "AESDECLAST", LTYPE3, AAESDECLAST, + "AESIMC", LTYPE3, AAESIMC, + "AESKEYGENASSIST", LTYPEX, AAESKEYGENASSIST, + "PSHUFD", LTYPEX, APSHUFD, + "USEFIELD", LTYPEN, AUSEFIELD, 0 }; @@ -1250,11 +1265,38 @@ outhist(void) Hist *h; char *p, *q, *op, c; int n; + char *tofree; + static int first = 1; + static char *goroot, *goroot_final; + + if(first) { + // Decide whether we need to rewrite paths from $GOROOT to $GOROOT_FINAL. + first = 0; + goroot = getenv("GOROOT"); + goroot_final = getenv("GOROOT_FINAL"); + if(goroot == nil) + goroot = ""; + if(goroot_final == nil) + goroot_final = goroot; + if(strcmp(goroot, goroot_final) == 0) { + goroot = nil; + goroot_final = nil; + } + } + + tofree = nil; g = nullgen; c = pathchar(); for(h = hist; h != H; h = h->link) { p = h->name; + if(p != nil && goroot != nil) { + n = strlen(goroot); + if(strncmp(p, goroot, strlen(goroot)) == 0 && p[n] == '/') { + tofree = smprint("%s%s", goroot_final, p+n); + p = tofree; + } + } op = 0; if(systemtype(Windows) && p && p[1] == ':'){ c = p[2]; @@ -1306,21 +1348,12 @@ outhist(void) Bputc(&obuf, h->line>>24); zaddr(&nullgen, 0); zaddr(&g, 0); - } -} -void -pragbldicks(void) -{ - while(getnsc() != '\n') - ; -} - -void -praghjdicks(void) -{ - while(getnsc() != '\n') - ; + if(tofree) { + free(tofree); + tofree = nil; + } + } } #include "../cc/lexbody" diff --git a/src/cmd/6a/y.tab.c b/src/cmd/6a/y.tab.c index 2da8a1fac..75c4ad5ea 100644 --- a/src/cmd/6a/y.tab.c +++ b/src/cmd/6a/y.tab.c @@ -406,16 +406,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 548 +#define YYLAST 554 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 54 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 40 /* YYNRULES -- Number of rules. */ -#define YYNRULES 131 +#define YYNRULES 132 /* YYNRULES -- Number of states. */ -#define YYNSTATES 260 +#define YYNSTATES 263 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -468,16 +468,16 @@ static const yytype_uint16 yyprhs[] = 23, 26, 29, 33, 37, 40, 43, 46, 49, 52, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82, 85, 88, 89, 91, 95, 99, 102, 104, 107, 109, - 112, 114, 120, 124, 130, 133, 135, 137, 139, 143, - 149, 153, 159, 162, 164, 168, 174, 180, 181, 183, - 187, 193, 195, 197, 199, 201, 204, 207, 209, 211, - 213, 215, 220, 223, 226, 228, 230, 232, 234, 236, - 238, 240, 243, 246, 249, 252, 255, 260, 266, 270, - 272, 274, 276, 281, 286, 291, 298, 308, 312, 316, - 322, 331, 333, 340, 346, 354, 355, 358, 361, 363, - 365, 367, 369, 371, 374, 377, 380, 384, 386, 389, - 393, 398, 400, 404, 408, 412, 416, 420, 425, 430, - 434, 438 + 112, 114, 118, 124, 128, 134, 137, 139, 141, 143, + 147, 153, 157, 163, 166, 168, 172, 178, 184, 185, + 187, 191, 197, 199, 201, 203, 205, 208, 211, 213, + 215, 217, 219, 224, 227, 230, 232, 234, 236, 238, + 240, 242, 244, 247, 250, 253, 256, 259, 264, 270, + 274, 276, 278, 280, 285, 290, 295, 302, 312, 316, + 320, 326, 335, 337, 344, 350, 358, 359, 362, 365, + 367, 369, 371, 373, 375, 378, 381, 384, 388, 390, + 393, 397, 402, 404, 408, 412, 416, 420, 424, 429, + 434, 438, 442 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -494,40 +494,40 @@ static const yytype_int8 yyrhs[] = 75, -1, 29, 76, -1, 23, 77, -1, -1, 49, -1, 80, 49, 78, -1, 78, 49, 80, -1, 80, 49, -1, 80, -1, 49, 78, -1, 78, -1, 49, - 81, -1, 81, -1, 88, 11, 91, 49, 84, -1, - 85, 49, 83, -1, 85, 49, 91, 49, 83, -1, - 49, 79, -1, 79, -1, 61, -1, 65, -1, 80, - 49, 78, -1, 80, 49, 78, 46, 35, -1, 80, - 49, 78, -1, 80, 49, 78, 46, 36, -1, 80, - 49, -1, 80, -1, 80, 49, 78, -1, 82, 49, - 78, 49, 91, -1, 84, 49, 78, 49, 82, -1, - -1, 84, -1, 85, 49, 84, -1, 85, 49, 91, - 49, 84, -1, 82, -1, 85, -1, 81, -1, 87, - -1, 10, 82, -1, 10, 86, -1, 82, -1, 86, - -1, 78, -1, 84, -1, 91, 50, 32, 51, -1, - 43, 89, -1, 44, 89, -1, 34, -1, 37, -1, - 35, -1, 38, -1, 42, -1, 36, -1, 39, -1, - 52, 92, -1, 52, 91, -1, 52, 88, -1, 52, - 41, -1, 52, 40, -1, 52, 50, 40, 51, -1, - 52, 50, 9, 40, 51, -1, 52, 9, 40, -1, - 86, -1, 87, -1, 91, -1, 91, 50, 35, 51, - -1, 91, 50, 42, 51, -1, 91, 50, 36, 51, - -1, 91, 50, 35, 10, 91, 51, -1, 91, 50, - 35, 51, 50, 35, 10, 91, 51, -1, 50, 35, - 51, -1, 50, 42, 51, -1, 50, 35, 10, 91, - 51, -1, 50, 35, 51, 50, 35, 10, 91, 51, - -1, 88, -1, 88, 50, 35, 10, 91, 51, -1, - 43, 89, 50, 90, 51, -1, 43, 6, 7, 89, - 50, 33, 51, -1, -1, 8, 91, -1, 9, 91, - -1, 33, -1, 42, -1, 31, -1, 30, -1, 45, - -1, 9, 91, -1, 8, 91, -1, 53, 91, -1, - 50, 93, 51, -1, 30, -1, 9, 30, -1, 30, - 9, 30, -1, 9, 30, 9, 30, -1, 91, -1, - 93, 8, 93, -1, 93, 9, 93, -1, 93, 10, - 93, -1, 93, 11, 93, -1, 93, 12, 93, -1, - 93, 6, 6, 93, -1, 93, 7, 7, 93, -1, - 93, 5, 93, -1, 93, 4, 93, -1, 93, 3, - 93, -1 + 81, -1, 81, -1, 84, 49, 81, -1, 88, 11, + 91, 49, 84, -1, 85, 49, 83, -1, 85, 49, + 91, 49, 83, -1, 49, 79, -1, 79, -1, 61, + -1, 65, -1, 80, 49, 78, -1, 80, 49, 78, + 46, 35, -1, 80, 49, 78, -1, 80, 49, 78, + 46, 36, -1, 80, 49, -1, 80, -1, 80, 49, + 78, -1, 82, 49, 78, 49, 91, -1, 84, 49, + 78, 49, 82, -1, -1, 84, -1, 85, 49, 84, + -1, 85, 49, 91, 49, 84, -1, 82, -1, 85, + -1, 81, -1, 87, -1, 10, 82, -1, 10, 86, + -1, 82, -1, 86, -1, 78, -1, 84, -1, 91, + 50, 32, 51, -1, 43, 89, -1, 44, 89, -1, + 34, -1, 37, -1, 35, -1, 38, -1, 42, -1, + 36, -1, 39, -1, 52, 92, -1, 52, 91, -1, + 52, 88, -1, 52, 41, -1, 52, 40, -1, 52, + 50, 40, 51, -1, 52, 50, 9, 40, 51, -1, + 52, 9, 40, -1, 86, -1, 87, -1, 91, -1, + 91, 50, 35, 51, -1, 91, 50, 42, 51, -1, + 91, 50, 36, 51, -1, 91, 50, 35, 10, 91, + 51, -1, 91, 50, 35, 51, 50, 35, 10, 91, + 51, -1, 50, 35, 51, -1, 50, 42, 51, -1, + 50, 35, 10, 91, 51, -1, 50, 35, 51, 50, + 35, 10, 91, 51, -1, 88, -1, 88, 50, 35, + 10, 91, 51, -1, 43, 89, 50, 90, 51, -1, + 43, 6, 7, 89, 50, 33, 51, -1, -1, 8, + 91, -1, 9, 91, -1, 33, -1, 42, -1, 31, + -1, 30, -1, 45, -1, 9, 91, -1, 8, 91, + -1, 53, 91, -1, 50, 93, 51, -1, 30, -1, + 9, 30, -1, 30, 9, 30, -1, 9, 30, 9, + 30, -1, 91, -1, 93, 8, 93, -1, 93, 9, + 93, -1, 93, 10, 93, -1, 93, 11, 93, -1, + 93, 12, 93, -1, 93, 6, 6, 93, -1, 93, + 7, 7, 93, -1, 93, 5, 93, -1, 93, 4, + 93, -1, 93, 3, 93, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -537,16 +537,16 @@ static const yytype_uint16 yyrline[] = 86, 87, 90, 95, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 120, 124, 131, 138, 145, 150, 157, 162, 169, - 174, 181, 189, 194, 202, 207, 214, 215, 218, 223, - 233, 238, 248, 253, 258, 265, 273, 283, 287, 294, - 299, 307, 308, 311, 312, 313, 317, 321, 322, 325, - 326, 329, 335, 344, 353, 358, 363, 368, 373, 378, - 383, 389, 397, 403, 414, 420, 426, 432, 438, 446, - 447, 450, 456, 462, 468, 474, 483, 492, 497, 502, - 510, 520, 524, 533, 540, 549, 552, 556, 562, 563, - 567, 570, 571, 575, 579, 583, 587, 593, 597, 601, - 606, 613, 614, 618, 622, 626, 630, 634, 638, 642, - 646, 650 + 174, 179, 186, 194, 199, 207, 212, 219, 220, 223, + 228, 238, 243, 253, 258, 263, 270, 278, 288, 292, + 299, 304, 312, 313, 316, 317, 318, 322, 326, 327, + 330, 331, 334, 340, 349, 358, 363, 368, 373, 378, + 383, 388, 394, 402, 408, 419, 425, 431, 437, 443, + 451, 452, 455, 461, 467, 473, 479, 488, 497, 502, + 507, 515, 525, 529, 538, 545, 554, 557, 561, 567, + 568, 572, 575, 576, 580, 584, 588, 592, 598, 602, + 606, 611, 618, 619, 623, 627, 631, 635, 639, 643, + 647, 651, 655 }; #endif @@ -591,16 +591,16 @@ static const yytype_uint8 yyr1[] = 57, 57, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 61, 61, 62, 63, 64, 64, 65, 65, 66, - 66, 67, 68, 68, 69, 69, 70, 70, 71, 71, - 72, 72, 73, 73, 73, 74, 75, 76, 76, 77, - 77, 78, 78, 79, 79, 79, 79, 79, 79, 80, - 80, 81, 81, 81, 82, 82, 82, 82, 82, 82, - 82, 83, 84, 84, 84, 84, 84, 84, 84, 85, - 85, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 87, 87, 88, 88, 89, 89, 89, 90, 90, - 90, 91, 91, 91, 91, 91, 91, 92, 92, 92, - 92, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93 + 66, 66, 67, 68, 68, 69, 69, 70, 70, 71, + 71, 72, 72, 73, 73, 73, 74, 75, 76, 76, + 77, 77, 78, 78, 79, 79, 79, 79, 79, 79, + 80, 80, 81, 81, 81, 82, 82, 82, 82, 82, + 82, 82, 83, 84, 84, 84, 84, 84, 84, 84, + 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 87, 87, 88, 88, 89, 89, 89, 90, + 90, 90, 91, 91, 91, 91, 91, 91, 92, 92, + 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, + 93, 93, 93 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -610,16 +610,16 @@ static const yytype_uint8 yyr2[] = 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 3, 3, 2, 1, 2, 1, 2, - 1, 5, 3, 5, 2, 1, 1, 1, 3, 5, - 3, 5, 2, 1, 3, 5, 5, 0, 1, 3, - 5, 1, 1, 1, 1, 2, 2, 1, 1, 1, - 1, 4, 2, 2, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 4, 5, 3, 1, - 1, 1, 4, 4, 4, 6, 9, 3, 3, 5, - 8, 1, 6, 5, 7, 0, 2, 2, 1, 1, - 1, 1, 1, 2, 2, 2, 3, 1, 2, 3, - 4, 1, 3, 3, 3, 3, 3, 4, 4, 3, - 3, 3 + 1, 3, 5, 3, 5, 2, 1, 1, 1, 3, + 5, 3, 5, 2, 1, 3, 5, 5, 0, 1, + 3, 5, 1, 1, 1, 1, 2, 2, 1, 1, + 1, 1, 4, 2, 2, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 4, 5, 3, + 1, 1, 1, 4, 4, 4, 6, 9, 3, 3, + 5, 8, 1, 6, 5, 7, 0, 2, 2, 1, + 1, 1, 1, 1, 2, 2, 2, 3, 1, 2, + 3, 4, 1, 3, 3, 3, 3, 3, 4, 4, + 3, 3, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -629,39 +629,40 @@ static const yytype_uint8 yydefact[] = { 2, 3, 1, 0, 0, 31, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, - 0, 57, 0, 0, 0, 9, 4, 0, 11, 32, - 14, 0, 0, 111, 74, 76, 79, 75, 77, 80, - 78, 105, 112, 0, 0, 0, 15, 38, 61, 62, - 89, 90, 101, 91, 0, 16, 69, 36, 70, 17, - 0, 18, 0, 0, 105, 105, 0, 22, 45, 63, - 67, 68, 64, 91, 20, 0, 32, 46, 47, 23, - 105, 0, 0, 19, 40, 0, 21, 0, 30, 0, - 24, 0, 25, 0, 26, 53, 27, 0, 28, 0, - 29, 58, 7, 0, 5, 0, 10, 114, 113, 0, - 0, 0, 0, 37, 0, 0, 121, 0, 115, 0, - 0, 0, 85, 84, 0, 83, 82, 35, 0, 0, - 65, 66, 72, 73, 44, 0, 0, 72, 39, 0, - 0, 0, 0, 0, 52, 0, 0, 0, 12, 0, - 13, 105, 106, 107, 0, 0, 97, 98, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, - 0, 0, 0, 88, 0, 0, 33, 34, 0, 0, - 0, 42, 0, 59, 0, 48, 50, 54, 0, 0, - 8, 6, 0, 110, 108, 109, 0, 0, 0, 131, - 130, 129, 0, 0, 122, 123, 124, 125, 126, 0, - 0, 92, 94, 93, 0, 86, 71, 0, 0, 117, - 81, 0, 0, 0, 0, 0, 0, 0, 103, 99, - 0, 127, 128, 0, 0, 0, 87, 41, 118, 0, - 43, 60, 49, 51, 55, 56, 0, 0, 102, 95, - 0, 0, 119, 104, 0, 0, 120, 100, 0, 96 + 0, 58, 0, 0, 0, 9, 4, 0, 11, 32, + 14, 0, 0, 112, 75, 77, 80, 76, 78, 81, + 79, 106, 113, 0, 0, 0, 15, 38, 62, 63, + 90, 91, 102, 92, 0, 16, 70, 36, 71, 17, + 0, 18, 0, 0, 106, 106, 0, 22, 46, 64, + 68, 69, 65, 92, 20, 0, 32, 47, 48, 23, + 106, 0, 0, 19, 40, 0, 0, 21, 0, 30, + 0, 24, 0, 25, 0, 26, 54, 27, 0, 28, + 0, 29, 59, 7, 0, 5, 0, 10, 115, 114, + 0, 0, 0, 0, 37, 0, 0, 122, 0, 116, + 0, 0, 0, 86, 85, 0, 84, 83, 35, 0, + 0, 66, 67, 73, 74, 45, 0, 0, 73, 39, + 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, + 12, 0, 13, 106, 107, 108, 0, 0, 98, 99, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 117, 0, 0, 0, 0, 89, 0, 0, 33, 34, + 0, 0, 41, 0, 43, 0, 60, 0, 49, 51, + 55, 0, 0, 8, 6, 0, 111, 109, 110, 0, + 0, 0, 132, 131, 130, 0, 0, 123, 124, 125, + 126, 127, 0, 0, 93, 95, 94, 0, 87, 72, + 0, 0, 118, 82, 0, 0, 0, 0, 0, 0, + 0, 104, 100, 0, 128, 129, 0, 0, 0, 88, + 42, 119, 0, 44, 61, 50, 52, 56, 57, 0, + 0, 103, 96, 0, 0, 120, 105, 0, 0, 121, + 101, 0, 97 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 3, 26, 149, 147, 27, 30, 59, 61, - 55, 46, 83, 74, 86, 67, 79, 90, 92, 94, - 96, 98, 100, 88, 56, 68, 57, 69, 48, 181, - 58, 49, 50, 51, 52, 112, 196, 53, 220, 117 + -1, 1, 3, 26, 151, 149, 27, 30, 59, 61, + 55, 46, 83, 74, 87, 67, 79, 91, 93, 95, + 97, 99, 101, 89, 56, 68, 57, 69, 48, 184, + 58, 49, 50, 51, 52, 113, 199, 53, 223, 118 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -669,41 +670,42 @@ static const yytype_int16 yydefgoto[] = #define YYPACT_NINF -97 static const yytype_int16 yypact[] = { - -97, 29, -97, 206, -39, -36, 254, 278, 278, 326, - 230, 15, 302, 59, 412, 412, 278, 278, 278, 82, - -20, -20, -22, -6, 2, -97, -97, 12, -97, -97, - -97, 476, 476, -97, -97, -97, -97, -97, -97, -97, - -97, 88, -97, 326, 366, 476, -97, -97, -97, -97, - -97, -97, 14, 16, 364, -97, -97, 33, -97, -97, - 39, -97, 41, 350, 88, 11, 152, -97, -97, -97, - -97, -97, -97, 31, -97, 51, 326, -97, -97, -97, - 11, 382, 476, -97, -97, 42, -97, 50, -97, 56, - -97, 58, -97, 61, -97, 64, -97, 66, -97, 79, - -97, -97, -97, 476, -97, 476, -97, -97, -97, 84, - 476, 476, 92, -97, 18, 78, -97, 129, -97, 108, - -5, 414, -97, -97, 421, -97, -97, -97, 326, 278, - -97, -97, 92, -97, -97, 13, 476, -97, -97, 112, - 428, 438, 326, 326, 326, 326, 326, 206, 527, 206, - 527, 11, -97, -97, 10, 476, 96, -97, 476, 476, - 476, 141, 144, 476, 476, 476, 476, 476, -97, 142, - 23, 126, 127, -97, 467, 128, -97, -97, 130, 110, - 8, -97, 114, -97, 134, 138, 139, -97, 149, 154, - -97, -97, 163, -97, -97, -97, 153, 165, 179, 536, - 493, 159, 476, 476, 65, 65, -97, -97, -97, 476, - 476, 168, -97, -97, 185, -97, -97, -20, 211, 233, - -97, 191, -20, 209, 210, 476, 82, 214, -97, -97, - 238, 200, 200, 201, 203, 220, -97, -97, 247, 227, - -97, -97, -97, -97, -97, -97, 207, 476, -97, -97, - 249, 231, -97, -97, 219, 476, -97, -97, 225, -97 + -97, 40, -97, 208, 5, -4, 140, 295, 295, 343, + 233, 15, 319, 381, 91, 91, 295, 295, 295, 222, + 24, 24, -15, 22, 14, -97, -97, 30, -97, -97, + -97, 486, 486, -97, -97, -97, -97, -97, -97, -97, + -97, 42, -97, 343, 406, 486, -97, -97, -97, -97, + -97, -97, 45, 48, 399, -97, -97, 20, -97, -97, + 67, -97, 68, 367, 42, 19, 271, -97, -97, -97, + -97, -97, -97, 87, -97, 127, 343, -97, -97, -97, + 19, 437, 486, -97, -97, 90, 92, -97, 94, -97, + 96, -97, 104, -97, 105, -97, 111, -97, 118, -97, + 119, -97, -97, -97, 486, -97, 486, -97, -97, -97, + 133, 486, 486, 121, -97, 8, 122, -97, 80, -97, + 134, 78, 413, -97, -97, 446, -97, -97, -97, 343, + 295, -97, -97, 121, -97, -97, 7, 486, -97, -97, + 437, 148, 453, 462, 343, 343, 343, 343, 343, 208, + 284, 208, 284, 19, -97, -97, -1, 486, 131, -97, + 486, 486, 486, 166, 177, 486, 486, 486, 486, 486, + -97, 176, 10, 136, 137, -97, 480, 141, -97, -97, + 143, 142, -97, 16, -97, 149, -97, 150, 151, 154, + -97, 152, 155, -97, -97, 156, -97, -97, -97, 157, + 159, 170, 99, 535, 542, 486, 486, 26, 26, -97, + -97, -97, 486, 486, 161, -97, -97, 162, -97, -97, + 24, 184, 198, -97, 163, 24, 181, 183, 486, 222, + 205, -97, -97, 229, 114, 114, 193, 194, 211, -97, + -97, 238, 219, -97, -97, -97, -97, -97, -97, 199, + 486, -97, -97, 244, 232, -97, -97, 214, 486, -97, + -97, 215, -97 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -97, -97, -97, -96, -97, -97, -97, 259, -97, -97, - -97, 265, -97, -97, -97, -97, -97, -97, -97, -97, - -97, -97, -97, -97, 30, 212, -2, -11, -9, 60, - -16, 32, -3, -1, 7, -53, -97, -10, -97, -80 + -97, -97, -97, -96, -97, -97, -97, 261, -97, -97, + -97, 262, -97, -97, -97, -97, -97, -97, -97, -97, + -97, -97, -97, -97, 17, 218, -2, -11, -9, 61, + -8, 51, 1, -3, -7, -56, -97, -10, -97, -87 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -713,120 +715,122 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint16 yytable[] = { - 73, 70, 84, 85, 99, 101, 60, 71, 28, 72, - 97, 132, 133, 29, 91, 93, 95, 218, 75, 110, - 111, 107, 108, 148, 102, 150, 103, 137, 155, 2, - 170, 171, 54, 210, 116, 118, 47, 172, 219, 62, - 104, 193, 47, 194, 126, 178, 87, 89, 170, 171, - 105, 190, 195, 191, 130, 172, 73, 70, 41, 106, - 131, 125, 136, 71, 119, 72, 120, 31, 32, 156, - 138, 85, 116, 113, 211, 165, 166, 167, 199, 200, - 201, 135, 127, 204, 205, 206, 207, 208, 128, 33, - 129, 151, 139, 116, 109, 116, 110, 111, 192, 140, - 152, 153, 80, 65, 42, 141, 113, 142, 81, 82, - 143, 108, 45, 144, 116, 145, 34, 35, 36, 37, - 38, 39, 231, 232, 40, 183, 179, 177, 146, 157, - 182, 184, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 154, 169, 178, 197, 198, 202, 116, 116, - 116, 203, 209, 116, 116, 116, 116, 116, 176, 217, - 31, 32, 63, 221, 108, 161, 162, 163, 164, 165, - 166, 167, 185, 186, 187, 188, 189, 212, 213, 215, - 168, 216, 33, 222, 223, 224, 34, 35, 36, 37, - 38, 39, 116, 116, 40, 64, 65, 42, 225, 233, - 234, 237, 44, 226, 228, 45, 241, 4, 163, 164, - 165, 166, 167, 227, 230, 244, 229, 245, 235, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 236, 254, 31, 32, - 63, 238, 239, 180, 242, 258, 243, 246, 247, 22, - 23, 24, 248, 25, 249, 250, 251, 252, 253, 255, - 33, 256, 31, 32, 34, 35, 36, 37, 38, 39, - 257, 77, 40, 64, 65, 42, 259, 78, 134, 66, - 44, 240, 0, 45, 33, 0, 31, 32, 34, 35, - 36, 37, 38, 39, 0, 0, 40, 41, 0, 42, - 0, 0, 0, 43, 44, 0, 0, 45, 33, 0, - 31, 32, 34, 35, 36, 37, 38, 39, 0, 0, - 40, 41, 0, 42, 0, 0, 0, 0, 44, 0, - 54, 45, 33, 0, 31, 32, 34, 35, 36, 37, - 38, 39, 0, 0, 40, 41, 0, 42, 0, 0, - 0, 76, 44, 0, 0, 45, 33, 0, 31, 32, - 34, 35, 36, 37, 38, 39, 0, 0, 40, 41, - 0, 42, 31, 121, 31, 32, 44, 0, 0, 45, - 33, 0, 0, 0, 34, 35, 36, 37, 38, 39, - 31, 32, 40, 0, 33, 42, 33, 0, 0, 0, - 44, 114, 0, 45, 122, 123, 0, 41, 115, 42, - 0, 42, 33, 0, 124, 0, 82, 45, 0, 45, - 31, 32, 31, 32, 0, 80, 65, 42, 0, 31, - 174, 0, 82, 0, 0, 45, 31, 32, 0, 0, - 0, 0, 33, 0, 33, 0, 31, 32, 0, 0, - 0, 33, 0, 0, 173, 41, 0, 42, 33, 42, - 0, 175, 44, 0, 82, 45, 42, 45, 33, 0, - 0, 82, 0, 42, 45, 31, 32, 0, 82, 0, - 180, 45, 0, 42, 31, 32, 0, 0, 82, 0, - 54, 45, 0, 0, 0, 0, 0, 33, 160, 161, - 162, 163, 164, 165, 166, 167, 33, 214, 0, 0, - 0, 0, 42, 0, 0, 0, 0, 82, 0, 0, - 45, 42, 0, 0, 0, 0, 82, 0, 0, 45, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 159, 160, 161, 162, 163, 164, 165, 166, 167 + 73, 70, 84, 86, 75, 85, 60, 72, 133, 134, + 98, 71, 100, 102, 92, 94, 96, 150, 157, 152, + 213, 108, 109, 47, 138, 221, 62, 111, 112, 47, + 196, 103, 197, 104, 117, 119, 167, 168, 169, 180, + 2, 198, 172, 173, 127, 29, 222, 126, 110, 174, + 111, 112, 28, 193, 131, 194, 73, 70, 41, 158, + 114, 214, 106, 72, 132, 88, 90, 71, 105, 128, + 139, 86, 117, 202, 203, 204, 54, 107, 207, 208, + 209, 210, 211, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 114, 117, 120, 117, 195, 121, 31, + 32, 154, 155, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 109, 172, 173, 117, 129, 130, 234, 235, + 174, 33, 165, 166, 167, 168, 169, 181, 179, 182, + 86, 170, 185, 187, 41, 186, 42, 136, 137, 140, + 153, 44, 141, 142, 45, 143, 178, 200, 31, 32, + 117, 117, 117, 144, 145, 117, 117, 117, 117, 117, + 146, 188, 189, 190, 191, 192, 109, 147, 148, 171, + 33, 156, 205, 159, 34, 35, 36, 37, 38, 39, + 180, 201, 40, 41, 206, 42, 212, 215, 216, 43, + 44, 220, 218, 45, 219, 117, 117, 226, 224, 225, + 227, 228, 236, 237, 229, 233, 230, 242, 231, 4, + 232, 238, 240, 239, 241, 183, 245, 244, 247, 246, + 248, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 249, 250, + 257, 31, 32, 63, 251, 252, 253, 254, 261, 255, + 256, 22, 23, 24, 258, 25, 34, 35, 36, 37, + 38, 39, 259, 33, 40, 260, 262, 34, 35, 36, + 37, 38, 39, 77, 78, 40, 64, 65, 42, 31, + 32, 63, 66, 44, 135, 243, 45, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 0, 0, 0, + 0, 33, 0, 31, 32, 34, 35, 36, 37, 38, + 39, 0, 0, 40, 64, 65, 42, 0, 0, 0, + 0, 44, 0, 0, 45, 33, 0, 31, 32, 34, + 35, 36, 37, 38, 39, 0, 0, 40, 41, 0, + 42, 0, 0, 0, 0, 44, 0, 54, 45, 33, + 0, 31, 32, 34, 35, 36, 37, 38, 39, 0, + 0, 40, 41, 0, 42, 0, 0, 0, 76, 44, + 0, 0, 45, 33, 0, 31, 32, 34, 35, 36, + 37, 38, 39, 0, 0, 40, 41, 0, 42, 31, + 32, 0, 0, 44, 0, 0, 45, 33, 0, 0, + 0, 34, 35, 36, 37, 38, 39, 31, 122, 40, + 0, 33, 42, 0, 31, 32, 0, 44, 0, 0, + 45, 31, 32, 0, 80, 65, 42, 0, 0, 33, + 81, 82, 0, 54, 45, 0, 33, 0, 0, 123, + 124, 115, 41, 33, 42, 31, 32, 0, 116, 125, + 0, 42, 45, 175, 31, 176, 82, 0, 42, 45, + 0, 31, 32, 82, 0, 0, 45, 33, 0, 0, + 31, 32, 0, 0, 0, 0, 33, 0, 0, 0, + 80, 65, 42, 33, 0, 0, 177, 82, 31, 32, + 45, 42, 33, 0, 31, 32, 82, 0, 42, 45, + 0, 0, 0, 82, 0, 183, 45, 42, 0, 0, + 33, 0, 82, 0, 54, 45, 33, 0, 0, 0, + 217, 0, 0, 0, 0, 42, 0, 0, 0, 0, + 82, 42, 0, 45, 0, 0, 82, 0, 0, 45, + 162, 163, 164, 165, 166, 167, 168, 169, 163, 164, + 165, 166, 167, 168, 169 }; static const yytype_int16 yycheck[] = { - 10, 10, 13, 13, 20, 21, 8, 10, 47, 10, - 19, 64, 65, 49, 16, 17, 18, 9, 11, 8, - 9, 31, 32, 103, 46, 105, 48, 80, 10, 0, - 35, 36, 52, 10, 44, 45, 6, 42, 30, 9, - 46, 31, 12, 33, 54, 32, 14, 15, 35, 36, - 48, 147, 42, 149, 63, 42, 66, 66, 43, 47, - 63, 54, 11, 66, 50, 66, 50, 8, 9, 51, - 81, 81, 82, 43, 51, 10, 11, 12, 158, 159, - 160, 50, 49, 163, 164, 165, 166, 167, 49, 30, - 49, 7, 50, 103, 6, 105, 8, 9, 151, 49, - 110, 111, 43, 44, 45, 49, 76, 49, 49, 50, - 49, 121, 53, 49, 124, 49, 34, 35, 36, 37, - 38, 39, 202, 203, 42, 141, 136, 129, 49, 51, - 140, 141, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 50, 35, 32, 155, 50, 6, 158, 159, - 160, 7, 10, 163, 164, 165, 166, 167, 128, 49, - 8, 9, 10, 49, 174, 6, 7, 8, 9, 10, - 11, 12, 142, 143, 144, 145, 146, 51, 51, 51, - 51, 51, 30, 49, 46, 46, 34, 35, 36, 37, - 38, 39, 202, 203, 42, 43, 44, 45, 49, 209, - 210, 217, 50, 49, 51, 53, 222, 1, 8, 9, - 10, 11, 12, 50, 35, 225, 51, 226, 50, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 51, 247, 8, 9, - 10, 30, 9, 52, 35, 255, 36, 33, 10, 43, - 44, 45, 51, 47, 51, 35, 9, 30, 51, 10, - 30, 30, 8, 9, 34, 35, 36, 37, 38, 39, - 51, 12, 42, 43, 44, 45, 51, 12, 66, 49, - 50, 221, -1, 53, 30, -1, 8, 9, 34, 35, - 36, 37, 38, 39, -1, -1, 42, 43, -1, 45, - -1, -1, -1, 49, 50, -1, -1, 53, 30, -1, - 8, 9, 34, 35, 36, 37, 38, 39, -1, -1, - 42, 43, -1, 45, -1, -1, -1, -1, 50, -1, - 52, 53, 30, -1, 8, 9, 34, 35, 36, 37, - 38, 39, -1, -1, 42, 43, -1, 45, -1, -1, - -1, 49, 50, -1, -1, 53, 30, -1, 8, 9, - 34, 35, 36, 37, 38, 39, -1, -1, 42, 43, - -1, 45, 8, 9, 8, 9, 50, -1, -1, 53, - 30, -1, -1, -1, 34, 35, 36, 37, 38, 39, - 8, 9, 42, -1, 30, 45, 30, -1, -1, -1, - 50, 35, -1, 53, 40, 41, -1, 43, 42, 45, - -1, 45, 30, -1, 50, -1, 50, 53, -1, 53, - 8, 9, 8, 9, -1, 43, 44, 45, -1, 8, - 9, -1, 50, -1, -1, 53, 8, 9, -1, -1, - -1, -1, 30, -1, 30, -1, 8, 9, -1, -1, - -1, 30, -1, -1, 40, 43, -1, 45, 30, 45, - -1, 40, 50, -1, 50, 53, 45, 53, 30, -1, - -1, 50, -1, 45, 53, 8, 9, -1, 50, -1, - 52, 53, -1, 45, 8, 9, -1, -1, 50, -1, - 52, 53, -1, -1, -1, -1, -1, 30, 5, 6, - 7, 8, 9, 10, 11, 12, 30, 40, -1, -1, - -1, -1, 45, -1, -1, -1, -1, 50, -1, -1, - 53, 45, -1, -1, -1, -1, 50, -1, -1, 53, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 4, 5, 6, 7, 8, 9, 10, 11, 12 + 10, 10, 13, 13, 11, 13, 8, 10, 64, 65, + 19, 10, 20, 21, 16, 17, 18, 104, 10, 106, + 10, 31, 32, 6, 80, 9, 9, 8, 9, 12, + 31, 46, 33, 48, 44, 45, 10, 11, 12, 32, + 0, 42, 35, 36, 54, 49, 30, 54, 6, 42, + 8, 9, 47, 149, 63, 151, 66, 66, 43, 51, + 43, 51, 48, 66, 63, 14, 15, 66, 46, 49, + 81, 81, 82, 160, 161, 162, 52, 47, 165, 166, + 167, 168, 169, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 76, 104, 50, 106, 153, 50, 8, + 9, 111, 112, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 122, 35, 36, 125, 49, 49, 205, 206, + 42, 30, 8, 9, 10, 11, 12, 137, 130, 140, + 140, 51, 142, 143, 43, 143, 45, 50, 11, 49, + 7, 50, 50, 49, 53, 49, 129, 157, 8, 9, + 160, 161, 162, 49, 49, 165, 166, 167, 168, 169, + 49, 144, 145, 146, 147, 148, 176, 49, 49, 35, + 30, 50, 6, 51, 34, 35, 36, 37, 38, 39, + 32, 50, 42, 43, 7, 45, 10, 51, 51, 49, + 50, 49, 51, 53, 51, 205, 206, 46, 49, 49, + 46, 49, 212, 213, 49, 35, 50, 9, 51, 1, + 51, 50, 220, 51, 30, 52, 35, 225, 228, 36, + 229, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 33, 10, + 250, 8, 9, 10, 51, 51, 35, 9, 258, 30, + 51, 43, 44, 45, 10, 47, 34, 35, 36, 37, + 38, 39, 30, 30, 42, 51, 51, 34, 35, 36, + 37, 38, 39, 12, 12, 42, 43, 44, 45, 8, + 9, 10, 49, 50, 66, 224, 53, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, + -1, 30, -1, 8, 9, 34, 35, 36, 37, 38, + 39, -1, -1, 42, 43, 44, 45, -1, -1, -1, + -1, 50, -1, -1, 53, 30, -1, 8, 9, 34, + 35, 36, 37, 38, 39, -1, -1, 42, 43, -1, + 45, -1, -1, -1, -1, 50, -1, 52, 53, 30, + -1, 8, 9, 34, 35, 36, 37, 38, 39, -1, + -1, 42, 43, -1, 45, -1, -1, -1, 49, 50, + -1, -1, 53, 30, -1, 8, 9, 34, 35, 36, + 37, 38, 39, -1, -1, 42, 43, -1, 45, 8, + 9, -1, -1, 50, -1, -1, 53, 30, -1, -1, + -1, 34, 35, 36, 37, 38, 39, 8, 9, 42, + -1, 30, 45, -1, 8, 9, -1, 50, -1, -1, + 53, 8, 9, -1, 43, 44, 45, -1, -1, 30, + 49, 50, -1, 52, 53, -1, 30, -1, -1, 40, + 41, 35, 43, 30, 45, 8, 9, -1, 42, 50, + -1, 45, 53, 40, 8, 9, 50, -1, 45, 53, + -1, 8, 9, 50, -1, -1, 53, 30, -1, -1, + 8, 9, -1, -1, -1, -1, 30, -1, -1, -1, + 43, 44, 45, 30, -1, -1, 40, 50, 8, 9, + 53, 45, 30, -1, 8, 9, 50, -1, 45, 53, + -1, -1, -1, 50, -1, 52, 53, 45, -1, -1, + 30, -1, 50, -1, 52, 53, 30, -1, -1, -1, + 40, -1, -1, -1, -1, 45, -1, -1, -1, -1, + 50, 45, -1, 53, -1, -1, 50, -1, -1, 53, + 5, 6, 7, 8, 9, 10, 11, 12, 6, 7, + 8, 9, 10, 11, 12 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -841,24 +845,25 @@ static const yytype_uint8 yystos[] = 86, 87, 88, 91, 52, 64, 78, 80, 84, 62, 80, 63, 78, 10, 43, 44, 49, 69, 79, 81, 82, 86, 87, 91, 67, 88, 49, 61, 65, 70, - 43, 49, 50, 66, 81, 91, 68, 85, 77, 85, - 71, 80, 72, 80, 73, 80, 74, 82, 75, 84, - 76, 84, 46, 48, 46, 48, 47, 91, 91, 6, - 8, 9, 89, 78, 35, 42, 91, 93, 91, 50, - 50, 9, 40, 41, 50, 88, 91, 49, 49, 49, - 82, 86, 89, 89, 79, 50, 11, 89, 81, 50, - 49, 49, 49, 49, 49, 49, 49, 59, 93, 58, - 93, 7, 91, 91, 50, 10, 51, 51, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 51, 35, - 35, 36, 42, 40, 9, 40, 78, 80, 32, 91, - 52, 83, 91, 84, 91, 78, 78, 78, 78, 78, - 57, 57, 89, 31, 33, 42, 90, 91, 50, 93, - 93, 93, 6, 7, 93, 93, 93, 93, 93, 10, - 10, 51, 51, 51, 40, 51, 51, 49, 9, 30, - 92, 49, 49, 46, 46, 49, 49, 50, 51, 51, - 35, 93, 93, 91, 91, 50, 51, 84, 30, 9, - 83, 84, 35, 36, 91, 82, 33, 10, 51, 51, - 35, 9, 30, 51, 91, 10, 30, 51, 91, 51 + 43, 49, 50, 66, 81, 84, 91, 68, 85, 77, + 85, 71, 80, 72, 80, 73, 80, 74, 82, 75, + 84, 76, 84, 46, 48, 46, 48, 47, 91, 91, + 6, 8, 9, 89, 78, 35, 42, 91, 93, 91, + 50, 50, 9, 40, 41, 50, 88, 91, 49, 49, + 49, 82, 86, 89, 89, 79, 50, 11, 89, 81, + 49, 50, 49, 49, 49, 49, 49, 49, 49, 59, + 93, 58, 93, 7, 91, 91, 50, 10, 51, 51, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 51, 35, 35, 36, 42, 40, 9, 40, 78, 80, + 32, 91, 81, 52, 83, 91, 84, 91, 78, 78, + 78, 78, 78, 57, 57, 89, 31, 33, 42, 90, + 91, 50, 93, 93, 93, 6, 7, 93, 93, 93, + 93, 93, 10, 10, 51, 51, 51, 40, 51, 51, + 49, 9, 30, 92, 49, 49, 46, 46, 49, 49, + 50, 51, 51, 35, 93, 93, 91, 91, 50, 51, + 84, 30, 9, 83, 84, 35, 36, 91, 82, 33, + 10, 51, 51, 35, 9, 30, 51, 91, 10, 30, + 51, 91, 51 }; #define yyerrok (yyerrstatus = 0) @@ -1879,7 +1884,15 @@ yyreduce: break; case 41: -#line 182 "a.y" +#line 180 "a.y" + { + (yyval.gen2).from = (yyvsp[(1) - (3)].gen); + (yyval.gen2).to = (yyvsp[(3) - (3)].gen); + } + break; + + case 42: +#line 187 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (5)].gen); (yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval); @@ -1887,16 +1900,16 @@ yyreduce: } break; - case 42: -#line 190 "a.y" + case 43: +#line 195 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (3)].gen); (yyval.gen2).to = (yyvsp[(3) - (3)].gen); } break; - case 43: -#line 195 "a.y" + case 44: +#line 200 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (5)].gen); (yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval); @@ -1904,32 +1917,32 @@ yyreduce: } break; - case 44: -#line 203 "a.y" + case 45: +#line 208 "a.y" { (yyval.gen2).from = nullgen; (yyval.gen2).to = (yyvsp[(2) - (2)].gen); } break; - case 45: -#line 208 "a.y" + case 46: +#line 213 "a.y" { (yyval.gen2).from = nullgen; (yyval.gen2).to = (yyvsp[(1) - (1)].gen); } break; - case 48: -#line 219 "a.y" + case 49: +#line 224 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (3)].gen); (yyval.gen2).to = (yyvsp[(3) - (3)].gen); } break; - case 49: -#line 224 "a.y" + case 50: +#line 229 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (5)].gen); (yyval.gen2).to = (yyvsp[(3) - (5)].gen); @@ -1939,16 +1952,16 @@ yyreduce: } break; - case 50: -#line 234 "a.y" + case 51: +#line 239 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (3)].gen); (yyval.gen2).to = (yyvsp[(3) - (3)].gen); } break; - case 51: -#line 239 "a.y" + case 52: +#line 244 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (5)].gen); (yyval.gen2).to = (yyvsp[(3) - (5)].gen); @@ -1958,32 +1971,32 @@ yyreduce: } break; - case 52: -#line 249 "a.y" + case 53: +#line 254 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (2)].gen); (yyval.gen2).to = nullgen; } break; - case 53: -#line 254 "a.y" + case 54: +#line 259 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (1)].gen); (yyval.gen2).to = nullgen; } break; - case 54: -#line 259 "a.y" + case 55: +#line 264 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (3)].gen); (yyval.gen2).to = (yyvsp[(3) - (3)].gen); } break; - case 55: -#line 266 "a.y" + case 56: +#line 271 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (5)].gen); (yyval.gen2).to = (yyvsp[(3) - (5)].gen); @@ -1991,8 +2004,8 @@ yyreduce: } break; - case 56: -#line 274 "a.y" + case 57: +#line 279 "a.y" { (yyval.gen2).from = (yyvsp[(3) - (5)].gen); (yyval.gen2).to = (yyvsp[(5) - (5)].gen); @@ -2002,32 +2015,32 @@ yyreduce: } break; - case 57: -#line 283 "a.y" + case 58: +#line 288 "a.y" { (yyval.gen2).from = nullgen; (yyval.gen2).to = nullgen; } break; - case 58: -#line 288 "a.y" + case 59: +#line 293 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (1)].gen); (yyval.gen2).to = nullgen; } break; - case 59: -#line 295 "a.y" + case 60: +#line 300 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (3)].gen); (yyval.gen2).to = (yyvsp[(3) - (3)].gen); } break; - case 60: -#line 300 "a.y" + case 61: +#line 305 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (5)].gen); (yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval); @@ -2035,22 +2048,22 @@ yyreduce: } break; - case 65: -#line 314 "a.y" + case 66: +#line 319 "a.y" { (yyval.gen) = (yyvsp[(2) - (2)].gen); } break; - case 66: -#line 318 "a.y" + case 67: +#line 323 "a.y" { (yyval.gen) = (yyvsp[(2) - (2)].gen); } break; - case 71: -#line 330 "a.y" + case 72: +#line 335 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_BRANCH; @@ -2058,8 +2071,8 @@ yyreduce: } break; - case 72: -#line 336 "a.y" + case 73: +#line 341 "a.y" { (yyval.gen) = nullgen; if(pass == 2) @@ -2070,8 +2083,8 @@ yyreduce: } break; - case 73: -#line 345 "a.y" + case 74: +#line 350 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_BRANCH; @@ -2080,14 +2093,6 @@ yyreduce: } break; - case 74: -#line 354 "a.y" - { - (yyval.gen) = nullgen; - (yyval.gen).type = (yyvsp[(1) - (1)].lval); - } - break; - case 75: #line 359 "a.y" { @@ -2116,7 +2121,7 @@ yyreduce: #line 374 "a.y" { (yyval.gen) = nullgen; - (yyval.gen).type = D_SP; + (yyval.gen).type = (yyvsp[(1) - (1)].lval); } break; @@ -2124,7 +2129,7 @@ yyreduce: #line 379 "a.y" { (yyval.gen) = nullgen; - (yyval.gen).type = (yyvsp[(1) - (1)].lval); + (yyval.gen).type = D_SP; } break; @@ -2137,16 +2142,15 @@ yyreduce: break; case 81: -#line 390 "a.y" +#line 389 "a.y" { (yyval.gen) = nullgen; - (yyval.gen).type = D_CONST; - (yyval.gen).offset = (yyvsp[(2) - (2)].lval); + (yyval.gen).type = (yyvsp[(1) - (1)].lval); } break; case 82: -#line 398 "a.y" +#line 395 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_CONST; @@ -2155,7 +2159,16 @@ yyreduce: break; case 83: -#line 404 "a.y" +#line 403 "a.y" + { + (yyval.gen) = nullgen; + (yyval.gen).type = D_CONST; + (yyval.gen).offset = (yyvsp[(2) - (2)].lval); + } + break; + + case 84: +#line 409 "a.y" { (yyval.gen) = (yyvsp[(2) - (2)].gen); (yyval.gen).index = (yyvsp[(2) - (2)].gen).type; @@ -2168,8 +2181,8 @@ yyreduce: } break; - case 84: -#line 415 "a.y" + case 85: +#line 420 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_SCONST; @@ -2177,8 +2190,8 @@ yyreduce: } break; - case 85: -#line 421 "a.y" + case 86: +#line 426 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_FCONST; @@ -2186,8 +2199,8 @@ yyreduce: } break; - case 86: -#line 427 "a.y" + case 87: +#line 432 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_FCONST; @@ -2195,8 +2208,8 @@ yyreduce: } break; - case 87: -#line 433 "a.y" + case 88: +#line 438 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_FCONST; @@ -2204,8 +2217,8 @@ yyreduce: } break; - case 88: -#line 439 "a.y" + case 89: +#line 444 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_FCONST; @@ -2213,8 +2226,8 @@ yyreduce: } break; - case 91: -#line 451 "a.y" + case 92: +#line 456 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+D_NONE; @@ -2222,8 +2235,8 @@ yyreduce: } break; - case 92: -#line 457 "a.y" + case 93: +#line 462 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+(yyvsp[(3) - (4)].lval); @@ -2231,8 +2244,8 @@ yyreduce: } break; - case 93: -#line 463 "a.y" + case 94: +#line 468 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+D_SP; @@ -2240,8 +2253,8 @@ yyreduce: } break; - case 94: -#line 469 "a.y" + case 95: +#line 474 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+(yyvsp[(3) - (4)].lval); @@ -2249,8 +2262,8 @@ yyreduce: } break; - case 95: -#line 475 "a.y" + case 96: +#line 480 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+D_NONE; @@ -2261,8 +2274,8 @@ yyreduce: } break; - case 96: -#line 484 "a.y" + case 97: +#line 489 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+(yyvsp[(3) - (9)].lval); @@ -2273,24 +2286,24 @@ yyreduce: } break; - case 97: -#line 493 "a.y" + case 98: +#line 498 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+(yyvsp[(2) - (3)].lval); } break; - case 98: -#line 498 "a.y" + case 99: +#line 503 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+D_SP; } break; - case 99: -#line 503 "a.y" + case 100: +#line 508 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+D_NONE; @@ -2300,8 +2313,8 @@ yyreduce: } break; - case 100: -#line 511 "a.y" + case 101: +#line 516 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+(yyvsp[(2) - (8)].lval); @@ -2311,15 +2324,15 @@ yyreduce: } break; - case 101: -#line 521 "a.y" + case 102: +#line 526 "a.y" { (yyval.gen) = (yyvsp[(1) - (1)].gen); } break; - case 102: -#line 525 "a.y" + case 103: +#line 530 "a.y" { (yyval.gen) = (yyvsp[(1) - (6)].gen); (yyval.gen).index = (yyvsp[(3) - (6)].lval); @@ -2328,8 +2341,8 @@ yyreduce: } break; - case 103: -#line 534 "a.y" + case 104: +#line 539 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = (yyvsp[(4) - (5)].lval); @@ -2338,8 +2351,8 @@ yyreduce: } break; - case 104: -#line 541 "a.y" + case 105: +#line 546 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_STATIC; @@ -2348,164 +2361,164 @@ yyreduce: } break; - case 105: -#line 549 "a.y" + case 106: +#line 554 "a.y" { (yyval.lval) = 0; } break; - case 106: -#line 553 "a.y" + case 107: +#line 558 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 107: -#line 557 "a.y" + case 108: +#line 562 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; - case 109: -#line 564 "a.y" + case 110: +#line 569 "a.y" { (yyval.lval) = D_AUTO; } break; - case 112: -#line 572 "a.y" + case 113: +#line 577 "a.y" { (yyval.lval) = (yyvsp[(1) - (1)].sym)->value; } break; - case 113: -#line 576 "a.y" + case 114: +#line 581 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; - case 114: -#line 580 "a.y" + case 115: +#line 585 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 115: -#line 584 "a.y" + case 116: +#line 589 "a.y" { (yyval.lval) = ~(yyvsp[(2) - (2)].lval); } break; - case 116: -#line 588 "a.y" + case 117: +#line 593 "a.y" { (yyval.lval) = (yyvsp[(2) - (3)].lval); } break; - case 117: -#line 594 "a.y" + case 118: +#line 599 "a.y" { (yyval.lval) = (yyvsp[(1) - (1)].lval) & 0xffffffffLL; } break; - case 118: -#line 598 "a.y" + case 119: +#line 603 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval) & 0xffffffffLL; } break; - case 119: -#line 602 "a.y" + case 120: +#line 607 "a.y" { (yyval.lval) = ((yyvsp[(1) - (3)].lval) & 0xffffffffLL) + (((yyvsp[(3) - (3)].lval) & 0xffffLL) << 32); } break; - case 120: -#line 607 "a.y" + case 121: +#line 612 "a.y" { (yyval.lval) = (-(yyvsp[(2) - (4)].lval) & 0xffffffffLL) + (((yyvsp[(4) - (4)].lval) & 0xffffLL) << 32); } break; - case 122: -#line 615 "a.y" + case 123: +#line 620 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval); } break; - case 123: -#line 619 "a.y" + case 124: +#line 624 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval); } break; - case 124: -#line 623 "a.y" + case 125: +#line 628 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval); } break; - case 125: -#line 627 "a.y" + case 126: +#line 632 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval); } break; - case 126: -#line 631 "a.y" + case 127: +#line 636 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval); } break; - case 127: -#line 635 "a.y" + case 128: +#line 640 "a.y" { (yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval); } break; - case 128: -#line 639 "a.y" + case 129: +#line 644 "a.y" { (yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval); } break; - case 129: -#line 643 "a.y" + case 130: +#line 648 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval); } break; - case 130: -#line 647 "a.y" + case 131: +#line 652 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval); } break; - case 131: -#line 651 "a.y" + case 132: +#line 656 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval); } @@ -2513,7 +2526,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2517 "y.tab.c" +#line 2530 "y.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); |