]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/9a: fix GLOBL instruction
authorRuss Cox <rsc@golang.org>
Thu, 29 Jan 2015 18:50:19 +0000 (13:50 -0500)
committerRuss Cox <rsc@golang.org>
Tue, 3 Feb 2015 18:21:54 +0000 (18:21 +0000)
Because it was lumped in with the TEXT instruction,
the high 32 bits of the 64-bit constant holding the size
were always set to 0x80000000 (ArgsSizeUnknown).
This only worked because cmd/9l was reading the 64-bit
value into an int32.

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

Change-Id: I69a2214c7be939530d499e29cfdc3b26720ac05a
Reviewed-on: https://go-review.googlesource.com/3570
Reviewed-by: Austin Clements <austin@google.com>
src/cmd/5a/a.y
src/cmd/5a/lex.c
src/cmd/5a/y.tab.c
src/cmd/5a/y.tab.h
src/cmd/9a/a.y
src/cmd/9a/lex.c
src/cmd/9a/y.tab.c
src/cmd/9a/y.tab.h

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