rsc.io/go@v0.0.0-20150416155037-e040fd465409/src/cmd/old9a/y.go (about)

     1  //line a.y:31
     2  package main
     3  
     4  import __yyfmt__ "fmt"
     5  
     6  //line a.y:31
     7  import (
     8  	"cmd/internal/asm"
     9  	"cmd/internal/obj"
    10  	. "cmd/internal/obj/ppc64"
    11  )
    12  
    13  //line a.y:40
    14  type yySymType struct {
    15  	yys  int
    16  	sym  *asm.Sym
    17  	lval int64
    18  	dval float64
    19  	sval string
    20  	addr obj.Addr
    21  }
    22  
    23  const LMOVW = 57346
    24  const LMOVB = 57347
    25  const LABS = 57348
    26  const LLOGW = 57349
    27  const LSHW = 57350
    28  const LADDW = 57351
    29  const LCMP = 57352
    30  const LCROP = 57353
    31  const LBRA = 57354
    32  const LFMOV = 57355
    33  const LFCONV = 57356
    34  const LFCMP = 57357
    35  const LFADD = 57358
    36  const LFMA = 57359
    37  const LTRAP = 57360
    38  const LXORW = 57361
    39  const LNOP = 57362
    40  const LEND = 57363
    41  const LRETT = 57364
    42  const LWORD = 57365
    43  const LTEXT = 57366
    44  const LDATA = 57367
    45  const LGLOBL = 57368
    46  const LRETRN = 57369
    47  const LCONST = 57370
    48  const LSP = 57371
    49  const LSB = 57372
    50  const LFP = 57373
    51  const LPC = 57374
    52  const LCREG = 57375
    53  const LFLUSH = 57376
    54  const LREG = 57377
    55  const LFREG = 57378
    56  const LR = 57379
    57  const LCR = 57380
    58  const LF = 57381
    59  const LFPSCR = 57382
    60  const LLR = 57383
    61  const LCTR = 57384
    62  const LSPR = 57385
    63  const LSPREG = 57386
    64  const LSEG = 57387
    65  const LMSR = 57388
    66  const LPCDAT = 57389
    67  const LFUNCDAT = 57390
    68  const LSCHED = 57391
    69  const LXLD = 57392
    70  const LXST = 57393
    71  const LXOP = 57394
    72  const LXMV = 57395
    73  const LRLWM = 57396
    74  const LMOVMW = 57397
    75  const LMOVEM = 57398
    76  const LMOVFL = 57399
    77  const LMTFSB = 57400
    78  const LMA = 57401
    79  const LFCONST = 57402
    80  const LSCONST = 57403
    81  const LNAME = 57404
    82  const LLAB = 57405
    83  const LVAR = 57406
    84  
    85  var yyToknames = []string{
    86  	"'|'",
    87  	"'^'",
    88  	"'&'",
    89  	"'<'",
    90  	"'>'",
    91  	"'+'",
    92  	"'-'",
    93  	"'*'",
    94  	"'/'",
    95  	"'%'",
    96  	"LMOVW",
    97  	"LMOVB",
    98  	"LABS",
    99  	"LLOGW",
   100  	"LSHW",
   101  	"LADDW",
   102  	"LCMP",
   103  	"LCROP",
   104  	"LBRA",
   105  	"LFMOV",
   106  	"LFCONV",
   107  	"LFCMP",
   108  	"LFADD",
   109  	"LFMA",
   110  	"LTRAP",
   111  	"LXORW",
   112  	"LNOP",
   113  	"LEND",
   114  	"LRETT",
   115  	"LWORD",
   116  	"LTEXT",
   117  	"LDATA",
   118  	"LGLOBL",
   119  	"LRETRN",
   120  	"LCONST",
   121  	"LSP",
   122  	"LSB",
   123  	"LFP",
   124  	"LPC",
   125  	"LCREG",
   126  	"LFLUSH",
   127  	"LREG",
   128  	"LFREG",
   129  	"LR",
   130  	"LCR",
   131  	"LF",
   132  	"LFPSCR",
   133  	"LLR",
   134  	"LCTR",
   135  	"LSPR",
   136  	"LSPREG",
   137  	"LSEG",
   138  	"LMSR",
   139  	"LPCDAT",
   140  	"LFUNCDAT",
   141  	"LSCHED",
   142  	"LXLD",
   143  	"LXST",
   144  	"LXOP",
   145  	"LXMV",
   146  	"LRLWM",
   147  	"LMOVMW",
   148  	"LMOVEM",
   149  	"LMOVFL",
   150  	"LMTFSB",
   151  	"LMA",
   152  	"LFCONST",
   153  	"LSCONST",
   154  	"LNAME",
   155  	"LLAB",
   156  	"LVAR",
   157  }
   158  var yyStatenames = []string{}
   159  
   160  const yyEofCode = 1
   161  const yyErrCode = 2
   162  const yyMaxDepth = 200
   163  
   164  //line yacctab:1
   165  var yyExca = []int{
   166  	-1, 1,
   167  	1, -1,
   168  	-2, 2,
   169  }
   170  
   171  const yyNprod = 187
   172  const yyPrivate = 57344
   173  
   174  var yyTokenNames []string
   175  var yyStates []string
   176  
   177  const yyLast = 900
   178  
   179  var yyAct = []int{
   180  
   181  	48, 394, 54, 90, 427, 273, 440, 58, 52, 102,
   182  	80, 79, 85, 172, 94, 95, 97, 98, 100, 101,
   183  	51, 57, 113, 3, 80, 79, 56, 121, 123, 125,
   184  	435, 128, 130, 91, 133, 53, 278, 138, 74, 77,
   185  	75, 66, 164, 117, 118, 119, 120, 454, 453, 93,
   186  	96, 65, 99, 77, 134, 417, 127, 114, 94, 74,
   187  	416, 75, 74, 122, 75, 406, 83, 84, 105, 136,
   188  	137, 139, 140, 76, 94, 78, 80, 79, 405, 384,
   189  	62, 127, 94, 81, 383, 205, 148, 150, 149, 78,
   190  	50, 380, 116, 369, 104, 94, 127, 81, 368, 61,
   191  	61, 61, 87, 89, 367, 77, 366, 277, 103, 110,
   192  	364, 363, 316, 63, 407, 198, 64, 61, 284, 55,
   193  	126, 205, 129, 131, 162, 206, 232, 143, 143, 143,
   194  	169, 74, 63, 75, 171, 64, 225, 204, 205, 76,
   195  	109, 78, 170, 165, 448, 47, 62, 447, 92, 81,
   196  	446, 445, 248, 256, 257, 168, 226, 264, 265, 254,
   197  	269, 270, 271, 260, 135, 444, 443, 94, 176, 177,
   198  	178, 235, 399, 253, 398, 397, 262, 199, 255, 393,
   199  	288, 291, 292, 189, 392, 267, 391, 251, 390, 389,
   200  	261, 303, 305, 307, 309, 311, 312, 202, 388, 387,
   201  	166, 386, 385, 293, 294, 295, 296, 314, 379, 317,
   202  	115, 49, 86, 88, 378, 332, 334, 335, 336, 377,
   203  	338, 106, 342, 376, 375, 374, 302, 373, 372, 124,
   204  	362, 328, 329, 330, 331, 361, 233, 231, 230, 229,
   205  	61, 116, 250, 61, 132, 259, 222, 221, 141, 220,
   206  	333, 219, 146, 218, 280, 339, 341, 217, 281, 282,
   207  	283, 216, 215, 286, 287, 344, 214, 213, 61, 348,
   208  	290, 252, 318, 321, 61, 263, 298, 300, 266, 268,
   209  	351, 352, 353, 354, 355, 212, 315, 358, 359, 360,
   210  	370, 211, 202, 324, 59, 210, 80, 79, 209, 371,
   211  	207, 203, 197, 196, 195, 194, 193, 61, 192, 200,
   212  	191, 340, 190, 343, 188, 185, 184, 80, 79, 61,
   213  	347, 183, 349, 350, 208, 77, 182, 181, 381, 180,
   214  	67, 382, 74, 63, 75, 68, 64, 65, 83, 84,
   215  	70, 69, 179, 82, 223, 224, 77, 161, 227, 228,
   216  	160, 159, 249, 158, 157, 258, 156, 163, 155, 76,
   217  	154, 78, 153, 152, 151, 46, 62, 45, 66, 81,
   218  	44, 404, 187, 408, 409, 410, 411, 412, 413, 414,
   219  	289, 299, 78, 402, 42, 43, 297, 104, 63, 415,
   220  	81, 64, 67, 431, 65, 63, 430, 112, 64, 400,
   221  	401, 403, 438, 439, 319, 322, 421, 422, 246, 245,
   222  	244, 242, 243, 237, 238, 239, 240, 241, 67, 337,
   223  	441, 461, 163, 112, 449, 434, 426, 429, 442, 234,
   224  	450, 345, 186, 433, 436, 437, 357, 451, 74, 63,
   225  	75, 74, 64, 75, 285, 456, 457, 356, 459, 460,
   226  	67, 8, 418, 60, 67, 112, 74, 272, 75, 112,
   227  	70, 69, 396, 82, 455, 275, 274, 276, 103, 174,
   228  	175, 74, 202, 75, 275, 274, 276, 80, 452, 428,
   229  	428, 247, 147, 2, 432, 301, 304, 306, 308, 310,
   230  	395, 313, 142, 144, 145, 275, 274, 276, 325, 9,
   231  	272, 74, 326, 75, 327, 1, 77, 423, 424, 425,
   232  	71, 10, 11, 17, 15, 16, 14, 26, 19, 20,
   233  	12, 22, 25, 23, 24, 21, 73, 33, 37, 168,
   234  	34, 38, 40, 39, 41, 458, 72, 0, 186, 167,
   235  	76, 176, 78, 80, 79, 0, 173, 104, 174, 175,
   236  	81, 239, 240, 241, 35, 36, 6, 29, 30, 32,
   237  	31, 27, 28, 80, 79, 13, 18, 0, 0, 4,
   238  	0, 5, 77, 365, 7, 0, 0, 67, 0, 74,
   239  	0, 75, 68, 0, 419, 83, 84, 70, 69, 0,
   240  	82, 0, 77, 0, 80, 79, 0, 67, 0, 0,
   241  	80, 79, 112, 0, 0, 0, 76, 0, 78, 80,
   242  	79, 0, 0, 62, 0, 94, 81, 237, 238, 239,
   243  	240, 241, 0, 77, 0, 0, 111, 0, 78, 77,
   244  	0, 63, 108, 107, 64, 0, 81, 0, 77, 80,
   245  	79, 0, 0, 0, 0, 74, 0, 75, 245, 244,
   246  	242, 243, 237, 238, 239, 240, 241, 76, 0, 78,
   247  	0, 0, 167, 76, 62, 78, 0, 81, 77, 0,
   248  	104, 0, 76, 81, 78, 74, 0, 75, 0, 62,
   249  	0, 0, 81, 246, 245, 244, 242, 243, 237, 238,
   250  	239, 240, 241, 80, 79, 80, 79, 80, 79, 0,
   251  	0, 0, 76, 0, 78, 0, 80, 79, 0, 104,
   252  	80, 79, 81, 0, 0, 0, 0, 0, 0, 80,
   253  	79, 0, 77, 0, 77, 0, 77, 0, 0, 74,
   254  	0, 75, 80, 79, 0, 77, 0, 0, 0, 77,
   255  	0, 0, 0, 80, 79, 0, 0, 0, 77, 0,
   256  	0, 0, 80, 79, 0, 0, 299, 0, 78, 279,
   257  	78, 77, 78, 104, 0, 104, 81, 104, 81, 94,
   258  	81, 78, 77, 111, 0, 78, 104, 0, 346, 81,
   259  	420, 77, 76, 81, 78, 0, 0, 0, 0, 104,
   260  	0, 0, 81, 0, 0, 111, 0, 78, 0, 0,
   261  	0, 0, 323, 0, 0, 81, 111, 0, 78, 0,
   262  	0, 0, 0, 320, 0, 111, 81, 78, 0, 0,
   263  	0, 0, 201, 0, 0, 81, 246, 245, 244, 242,
   264  	243, 237, 238, 239, 240, 241, 244, 242, 243, 237,
   265  	238, 239, 240, 241, 242, 243, 237, 238, 239, 240,
   266  	241, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   267  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   268  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   269  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   270  	0, 0, 0, 0, 0, 0, 0, 0, 0, 236,
   271  }
   272  var yyPact = []int{
   273  
   274  	-1000, -1000, 497, -1000, 309, 294, 290, -1000, 288, 68,
   275  	287, 600, 67, -67, -7, 396, -7, 396, 396, 308,
   276  	554, 14, 342, 342, 342, 342, 396, -7, 630, 2,
   277  	396, 17, 2, 86, -40, -67, -67, 163, 710, 710,
   278  	710, 163, -1000, 308, 308, -1000, -1000, -1000, 286, 285,
   279  	284, 282, 280, 278, 276, 275, 273, 272, 269, -1000,
   280  	-1000, 45, 684, -1000, 64, -1000, 591, -1000, 51, -1000,
   281  	63, -1000, -1000, -1000, -1000, 55, 539, -1000, -1000, 308,
   282  	308, 308, -1000, -1000, -1000, 264, 251, 249, 248, 243,
   283  	238, 237, 362, 236, 308, 234, 232, 230, 228, 227,
   284  	226, 225, 224, -1000, 308, -1000, -1000, 15, 743, 223,
   285  	59, 539, 51, 222, 220, -1000, -1000, 217, 213, 207,
   286  	189, 188, 184, 183, 179, 175, 173, 396, 171, 169,
   287  	168, -1000, -1000, 163, 163, 393, -1000, 163, 163, 161,
   288  	160, -1000, 159, 47, 158, 417, -1000, 497, 822, -1000,
   289  	404, 534, 396, 396, 1, 349, 396, 396, 407, 411,
   290  	396, 396, 426, 27, 679, 308, -1000, -1000, 45, 308,
   291  	308, 308, 39, 436, 308, 308, -1000, -1000, -1000, 600,
   292  	396, 396, 342, 342, 342, 585, -1000, 311, 308, -1000,
   293  	-7, 396, 396, 396, 396, 396, 396, 308, 32, -1000,
   294  	-1000, 15, 42, 734, 723, 456, 39, 396, -1000, 396,
   295  	342, 342, 342, 342, -7, 396, 396, 396, 710, -7,
   296  	-23, 396, 2, -1000, -1000, -1000, -1000, -1000, -1000, -67,
   297  	710, 697, 435, 688, 308, -1000, -1000, 308, 308, 308,
   298  	308, 308, 440, 428, 308, 308, 308, -1000, -1000, -1000,
   299  	-1000, 157, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
   300  	-1000, 152, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
   301  	-1000, -1000, 31, 30, -1000, -1000, -1000, -1000, 396, -1000,
   302  	26, 24, 18, 13, 435, 460, -1000, -1000, -1000, -1000,
   303  	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
   304  	-1000, 150, 149, -1000, 147, -1000, 146, -1000, 145, -1000,
   305  	141, -1000, -1000, 136, -1000, 130, -1000, 11, -1000, -1000,
   306  	15, -1000, -1000, 15, 6, -1, -1000, -1000, -1000, 124,
   307  	123, 121, 120, 111, 110, 108, -1000, -1000, -1000, 106,
   308  	-1000, 101, -1000, -1000, -1000, -1000, 452, 97, -1000, 96,
   309  	94, 540, 540, -1000, -1000, -1000, 308, 308, 837, 830,
   310  	643, 353, 344, -1000, -1000, -2, -1000, -1000, -1000, -1000,
   311  	-15, 35, 396, 396, 396, 396, 396, 396, 396, 308,
   312  	-1000, -20, -25, 701, -1000, 342, 342, 375, 375, 375,
   313  	688, 688, 396, 2, -1000, 423, 387, -51, -67, -75,
   314  	608, 608, -1000, -1000, -1000, -1000, -1000, 380, -1000, -1000,
   315  	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
   316  	15, -1000, 88, -1000, -1000, -1000, 87, 73, 72, 69,
   317  	66, -1000, -1000, 386, 420, 452, -1000, -1000, -1000, -1000,
   318  	468, -32, -33, 342, 396, 396, 308, 396, 396, -1000,
   319  	383, -1000, 686, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
   320  	-1000, -1000,
   321  }
   322  var yyPgo = []int{
   323  
   324  	0, 88, 42, 5, 13, 294, 200, 0, 90, 453,
   325  	119, 20, 7, 536, 526, 1, 35, 2, 3, 68,
   326  	26, 21, 9, 8, 510, 4, 505, 483, 23, 482,
   327  	451, 210,
   328  }
   329  var yyR1 = []int{
   330  
   331  	0, 26, 27, 26, 29, 28, 28, 28, 28, 28,
   332  	28, 28, 30, 30, 30, 30, 30, 30, 30, 30,
   333  	30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
   334  	30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
   335  	30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
   336  	30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
   337  	30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
   338  	30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
   339  	30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
   340  	30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
   341  	30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
   342  	30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
   343  	30, 30, 30, 30, 30, 19, 19, 7, 12, 12,
   344  	13, 21, 14, 24, 20, 20, 20, 23, 11, 11,
   345  	10, 10, 22, 25, 15, 15, 15, 15, 17, 17,
   346  	18, 18, 16, 5, 5, 8, 8, 6, 6, 9,
   347  	9, 9, 31, 31, 4, 4, 4, 3, 3, 3,
   348  	1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
   349  	2, 2, 2, 2, 2, 2, 2,
   350  }
   351  var yyR2 = []int{
   352  
   353  	0, 0, 0, 3, 0, 4, 4, 4, 2, 1,
   354  	2, 2, 4, 4, 4, 4, 4, 4, 4, 4,
   355  	4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
   356  	4, 4, 6, 4, 4, 6, 4, 4, 6, 6,
   357  	6, 4, 4, 6, 4, 6, 4, 6, 4, 4,
   358  	2, 6, 4, 4, 4, 6, 4, 4, 4, 4,
   359  	4, 4, 4, 4, 2, 2, 4, 3, 3, 5,
   360  	4, 4, 6, 4, 4, 6, 6, 6, 8, 4,
   361  	4, 3, 2, 4, 4, 6, 8, 4, 6, 4,
   362  	4, 6, 6, 8, 8, 8, 8, 4, 4, 4,
   363  	6, 4, 6, 4, 4, 2, 2, 3, 3, 3,
   364  	3, 2, 3, 3, 4, 4, 2, 5, 7, 4,
   365  	6, 6, 6, 6, 2, 4, 2, 1, 1, 1,
   366  	1, 1, 1, 1, 1, 4, 1, 1, 1, 4,
   367  	1, 4, 1, 3, 1, 2, 3, 4, 2, 2,
   368  	2, 3, 2, 1, 4, 3, 5, 1, 4, 4,
   369  	5, 7, 0, 1, 0, 2, 2, 1, 1, 1,
   370  	1, 1, 2, 2, 2, 3, 1, 3, 3, 3,
   371  	3, 3, 4, 4, 3, 3, 3,
   372  }
   373  var yyChk = []int{
   374  
   375  	-1000, -26, -27, -28, 72, 74, 59, 77, -30, 2,
   376  	14, 15, 23, 68, 19, 17, 18, 16, 69, 21,
   377  	22, 28, 24, 26, 27, 25, 20, 64, 65, 60,
   378  	61, 63, 62, 30, 33, 57, 58, 31, 34, 36,
   379  	35, 37, 75, 76, 76, 77, 77, 77, -7, -6,
   380  	-8, -11, -23, -16, -17, -10, -20, -21, -12, -5,
   381  	-9, -1, 79, 46, 49, 50, 81, 43, 48, 54,
   382  	53, -24, -13, -14, 45, 47, 72, 38, 74, 10,
   383  	9, 82, 56, 51, 52, -7, -6, -8, -6, -8,
   384  	-18, -11, 81, -16, 81, -7, -16, -7, -7, -16,
   385  	-7, -7, -22, -1, 79, -19, -6, 79, 78, -10,
   386  	-1, 72, 48, -7, -16, -31, 78, -11, -11, -11,
   387  	-11, -7, -16, -7, -6, -7, -8, 79, -7, -8,
   388  	-7, -8, -31, -7, -11, 78, -16, -16, -17, -16,
   389  	-16, -31, -9, -1, -9, -9, -31, -29, -2, -1,
   390  	-2, 78, 78, 78, 78, 78, 78, 78, 78, 78,
   391  	78, 78, 79, -5, -2, 79, -6, 71, -1, 79,
   392  	79, 79, -4, 7, 9, 10, -1, -1, -1, 78,
   393  	78, 78, 78, 78, 78, 78, 70, 10, 78, -1,
   394  	78, 78, 78, 78, 78, 78, 78, 78, -12, -19,
   395  	-6, 79, -1, 78, 78, 79, -4, 78, -31, 78,
   396  	78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
   397  	78, 78, 78, -31, -31, -7, -11, -31, -31, 78,
   398  	78, 78, 79, 78, 12, -28, 77, 9, 10, 11,
   399  	12, 13, 7, 8, 6, 5, 4, 77, -7, -6,
   400  	-8, -16, -10, -21, -12, -20, -7, -7, -6, -8,
   401  	-23, -16, -11, -10, -7, -7, -10, -20, -10, -7,
   402  	-7, -7, -5, -3, 40, 39, 41, 80, 9, 80,
   403  	-1, -1, -1, -1, 79, 8, -1, -1, -7, -6,
   404  	-8, -7, -7, -11, -11, -11, -11, -6, -8, 70,
   405  	-1, -5, -16, -7, -5, -7, -5, -7, -5, -7,
   406  	-5, -7, -7, -5, -22, -1, 80, -12, -19, -6,
   407  	79, -19, -6, 79, -1, 42, -5, -5, -11, -11,
   408  	-11, -11, -7, -16, -7, -7, -7, -6, -7, -16,
   409  	-8, -16, -7, -8, -16, -6, 81, -1, -16, -1,
   410  	-1, -2, -2, -2, -2, -2, 7, 8, -2, -2,
   411  	-2, 78, 78, 80, 80, -5, 80, 80, 80, 80,
   412  	-3, -4, 78, 78, 78, 78, 78, 78, 78, 78,
   413  	80, -12, -12, 78, 80, 78, 78, 78, 78, 78,
   414  	78, 78, 78, 78, -15, 38, 10, 78, 78, 78,
   415  	-2, -2, -21, 48, -23, 80, 80, 79, -7, -7,
   416  	-7, -7, -7, -7, -7, -22, 80, 80, -19, -6,
   417  	79, -11, -11, -10, -10, -10, -16, -25, -1, -16,
   418  	-25, -7, -8, 10, 38, 81, -16, -16, -17, -18,
   419  	81, 40, -12, 78, 78, 78, 78, 78, 78, 38,
   420  	10, -15, 10, 80, 80, -11, -7, -7, -1, -7,
   421  	-7, 38,
   422  }
   423  var yyDef = []int{
   424  
   425  	1, -2, 0, 3, 0, 0, 0, 9, 0, 0,
   426  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   427  	0, 162, 0, 0, 0, 0, 0, 0, 0, 0,
   428  	0, 0, 0, 162, 0, 0, 0, 162, 0, 0,
   429  	0, 162, 4, 0, 0, 8, 10, 11, 0, 0,
   430  	0, 0, 0, 0, 0, 0, 0, 0, 0, 127,
   431  	157, 0, 0, 138, 0, 137, 0, 140, 131, 134,
   432  	0, 136, 128, 129, 153, 0, 164, 170, 171, 0,
   433  	0, 0, 133, 130, 132, 0, 0, 0, 0, 0,
   434  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   435  	50, 0, 0, 142, 0, 64, 65, 0, 0, 0,
   436  	0, 164, 0, 162, 0, 82, 163, 0, 0, 0,
   437  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   438  	0, 105, 106, 162, 162, 163, 111, 162, 162, 0,
   439  	0, 116, 0, 0, 0, 0, 124, 0, 0, 176,
   440  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   441  	0, 0, 0, 0, 0, 0, 148, 149, 152, 0,
   442  	0, 0, 0, 0, 0, 0, 172, 173, 174, 0,
   443  	0, 0, 0, 0, 0, 0, 150, 0, 0, 152,
   444  	0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
   445  	68, 0, 0, 0, 0, 0, 126, 163, 81, 0,
   446  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   447  	0, 0, 0, 107, 108, 109, 110, 112, 113, 0,
   448  	0, 0, 0, 0, 0, 5, 6, 0, 0, 0,
   449  	0, 0, 0, 0, 0, 0, 0, 7, 12, 24,
   450  	25, 0, 36, 37, 61, 63, 13, 14, 28, 29,
   451  	31, 0, 30, 33, 52, 53, 56, 62, 57, 59,
   452  	58, 60, 0, 0, 167, 168, 169, 155, 0, 175,
   453  	0, 0, 0, 0, 0, 164, 165, 166, 15, 26,
   454  	27, 16, 17, 18, 19, 20, 21, 22, 23, 151,
   455  	34, 127, 0, 41, 127, 42, 127, 44, 127, 46,
   456  	127, 48, 49, 0, 54, 142, 66, 0, 70, 71,
   457  	0, 73, 74, 0, 0, 0, 79, 80, 83, 84,
   458  	0, 87, 89, 90, 0, 0, 97, 98, 99, 0,
   459  	101, 0, 103, 104, 114, 115, 0, 0, 119, 0,
   460  	0, 177, 178, 179, 180, 181, 0, 0, 184, 185,
   461  	186, 0, 0, 158, 159, 0, 139, 141, 135, 154,
   462  	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   463  	69, 0, 0, 0, 125, 0, 0, 0, 0, 0,
   464  	0, 0, 0, 0, 117, 144, 0, 0, 0, 0,
   465  	182, 183, 35, 131, 32, 156, 160, 0, 38, 40,
   466  	39, 43, 45, 47, 51, 55, 72, 75, 76, 77,
   467  	0, 85, 0, 88, 91, 92, 0, 0, 0, 0,
   468  	0, 100, 102, 0, 145, 0, 120, 121, 122, 123,
   469  	0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
   470  	0, 118, 0, 161, 78, 86, 93, 94, 143, 95,
   471  	96, 147,
   472  }
   473  var yyTok1 = []int{
   474  
   475  	1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
   476  	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
   477  	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
   478  	3, 3, 3, 3, 3, 3, 81, 13, 6, 3,
   479  	79, 80, 11, 9, 78, 10, 3, 12, 3, 3,
   480  	3, 3, 3, 3, 3, 3, 3, 3, 75, 77,
   481  	7, 76, 8, 3, 3, 3, 3, 3, 3, 3,
   482  	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
   483  	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
   484  	3, 3, 3, 3, 5, 3, 3, 3, 3, 3,
   485  	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
   486  	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
   487  	3, 3, 3, 3, 4, 3, 82,
   488  }
   489  var yyTok2 = []int{
   490  
   491  	2, 3, 14, 15, 16, 17, 18, 19, 20, 21,
   492  	22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
   493  	32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
   494  	42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
   495  	52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
   496  	62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
   497  	72, 73, 74,
   498  }
   499  var yyTok3 = []int{
   500  	0,
   501  }
   502  
   503  //line yaccpar:1
   504  
   505  /*	parser for yacc output	*/
   506  
   507  var yyDebug = 0
   508  
   509  type yyLexer interface {
   510  	Lex(lval *yySymType) int
   511  	Error(s string)
   512  }
   513  
   514  type yyParser interface {
   515  	Parse(yyLexer) int
   516  	Lookahead() int
   517  }
   518  
   519  type yyParserImpl struct {
   520  	lookahead func() int
   521  }
   522  
   523  func (p *yyParserImpl) Lookahead() int {
   524  	return p.lookahead()
   525  }
   526  
   527  func yyNewParser() yyParser {
   528  	p := &yyParserImpl{
   529  		lookahead: func() int { return -1 },
   530  	}
   531  	return p
   532  }
   533  
   534  const yyFlag = -1000
   535  
   536  func yyTokname(c int) string {
   537  	// 4 is TOKSTART above
   538  	if c >= 4 && c-4 < len(yyToknames) {
   539  		if yyToknames[c-4] != "" {
   540  			return yyToknames[c-4]
   541  		}
   542  	}
   543  	return __yyfmt__.Sprintf("tok-%v", c)
   544  }
   545  
   546  func yyStatname(s int) string {
   547  	if s >= 0 && s < len(yyStatenames) {
   548  		if yyStatenames[s] != "" {
   549  			return yyStatenames[s]
   550  		}
   551  	}
   552  	return __yyfmt__.Sprintf("state-%v", s)
   553  }
   554  
   555  func yylex1(lex yyLexer, lval *yySymType) (char, token int) {
   556  	token = 0
   557  	char = lex.Lex(lval)
   558  	if char <= 0 {
   559  		token = yyTok1[0]
   560  		goto out
   561  	}
   562  	if char < len(yyTok1) {
   563  		token = yyTok1[char]
   564  		goto out
   565  	}
   566  	if char >= yyPrivate {
   567  		if char < yyPrivate+len(yyTok2) {
   568  			token = yyTok2[char-yyPrivate]
   569  			goto out
   570  		}
   571  	}
   572  	for i := 0; i < len(yyTok3); i += 2 {
   573  		token = yyTok3[i+0]
   574  		if token == char {
   575  			token = yyTok3[i+1]
   576  			goto out
   577  		}
   578  	}
   579  
   580  out:
   581  	if token == 0 {
   582  		token = yyTok2[1] /* unknown char */
   583  	}
   584  	if yyDebug >= 3 {
   585  		__yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char))
   586  	}
   587  	return char, token
   588  }
   589  
   590  func yyParse(yylex yyLexer) int {
   591  	return yyNewParser().Parse(yylex)
   592  }
   593  
   594  func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int {
   595  	var yyn int
   596  	var yylval yySymType
   597  	var yyVAL yySymType
   598  	var yyDollar []yySymType
   599  	yyS := make([]yySymType, yyMaxDepth)
   600  
   601  	Nerrs := 0   /* number of errors */
   602  	Errflag := 0 /* error recovery flag */
   603  	yystate := 0
   604  	yychar := -1
   605  	yytoken := -1 // yychar translated into internal numbering
   606  	yyrcvr.lookahead = func() int { return yychar }
   607  	defer func() {
   608  		// Make sure we report no lookahead when not parsing.
   609  		yychar = -1
   610  		yytoken = -1
   611  	}()
   612  	yyp := -1
   613  	goto yystack
   614  
   615  ret0:
   616  	return 0
   617  
   618  ret1:
   619  	return 1
   620  
   621  yystack:
   622  	/* put a state and value onto the stack */
   623  	if yyDebug >= 4 {
   624  		__yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate))
   625  	}
   626  
   627  	yyp++
   628  	if yyp >= len(yyS) {
   629  		nyys := make([]yySymType, len(yyS)*2)
   630  		copy(nyys, yyS)
   631  		yyS = nyys
   632  	}
   633  	yyS[yyp] = yyVAL
   634  	yyS[yyp].yys = yystate
   635  
   636  yynewstate:
   637  	yyn = yyPact[yystate]
   638  	if yyn <= yyFlag {
   639  		goto yydefault /* simple state */
   640  	}
   641  	if yychar < 0 {
   642  		yychar, yytoken = yylex1(yylex, &yylval)
   643  	}
   644  	yyn += yytoken
   645  	if yyn < 0 || yyn >= yyLast {
   646  		goto yydefault
   647  	}
   648  	yyn = yyAct[yyn]
   649  	if yyChk[yyn] == yytoken { /* valid shift */
   650  		yychar = -1
   651  		yytoken = -1
   652  		yyVAL = yylval
   653  		yystate = yyn
   654  		if Errflag > 0 {
   655  			Errflag--
   656  		}
   657  		goto yystack
   658  	}
   659  
   660  yydefault:
   661  	/* default state action */
   662  	yyn = yyDef[yystate]
   663  	if yyn == -2 {
   664  		if yychar < 0 {
   665  			yychar, yytoken = yylex1(yylex, &yylval)
   666  		}
   667  
   668  		/* look through exception table */
   669  		xi := 0
   670  		for {
   671  			if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate {
   672  				break
   673  			}
   674  			xi += 2
   675  		}
   676  		for xi += 2; ; xi += 2 {
   677  			yyn = yyExca[xi+0]
   678  			if yyn < 0 || yyn == yytoken {
   679  				break
   680  			}
   681  		}
   682  		yyn = yyExca[xi+1]
   683  		if yyn < 0 {
   684  			goto ret0
   685  		}
   686  	}
   687  	if yyn == 0 {
   688  		/* error ... attempt to resume parsing */
   689  		switch Errflag {
   690  		case 0: /* brand new error */
   691  			yylex.Error("syntax error")
   692  			Nerrs++
   693  			if yyDebug >= 1 {
   694  				__yyfmt__.Printf("%s", yyStatname(yystate))
   695  				__yyfmt__.Printf(" saw %s\n", yyTokname(yytoken))
   696  			}
   697  			fallthrough
   698  
   699  		case 1, 2: /* incompletely recovered error ... try again */
   700  			Errflag = 3
   701  
   702  			/* find a state where "error" is a legal shift action */
   703  			for yyp >= 0 {
   704  				yyn = yyPact[yyS[yyp].yys] + yyErrCode
   705  				if yyn >= 0 && yyn < yyLast {
   706  					yystate = yyAct[yyn] /* simulate a shift of "error" */
   707  					if yyChk[yystate] == yyErrCode {
   708  						goto yystack
   709  					}
   710  				}
   711  
   712  				/* the current p has no shift on "error", pop stack */
   713  				if yyDebug >= 2 {
   714  					__yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys)
   715  				}
   716  				yyp--
   717  			}
   718  			/* there is no state on the stack with an error shift ... abort */
   719  			goto ret1
   720  
   721  		case 3: /* no shift yet; clobber input char */
   722  			if yyDebug >= 2 {
   723  				__yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken))
   724  			}
   725  			if yytoken == yyEofCode {
   726  				goto ret1
   727  			}
   728  			yychar = -1
   729  			yytoken = -1
   730  			goto yynewstate /* try again in the same state */
   731  		}
   732  	}
   733  
   734  	/* reduction by production yyn */
   735  	if yyDebug >= 2 {
   736  		__yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate))
   737  	}
   738  
   739  	yynt := yyn
   740  	yypt := yyp
   741  	_ = yypt // guard against "declared and not used"
   742  
   743  	yyp -= yyR2[yyn]
   744  	// yyp is now the index of $0. Perform the default action. Iff the
   745  	// reduced production is ε, $1 is possibly out of range.
   746  	if yyp+1 >= len(yyS) {
   747  		nyys := make([]yySymType, len(yyS)*2)
   748  		copy(nyys, yyS)
   749  		yyS = nyys
   750  	}
   751  	yyVAL = yyS[yyp+1]
   752  
   753  	/* consult goto table to find next state */
   754  	yyn = yyR1[yyn]
   755  	yyg := yyPgo[yyn]
   756  	yyj := yyg + yyS[yyp].yys + 1
   757  
   758  	if yyj >= yyLast {
   759  		yystate = yyAct[yyg]
   760  	} else {
   761  		yystate = yyAct[yyj]
   762  		if yyChk[yystate] != -yyn {
   763  			yystate = yyAct[yyg]
   764  		}
   765  	}
   766  	// dummy call; replaced with literal code
   767  	switch yynt {
   768  
   769  	case 2:
   770  		yyDollar = yyS[yypt-1 : yypt+1]
   771  		//line a.y:72
   772  		{
   773  			stmtline = asm.Lineno
   774  		}
   775  	case 4:
   776  		yyDollar = yyS[yypt-2 : yypt+1]
   777  		//line a.y:79
   778  		{
   779  			yyDollar[1].sym = asm.LabelLookup(yyDollar[1].sym)
   780  			if yyDollar[1].sym.Type == LLAB && yyDollar[1].sym.Value != int64(asm.PC) {
   781  				yyerror("redeclaration of %s", yyDollar[1].sym.Labelname)
   782  			}
   783  			yyDollar[1].sym.Type = LLAB
   784  			yyDollar[1].sym.Value = int64(asm.PC)
   785  		}
   786  	case 6:
   787  		yyDollar = yyS[yypt-4 : yypt+1]
   788  		//line a.y:89
   789  		{
   790  			yyDollar[1].sym.Type = LVAR
   791  			yyDollar[1].sym.Value = yyDollar[3].lval
   792  		}
   793  	case 7:
   794  		yyDollar = yyS[yypt-4 : yypt+1]
   795  		//line a.y:94
   796  		{
   797  			if yyDollar[1].sym.Value != yyDollar[3].lval {
   798  				yyerror("redeclaration of %s", yyDollar[1].sym.Name)
   799  			}
   800  			yyDollar[1].sym.Value = yyDollar[3].lval
   801  		}
   802  	case 8:
   803  		yyDollar = yyS[yypt-2 : yypt+1]
   804  		//line a.y:101
   805  		{
   806  			nosched = int(yyDollar[1].lval)
   807  		}
   808  	case 12:
   809  		yyDollar = yyS[yypt-4 : yypt+1]
   810  		//line a.y:113
   811  		{
   812  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   813  		}
   814  	case 13:
   815  		yyDollar = yyS[yypt-4 : yypt+1]
   816  		//line a.y:117
   817  		{
   818  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   819  		}
   820  	case 14:
   821  		yyDollar = yyS[yypt-4 : yypt+1]
   822  		//line a.y:121
   823  		{
   824  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   825  		}
   826  	case 15:
   827  		yyDollar = yyS[yypt-4 : yypt+1]
   828  		//line a.y:125
   829  		{
   830  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   831  		}
   832  	case 16:
   833  		yyDollar = yyS[yypt-4 : yypt+1]
   834  		//line a.y:129
   835  		{
   836  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   837  		}
   838  	case 17:
   839  		yyDollar = yyS[yypt-4 : yypt+1]
   840  		//line a.y:133
   841  		{
   842  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   843  		}
   844  	case 18:
   845  		yyDollar = yyS[yypt-4 : yypt+1]
   846  		//line a.y:140
   847  		{
   848  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   849  		}
   850  	case 19:
   851  		yyDollar = yyS[yypt-4 : yypt+1]
   852  		//line a.y:144
   853  		{
   854  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   855  		}
   856  	case 20:
   857  		yyDollar = yyS[yypt-4 : yypt+1]
   858  		//line a.y:148
   859  		{
   860  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   861  		}
   862  	case 21:
   863  		yyDollar = yyS[yypt-4 : yypt+1]
   864  		//line a.y:152
   865  		{
   866  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   867  		}
   868  	case 22:
   869  		yyDollar = yyS[yypt-4 : yypt+1]
   870  		//line a.y:156
   871  		{
   872  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   873  		}
   874  	case 23:
   875  		yyDollar = yyS[yypt-4 : yypt+1]
   876  		//line a.y:160
   877  		{
   878  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   879  		}
   880  	case 24:
   881  		yyDollar = yyS[yypt-4 : yypt+1]
   882  		//line a.y:167
   883  		{
   884  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   885  		}
   886  	case 25:
   887  		yyDollar = yyS[yypt-4 : yypt+1]
   888  		//line a.y:171
   889  		{
   890  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   891  		}
   892  	case 26:
   893  		yyDollar = yyS[yypt-4 : yypt+1]
   894  		//line a.y:175
   895  		{
   896  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   897  		}
   898  	case 27:
   899  		yyDollar = yyS[yypt-4 : yypt+1]
   900  		//line a.y:179
   901  		{
   902  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   903  		}
   904  	case 28:
   905  		yyDollar = yyS[yypt-4 : yypt+1]
   906  		//line a.y:186
   907  		{
   908  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   909  		}
   910  	case 29:
   911  		yyDollar = yyS[yypt-4 : yypt+1]
   912  		//line a.y:190
   913  		{
   914  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   915  		}
   916  	case 30:
   917  		yyDollar = yyS[yypt-4 : yypt+1]
   918  		//line a.y:197
   919  		{
   920  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   921  		}
   922  	case 31:
   923  		yyDollar = yyS[yypt-4 : yypt+1]
   924  		//line a.y:201
   925  		{
   926  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   927  		}
   928  	case 32:
   929  		yyDollar = yyS[yypt-6 : yypt+1]
   930  		//line a.y:205
   931  		{
   932  			outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr, &yyDollar[6].addr)
   933  		}
   934  	case 33:
   935  		yyDollar = yyS[yypt-4 : yypt+1]
   936  		//line a.y:209
   937  		{
   938  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   939  		}
   940  	case 34:
   941  		yyDollar = yyS[yypt-4 : yypt+1]
   942  		//line a.y:213
   943  		{
   944  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &nullgen)
   945  		}
   946  	case 35:
   947  		yyDollar = yyS[yypt-6 : yypt+1]
   948  		//line a.y:220
   949  		{
   950  			outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr, &yyDollar[6].addr)
   951  		}
   952  	case 36:
   953  		yyDollar = yyS[yypt-4 : yypt+1]
   954  		//line a.y:224
   955  		{
   956  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   957  		}
   958  	case 37:
   959  		yyDollar = yyS[yypt-4 : yypt+1]
   960  		//line a.y:228
   961  		{
   962  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   963  		}
   964  	case 38:
   965  		yyDollar = yyS[yypt-6 : yypt+1]
   966  		//line a.y:238
   967  		{
   968  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[6].addr)
   969  		}
   970  	case 39:
   971  		yyDollar = yyS[yypt-6 : yypt+1]
   972  		//line a.y:242
   973  		{
   974  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[6].addr)
   975  		}
   976  	case 40:
   977  		yyDollar = yyS[yypt-6 : yypt+1]
   978  		//line a.y:246
   979  		{
   980  			outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr, &yyDollar[6].addr)
   981  		}
   982  	case 41:
   983  		yyDollar = yyS[yypt-4 : yypt+1]
   984  		//line a.y:250
   985  		{
   986  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   987  		}
   988  	case 42:
   989  		yyDollar = yyS[yypt-4 : yypt+1]
   990  		//line a.y:254
   991  		{
   992  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
   993  		}
   994  	case 43:
   995  		yyDollar = yyS[yypt-6 : yypt+1]
   996  		//line a.y:258
   997  		{
   998  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[6].addr)
   999  		}
  1000  	case 44:
  1001  		yyDollar = yyS[yypt-4 : yypt+1]
  1002  		//line a.y:262
  1003  		{
  1004  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1005  		}
  1006  	case 45:
  1007  		yyDollar = yyS[yypt-6 : yypt+1]
  1008  		//line a.y:266
  1009  		{
  1010  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[6].addr)
  1011  		}
  1012  	case 46:
  1013  		yyDollar = yyS[yypt-4 : yypt+1]
  1014  		//line a.y:270
  1015  		{
  1016  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1017  		}
  1018  	case 47:
  1019  		yyDollar = yyS[yypt-6 : yypt+1]
  1020  		//line a.y:274
  1021  		{
  1022  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[6].addr)
  1023  		}
  1024  	case 48:
  1025  		yyDollar = yyS[yypt-4 : yypt+1]
  1026  		//line a.y:278
  1027  		{
  1028  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1029  		}
  1030  	case 49:
  1031  		yyDollar = yyS[yypt-4 : yypt+1]
  1032  		//line a.y:282
  1033  		{
  1034  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1035  		}
  1036  	case 50:
  1037  		yyDollar = yyS[yypt-2 : yypt+1]
  1038  		//line a.y:286
  1039  		{
  1040  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[2].addr)
  1041  		}
  1042  	case 51:
  1043  		yyDollar = yyS[yypt-6 : yypt+1]
  1044  		//line a.y:293
  1045  		{
  1046  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[6].addr)
  1047  		}
  1048  	case 52:
  1049  		yyDollar = yyS[yypt-4 : yypt+1]
  1050  		//line a.y:300
  1051  		{
  1052  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1053  		}
  1054  	case 53:
  1055  		yyDollar = yyS[yypt-4 : yypt+1]
  1056  		//line a.y:304
  1057  		{
  1058  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1059  		}
  1060  	case 54:
  1061  		yyDollar = yyS[yypt-4 : yypt+1]
  1062  		//line a.y:311
  1063  		{
  1064  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].addr.Reg), &yyDollar[4].addr)
  1065  		}
  1066  	case 55:
  1067  		yyDollar = yyS[yypt-6 : yypt+1]
  1068  		//line a.y:315
  1069  		{
  1070  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[6].addr)
  1071  		}
  1072  	case 56:
  1073  		yyDollar = yyS[yypt-4 : yypt+1]
  1074  		//line a.y:323
  1075  		{
  1076  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1077  		}
  1078  	case 57:
  1079  		yyDollar = yyS[yypt-4 : yypt+1]
  1080  		//line a.y:327
  1081  		{
  1082  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1083  		}
  1084  	case 58:
  1085  		yyDollar = yyS[yypt-4 : yypt+1]
  1086  		//line a.y:331
  1087  		{
  1088  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1089  		}
  1090  	case 59:
  1091  		yyDollar = yyS[yypt-4 : yypt+1]
  1092  		//line a.y:335
  1093  		{
  1094  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1095  		}
  1096  	case 60:
  1097  		yyDollar = yyS[yypt-4 : yypt+1]
  1098  		//line a.y:339
  1099  		{
  1100  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1101  		}
  1102  	case 61:
  1103  		yyDollar = yyS[yypt-4 : yypt+1]
  1104  		//line a.y:343
  1105  		{
  1106  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1107  		}
  1108  	case 62:
  1109  		yyDollar = yyS[yypt-4 : yypt+1]
  1110  		//line a.y:347
  1111  		{
  1112  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1113  		}
  1114  	case 63:
  1115  		yyDollar = yyS[yypt-4 : yypt+1]
  1116  		//line a.y:351
  1117  		{
  1118  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1119  		}
  1120  	case 64:
  1121  		yyDollar = yyS[yypt-2 : yypt+1]
  1122  		//line a.y:360
  1123  		{
  1124  			outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[2].addr)
  1125  		}
  1126  	case 65:
  1127  		yyDollar = yyS[yypt-2 : yypt+1]
  1128  		//line a.y:364
  1129  		{
  1130  			outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[2].addr)
  1131  		}
  1132  	case 66:
  1133  		yyDollar = yyS[yypt-4 : yypt+1]
  1134  		//line a.y:368
  1135  		{
  1136  			outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[3].addr)
  1137  		}
  1138  	case 67:
  1139  		yyDollar = yyS[yypt-3 : yypt+1]
  1140  		//line a.y:372
  1141  		{
  1142  			outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[3].addr)
  1143  		}
  1144  	case 68:
  1145  		yyDollar = yyS[yypt-3 : yypt+1]
  1146  		//line a.y:376
  1147  		{
  1148  			outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[3].addr)
  1149  		}
  1150  	case 69:
  1151  		yyDollar = yyS[yypt-5 : yypt+1]
  1152  		//line a.y:380
  1153  		{
  1154  			outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[4].addr)
  1155  		}
  1156  	case 70:
  1157  		yyDollar = yyS[yypt-4 : yypt+1]
  1158  		//line a.y:384
  1159  		{
  1160  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1161  		}
  1162  	case 71:
  1163  		yyDollar = yyS[yypt-4 : yypt+1]
  1164  		//line a.y:388
  1165  		{
  1166  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1167  		}
  1168  	case 72:
  1169  		yyDollar = yyS[yypt-6 : yypt+1]
  1170  		//line a.y:392
  1171  		{
  1172  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[5].addr)
  1173  		}
  1174  	case 73:
  1175  		yyDollar = yyS[yypt-4 : yypt+1]
  1176  		//line a.y:396
  1177  		{
  1178  			outcode(int(yyDollar[1].lval), &nullgen, int(yyDollar[2].lval), &yyDollar[4].addr)
  1179  		}
  1180  	case 74:
  1181  		yyDollar = yyS[yypt-4 : yypt+1]
  1182  		//line a.y:400
  1183  		{
  1184  			outcode(int(yyDollar[1].lval), &nullgen, int(yyDollar[2].lval), &yyDollar[4].addr)
  1185  		}
  1186  	case 75:
  1187  		yyDollar = yyS[yypt-6 : yypt+1]
  1188  		//line a.y:404
  1189  		{
  1190  			outcode(int(yyDollar[1].lval), &nullgen, int(yyDollar[2].lval), &yyDollar[5].addr)
  1191  		}
  1192  	case 76:
  1193  		yyDollar = yyS[yypt-6 : yypt+1]
  1194  		//line a.y:408
  1195  		{
  1196  			var g obj.Addr
  1197  			g = nullgen
  1198  			g.Type = obj.TYPE_CONST
  1199  			g.Offset = yyDollar[2].lval
  1200  			outcode(int(yyDollar[1].lval), &g, int(REG_R0+yyDollar[4].lval), &yyDollar[6].addr)
  1201  		}
  1202  	case 77:
  1203  		yyDollar = yyS[yypt-6 : yypt+1]
  1204  		//line a.y:416
  1205  		{
  1206  			var g obj.Addr
  1207  			g = nullgen
  1208  			g.Type = obj.TYPE_CONST
  1209  			g.Offset = yyDollar[2].lval
  1210  			outcode(int(yyDollar[1].lval), &g, int(REG_R0+yyDollar[4].lval), &yyDollar[6].addr)
  1211  		}
  1212  	case 78:
  1213  		yyDollar = yyS[yypt-8 : yypt+1]
  1214  		//line a.y:424
  1215  		{
  1216  			var g obj.Addr
  1217  			g = nullgen
  1218  			g.Type = obj.TYPE_CONST
  1219  			g.Offset = yyDollar[2].lval
  1220  			outcode(int(yyDollar[1].lval), &g, int(REG_R0+yyDollar[4].lval), &yyDollar[7].addr)
  1221  		}
  1222  	case 79:
  1223  		yyDollar = yyS[yypt-4 : yypt+1]
  1224  		//line a.y:435
  1225  		{
  1226  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &nullgen)
  1227  		}
  1228  	case 80:
  1229  		yyDollar = yyS[yypt-4 : yypt+1]
  1230  		//line a.y:439
  1231  		{
  1232  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &nullgen)
  1233  		}
  1234  	case 81:
  1235  		yyDollar = yyS[yypt-3 : yypt+1]
  1236  		//line a.y:443
  1237  		{
  1238  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &nullgen)
  1239  		}
  1240  	case 82:
  1241  		yyDollar = yyS[yypt-2 : yypt+1]
  1242  		//line a.y:447
  1243  		{
  1244  			outcode(int(yyDollar[1].lval), &nullgen, 0, &nullgen)
  1245  		}
  1246  	case 83:
  1247  		yyDollar = yyS[yypt-4 : yypt+1]
  1248  		//line a.y:454
  1249  		{
  1250  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1251  		}
  1252  	case 84:
  1253  		yyDollar = yyS[yypt-4 : yypt+1]
  1254  		//line a.y:458
  1255  		{
  1256  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1257  		}
  1258  	case 85:
  1259  		yyDollar = yyS[yypt-6 : yypt+1]
  1260  		//line a.y:462
  1261  		{
  1262  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].addr.Reg), &yyDollar[6].addr)
  1263  		}
  1264  	case 86:
  1265  		yyDollar = yyS[yypt-8 : yypt+1]
  1266  		//line a.y:466
  1267  		{
  1268  			outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].addr.Reg), &yyDollar[6].addr, &yyDollar[8].addr)
  1269  		}
  1270  	case 87:
  1271  		yyDollar = yyS[yypt-4 : yypt+1]
  1272  		//line a.y:470
  1273  		{
  1274  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1275  		}
  1276  	case 88:
  1277  		yyDollar = yyS[yypt-6 : yypt+1]
  1278  		//line a.y:474
  1279  		{
  1280  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[6].addr.Reg), &yyDollar[4].addr)
  1281  		}
  1282  	case 89:
  1283  		yyDollar = yyS[yypt-4 : yypt+1]
  1284  		//line a.y:481
  1285  		{
  1286  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1287  		}
  1288  	case 90:
  1289  		yyDollar = yyS[yypt-4 : yypt+1]
  1290  		//line a.y:485
  1291  		{
  1292  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1293  		}
  1294  	case 91:
  1295  		yyDollar = yyS[yypt-6 : yypt+1]
  1296  		//line a.y:489
  1297  		{
  1298  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[6].addr.Reg), &yyDollar[4].addr)
  1299  		}
  1300  	case 92:
  1301  		yyDollar = yyS[yypt-6 : yypt+1]
  1302  		//line a.y:493
  1303  		{
  1304  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[6].addr.Reg), &yyDollar[4].addr)
  1305  		}
  1306  	case 93:
  1307  		yyDollar = yyS[yypt-8 : yypt+1]
  1308  		//line a.y:500
  1309  		{
  1310  			outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].addr.Reg), &yyDollar[6].addr, &yyDollar[8].addr)
  1311  		}
  1312  	case 94:
  1313  		yyDollar = yyS[yypt-8 : yypt+1]
  1314  		//line a.y:504
  1315  		{
  1316  			outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].addr.Reg), &yyDollar[6].addr, &yyDollar[8].addr)
  1317  		}
  1318  	case 95:
  1319  		yyDollar = yyS[yypt-8 : yypt+1]
  1320  		//line a.y:508
  1321  		{
  1322  			outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].addr.Reg), &yyDollar[6].addr, &yyDollar[8].addr)
  1323  		}
  1324  	case 96:
  1325  		yyDollar = yyS[yypt-8 : yypt+1]
  1326  		//line a.y:512
  1327  		{
  1328  			outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].addr.Reg), &yyDollar[6].addr, &yyDollar[8].addr)
  1329  		}
  1330  	case 97:
  1331  		yyDollar = yyS[yypt-4 : yypt+1]
  1332  		//line a.y:519
  1333  		{
  1334  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1335  		}
  1336  	case 98:
  1337  		yyDollar = yyS[yypt-4 : yypt+1]
  1338  		//line a.y:523
  1339  		{
  1340  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1341  		}
  1342  	case 99:
  1343  		yyDollar = yyS[yypt-4 : yypt+1]
  1344  		//line a.y:531
  1345  		{
  1346  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1347  		}
  1348  	case 100:
  1349  		yyDollar = yyS[yypt-6 : yypt+1]
  1350  		//line a.y:535
  1351  		{
  1352  			outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr, &yyDollar[6].addr)
  1353  		}
  1354  	case 101:
  1355  		yyDollar = yyS[yypt-4 : yypt+1]
  1356  		//line a.y:539
  1357  		{
  1358  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1359  		}
  1360  	case 102:
  1361  		yyDollar = yyS[yypt-6 : yypt+1]
  1362  		//line a.y:543
  1363  		{
  1364  			outgcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr, &yyDollar[6].addr)
  1365  		}
  1366  	case 103:
  1367  		yyDollar = yyS[yypt-4 : yypt+1]
  1368  		//line a.y:547
  1369  		{
  1370  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1371  		}
  1372  	case 104:
  1373  		yyDollar = yyS[yypt-4 : yypt+1]
  1374  		//line a.y:551
  1375  		{
  1376  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1377  		}
  1378  	case 105:
  1379  		yyDollar = yyS[yypt-2 : yypt+1]
  1380  		//line a.y:555
  1381  		{
  1382  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &nullgen)
  1383  		}
  1384  	case 106:
  1385  		yyDollar = yyS[yypt-2 : yypt+1]
  1386  		//line a.y:562
  1387  		{
  1388  			outcode(int(yyDollar[1].lval), &nullgen, 0, &nullgen)
  1389  		}
  1390  	case 107:
  1391  		yyDollar = yyS[yypt-3 : yypt+1]
  1392  		//line a.y:566
  1393  		{
  1394  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &nullgen)
  1395  		}
  1396  	case 108:
  1397  		yyDollar = yyS[yypt-3 : yypt+1]
  1398  		//line a.y:570
  1399  		{
  1400  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &nullgen)
  1401  		}
  1402  	case 109:
  1403  		yyDollar = yyS[yypt-3 : yypt+1]
  1404  		//line a.y:574
  1405  		{
  1406  			outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[3].addr)
  1407  		}
  1408  	case 110:
  1409  		yyDollar = yyS[yypt-3 : yypt+1]
  1410  		//line a.y:578
  1411  		{
  1412  			outcode(int(yyDollar[1].lval), &nullgen, 0, &yyDollar[3].addr)
  1413  		}
  1414  	case 111:
  1415  		yyDollar = yyS[yypt-2 : yypt+1]
  1416  		//line a.y:582
  1417  		{
  1418  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &nullgen)
  1419  		}
  1420  	case 112:
  1421  		yyDollar = yyS[yypt-3 : yypt+1]
  1422  		//line a.y:589
  1423  		{
  1424  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &nullgen)
  1425  		}
  1426  	case 113:
  1427  		yyDollar = yyS[yypt-3 : yypt+1]
  1428  		//line a.y:593
  1429  		{
  1430  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &nullgen)
  1431  		}
  1432  	case 114:
  1433  		yyDollar = yyS[yypt-4 : yypt+1]
  1434  		//line a.y:600
  1435  		{
  1436  			if yyDollar[2].addr.Type != obj.TYPE_CONST || yyDollar[4].addr.Type != obj.TYPE_CONST {
  1437  				yyerror("arguments to PCDATA must be integer constants")
  1438  			}
  1439  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1440  		}
  1441  	case 115:
  1442  		yyDollar = yyS[yypt-4 : yypt+1]
  1443  		//line a.y:610
  1444  		{
  1445  			if yyDollar[2].addr.Type != obj.TYPE_CONST {
  1446  				yyerror("index for FUNCDATA must be integer constant")
  1447  			}
  1448  			if yyDollar[4].addr.Type != obj.TYPE_MEM || (yyDollar[4].addr.Name != obj.NAME_EXTERN && yyDollar[4].addr.Name != obj.NAME_STATIC) {
  1449  				yyerror("value for FUNCDATA must be symbol reference")
  1450  			}
  1451  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1452  		}
  1453  	case 116:
  1454  		yyDollar = yyS[yypt-2 : yypt+1]
  1455  		//line a.y:623
  1456  		{
  1457  			outcode(int(yyDollar[1].lval), &nullgen, 0, &nullgen)
  1458  		}
  1459  	case 117:
  1460  		yyDollar = yyS[yypt-5 : yypt+1]
  1461  		//line a.y:630
  1462  		{
  1463  			asm.Settext(yyDollar[2].addr.Sym)
  1464  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[5].addr)
  1465  		}
  1466  	case 118:
  1467  		yyDollar = yyS[yypt-7 : yypt+1]
  1468  		//line a.y:635
  1469  		{
  1470  			asm.Settext(yyDollar[2].addr.Sym)
  1471  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[7].addr)
  1472  			if asm.Pass > 1 {
  1473  				lastpc.From3.Type = obj.TYPE_CONST
  1474  				lastpc.From3.Offset = yyDollar[4].lval
  1475  			}
  1476  		}
  1477  	case 119:
  1478  		yyDollar = yyS[yypt-4 : yypt+1]
  1479  		//line a.y:647
  1480  		{
  1481  			asm.Settext(yyDollar[2].addr.Sym)
  1482  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
  1483  		}
  1484  	case 120:
  1485  		yyDollar = yyS[yypt-6 : yypt+1]
  1486  		//line a.y:652
  1487  		{
  1488  			asm.Settext(yyDollar[2].addr.Sym)
  1489  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[6].addr)
  1490  			if asm.Pass > 1 {
  1491  				lastpc.From3.Type = obj.TYPE_CONST
  1492  				lastpc.From3.Offset = yyDollar[4].lval
  1493  			}
  1494  		}
  1495  	case 121:
  1496  		yyDollar = yyS[yypt-6 : yypt+1]
  1497  		//line a.y:665
  1498  		{
  1499  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[6].addr)
  1500  			if asm.Pass > 1 {
  1501  				lastpc.From3.Type = obj.TYPE_CONST
  1502  				lastpc.From3.Offset = yyDollar[4].lval
  1503  			}
  1504  		}
  1505  	case 122:
  1506  		yyDollar = yyS[yypt-6 : yypt+1]
  1507  		//line a.y:673
  1508  		{
  1509  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[6].addr)
  1510  			if asm.Pass > 1 {
  1511  				lastpc.From3.Type = obj.TYPE_CONST
  1512  				lastpc.From3.Offset = yyDollar[4].lval
  1513  			}
  1514  		}
  1515  	case 123:
  1516  		yyDollar = yyS[yypt-6 : yypt+1]
  1517  		//line a.y:681
  1518  		{
  1519  			outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[6].addr)
  1520  			if asm.Pass > 1 {
  1521  				lastpc.From3.Type = obj.TYPE_CONST
  1522  				lastpc.From3.Offset = yyDollar[4].lval
  1523  			}
  1524  		}
  1525  	case 124:
  1526  		yyDollar = yyS[yypt-2 : yypt+1]
  1527  		//line a.y:692
  1528  		{
  1529  			outcode(int(yyDollar[1].lval), &nullgen, 0, &nullgen)
  1530  		}
  1531  	case 125:
  1532  		yyDollar = yyS[yypt-4 : yypt+1]
  1533  		//line a.y:698
  1534  		{
  1535  			yyVAL.addr = nullgen
  1536  			yyVAL.addr.Type = obj.TYPE_BRANCH
  1537  			yyVAL.addr.Offset = yyDollar[1].lval + int64(asm.PC)
  1538  		}
  1539  	case 126:
  1540  		yyDollar = yyS[yypt-2 : yypt+1]
  1541  		//line a.y:704
  1542  		{
  1543  			yyDollar[1].sym = asm.LabelLookup(yyDollar[1].sym)
  1544  			yyVAL.addr = nullgen
  1545  			if asm.Pass == 2 && yyDollar[1].sym.Type != LLAB {
  1546  				yyerror("undefined label: %s", yyDollar[1].sym.Labelname)
  1547  			}
  1548  			yyVAL.addr.Type = obj.TYPE_BRANCH
  1549  			yyVAL.addr.Offset = yyDollar[1].sym.Value + yyDollar[2].lval
  1550  		}
  1551  	case 127:
  1552  		yyDollar = yyS[yypt-1 : yypt+1]
  1553  		//line a.y:716
  1554  		{
  1555  			yyVAL.addr = nullgen
  1556  			yyVAL.addr.Type = obj.TYPE_REG
  1557  			yyVAL.addr.Reg = int16(yyDollar[1].lval)
  1558  		}
  1559  	case 128:
  1560  		yyVAL.addr = yyS[yypt-0].addr
  1561  	case 129:
  1562  		yyVAL.addr = yyS[yypt-0].addr
  1563  	case 130:
  1564  		yyDollar = yyS[yypt-1 : yypt+1]
  1565  		//line a.y:728
  1566  		{
  1567  			yyVAL.addr = nullgen
  1568  			yyVAL.addr.Type = obj.TYPE_REG
  1569  			yyVAL.addr.Reg = int16(yyDollar[1].lval)
  1570  		}
  1571  	case 131:
  1572  		yyDollar = yyS[yypt-1 : yypt+1]
  1573  		//line a.y:736
  1574  		{
  1575  			yyVAL.addr = nullgen
  1576  			yyVAL.addr.Type = obj.TYPE_REG
  1577  			yyVAL.addr.Reg = int16(yyDollar[1].lval) /* whole register */
  1578  		}
  1579  	case 132:
  1580  		yyDollar = yyS[yypt-1 : yypt+1]
  1581  		//line a.y:743
  1582  		{
  1583  			yyVAL.addr = nullgen
  1584  			yyVAL.addr.Type = obj.TYPE_REG
  1585  			yyVAL.addr.Reg = int16(yyDollar[1].lval)
  1586  		}
  1587  	case 133:
  1588  		yyDollar = yyS[yypt-1 : yypt+1]
  1589  		//line a.y:751
  1590  		{
  1591  			yyVAL.addr = nullgen
  1592  			yyVAL.addr.Type = obj.TYPE_REG
  1593  			yyVAL.addr.Reg = int16(yyDollar[1].lval)
  1594  		}
  1595  	case 134:
  1596  		yyDollar = yyS[yypt-1 : yypt+1]
  1597  		//line a.y:759
  1598  		{
  1599  			yyVAL.addr = nullgen
  1600  			yyVAL.addr.Type = obj.TYPE_REG
  1601  			yyVAL.addr.Reg = int16(yyDollar[1].lval)
  1602  		}
  1603  	case 135:
  1604  		yyDollar = yyS[yypt-4 : yypt+1]
  1605  		//line a.y:765
  1606  		{
  1607  			if yyDollar[3].lval < 0 || yyDollar[3].lval >= 1024 {
  1608  				yyerror("SPR/DCR out of range")
  1609  			}
  1610  			yyVAL.addr = nullgen
  1611  			yyVAL.addr.Type = obj.TYPE_REG
  1612  			yyVAL.addr.Reg = int16(yyDollar[1].lval + yyDollar[3].lval)
  1613  		}
  1614  	case 136:
  1615  		yyVAL.addr = yyS[yypt-0].addr
  1616  	case 137:
  1617  		yyDollar = yyS[yypt-1 : yypt+1]
  1618  		//line a.y:777
  1619  		{
  1620  			yyVAL.addr = nullgen
  1621  			yyVAL.addr.Type = obj.TYPE_REG
  1622  			yyVAL.addr.Reg = int16(yyDollar[1].lval)
  1623  		}
  1624  	case 138:
  1625  		yyDollar = yyS[yypt-1 : yypt+1]
  1626  		//line a.y:785
  1627  		{
  1628  			yyVAL.addr = nullgen
  1629  			yyVAL.addr.Type = obj.TYPE_REG
  1630  			yyVAL.addr.Reg = int16(yyDollar[1].lval)
  1631  		}
  1632  	case 139:
  1633  		yyDollar = yyS[yypt-4 : yypt+1]
  1634  		//line a.y:791
  1635  		{
  1636  			yyVAL.addr = nullgen
  1637  			yyVAL.addr.Type = obj.TYPE_REG
  1638  			yyVAL.addr.Reg = int16(REG_F0 + yyDollar[3].lval)
  1639  		}
  1640  	case 140:
  1641  		yyDollar = yyS[yypt-1 : yypt+1]
  1642  		//line a.y:799
  1643  		{
  1644  			yyVAL.addr = nullgen
  1645  			yyVAL.addr.Type = obj.TYPE_REG
  1646  			yyVAL.addr.Reg = int16(yyDollar[1].lval)
  1647  		}
  1648  	case 141:
  1649  		yyDollar = yyS[yypt-4 : yypt+1]
  1650  		//line a.y:805
  1651  		{
  1652  			yyVAL.addr = nullgen
  1653  			yyVAL.addr.Type = obj.TYPE_REG
  1654  			yyVAL.addr.Reg = int16(REG_CR0 + yyDollar[3].lval)
  1655  		}
  1656  	case 142:
  1657  		yyDollar = yyS[yypt-1 : yypt+1]
  1658  		//line a.y:813
  1659  		{
  1660  			yyVAL.addr = nullgen
  1661  			yyVAL.addr.Type = obj.TYPE_REG
  1662  			yyVAL.addr.Reg = int16(yyDollar[1].lval)
  1663  		}
  1664  	case 143:
  1665  		yyDollar = yyS[yypt-3 : yypt+1]
  1666  		//line a.y:821
  1667  		{
  1668  			var mb, me int
  1669  			var v uint32
  1670  
  1671  			yyVAL.addr = nullgen
  1672  			yyVAL.addr.Type = obj.TYPE_CONST
  1673  			mb = int(yyDollar[1].lval)
  1674  			me = int(yyDollar[3].lval)
  1675  			if mb < 0 || mb > 31 || me < 0 || me > 31 {
  1676  				yyerror("illegal mask start/end value(s)")
  1677  				mb = 0
  1678  				me = 0
  1679  			}
  1680  			if mb <= me {
  1681  				v = (^uint32(0) >> uint(mb)) & (^uint32(0) << uint(31-me))
  1682  			} else {
  1683  				v = (^uint32(0) >> uint(me+1)) & (^uint32(0) << uint(31-(mb-1)))
  1684  			}
  1685  			yyVAL.addr.Offset = int64(v)
  1686  		}
  1687  	case 144:
  1688  		yyDollar = yyS[yypt-1 : yypt+1]
  1689  		//line a.y:844
  1690  		{
  1691  			yyVAL.addr = nullgen
  1692  			yyVAL.addr.Type = obj.TYPE_TEXTSIZE
  1693  			yyVAL.addr.Offset = int64(yyDollar[1].lval)
  1694  			yyVAL.addr.Val = int32(obj.ArgsSizeUnknown)
  1695  		}
  1696  	case 145:
  1697  		yyDollar = yyS[yypt-2 : yypt+1]
  1698  		//line a.y:851
  1699  		{
  1700  			yyVAL.addr = nullgen
  1701  			yyVAL.addr.Type = obj.TYPE_TEXTSIZE
  1702  			yyVAL.addr.Offset = -int64(yyDollar[2].lval)
  1703  			yyVAL.addr.Val = int32(obj.ArgsSizeUnknown)
  1704  		}
  1705  	case 146:
  1706  		yyDollar = yyS[yypt-3 : yypt+1]
  1707  		//line a.y:858
  1708  		{
  1709  			yyVAL.addr = nullgen
  1710  			yyVAL.addr.Type = obj.TYPE_TEXTSIZE
  1711  			yyVAL.addr.Offset = int64(yyDollar[1].lval)
  1712  			yyVAL.addr.Val = int32(yyDollar[3].lval)
  1713  		}
  1714  	case 147:
  1715  		yyDollar = yyS[yypt-4 : yypt+1]
  1716  		//line a.y:865
  1717  		{
  1718  			yyVAL.addr = nullgen
  1719  			yyVAL.addr.Type = obj.TYPE_TEXTSIZE
  1720  			yyVAL.addr.Offset = -int64(yyDollar[2].lval)
  1721  			yyVAL.addr.Val = int32(yyDollar[4].lval)
  1722  		}
  1723  	case 148:
  1724  		yyDollar = yyS[yypt-2 : yypt+1]
  1725  		//line a.y:874
  1726  		{
  1727  			yyVAL.addr = yyDollar[2].addr
  1728  			yyVAL.addr.Type = obj.TYPE_ADDR
  1729  		}
  1730  	case 149:
  1731  		yyDollar = yyS[yypt-2 : yypt+1]
  1732  		//line a.y:879
  1733  		{
  1734  			yyVAL.addr = nullgen
  1735  			yyVAL.addr.Type = obj.TYPE_SCONST
  1736  			yyVAL.addr.Val = yyDollar[2].sval
  1737  		}
  1738  	case 150:
  1739  		yyDollar = yyS[yypt-2 : yypt+1]
  1740  		//line a.y:887
  1741  		{
  1742  			yyVAL.addr = nullgen
  1743  			yyVAL.addr.Type = obj.TYPE_FCONST
  1744  			yyVAL.addr.Val = yyDollar[2].dval
  1745  		}
  1746  	case 151:
  1747  		yyDollar = yyS[yypt-3 : yypt+1]
  1748  		//line a.y:893
  1749  		{
  1750  			yyVAL.addr = nullgen
  1751  			yyVAL.addr.Type = obj.TYPE_FCONST
  1752  			yyVAL.addr.Val = -yyDollar[3].dval
  1753  		}
  1754  	case 152:
  1755  		yyDollar = yyS[yypt-2 : yypt+1]
  1756  		//line a.y:900
  1757  		{
  1758  			yyVAL.addr = nullgen
  1759  			yyVAL.addr.Type = obj.TYPE_CONST
  1760  			yyVAL.addr.Offset = yyDollar[2].lval
  1761  		}
  1762  	case 153:
  1763  		yyVAL.lval = yyS[yypt-0].lval
  1764  	case 154:
  1765  		yyDollar = yyS[yypt-4 : yypt+1]
  1766  		//line a.y:909
  1767  		{
  1768  			if yyVAL.lval < 0 || yyVAL.lval >= NREG {
  1769  				print("register value out of range\n")
  1770  			}
  1771  			yyVAL.lval = REG_R0 + yyDollar[3].lval
  1772  		}
  1773  	case 155:
  1774  		yyDollar = yyS[yypt-3 : yypt+1]
  1775  		//line a.y:918
  1776  		{
  1777  			yyVAL.addr = nullgen
  1778  			yyVAL.addr.Type = obj.TYPE_MEM
  1779  			yyVAL.addr.Reg = int16(yyDollar[2].lval)
  1780  			yyVAL.addr.Offset = 0
  1781  		}
  1782  	case 156:
  1783  		yyDollar = yyS[yypt-5 : yypt+1]
  1784  		//line a.y:925
  1785  		{
  1786  			yyVAL.addr = nullgen
  1787  			yyVAL.addr.Type = obj.TYPE_MEM
  1788  			yyVAL.addr.Reg = int16(yyDollar[2].lval)
  1789  			yyVAL.addr.Scale = int16(yyDollar[4].lval)
  1790  			yyVAL.addr.Offset = 0
  1791  		}
  1792  	case 157:
  1793  		yyVAL.addr = yyS[yypt-0].addr
  1794  	case 158:
  1795  		yyDollar = yyS[yypt-4 : yypt+1]
  1796  		//line a.y:936
  1797  		{
  1798  			yyVAL.addr = nullgen
  1799  			yyVAL.addr.Type = obj.TYPE_MEM
  1800  			yyVAL.addr.Reg = int16(yyDollar[3].lval)
  1801  			yyVAL.addr.Offset = yyDollar[1].lval
  1802  		}
  1803  	case 159:
  1804  		yyDollar = yyS[yypt-4 : yypt+1]
  1805  		//line a.y:945
  1806  		{
  1807  			yyVAL.addr = nullgen
  1808  			yyVAL.addr.Type = obj.TYPE_MEM
  1809  			yyVAL.addr.Name = int8(yyDollar[3].lval)
  1810  			yyVAL.addr.Sym = nil
  1811  			yyVAL.addr.Offset = yyDollar[1].lval
  1812  		}
  1813  	case 160:
  1814  		yyDollar = yyS[yypt-5 : yypt+1]
  1815  		//line a.y:953
  1816  		{
  1817  			yyVAL.addr = nullgen
  1818  			yyVAL.addr.Type = obj.TYPE_MEM
  1819  			yyVAL.addr.Name = int8(yyDollar[4].lval)
  1820  			yyVAL.addr.Sym = obj.Linklookup(asm.Ctxt, yyDollar[1].sym.Name, 0)
  1821  			yyVAL.addr.Offset = yyDollar[2].lval
  1822  		}
  1823  	case 161:
  1824  		yyDollar = yyS[yypt-7 : yypt+1]
  1825  		//line a.y:961
  1826  		{
  1827  			yyVAL.addr = nullgen
  1828  			yyVAL.addr.Type = obj.TYPE_MEM
  1829  			yyVAL.addr.Name = obj.NAME_STATIC
  1830  			yyVAL.addr.Sym = obj.Linklookup(asm.Ctxt, yyDollar[1].sym.Name, 1)
  1831  			yyVAL.addr.Offset = yyDollar[4].lval
  1832  		}
  1833  	case 164:
  1834  		yyDollar = yyS[yypt-0 : yypt+1]
  1835  		//line a.y:973
  1836  		{
  1837  			yyVAL.lval = 0
  1838  		}
  1839  	case 165:
  1840  		yyDollar = yyS[yypt-2 : yypt+1]
  1841  		//line a.y:977
  1842  		{
  1843  			yyVAL.lval = yyDollar[2].lval
  1844  		}
  1845  	case 166:
  1846  		yyDollar = yyS[yypt-2 : yypt+1]
  1847  		//line a.y:981
  1848  		{
  1849  			yyVAL.lval = -yyDollar[2].lval
  1850  		}
  1851  	case 167:
  1852  		yyVAL.lval = yyS[yypt-0].lval
  1853  	case 168:
  1854  		yyVAL.lval = yyS[yypt-0].lval
  1855  	case 169:
  1856  		yyVAL.lval = yyS[yypt-0].lval
  1857  	case 170:
  1858  		yyVAL.lval = yyS[yypt-0].lval
  1859  	case 171:
  1860  		yyDollar = yyS[yypt-1 : yypt+1]
  1861  		//line a.y:993
  1862  		{
  1863  			yyVAL.lval = yyDollar[1].sym.Value
  1864  		}
  1865  	case 172:
  1866  		yyDollar = yyS[yypt-2 : yypt+1]
  1867  		//line a.y:997
  1868  		{
  1869  			yyVAL.lval = -yyDollar[2].lval
  1870  		}
  1871  	case 173:
  1872  		yyDollar = yyS[yypt-2 : yypt+1]
  1873  		//line a.y:1001
  1874  		{
  1875  			yyVAL.lval = yyDollar[2].lval
  1876  		}
  1877  	case 174:
  1878  		yyDollar = yyS[yypt-2 : yypt+1]
  1879  		//line a.y:1005
  1880  		{
  1881  			yyVAL.lval = ^yyDollar[2].lval
  1882  		}
  1883  	case 175:
  1884  		yyDollar = yyS[yypt-3 : yypt+1]
  1885  		//line a.y:1009
  1886  		{
  1887  			yyVAL.lval = yyDollar[2].lval
  1888  		}
  1889  	case 176:
  1890  		yyVAL.lval = yyS[yypt-0].lval
  1891  	case 177:
  1892  		yyDollar = yyS[yypt-3 : yypt+1]
  1893  		//line a.y:1016
  1894  		{
  1895  			yyVAL.lval = yyDollar[1].lval + yyDollar[3].lval
  1896  		}
  1897  	case 178:
  1898  		yyDollar = yyS[yypt-3 : yypt+1]
  1899  		//line a.y:1020
  1900  		{
  1901  			yyVAL.lval = yyDollar[1].lval - yyDollar[3].lval
  1902  		}
  1903  	case 179:
  1904  		yyDollar = yyS[yypt-3 : yypt+1]
  1905  		//line a.y:1024
  1906  		{
  1907  			yyVAL.lval = yyDollar[1].lval * yyDollar[3].lval
  1908  		}
  1909  	case 180:
  1910  		yyDollar = yyS[yypt-3 : yypt+1]
  1911  		//line a.y:1028
  1912  		{
  1913  			yyVAL.lval = yyDollar[1].lval / yyDollar[3].lval
  1914  		}
  1915  	case 181:
  1916  		yyDollar = yyS[yypt-3 : yypt+1]
  1917  		//line a.y:1032
  1918  		{
  1919  			yyVAL.lval = yyDollar[1].lval % yyDollar[3].lval
  1920  		}
  1921  	case 182:
  1922  		yyDollar = yyS[yypt-4 : yypt+1]
  1923  		//line a.y:1036
  1924  		{
  1925  			yyVAL.lval = yyDollar[1].lval << uint(yyDollar[4].lval)
  1926  		}
  1927  	case 183:
  1928  		yyDollar = yyS[yypt-4 : yypt+1]
  1929  		//line a.y:1040
  1930  		{
  1931  			yyVAL.lval = yyDollar[1].lval >> uint(yyDollar[4].lval)
  1932  		}
  1933  	case 184:
  1934  		yyDollar = yyS[yypt-3 : yypt+1]
  1935  		//line a.y:1044
  1936  		{
  1937  			yyVAL.lval = yyDollar[1].lval & yyDollar[3].lval
  1938  		}
  1939  	case 185:
  1940  		yyDollar = yyS[yypt-3 : yypt+1]
  1941  		//line a.y:1048
  1942  		{
  1943  			yyVAL.lval = yyDollar[1].lval ^ yyDollar[3].lval
  1944  		}
  1945  	case 186:
  1946  		yyDollar = yyS[yypt-3 : yypt+1]
  1947  		//line a.y:1052
  1948  		{
  1949  			yyVAL.lval = yyDollar[1].lval | yyDollar[3].lval
  1950  		}
  1951  	}
  1952  	goto yystack /* stack new state and value */
  1953  }