diff options
author | Michael Stapelberg <stapelberg@debian.org> | 2013-03-04 21:27:36 +0100 |
---|---|---|
committer | Michael Stapelberg <michael@stapelberg.de> | 2013-03-04 21:27:36 +0100 |
commit | 04b08da9af0c450d645ab7389d1467308cfc2db8 (patch) | |
tree | db247935fa4f2f94408edc3acd5d0d4f997aa0d8 /src/cmd/5a | |
parent | 917c5fb8ec48e22459d77e3849e6d388f93d3260 (diff) | |
download | golang-upstream/1.1_hg20130304.tar.gz |
Imported Upstream version 1.1~hg20130304upstream/1.1_hg20130304
Diffstat (limited to 'src/cmd/5a')
-rw-r--r-- | src/cmd/5a/a.y | 16 | ||||
-rw-r--r-- | src/cmd/5a/doc.go | 6 | ||||
-rw-r--r-- | src/cmd/5a/lex.c | 51 | ||||
-rw-r--r-- | src/cmd/5a/y.tab.c | 1053 | ||||
-rw-r--r-- | src/cmd/5a/y.tab.h | 92 |
5 files changed, 641 insertions, 577 deletions
diff --git a/src/cmd/5a/a.y b/src/cmd/5a/a.y index 512fb5a95..c9fdf05d5 100644 --- a/src/cmd/5a/a.y +++ b/src/cmd/5a/a.y @@ -52,7 +52,7 @@ %token <lval> LTYPE6 LTYPE7 LTYPE8 LTYPE9 LTYPEA %token <lval> LTYPEB LTYPEC LTYPED LTYPEE LTYPEF %token <lval> LTYPEG LTYPEH LTYPEI LTYPEJ LTYPEK -%token <lval> LTYPEL LTYPEM LTYPEN LTYPEBX +%token <lval> LTYPEL LTYPEM LTYPEN LTYPEBX LTYPEPLD %token <lval> LCONST LSP LSB LFP LPC %token <lval> LTYPEX LR LREG LF LFREG LC LCREG LPSR LFCR %token <lval> LCOND LS LAT @@ -286,22 +286,30 @@ inst: outcode(AWORD, Always, &nullgen, NREG, &g); } /* - * MULL hi,lo,r1,r2 + * MULL r1,r2,(hi,lo) */ | LTYPEM cond reg ',' reg ',' regreg { outcode($1, $2, &$3, $5.reg, &$7); } /* - * MULA hi,lo,r1,r2 + * MULA r1,r2,r3,r4: (r1*r2+r3) & 0xffffffff -> r4 + * MULAW{T,B} r1,r2,r3,r4 */ | LTYPEN cond reg ',' reg ',' reg ',' spreg { - $7.type = D_REGREG; + $7.type = D_REGREG2; $7.offset = $9; outcode($1, $2, &$3, $5.reg, &$7); } /* + * PLD + */ +| LTYPEPLD oreg + { + outcode($1, Always, &$2, NREG, &nullgen); + } +/* * END */ | LTYPEE comma diff --git a/src/cmd/5a/doc.go b/src/cmd/5a/doc.go index a0d2c4c64..29725db04 100644 --- a/src/cmd/5a/doc.go +++ b/src/cmd/5a/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 + /* 5a 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 ARM, referred to by these tools as arm. */ -package documentation +package main diff --git a/src/cmd/5a/lex.c b/src/cmd/5a/lex.c index 4bef0219a..a77e3050d 100644 --- a/src/cmd/5a/lex.c +++ b/src/cmd/5a/lex.c @@ -329,8 +329,6 @@ struct "STREXD", LTYPE9, ASTREXD, /* - "ABSF", LTYPEI, AABSF, - "ABSD", LTYPEI, AABSD, "NEGF", LTYPEI, ANEGF, "NEGD", LTYPEI, ANEGD, "SQTF", LTYPEI, ASQTF, @@ -343,6 +341,8 @@ struct "NRMD", LTYPEI, ANRMD, */ + "ABSF", LTYPEI, AABSF, + "ABSD", LTYPEI, AABSD, "SQRTF", LTYPEI, ASQRTF, "SQRTD", LTYPEI, ASQRTD, "CMPF", LTYPEL, ACMPF, @@ -403,6 +403,18 @@ struct "MCR", LTYPEJ, 0, "MRC", LTYPEJ, 1, + + "PLD", LTYPEPLD, APLD, + "UNDEF", LTYPEE, AUNDEF, + "CLZ", LTYPE2, ACLZ, + + "MULWT", LTYPE1, AMULWT, + "MULWB", LTYPE1, AMULWB, + "MULAWT", LTYPEN, AMULAWT, + "MULAWB", LTYPEN, AMULAWB, + + "USEFIELD", LTYPEN, AUSEFIELD, + 0 }; @@ -493,6 +505,7 @@ zaddr(Gen *a, int s) Bputc(&obuf, a->reg); Bputc(&obuf, s); Bputc(&obuf, a->name); + Bputc(&obuf, 0); switch(a->type) { default: print("unknown type %d\n", a->type); @@ -506,6 +519,7 @@ zaddr(Gen *a, int s) break; case D_REGREG: + case D_REGREG2: Bputc(&obuf, a->offset); break; @@ -641,11 +655,37 @@ 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 = '/'; 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]; @@ -697,6 +737,11 @@ outhist(void) Bputc(&obuf, h->line>>24); zaddr(&nullgen, 0); zaddr(&g, 0); + + if(tofree) { + free(tofree); + tofree = nil; + } } } diff --git a/src/cmd/5a/y.tab.c b/src/cmd/5a/y.tab.c index a2fba60b3..ce97ee315 100644 --- a/src/cmd/5a/y.tab.c +++ b/src/cmd/5a/y.tab.c @@ -128,28 +128,29 @@ LTYPEM = 279, LTYPEN = 280, LTYPEBX = 281, - LCONST = 282, - LSP = 283, - LSB = 284, - LFP = 285, - LPC = 286, - LTYPEX = 287, - LR = 288, - LREG = 289, - LF = 290, - LFREG = 291, - LC = 292, - LCREG = 293, - LPSR = 294, - LFCR = 295, - LCOND = 296, - LS = 297, - LAT = 298, - LFCONST = 299, - LSCONST = 300, - LNAME = 301, - LLAB = 302, - LVAR = 303 + LTYPEPLD = 282, + LCONST = 283, + LSP = 284, + LSB = 285, + LFP = 286, + LPC = 287, + LTYPEX = 288, + LR = 289, + LREG = 290, + LF = 291, + LFREG = 292, + LC = 293, + LCREG = 294, + LPSR = 295, + LFCR = 296, + LCOND = 297, + LS = 298, + LAT = 299, + LFCONST = 300, + LSCONST = 301, + LNAME = 302, + LLAB = 303, + LVAR = 304 }; #endif /* Tokens. */ @@ -177,28 +178,29 @@ #define LTYPEM 279 #define LTYPEN 280 #define LTYPEBX 281 -#define LCONST 282 -#define LSP 283 -#define LSB 284 -#define LFP 285 -#define LPC 286 -#define LTYPEX 287 -#define LR 288 -#define LREG 289 -#define LF 290 -#define LFREG 291 -#define LC 292 -#define LCREG 293 -#define LPSR 294 -#define LFCR 295 -#define LCOND 296 -#define LS 297 -#define LAT 298 -#define LFCONST 299 -#define LSCONST 300 -#define LNAME 301 -#define LLAB 302 -#define LVAR 303 +#define LTYPEPLD 282 +#define LCONST 283 +#define LSP 284 +#define LSB 285 +#define LFP 286 +#define LPC 287 +#define LTYPEX 288 +#define LR 289 +#define LREG 290 +#define LF 291 +#define LFREG 292 +#define LC 293 +#define LCREG 294 +#define LPSR 295 +#define LFCR 296 +#define LCOND 297 +#define LS 298 +#define LAT 299 +#define LFCONST 300 +#define LSCONST 301 +#define LNAME 302 +#define LLAB 303 +#define LVAR 304 @@ -219,7 +221,7 @@ typedef union YYSTYPE /* Line 214 of yacc.c */ -#line 223 "y.tab.c" +#line 225 "y.tab.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -231,7 +233,7 @@ typedef union YYSTYPE /* Line 264 of yacc.c */ -#line 235 "y.tab.c" +#line 237 "y.tab.c" #ifdef short # undef short @@ -446,20 +448,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 643 +#define YYLAST 603 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 69 +#define YYNTOKENS 70 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 35 /* YYNRULES -- Number of rules. */ -#define YYNRULES 129 +#define YYNRULES 130 /* YYNRULES -- Number of states. */ -#define YYNSTATES 327 +#define YYNSTATES 329 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 303 +#define YYMAXUTOK 304 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -470,16 +472,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 67, 12, 5, 2, - 65, 66, 10, 8, 62, 9, 2, 11, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 59, 61, - 6, 60, 7, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 68, 12, 5, 2, + 66, 67, 10, 8, 63, 9, 2, 11, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 60, 62, + 6, 61, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 63, 2, 64, 4, 2, 2, 2, 2, 2, + 2, 64, 2, 65, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 2, 68, 2, 2, 2, + 2, 2, 2, 2, 3, 2, 69, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -497,7 +499,7 @@ static const yytype_uint8 yytranslate[] = 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58 + 55, 56, 57, 58, 59 }; #if YYDEBUG @@ -509,71 +511,72 @@ static const yytype_uint16 yyprhs[] = 26, 31, 33, 36, 39, 47, 54, 60, 66, 72, 77, 82, 86, 90, 95, 102, 110, 118, 126, 133, 140, 144, 149, 156, 163, 168, 172, 178, 184, 192, - 199, 212, 220, 230, 233, 234, 237, 240, 241, 244, - 249, 252, 255, 258, 261, 266, 269, 271, 274, 278, - 280, 284, 288, 290, 292, 294, 299, 301, 303, 305, - 307, 309, 311, 313, 317, 319, 324, 326, 331, 333, - 335, 337, 339, 342, 344, 350, 355, 360, 365, 370, - 372, 374, 376, 378, 383, 385, 387, 389, 394, 396, - 398, 400, 405, 410, 416, 424, 425, 428, 431, 433, - 435, 437, 439, 441, 444, 447, 450, 454, 455, 458, - 460, 464, 468, 472, 476, 480, 485, 490, 494, 498 + 199, 212, 220, 230, 233, 236, 237, 240, 243, 244, + 247, 252, 255, 258, 261, 264, 269, 272, 274, 277, + 281, 283, 287, 291, 293, 295, 297, 302, 304, 306, + 308, 310, 312, 314, 316, 320, 322, 327, 329, 334, + 336, 338, 340, 342, 345, 347, 353, 358, 363, 368, + 373, 375, 377, 379, 381, 386, 388, 390, 392, 397, + 399, 401, 403, 408, 413, 419, 427, 428, 431, 434, + 436, 438, 440, 442, 444, 447, 450, 453, 457, 458, + 461, 463, 467, 471, 475, 479, 483, 488, 493, 497, + 501 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { - 70, 0, -1, -1, -1, 70, 71, 72, -1, -1, - 57, 59, 73, 72, -1, -1, 56, 59, 74, 72, - -1, 56, 60, 103, 61, -1, 58, 60, 103, 61, - -1, 61, -1, 75, 61, -1, 1, 61, -1, 13, - 76, 87, 62, 94, 62, 89, -1, 13, 76, 87, - 62, 94, 62, -1, 13, 76, 87, 62, 89, -1, - 14, 76, 87, 62, 89, -1, 15, 76, 82, 62, - 82, -1, 16, 76, 77, 78, -1, 16, 76, 77, - 83, -1, 36, 77, 84, -1, 17, 77, 78, -1, - 18, 76, 77, 82, -1, 19, 76, 87, 62, 94, - 77, -1, 20, 76, 85, 62, 63, 81, 64, -1, - 20, 76, 63, 81, 64, 62, 85, -1, 21, 76, - 89, 62, 84, 62, 89, -1, 21, 76, 89, 62, - 84, 77, -1, 21, 76, 77, 84, 62, 89, -1, - 22, 76, 77, -1, 23, 98, 62, 88, -1, 23, - 98, 62, 101, 62, 88, -1, 24, 98, 11, 101, - 62, 79, -1, 25, 76, 89, 77, -1, 29, 77, - 79, -1, 30, 76, 97, 62, 97, -1, 32, 76, - 96, 62, 97, -1, 32, 76, 96, 62, 46, 62, - 97, -1, 33, 76, 97, 62, 97, 77, -1, 31, - 76, 101, 62, 103, 62, 94, 62, 95, 62, 95, - 102, -1, 34, 76, 89, 62, 89, 62, 90, -1, - 35, 76, 89, 62, 89, 62, 89, 62, 94, -1, - 26, 77, -1, -1, 76, 51, -1, 76, 52, -1, - -1, 62, 77, -1, 101, 65, 41, 66, -1, 56, - 99, -1, 57, 99, -1, 67, 101, -1, 67, 86, - -1, 67, 10, 67, 86, -1, 67, 55, -1, 80, - -1, 67, 54, -1, 67, 9, 54, -1, 94, -1, - 94, 9, 94, -1, 94, 77, 81, -1, 89, -1, - 79, -1, 91, -1, 91, 65, 94, 66, -1, 49, - -1, 50, -1, 101, -1, 86, -1, 97, -1, 84, - -1, 98, -1, 65, 94, 66, -1, 84, -1, 101, - 65, 93, 66, -1, 98, -1, 98, 65, 93, 66, - -1, 85, -1, 89, -1, 88, -1, 91, -1, 67, - 101, -1, 94, -1, 65, 94, 62, 94, 66, -1, - 94, 6, 6, 92, -1, 94, 7, 7, 92, -1, - 94, 9, 7, 92, -1, 94, 53, 7, 92, -1, - 94, -1, 101, -1, 44, -1, 41, -1, 43, 65, - 103, 66, -1, 93, -1, 38, -1, 48, -1, 47, - 65, 103, 66, -1, 97, -1, 80, -1, 46, -1, - 45, 65, 101, 66, -1, 101, 65, 100, 66, -1, - 56, 99, 65, 100, 66, -1, 56, 6, 7, 99, - 65, 39, 66, -1, -1, 8, 101, -1, 9, 101, - -1, 39, -1, 38, -1, 40, -1, 37, -1, 58, - -1, 9, 101, -1, 8, 101, -1, 68, 101, -1, - 65, 103, 66, -1, -1, 62, 103, -1, 101, -1, - 103, 8, 103, -1, 103, 9, 103, -1, 103, 10, - 103, -1, 103, 11, 103, -1, 103, 12, 103, -1, - 103, 6, 6, 103, -1, 103, 7, 7, 103, -1, - 103, 5, 103, -1, 103, 4, 103, -1, 103, 3, - 103, -1 + 71, 0, -1, -1, -1, 71, 72, 73, -1, -1, + 58, 60, 74, 73, -1, -1, 57, 60, 75, 73, + -1, 57, 61, 104, 62, -1, 59, 61, 104, 62, + -1, 62, -1, 76, 62, -1, 1, 62, -1, 13, + 77, 88, 63, 95, 63, 90, -1, 13, 77, 88, + 63, 95, 63, -1, 13, 77, 88, 63, 90, -1, + 14, 77, 88, 63, 90, -1, 15, 77, 83, 63, + 83, -1, 16, 77, 78, 79, -1, 16, 77, 78, + 84, -1, 36, 78, 85, -1, 17, 78, 79, -1, + 18, 77, 78, 83, -1, 19, 77, 88, 63, 95, + 78, -1, 20, 77, 86, 63, 64, 82, 65, -1, + 20, 77, 64, 82, 65, 63, 86, -1, 21, 77, + 90, 63, 85, 63, 90, -1, 21, 77, 90, 63, + 85, 78, -1, 21, 77, 78, 85, 63, 90, -1, + 22, 77, 78, -1, 23, 99, 63, 89, -1, 23, + 99, 63, 102, 63, 89, -1, 24, 99, 11, 102, + 63, 80, -1, 25, 77, 90, 78, -1, 29, 78, + 80, -1, 30, 77, 98, 63, 98, -1, 32, 77, + 97, 63, 98, -1, 32, 77, 97, 63, 47, 63, + 98, -1, 33, 77, 98, 63, 98, 78, -1, 31, + 77, 102, 63, 104, 63, 95, 63, 96, 63, 96, + 103, -1, 34, 77, 90, 63, 90, 63, 91, -1, + 35, 77, 90, 63, 90, 63, 90, 63, 95, -1, + 37, 87, -1, 26, 78, -1, -1, 77, 52, -1, + 77, 53, -1, -1, 63, 78, -1, 102, 66, 42, + 67, -1, 57, 100, -1, 58, 100, -1, 68, 102, + -1, 68, 87, -1, 68, 10, 68, 87, -1, 68, + 56, -1, 81, -1, 68, 55, -1, 68, 9, 55, + -1, 95, -1, 95, 9, 95, -1, 95, 78, 82, + -1, 90, -1, 80, -1, 92, -1, 92, 66, 95, + 67, -1, 50, -1, 51, -1, 102, -1, 87, -1, + 98, -1, 85, -1, 99, -1, 66, 95, 67, -1, + 85, -1, 102, 66, 94, 67, -1, 99, -1, 99, + 66, 94, 67, -1, 86, -1, 90, -1, 89, -1, + 92, -1, 68, 102, -1, 95, -1, 66, 95, 63, + 95, 67, -1, 95, 6, 6, 93, -1, 95, 7, + 7, 93, -1, 95, 9, 7, 93, -1, 95, 54, + 7, 93, -1, 95, -1, 102, -1, 45, -1, 42, + -1, 44, 66, 104, 67, -1, 94, -1, 39, -1, + 49, -1, 48, 66, 104, 67, -1, 98, -1, 81, + -1, 47, -1, 46, 66, 102, 67, -1, 102, 66, + 101, 67, -1, 57, 100, 66, 101, 67, -1, 57, + 6, 7, 100, 66, 40, 67, -1, -1, 8, 102, + -1, 9, 102, -1, 40, -1, 39, -1, 41, -1, + 38, -1, 59, -1, 9, 102, -1, 8, 102, -1, + 69, 102, -1, 66, 104, 67, -1, -1, 63, 104, + -1, 102, -1, 104, 8, 104, -1, 104, 9, 104, + -1, 104, 10, 104, -1, 104, 11, 104, -1, 104, + 12, 104, -1, 104, 6, 6, 104, -1, 104, 7, + 7, 104, -1, 104, 5, 104, -1, 104, 4, 104, + -1, 104, 3, 104, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -583,15 +586,16 @@ static const yytype_uint16 yyrline[] = 93, 99, 100, 101, 107, 111, 115, 122, 129, 136, 140, 147, 154, 161, 168, 175, 184, 196, 200, 204, 211, 218, 222, 229, 236, 243, 250, 254, 258, 262, - 269, 291, 298, 307, 313, 316, 320, 325, 326, 329, - 335, 344, 352, 358, 363, 368, 374, 377, 383, 391, - 395, 404, 410, 411, 412, 413, 418, 424, 430, 436, - 437, 440, 441, 449, 458, 459, 468, 469, 475, 478, - 479, 480, 482, 490, 498, 507, 513, 519, 525, 533, - 539, 547, 548, 552, 560, 561, 567, 568, 576, 577, - 580, 586, 594, 602, 610, 620, 623, 627, 633, 634, - 635, 638, 639, 643, 647, 651, 655, 661, 664, 670, - 671, 675, 679, 683, 687, 691, 695, 699, 703, 707 + 269, 291, 299, 308, 315, 321, 324, 328, 333, 334, + 337, 343, 352, 360, 366, 371, 376, 382, 385, 391, + 399, 403, 412, 418, 419, 420, 421, 426, 432, 438, + 444, 445, 448, 449, 457, 466, 467, 476, 477, 483, + 486, 487, 488, 490, 498, 506, 515, 521, 527, 533, + 541, 547, 555, 556, 560, 568, 569, 575, 576, 584, + 585, 588, 594, 602, 610, 618, 628, 631, 635, 641, + 642, 643, 646, 647, 651, 655, 659, 663, 669, 672, + 678, 679, 683, 687, 691, 695, 699, 703, 707, 711, + 715 }; #endif @@ -604,13 +608,13 @@ static const char *const yytname[] = "'-'", "'*'", "'/'", "'%'", "LTYPE1", "LTYPE2", "LTYPE3", "LTYPE4", "LTYPE5", "LTYPE6", "LTYPE7", "LTYPE8", "LTYPE9", "LTYPEA", "LTYPEB", "LTYPEC", "LTYPED", "LTYPEE", "LTYPEF", "LTYPEG", "LTYPEH", "LTYPEI", - "LTYPEJ", "LTYPEK", "LTYPEL", "LTYPEM", "LTYPEN", "LTYPEBX", "LCONST", - "LSP", "LSB", "LFP", "LPC", "LTYPEX", "LR", "LREG", "LF", "LFREG", "LC", - "LCREG", "LPSR", "LFCR", "LCOND", "LS", "LAT", "LFCONST", "LSCONST", - "LNAME", "LLAB", "LVAR", "':'", "'='", "';'", "','", "'['", "']'", "'('", - "')'", "'$'", "'~'", "$accept", "prog", "$@1", "line", "$@2", "$@3", - "inst", "cond", "comma", "rel", "ximm", "fcon", "reglist", "gen", - "nireg", "ireg", "ioreg", "oreg", "imsr", "imm", "reg", "regreg", + "LTYPEJ", "LTYPEK", "LTYPEL", "LTYPEM", "LTYPEN", "LTYPEBX", "LTYPEPLD", + "LCONST", "LSP", "LSB", "LFP", "LPC", "LTYPEX", "LR", "LREG", "LF", + "LFREG", "LC", "LCREG", "LPSR", "LFCR", "LCOND", "LS", "LAT", "LFCONST", + "LSCONST", "LNAME", "LLAB", "LVAR", "':'", "'='", "';'", "','", "'['", + "']'", "'('", "')'", "'$'", "'~'", "$accept", "prog", "$@1", "line", + "$@2", "$@3", "inst", "cond", "comma", "rel", "ximm", "fcon", "reglist", + "gen", "nireg", "ireg", "ioreg", "oreg", "imsr", "imm", "reg", "regreg", "shift", "rcon", "sreg", "spreg", "creg", "frcon", "freg", "name", "offset", "pointer", "con", "oexpr", "expr", 0 }; @@ -626,27 +630,28 @@ static const yytype_uint16 yytoknum[] = 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 58, - 61, 59, 44, 91, 93, 40, 41, 36, 126 + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 58, 61, 59, 44, 91, 93, 40, 41, 36, 126 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 69, 70, 71, 70, 73, 72, 74, 72, 72, - 72, 72, 72, 72, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, - 78, 78, 79, 79, 79, 79, 79, 80, 80, 81, - 81, 81, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 83, 83, 84, 85, 85, 86, 86, 86, 87, - 87, 87, 88, 89, 90, 91, 91, 91, 91, 92, - 92, 93, 93, 93, 94, 94, 95, 95, 96, 96, - 97, 97, 98, 98, 98, 99, 99, 99, 100, 100, - 100, 101, 101, 101, 101, 101, 101, 102, 102, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103 + 0, 70, 71, 72, 71, 74, 73, 75, 73, 73, + 73, 73, 73, 73, 76, 76, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 77, 77, 77, 78, 78, + 79, 79, 79, 80, 80, 80, 80, 80, 81, 81, + 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, + 83, 83, 84, 84, 85, 86, 86, 87, 87, 87, + 88, 88, 88, 89, 90, 91, 92, 92, 92, 92, + 93, 93, 94, 94, 94, 95, 95, 96, 96, 97, + 97, 98, 98, 99, 99, 99, 100, 100, 100, 101, + 101, 101, 102, 102, 102, 102, 102, 102, 103, 103, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -656,15 +661,16 @@ static const yytype_uint8 yyr2[] = 4, 1, 2, 2, 7, 6, 5, 5, 5, 4, 4, 3, 3, 4, 6, 7, 7, 7, 6, 6, 3, 4, 6, 6, 4, 3, 5, 5, 7, 6, - 12, 7, 9, 2, 0, 2, 2, 0, 2, 4, - 2, 2, 2, 2, 4, 2, 1, 2, 3, 1, - 3, 3, 1, 1, 1, 4, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 4, 1, 4, 1, 1, - 1, 1, 2, 1, 5, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 4, 1, 1, - 1, 4, 4, 5, 7, 0, 2, 2, 1, 1, - 1, 1, 1, 2, 2, 2, 3, 0, 2, 1, - 3, 3, 3, 3, 3, 4, 4, 3, 3, 3 + 12, 7, 9, 2, 2, 0, 2, 2, 0, 2, + 4, 2, 2, 2, 2, 4, 2, 1, 2, 3, + 1, 3, 3, 1, 1, 1, 4, 1, 1, 1, + 1, 1, 1, 1, 3, 1, 4, 1, 4, 1, + 1, 1, 1, 2, 1, 5, 4, 4, 4, 4, + 1, 1, 1, 1, 4, 1, 1, 1, 4, 1, + 1, 1, 4, 4, 5, 7, 0, 2, 2, 1, + 1, 1, 1, 1, 2, 2, 2, 3, 0, 2, + 1, 3, 3, 3, 3, 3, 4, 4, 3, 3, + 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -672,279 +678,271 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 3, 1, 0, 0, 44, 44, 44, 44, 47, - 44, 44, 44, 44, 44, 0, 0, 44, 47, 47, - 44, 44, 44, 44, 44, 44, 47, 0, 0, 0, - 11, 4, 0, 13, 0, 0, 0, 47, 47, 0, - 47, 0, 0, 47, 47, 0, 0, 111, 105, 112, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 0, 5, 0, 12, - 95, 92, 0, 91, 45, 46, 0, 0, 80, 79, - 81, 94, 83, 0, 0, 100, 66, 67, 0, 0, - 63, 56, 0, 74, 78, 69, 62, 64, 70, 76, - 68, 0, 48, 105, 105, 22, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 30, 114, 113, 0, 0, - 0, 0, 119, 0, 115, 0, 0, 0, 47, 35, - 0, 0, 0, 99, 0, 98, 0, 0, 0, 0, - 21, 0, 0, 0, 0, 0, 82, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 57, 55, 53, - 52, 0, 0, 0, 0, 105, 19, 20, 71, 72, - 0, 50, 51, 0, 23, 0, 0, 47, 0, 0, - 0, 0, 105, 106, 107, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 116, 31, 0, 109, - 108, 110, 0, 0, 34, 0, 0, 0, 0, 0, - 0, 0, 8, 9, 6, 10, 0, 16, 83, 0, - 0, 0, 0, 17, 0, 73, 58, 0, 18, 0, - 0, 0, 50, 0, 0, 47, 0, 0, 0, 0, - 0, 47, 0, 0, 129, 128, 127, 0, 0, 120, - 121, 122, 123, 124, 0, 102, 0, 36, 0, 100, - 37, 47, 0, 0, 93, 15, 85, 89, 90, 86, - 87, 88, 101, 54, 0, 65, 77, 75, 49, 24, - 0, 60, 61, 0, 29, 47, 28, 0, 103, 125, - 126, 32, 33, 0, 0, 39, 0, 0, 14, 26, - 25, 27, 0, 0, 38, 0, 41, 0, 104, 0, - 0, 0, 0, 96, 0, 0, 42, 0, 0, 0, - 0, 117, 84, 97, 0, 40, 118 + 2, 3, 1, 0, 0, 45, 45, 45, 45, 48, + 45, 45, 45, 45, 45, 0, 0, 45, 48, 48, + 45, 45, 45, 45, 45, 45, 48, 0, 0, 0, + 0, 11, 4, 0, 13, 0, 0, 0, 48, 48, + 0, 48, 0, 0, 48, 48, 0, 0, 112, 106, + 113, 0, 0, 0, 0, 0, 0, 44, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 75, 79, 43, + 77, 0, 7, 0, 5, 0, 12, 96, 93, 0, + 92, 46, 47, 0, 0, 81, 80, 82, 95, 84, + 0, 0, 101, 67, 68, 0, 64, 57, 0, 70, + 63, 65, 71, 69, 0, 49, 106, 106, 22, 0, + 0, 0, 0, 0, 0, 0, 0, 84, 30, 115, + 114, 0, 0, 0, 0, 120, 0, 116, 0, 0, + 0, 48, 35, 0, 0, 0, 100, 0, 99, 0, + 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, + 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 58, 56, 54, 53, 0, 0, 106, 19, + 20, 72, 73, 0, 51, 52, 0, 23, 0, 0, + 48, 0, 0, 0, 0, 106, 107, 108, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, + 31, 0, 110, 109, 111, 0, 0, 34, 0, 0, + 0, 0, 0, 0, 0, 74, 0, 0, 8, 9, + 6, 10, 0, 16, 84, 0, 0, 0, 0, 17, + 0, 59, 0, 18, 0, 51, 0, 0, 48, 0, + 0, 0, 0, 0, 48, 0, 0, 130, 129, 128, + 0, 0, 121, 122, 123, 124, 125, 0, 103, 0, + 36, 0, 101, 37, 48, 0, 0, 78, 76, 94, + 15, 86, 90, 91, 87, 88, 89, 102, 55, 66, + 50, 24, 0, 61, 62, 0, 29, 48, 28, 0, + 104, 126, 127, 32, 33, 0, 0, 39, 0, 0, + 14, 26, 25, 27, 0, 0, 38, 0, 41, 0, + 105, 0, 0, 0, 0, 97, 0, 0, 42, 0, + 0, 0, 0, 118, 85, 98, 0, 40, 119 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 3, 31, 143, 141, 32, 34, 102, 105, - 90, 91, 176, 92, 167, 93, 94, 95, 77, 78, - 79, 306, 80, 266, 81, 114, 314, 134, 98, 99, - 121, 202, 122, 325, 123 + -1, 1, 3, 32, 149, 147, 33, 35, 105, 108, + 96, 97, 179, 98, 170, 67, 68, 99, 84, 85, + 86, 308, 87, 271, 88, 117, 316, 137, 102, 70, + 124, 205, 125, 327, 126 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -147 +#define YYPACT_NINF -114 static const yytype_int16 yypact[] = { - -147, 19, -147, 305, -37, -147, -147, -147, -147, -40, - -147, -147, -147, -147, -147, 448, 448, -147, -40, -40, - -147, -147, -147, -147, -147, -147, -40, -8, -22, -21, - -147, -147, -20, -147, 102, 102, 334, 108, -40, 416, - 108, 102, 397, 48, 108, 482, 482, -147, 95, -147, - 482, 482, -19, 18, 34, 223, -147, 5, 174, 424, - 132, 174, 223, 223, 20, -147, 482, -147, 482, -147, - -147, -147, 30, -147, -147, -147, 482, 35, -147, -147, - -147, -147, 49, 76, 84, -147, -147, -147, 205, 339, - -147, -147, 93, -147, -147, -147, -147, 110, -147, 124, - 125, 442, -147, 98, 98, -147, 128, 373, 134, 36, - 144, 147, 20, 153, -147, -147, -147, -147, 60, 482, - 482, 175, -147, 114, -147, 249, 21, 482, -40, -147, - 182, 183, 12, -147, 185, -147, 188, 189, 198, 36, - -147, 305, 562, 305, 572, 482, -147, 36, 256, 258, - 261, 269, 36, 482, 212, 460, 216, -147, -147, -147, - 125, 373, 36, 138, 586, 95, -147, -147, -147, -147, - 217, -147, -147, 247, -147, 36, 226, 7, 229, 138, - 227, 20, 98, -147, -147, 21, 482, 482, 482, 287, - 301, 482, 482, 482, 482, 482, -147, -147, 248, -147, - -147, -147, 243, 250, -147, 66, 482, 257, 106, 66, - 36, 36, -147, -147, -147, -147, 225, -147, 251, 205, - 205, 205, 205, -147, 266, -147, -147, 478, -147, 267, - 278, 279, 175, 215, 280, -40, 253, 36, 36, 36, - 36, 297, 295, 298, 601, 345, 609, 482, 482, 190, - 190, -147, -147, -147, 300, -147, 5, -147, 552, 303, - -147, -40, 306, 307, -147, 36, -147, -147, -147, -147, - -147, -147, -147, -147, 125, -147, -147, -147, -147, -147, - 486, -147, -147, 309, -147, 130, -147, 331, -147, 121, - 121, -147, -147, 36, 66, -147, 322, 36, -147, -147, - -147, -147, 308, 326, -147, 36, -147, 327, -147, 119, - 329, 36, 333, -147, 338, 36, -147, 482, 119, 330, - 292, 341, -147, -147, 482, -147, 631 + -114, 19, -114, 311, -20, -114, -114, -114, -114, -36, + -114, -114, -114, -114, -114, 413, 413, -114, -36, -36, + -114, -114, -114, -114, -114, -114, -36, 427, -22, -9, + -7, -114, -114, 11, -114, 480, 480, 341, 45, -36, + 229, 45, 480, 210, 436, 45, 435, 435, -114, 152, + -114, 435, 435, 25, 15, 79, 517, -114, 24, 134, + 393, 197, 134, 517, 517, 28, 71, -114, -114, -114, + 35, 58, -114, 435, -114, 435, -114, -114, -114, 69, + -114, -114, -114, 435, 51, -114, -114, -114, -114, 46, + 57, 75, -114, -114, -114, 119, -114, -114, 82, -114, + -114, 88, -114, 58, 368, -114, 159, 159, -114, 113, + 373, 114, 411, 120, 123, 28, 145, -114, -114, -114, + -114, 193, 435, 435, 173, -114, 54, -114, 395, 111, + 435, -36, -114, 178, 182, 21, -114, 198, -114, 201, + 207, 212, 411, -114, 206, 168, 558, 311, 310, 311, + 506, 435, -114, 411, 271, 274, 285, 286, 411, 435, + 87, 228, -114, -114, -114, 58, 373, 411, 152, -114, + -114, -114, -114, 231, -114, -114, 257, -114, 411, 235, + 5, 259, 168, 275, 28, 159, -114, -114, 111, 435, + 435, 435, 333, 344, 435, 435, 435, 435, 435, -114, + -114, 289, -114, -114, -114, 300, 308, -114, 151, 435, + 319, 176, 151, 411, 411, -114, 317, 322, -114, -114, + -114, -114, 224, -114, 312, 71, 71, 71, 71, -114, + 323, -114, 427, -114, 328, 173, 64, 329, -36, 315, + 411, 411, 411, 411, 334, 339, 332, 577, 247, 584, + 435, 435, 273, 273, -114, -114, -114, 340, -114, 24, + -114, 350, 351, -114, -36, 353, 365, -114, -114, -114, + 411, -114, -114, -114, -114, -114, -114, -114, -114, -114, + -114, -114, 439, -114, -114, 364, -114, 157, -114, 398, + -114, 518, 518, -114, -114, 411, 151, -114, 374, 411, + -114, -114, -114, -114, 382, 394, -114, 411, -114, 397, + -114, 155, 403, 411, 392, -114, 404, 411, -114, 435, + 155, 401, 299, 406, -114, -114, 435, -114, 568 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -147, -147, -147, -114, -147, -147, -147, 579, 44, 311, - -49, 348, 0, -97, -147, -44, -39, -80, -9, -119, - -13, -147, -25, 2, -146, -34, 91, -147, -14, -3, - -89, 228, -11, -147, -30 + -114, -114, -114, -78, -114, -114, -114, 529, 2, 367, + -50, 415, 48, -88, -114, -48, -40, -21, 47, -113, + -19, -114, -28, 137, -59, -35, 154, -114, -49, 18, + -83, 295, -11, -114, -25 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -60 +#define YYTABLE_NINF -61 static const yytype_int16 yytable[] = { - 82, 82, 82, 110, 53, 53, 197, 82, 129, 159, - 174, 97, 52, 54, 171, 172, 237, 230, 231, 2, - 140, 207, 38, 96, 33, 100, 83, 212, 106, 214, - 113, 111, 108, 231, 116, 117, 142, 67, 144, 68, - 124, 69, 128, 125, 130, 127, 135, 136, 131, 137, - 138, 65, 66, 39, 154, 148, 149, 168, 150, 199, - 200, 201, 56, 57, 228, 146, 157, 182, 180, 38, - 64, -59, 89, 82, 70, 177, 232, 71, 160, 72, - 73, 101, 97, 126, 107, 139, 70, 112, 115, 71, - 170, 72, 73, 242, 96, 145, 100, 147, 169, 74, - 75, 118, 151, 119, 120, 154, 119, 120, 183, 184, - 38, 84, 85, 218, 198, 216, 203, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 82, 229, 191, - 192, 193, 194, 195, 217, 291, 97, 241, 152, 223, - 70, 235, 224, 71, 117, 72, 73, 273, 96, 153, - 100, 84, 259, 74, 75, 161, 244, 245, 246, 74, - 75, 249, 250, 251, 252, 253, 312, 313, 70, 76, - 38, 71, 204, 72, 73, 162, 258, 84, 85, 71, - 196, 72, 73, 74, 75, 267, 267, 267, 267, 163, - 164, 257, 38, 173, 260, 261, 175, 262, 263, 132, - 193, 194, 195, 281, 177, 177, 178, 292, 268, 268, - 268, 268, 179, 45, 46, 181, 274, 289, 290, 84, - 85, 238, 269, 270, 271, 74, 75, 284, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 282, 283, - 185, 299, 47, 70, 205, 206, 71, 208, 72, 73, - 209, 210, 298, 199, 200, 201, 234, 45, 46, 303, - 211, 70, 219, 49, 71, 220, 72, 73, 221, 111, - 50, 310, 301, 51, 74, 75, 222, 316, 225, 279, - 304, 319, 233, 227, 307, 286, 47, 320, 234, 240, - 236, 264, 239, 247, 326, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 295, 4, 49, 248, 255, - 254, 226, 256, 265, 50, 280, 76, 51, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 272, 275, 19, 20, 21, 22, 23, 24, - 25, 26, 45, 46, 276, 277, 278, 45, 155, 156, - 188, 189, 190, 191, 192, 193, 194, 195, 323, 285, - 287, 27, 28, 29, 288, 294, 30, 76, 296, 297, - 302, 47, 70, 300, 308, 71, 47, 72, 73, 84, - 85, 45, 46, 86, 87, 74, 75, 305, 309, 311, - 48, 315, 49, 157, 158, 48, 322, 49, 317, 88, - 318, 89, 51, 324, 88, 45, 46, 51, 133, 321, - 47, 70, 166, 243, 71, 0, 72, 73, 84, 85, - 0, 0, 86, 87, 45, 46, 0, 0, 0, 48, - 0, 49, 45, 46, 47, 0, 0, 0, 88, 0, - 89, 51, 0, 0, 0, 0, 0, 0, 74, 75, - 45, 46, 0, 47, 0, 49, 45, 46, 0, 0, - 109, 47, 88, 0, 0, 51, 0, 0, 45, 46, - 0, 0, 103, 104, 49, 74, 75, 0, 0, 47, - 0, 50, 49, 0, 51, 47, 45, 46, 0, 50, - 45, 46, 51, 0, 45, 46, 0, 47, 165, 104, - 49, 0, 0, 0, 48, 0, 49, 88, 0, 0, - 51, 0, 0, 50, 226, 47, 51, 0, 49, 47, - 0, 0, 0, 47, 0, 50, 0, 0, 51, 0, - 0, 0, 0, 0, 48, 0, 49, 0, 0, 0, - 49, 0, 0, 88, 49, 0, 51, 50, 0, 0, - 51, 88, 0, 0, 51, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 35, 36, 37, 0, 40, - 41, 42, 43, 44, 0, 0, 55, 0, 0, 58, - 59, 60, 61, 62, 63, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 293, 189, 190, 191, 192, 193, - 194, 195, 0, 213, 199, 200, 201, 71, 0, 72, - 73, 0, 0, 215, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195 + 89, 89, 89, 113, 54, 54, 69, 89, 132, 101, + 133, 40, 138, 139, 240, 200, 71, 143, 100, 2, + 57, 58, 177, 174, 175, 116, 103, 39, 65, 109, + 210, 144, 114, 53, 55, 119, 120, 131, 72, 73, + 104, 127, 34, 110, 140, 141, 115, 118, 148, 134, + 150, 74, 154, 155, 75, 156, 171, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 183, 39, 218, + -60, 220, 152, 76, 164, 89, 162, 180, 233, 46, + 47, 129, 101, 90, 165, 235, 216, 217, 128, 111, + 130, 100, 95, 173, 142, 46, 47, 81, 82, 103, + 157, 145, 245, 202, 203, 204, 237, 144, 39, 48, + 77, 186, 187, 78, 153, 79, 80, 201, 224, 206, + 158, 199, 172, 217, 146, 48, 222, 46, 160, 161, + 50, 89, 234, 207, 223, 151, 244, 51, 101, 229, + 52, 159, 231, 238, 293, 166, 50, 100, 230, 120, + 202, 203, 204, 51, 167, 103, 52, 48, 121, 260, + 122, 123, 263, 264, 247, 248, 249, 122, 123, 252, + 253, 254, 255, 256, 162, 163, 49, 178, 50, 176, + 91, 92, 241, 181, 261, 66, 81, 82, 52, 182, + 272, 272, 272, 272, 265, 266, 77, 91, 92, 78, + 185, 79, 80, 314, 315, 283, 180, 180, 184, 294, + 78, 278, 79, 80, 273, 273, 273, 273, 46, 47, + 39, 71, 91, 262, 286, 291, 292, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 46, 47, 188, + 281, 208, 301, 91, 92, 209, 288, 306, 48, 81, + 82, 300, 191, 192, 193, 194, 195, 196, 197, 198, + 305, 211, 81, 82, 212, 135, 297, 48, 303, 50, + 213, 114, 312, 215, 112, 214, 66, 225, 318, 52, + 309, 226, 321, 196, 197, 198, 106, 107, 50, 284, + 285, 269, 227, 228, 322, 51, 232, 236, 52, 237, + 239, 328, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 4, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 242, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 243, 250, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 46, + 47, 251, 257, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 274, 275, 276, 325, 258, 28, 29, + 30, 259, 219, 31, 231, 270, 46, 47, 282, 48, + 77, 46, 47, 78, 267, 79, 80, 91, 92, 268, + 277, 93, 94, 81, 82, 279, 280, 287, 49, 290, + 50, 46, 47, 46, 47, 289, 48, 66, 83, 95, + 52, 48, 77, 295, 296, 78, 298, 79, 80, 91, + 92, 46, 47, 93, 94, 168, 107, 50, 299, 302, + 49, 48, 50, 48, 66, 46, 47, 52, 304, 66, + 307, 95, 52, 46, 47, 81, 82, 46, 47, 310, + 77, 48, 50, 78, 50, 79, 80, 311, 319, 51, + 313, 51, 52, 83, 52, 48, 317, 320, 324, 326, + 49, 169, 50, 48, 323, 77, 136, 48, 78, 51, + 79, 80, 52, 246, 49, 0, 50, 0, 81, 82, + 0, 0, 0, 66, 50, 0, 52, 0, 50, 39, + 0, 51, 0, 0, 52, 66, 0, 0, 52, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 77, + 0, 0, 78, 0, 79, 80, 194, 195, 196, 197, + 198, 0, 81, 82, 0, 36, 37, 38, 0, 41, + 42, 43, 44, 45, 0, 0, 56, 0, 83, 59, + 60, 61, 62, 63, 64, 0, 77, 0, 0, 78, + 0, 79, 80, 0, 0, 0, 0, 0, 221, 81, + 82, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 192, 193, 194, 195, 196, 197, 198, 202, 203, 204, + 78, 0, 79, 80 }; static const yytype_int16 yycheck[] = { - 34, 35, 36, 42, 15, 16, 125, 41, 57, 89, - 107, 36, 15, 16, 103, 104, 9, 163, 164, 0, - 64, 9, 62, 36, 61, 36, 35, 141, 39, 143, - 43, 42, 41, 179, 45, 46, 66, 59, 68, 60, - 51, 61, 55, 62, 58, 11, 60, 61, 59, 62, - 63, 59, 60, 9, 88, 6, 7, 101, 9, 38, - 39, 40, 18, 19, 161, 76, 54, 7, 112, 62, - 26, 64, 67, 107, 38, 109, 165, 41, 89, 43, - 44, 37, 107, 65, 40, 65, 38, 43, 44, 41, - 101, 43, 44, 182, 107, 65, 107, 62, 101, 51, - 52, 6, 53, 8, 9, 139, 8, 9, 119, 120, - 62, 45, 46, 147, 125, 145, 127, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 161, 162, 8, - 9, 10, 11, 12, 147, 254, 161, 181, 62, 152, - 38, 175, 153, 41, 155, 43, 44, 227, 161, 65, - 161, 45, 46, 51, 52, 62, 186, 187, 188, 51, - 52, 191, 192, 193, 194, 195, 47, 48, 38, 67, - 62, 41, 128, 43, 44, 65, 206, 45, 46, 41, - 66, 43, 44, 51, 52, 219, 220, 221, 222, 65, - 65, 205, 62, 65, 208, 209, 62, 210, 211, 67, - 10, 11, 12, 237, 238, 239, 62, 256, 219, 220, - 221, 222, 65, 8, 9, 62, 227, 247, 248, 45, - 46, 177, 220, 221, 222, 51, 52, 240, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 238, 239, - 65, 280, 37, 38, 62, 62, 41, 62, 43, 44, - 62, 62, 265, 38, 39, 40, 41, 8, 9, 293, - 62, 38, 6, 58, 41, 7, 43, 44, 7, 280, - 65, 305, 285, 68, 51, 52, 7, 311, 66, 235, - 294, 315, 65, 67, 297, 241, 37, 317, 41, 62, - 64, 66, 63, 6, 324, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 261, 1, 58, 7, 66, - 62, 54, 62, 62, 65, 62, 67, 68, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 66, 66, 29, 30, 31, 32, 33, 34, - 35, 36, 8, 9, 66, 66, 66, 8, 9, 10, - 5, 6, 7, 8, 9, 10, 11, 12, 66, 62, - 65, 56, 57, 58, 66, 62, 61, 67, 62, 62, - 39, 37, 38, 64, 66, 41, 37, 43, 44, 45, - 46, 8, 9, 49, 50, 51, 52, 65, 62, 62, - 56, 62, 58, 54, 55, 56, 66, 58, 65, 65, - 62, 67, 68, 62, 65, 8, 9, 68, 60, 318, - 37, 38, 101, 185, 41, -1, 43, 44, 45, 46, - -1, -1, 49, 50, 8, 9, -1, -1, -1, 56, - -1, 58, 8, 9, 37, -1, -1, -1, 65, -1, - 67, 68, -1, -1, -1, -1, -1, -1, 51, 52, - 8, 9, -1, 37, -1, 58, 8, 9, -1, -1, - 63, 37, 65, -1, -1, 68, -1, -1, 8, 9, - -1, -1, 56, 57, 58, 51, 52, -1, -1, 37, - -1, 65, 58, -1, 68, 37, 8, 9, -1, 65, - 8, 9, 68, -1, 8, 9, -1, 37, 56, 57, - 58, -1, -1, -1, 56, -1, 58, 65, -1, -1, - 68, -1, -1, 65, 54, 37, 68, -1, 58, 37, - -1, -1, -1, 37, -1, 65, -1, -1, 68, -1, - -1, -1, -1, -1, 56, -1, 58, -1, -1, -1, - 58, -1, -1, 65, 58, -1, 68, 65, -1, -1, - 68, 65, -1, -1, 68, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, -1, 20, - 21, 22, 23, 24, 25, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 62, 6, 7, 8, 9, 10, - 11, 12, -1, 61, 38, 39, 40, 41, -1, 43, - 44, -1, -1, 61, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12 + 35, 36, 37, 43, 15, 16, 27, 42, 58, 37, + 59, 9, 61, 62, 9, 128, 27, 65, 37, 0, + 18, 19, 110, 106, 107, 44, 37, 63, 26, 40, + 9, 66, 43, 15, 16, 46, 47, 56, 60, 61, + 38, 52, 62, 41, 63, 64, 44, 45, 73, 60, + 75, 60, 6, 7, 61, 9, 104, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 115, 63, 147, + 65, 149, 83, 62, 95, 110, 55, 112, 166, 8, + 9, 66, 110, 36, 95, 168, 145, 146, 63, 42, + 11, 110, 68, 104, 66, 8, 9, 52, 53, 110, + 54, 66, 185, 39, 40, 41, 42, 142, 63, 38, + 39, 122, 123, 42, 63, 44, 45, 128, 153, 130, + 63, 67, 104, 182, 66, 38, 151, 8, 9, 10, + 59, 166, 167, 131, 153, 66, 184, 66, 166, 158, + 69, 66, 55, 178, 257, 63, 59, 166, 159, 160, + 39, 40, 41, 66, 66, 166, 69, 38, 6, 208, + 8, 9, 211, 212, 189, 190, 191, 8, 9, 194, + 195, 196, 197, 198, 55, 56, 57, 63, 59, 66, + 46, 47, 180, 63, 209, 66, 52, 53, 69, 66, + 225, 226, 227, 228, 213, 214, 39, 46, 47, 42, + 7, 44, 45, 48, 49, 240, 241, 242, 63, 259, + 42, 232, 44, 45, 225, 226, 227, 228, 8, 9, + 63, 232, 46, 47, 243, 250, 251, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 8, 9, 66, + 238, 63, 282, 46, 47, 63, 244, 296, 38, 52, + 53, 270, 5, 6, 7, 8, 9, 10, 11, 12, + 295, 63, 52, 53, 63, 68, 264, 38, 287, 59, + 63, 282, 307, 67, 64, 63, 66, 6, 313, 69, + 299, 7, 317, 10, 11, 12, 57, 58, 59, 241, + 242, 67, 7, 7, 319, 66, 68, 66, 69, 42, + 65, 326, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 64, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 63, 6, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 8, + 9, 7, 63, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 226, 227, 228, 67, 67, 57, 58, + 59, 63, 62, 62, 55, 63, 8, 9, 63, 38, + 39, 8, 9, 42, 67, 44, 45, 46, 47, 67, + 67, 50, 51, 52, 53, 67, 67, 63, 57, 67, + 59, 8, 9, 8, 9, 66, 38, 66, 68, 68, + 69, 38, 39, 63, 63, 42, 63, 44, 45, 46, + 47, 8, 9, 50, 51, 57, 58, 59, 63, 65, + 57, 38, 59, 38, 66, 8, 9, 69, 40, 66, + 66, 68, 69, 8, 9, 52, 53, 8, 9, 67, + 39, 38, 59, 42, 59, 44, 45, 63, 66, 66, + 63, 66, 69, 68, 69, 38, 63, 63, 67, 63, + 57, 104, 59, 38, 320, 39, 61, 38, 42, 66, + 44, 45, 69, 188, 57, -1, 59, -1, 52, 53, + -1, -1, -1, 66, 59, -1, 69, -1, 59, 63, + -1, 66, -1, -1, 69, 66, -1, -1, 69, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 39, + -1, -1, 42, -1, 44, 45, 8, 9, 10, 11, + 12, -1, 52, 53, -1, 6, 7, 8, -1, 10, + 11, 12, 13, 14, -1, -1, 17, -1, 68, 20, + 21, 22, 23, 24, 25, -1, 39, -1, -1, 42, + -1, 44, 45, -1, -1, -1, -1, -1, 62, 52, + 53, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 6, 7, 8, 9, 10, 11, 12, 39, 40, 41, + 42, -1, 44, 45 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 70, 0, 71, 1, 13, 14, 15, 16, 17, + 0, 71, 0, 72, 1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, - 30, 31, 32, 33, 34, 35, 36, 56, 57, 58, - 61, 72, 75, 61, 76, 76, 76, 76, 62, 77, - 76, 76, 76, 76, 76, 8, 9, 37, 56, 58, - 65, 68, 98, 101, 98, 76, 77, 77, 76, 76, - 76, 76, 76, 76, 77, 59, 60, 59, 60, 61, - 38, 41, 43, 44, 51, 52, 67, 87, 88, 89, - 91, 93, 94, 87, 45, 46, 49, 50, 65, 67, - 79, 80, 82, 84, 85, 86, 89, 91, 97, 98, - 101, 77, 77, 56, 57, 78, 101, 77, 87, 63, - 85, 101, 77, 89, 94, 77, 101, 101, 6, 8, - 9, 99, 101, 103, 101, 62, 65, 11, 89, 79, - 97, 101, 67, 80, 96, 97, 97, 89, 89, 65, - 84, 74, 103, 73, 103, 65, 101, 62, 6, 7, - 9, 53, 62, 65, 94, 9, 10, 54, 55, 86, - 101, 62, 65, 65, 65, 56, 78, 83, 84, 98, - 101, 99, 99, 65, 82, 62, 81, 94, 62, 65, - 84, 62, 7, 101, 101, 65, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 66, 88, 101, 38, - 39, 40, 100, 101, 77, 62, 62, 9, 62, 62, - 62, 62, 72, 61, 72, 61, 103, 89, 94, 6, - 7, 7, 7, 89, 101, 66, 54, 67, 82, 94, - 93, 93, 99, 65, 41, 94, 64, 9, 77, 63, - 62, 84, 99, 100, 103, 103, 103, 6, 7, 103, - 103, 103, 103, 103, 62, 66, 62, 97, 103, 46, - 97, 97, 89, 89, 66, 62, 92, 94, 101, 92, - 92, 92, 66, 86, 101, 66, 66, 66, 66, 77, - 62, 94, 81, 81, 89, 62, 77, 65, 66, 103, - 103, 88, 79, 62, 62, 77, 62, 62, 89, 85, - 64, 89, 39, 94, 97, 65, 90, 89, 66, 62, - 94, 62, 47, 48, 95, 62, 94, 65, 62, 94, - 103, 95, 66, 66, 62, 102, 103 + 30, 31, 32, 33, 34, 35, 36, 37, 57, 58, + 59, 62, 73, 76, 62, 77, 77, 77, 77, 63, + 78, 77, 77, 77, 77, 77, 8, 9, 38, 57, + 59, 66, 69, 99, 102, 99, 77, 78, 78, 77, + 77, 77, 77, 77, 77, 78, 66, 85, 86, 87, + 99, 102, 60, 61, 60, 61, 62, 39, 42, 44, + 45, 52, 53, 68, 88, 89, 90, 92, 94, 95, + 88, 46, 47, 50, 51, 68, 80, 81, 83, 87, + 90, 92, 98, 102, 78, 78, 57, 58, 79, 102, + 78, 88, 64, 86, 102, 78, 90, 95, 78, 102, + 102, 6, 8, 9, 100, 102, 104, 102, 63, 66, + 11, 90, 80, 98, 102, 68, 81, 97, 98, 98, + 90, 90, 66, 85, 95, 66, 66, 75, 104, 74, + 104, 66, 102, 63, 6, 7, 9, 54, 63, 66, + 9, 10, 55, 56, 87, 102, 63, 66, 57, 79, + 84, 85, 99, 102, 100, 100, 66, 83, 63, 82, + 95, 63, 66, 85, 63, 7, 102, 102, 66, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 67, + 89, 102, 39, 40, 41, 101, 102, 78, 63, 63, + 9, 63, 63, 63, 63, 67, 94, 94, 73, 62, + 73, 62, 104, 90, 95, 6, 7, 7, 7, 90, + 102, 55, 68, 83, 95, 100, 66, 42, 95, 65, + 9, 78, 64, 63, 85, 100, 101, 104, 104, 104, + 6, 7, 104, 104, 104, 104, 104, 63, 67, 63, + 98, 104, 47, 98, 98, 90, 90, 67, 67, 67, + 63, 93, 95, 102, 93, 93, 93, 67, 87, 67, + 67, 78, 63, 95, 82, 82, 90, 63, 78, 66, + 67, 104, 104, 89, 80, 63, 63, 78, 63, 63, + 90, 86, 65, 90, 40, 95, 98, 66, 91, 90, + 67, 63, 95, 63, 48, 49, 96, 63, 95, 66, + 63, 95, 104, 96, 67, 67, 63, 103, 104 }; #define yyerrok (yyerrstatus = 0) @@ -1974,7 +1972,7 @@ yyreduce: /* Line 1455 of yacc.c */ #line 219 "a.y" { - outcode((yyvsp[(1) - (4)].lval), Always, &(yyvsp[(2) - (4)].gen), NREG, &(yyvsp[(4) - (4)].gen)); + outcode((yyvsp[(1) - (4)].lval), Always, &(yyvsp[(2) - (4)].gen), 0, &(yyvsp[(4) - (4)].gen)); } break; @@ -2086,9 +2084,9 @@ yyreduce: case 42: /* Line 1455 of yacc.c */ -#line 299 "a.y" +#line 300 "a.y" { - (yyvsp[(7) - (9)].gen).type = D_REGREG; + (yyvsp[(7) - (9)].gen).type = D_REGREG2; (yyvsp[(7) - (9)].gen).offset = (yyvsp[(9) - (9)].lval); outcode((yyvsp[(1) - (9)].lval), (yyvsp[(2) - (9)].lval), &(yyvsp[(3) - (9)].gen), (yyvsp[(5) - (9)].gen).reg, &(yyvsp[(7) - (9)].gen)); } @@ -2097,43 +2095,52 @@ yyreduce: case 43: /* Line 1455 of yacc.c */ -#line 308 "a.y" +#line 309 "a.y" { - outcode((yyvsp[(1) - (2)].lval), Always, &nullgen, NREG, &nullgen); + outcode((yyvsp[(1) - (2)].lval), Always, &(yyvsp[(2) - (2)].gen), NREG, &nullgen); } break; case 44: /* Line 1455 of yacc.c */ -#line 313 "a.y" +#line 316 "a.y" { - (yyval.lval) = Always; + outcode((yyvsp[(1) - (2)].lval), Always, &nullgen, NREG, &nullgen); } break; case 45: /* Line 1455 of yacc.c */ -#line 317 "a.y" +#line 321 "a.y" { - (yyval.lval) = ((yyvsp[(1) - (2)].lval) & ~C_SCOND) | (yyvsp[(2) - (2)].lval); + (yyval.lval) = Always; } break; case 46: /* Line 1455 of yacc.c */ -#line 321 "a.y" +#line 325 "a.y" + { + (yyval.lval) = ((yyvsp[(1) - (2)].lval) & ~C_SCOND) | (yyvsp[(2) - (2)].lval); + } + break; + + case 47: + +/* Line 1455 of yacc.c */ +#line 329 "a.y" { (yyval.lval) = (yyvsp[(1) - (2)].lval) | (yyvsp[(2) - (2)].lval); } break; - case 49: + case 50: /* Line 1455 of yacc.c */ -#line 330 "a.y" +#line 338 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_BRANCH; @@ -2141,10 +2148,10 @@ yyreduce: } break; - case 50: + case 51: /* Line 1455 of yacc.c */ -#line 336 "a.y" +#line 344 "a.y" { (yyval.gen) = nullgen; if(pass == 2) @@ -2155,10 +2162,10 @@ yyreduce: } break; - case 51: + case 52: /* Line 1455 of yacc.c */ -#line 345 "a.y" +#line 353 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_BRANCH; @@ -2167,10 +2174,10 @@ yyreduce: } break; - case 52: + case 53: /* Line 1455 of yacc.c */ -#line 353 "a.y" +#line 361 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_CONST; @@ -2178,30 +2185,30 @@ yyreduce: } break; - case 53: + case 54: /* Line 1455 of yacc.c */ -#line 359 "a.y" +#line 367 "a.y" { (yyval.gen) = (yyvsp[(2) - (2)].gen); (yyval.gen).type = D_CONST; } break; - case 54: + case 55: /* Line 1455 of yacc.c */ -#line 364 "a.y" +#line 372 "a.y" { (yyval.gen) = (yyvsp[(4) - (4)].gen); (yyval.gen).type = D_OCONST; } break; - case 55: + case 56: /* Line 1455 of yacc.c */ -#line 369 "a.y" +#line 377 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_SCONST; @@ -2209,10 +2216,10 @@ yyreduce: } break; - case 57: + case 58: /* Line 1455 of yacc.c */ -#line 378 "a.y" +#line 386 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_FCONST; @@ -2220,10 +2227,10 @@ yyreduce: } break; - case 58: + case 59: /* Line 1455 of yacc.c */ -#line 384 "a.y" +#line 392 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_FCONST; @@ -2231,19 +2238,19 @@ yyreduce: } break; - case 59: + case 60: /* Line 1455 of yacc.c */ -#line 392 "a.y" +#line 400 "a.y" { (yyval.lval) = 1 << (yyvsp[(1) - (1)].lval); } break; - case 60: + case 61: /* Line 1455 of yacc.c */ -#line 396 "a.y" +#line 404 "a.y" { int i; (yyval.lval)=0; @@ -2254,29 +2261,29 @@ yyreduce: } break; - case 61: + case 62: /* Line 1455 of yacc.c */ -#line 405 "a.y" +#line 413 "a.y" { (yyval.lval) = (1<<(yyvsp[(1) - (3)].lval)) | (yyvsp[(3) - (3)].lval); } break; - case 65: + case 66: /* Line 1455 of yacc.c */ -#line 414 "a.y" +#line 422 "a.y" { (yyval.gen) = (yyvsp[(1) - (4)].gen); (yyval.gen).reg = (yyvsp[(3) - (4)].lval); } break; - case 66: + case 67: /* Line 1455 of yacc.c */ -#line 419 "a.y" +#line 427 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_PSR; @@ -2284,10 +2291,10 @@ yyreduce: } break; - case 67: + case 68: /* Line 1455 of yacc.c */ -#line 425 "a.y" +#line 433 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_FPCR; @@ -2295,10 +2302,10 @@ yyreduce: } break; - case 68: + case 69: /* Line 1455 of yacc.c */ -#line 431 "a.y" +#line 439 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_OREG; @@ -2306,10 +2313,10 @@ yyreduce: } break; - case 72: + case 73: /* Line 1455 of yacc.c */ -#line 442 "a.y" +#line 450 "a.y" { (yyval.gen) = (yyvsp[(1) - (1)].gen); if((yyvsp[(1) - (1)].gen).name != D_EXTERN && (yyvsp[(1) - (1)].gen).name != D_STATIC) { @@ -2317,10 +2324,10 @@ yyreduce: } break; - case 73: + case 74: /* Line 1455 of yacc.c */ -#line 450 "a.y" +#line 458 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_OREG; @@ -2329,10 +2336,10 @@ yyreduce: } break; - case 75: + case 76: /* Line 1455 of yacc.c */ -#line 460 "a.y" +#line 468 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_OREG; @@ -2341,10 +2348,10 @@ yyreduce: } break; - case 77: + case 78: /* Line 1455 of yacc.c */ -#line 470 "a.y" +#line 478 "a.y" { (yyval.gen) = (yyvsp[(1) - (4)].gen); (yyval.gen).type = D_OREG; @@ -2352,10 +2359,10 @@ yyreduce: } break; - case 82: + case 83: /* Line 1455 of yacc.c */ -#line 483 "a.y" +#line 491 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_CONST; @@ -2363,10 +2370,10 @@ yyreduce: } break; - case 83: + case 84: /* Line 1455 of yacc.c */ -#line 491 "a.y" +#line 499 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_REG; @@ -2374,10 +2381,10 @@ yyreduce: } break; - case 84: + case 85: /* Line 1455 of yacc.c */ -#line 499 "a.y" +#line 507 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_REGREG; @@ -2386,10 +2393,10 @@ yyreduce: } break; - case 85: + case 86: /* Line 1455 of yacc.c */ -#line 508 "a.y" +#line 516 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_SHIFT; @@ -2397,10 +2404,10 @@ yyreduce: } break; - case 86: + case 87: /* Line 1455 of yacc.c */ -#line 514 "a.y" +#line 522 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_SHIFT; @@ -2408,10 +2415,10 @@ yyreduce: } break; - case 87: + case 88: /* Line 1455 of yacc.c */ -#line 520 "a.y" +#line 528 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_SHIFT; @@ -2419,10 +2426,10 @@ yyreduce: } break; - case 88: + case 89: /* Line 1455 of yacc.c */ -#line 526 "a.y" +#line 534 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_SHIFT; @@ -2430,10 +2437,10 @@ yyreduce: } break; - case 89: + case 90: /* Line 1455 of yacc.c */ -#line 534 "a.y" +#line 542 "a.y" { if((yyval.lval) < 0 || (yyval.lval) >= 16) print("register value out of range\n"); @@ -2441,10 +2448,10 @@ yyreduce: } break; - case 90: + case 91: /* Line 1455 of yacc.c */ -#line 540 "a.y" +#line 548 "a.y" { if((yyval.lval) < 0 || (yyval.lval) >= 32) print("shift value out of range\n"); @@ -2452,19 +2459,19 @@ yyreduce: } break; - case 92: + case 93: /* Line 1455 of yacc.c */ -#line 549 "a.y" +#line 557 "a.y" { (yyval.lval) = REGPC; } break; - case 93: + case 94: /* Line 1455 of yacc.c */ -#line 553 "a.y" +#line 561 "a.y" { if((yyvsp[(3) - (4)].lval) < 0 || (yyvsp[(3) - (4)].lval) >= NREG) print("register value out of range\n"); @@ -2472,19 +2479,19 @@ yyreduce: } break; - case 95: + case 96: /* Line 1455 of yacc.c */ -#line 562 "a.y" +#line 570 "a.y" { (yyval.lval) = REGSP; } break; - case 97: + case 98: /* Line 1455 of yacc.c */ -#line 569 "a.y" +#line 577 "a.y" { if((yyvsp[(3) - (4)].lval) < 0 || (yyvsp[(3) - (4)].lval) >= NREG) print("register value out of range\n"); @@ -2492,10 +2499,10 @@ yyreduce: } break; - case 100: + case 101: /* Line 1455 of yacc.c */ -#line 581 "a.y" +#line 589 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_FREG; @@ -2503,10 +2510,10 @@ yyreduce: } break; - case 101: + case 102: /* Line 1455 of yacc.c */ -#line 587 "a.y" +#line 595 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_FREG; @@ -2514,10 +2521,10 @@ yyreduce: } break; - case 102: + case 103: /* Line 1455 of yacc.c */ -#line 595 "a.y" +#line 603 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_OREG; @@ -2527,10 +2534,10 @@ yyreduce: } break; - case 103: + case 104: /* Line 1455 of yacc.c */ -#line 603 "a.y" +#line 611 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_OREG; @@ -2540,10 +2547,10 @@ yyreduce: } break; - case 104: + case 105: /* Line 1455 of yacc.c */ -#line 611 "a.y" +#line 619 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_OREG; @@ -2553,181 +2560,181 @@ yyreduce: } break; - case 105: + case 106: /* Line 1455 of yacc.c */ -#line 620 "a.y" +#line 628 "a.y" { (yyval.lval) = 0; } break; - case 106: + case 107: /* Line 1455 of yacc.c */ -#line 624 "a.y" +#line 632 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 107: + case 108: /* Line 1455 of yacc.c */ -#line 628 "a.y" +#line 636 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; - case 112: + case 113: /* Line 1455 of yacc.c */ -#line 640 "a.y" +#line 648 "a.y" { (yyval.lval) = (yyvsp[(1) - (1)].sym)->value; } break; - case 113: + case 114: /* Line 1455 of yacc.c */ -#line 644 "a.y" +#line 652 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; - case 114: + case 115: /* Line 1455 of yacc.c */ -#line 648 "a.y" +#line 656 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 115: + case 116: /* Line 1455 of yacc.c */ -#line 652 "a.y" +#line 660 "a.y" { (yyval.lval) = ~(yyvsp[(2) - (2)].lval); } break; - case 116: + case 117: /* Line 1455 of yacc.c */ -#line 656 "a.y" +#line 664 "a.y" { (yyval.lval) = (yyvsp[(2) - (3)].lval); } break; - case 117: + case 118: /* Line 1455 of yacc.c */ -#line 661 "a.y" +#line 669 "a.y" { (yyval.lval) = 0; } break; - case 118: + case 119: /* Line 1455 of yacc.c */ -#line 665 "a.y" +#line 673 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 120: + case 121: /* Line 1455 of yacc.c */ -#line 672 "a.y" +#line 680 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval); } break; - case 121: + case 122: /* Line 1455 of yacc.c */ -#line 676 "a.y" +#line 684 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval); } break; - case 122: + case 123: /* Line 1455 of yacc.c */ -#line 680 "a.y" +#line 688 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval); } break; - case 123: + case 124: /* Line 1455 of yacc.c */ -#line 684 "a.y" +#line 692 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval); } break; - case 124: + case 125: /* Line 1455 of yacc.c */ -#line 688 "a.y" +#line 696 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval); } break; - case 125: + case 126: /* Line 1455 of yacc.c */ -#line 692 "a.y" +#line 700 "a.y" { (yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval); } break; - case 126: + case 127: /* Line 1455 of yacc.c */ -#line 696 "a.y" +#line 704 "a.y" { (yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval); } break; - case 127: + case 128: /* Line 1455 of yacc.c */ -#line 700 "a.y" +#line 708 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval); } break; - case 128: + case 129: /* Line 1455 of yacc.c */ -#line 704 "a.y" +#line 712 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval); } break; - case 129: + case 130: /* Line 1455 of yacc.c */ -#line 708 "a.y" +#line 716 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval); } @@ -2736,7 +2743,7 @@ yyreduce: /* Line 1455 of yacc.c */ -#line 2740 "y.tab.c" +#line 2747 "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 28039992c..1dd0cb08a 100644 --- a/src/cmd/5a/y.tab.h +++ b/src/cmd/5a/y.tab.h @@ -63,28 +63,29 @@ LTYPEM = 279, LTYPEN = 280, LTYPEBX = 281, - LCONST = 282, - LSP = 283, - LSB = 284, - LFP = 285, - LPC = 286, - LTYPEX = 287, - LR = 288, - LREG = 289, - LF = 290, - LFREG = 291, - LC = 292, - LCREG = 293, - LPSR = 294, - LFCR = 295, - LCOND = 296, - LS = 297, - LAT = 298, - LFCONST = 299, - LSCONST = 300, - LNAME = 301, - LLAB = 302, - LVAR = 303 + LTYPEPLD = 282, + LCONST = 283, + LSP = 284, + LSB = 285, + LFP = 286, + LPC = 287, + LTYPEX = 288, + LR = 289, + LREG = 290, + LF = 291, + LFREG = 292, + LC = 293, + LCREG = 294, + LPSR = 295, + LFCR = 296, + LCOND = 297, + LS = 298, + LAT = 299, + LFCONST = 300, + LSCONST = 301, + LNAME = 302, + LLAB = 303, + LVAR = 304 }; #endif /* Tokens. */ @@ -112,28 +113,29 @@ #define LTYPEM 279 #define LTYPEN 280 #define LTYPEBX 281 -#define LCONST 282 -#define LSP 283 -#define LSB 284 -#define LFP 285 -#define LPC 286 -#define LTYPEX 287 -#define LR 288 -#define LREG 289 -#define LF 290 -#define LFREG 291 -#define LC 292 -#define LCREG 293 -#define LPSR 294 -#define LFCR 295 -#define LCOND 296 -#define LS 297 -#define LAT 298 -#define LFCONST 299 -#define LSCONST 300 -#define LNAME 301 -#define LLAB 302 -#define LVAR 303 +#define LTYPEPLD 282 +#define LCONST 283 +#define LSP 284 +#define LSB 285 +#define LFP 286 +#define LPC 287 +#define LTYPEX 288 +#define LR 289 +#define LREG 290 +#define LF 291 +#define LFREG 292 +#define LC 293 +#define LCREG 294 +#define LPSR 295 +#define LFCR 296 +#define LCOND 297 +#define LS 298 +#define LAT 299 +#define LFCONST 300 +#define LSCONST 301 +#define LNAME 302 +#define LLAB 303 +#define LVAR 304 @@ -154,7 +156,7 @@ typedef union YYSTYPE /* Line 1676 of yacc.c */ -#line 158 "y.tab.h" +#line 160 "y.tab.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ |