Commit a293c7e6 authored by Russ Cox's avatar Russ Cox

cmd/9a: fix GLOBL instruction

Because it was lumped in with the TEXT instruction,
the high 32 bits of the 64-bit constant holding the size
were always set to 0x80000000 (ArgsSizeUnknown).
This only worked because cmd/9l was reading the 64-bit
value into an int32.

While we're here, fix 5a.
It wasn't as much of a problem there because
the two values were being stored in two different fields.
But it was still wrong.

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