aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/6a/y.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/6a/y.go')
-rw-r--r--src/cmd/6a/y.go1330
1 files changed, 1330 insertions, 0 deletions
diff --git a/src/cmd/6a/y.go b/src/cmd/6a/y.go
new file mode 100644
index 0000000000..0b78d2e1e2
--- /dev/null
+++ b/src/cmd/6a/y.go
@@ -0,0 +1,1330 @@
+//line a.y:32
+package main
+
+import __yyfmt__ "fmt"
+
+//line a.y:32
+import (
+ "cmd/internal/asm"
+ "cmd/internal/obj"
+ "cmd/internal/obj/x86"
+)
+
+//line a.y:41
+type yySymType struct {
+ yys int
+ sym *asm.Sym
+ lval int64
+ dval float64
+ sval string
+ addr obj.Addr
+ addr2 Addr2
+}
+
+const LTYPE0 = 57346
+const LTYPE1 = 57347
+const LTYPE2 = 57348
+const LTYPE3 = 57349
+const LTYPE4 = 57350
+const LTYPEC = 57351
+const LTYPED = 57352
+const LTYPEN = 57353
+const LTYPER = 57354
+const LTYPET = 57355
+const LTYPEG = 57356
+const LTYPEPC = 57357
+const LTYPES = 57358
+const LTYPEM = 57359
+const LTYPEI = 57360
+const LTYPEXC = 57361
+const LTYPEX = 57362
+const LTYPERT = 57363
+const LTYPEF = 57364
+const LCONST = 57365
+const LFP = 57366
+const LPC = 57367
+const LSB = 57368
+const LBREG = 57369
+const LLREG = 57370
+const LSREG = 57371
+const LFREG = 57372
+const LMREG = 57373
+const LXREG = 57374
+const LFCONST = 57375
+const LSCONST = 57376
+const LSP = 57377
+const LNAME = 57378
+const LLAB = 57379
+const LVAR = 57380
+
+var yyToknames = []string{
+ "'|'",
+ "'^'",
+ "'&'",
+ "'<'",
+ "'>'",
+ "'+'",
+ "'-'",
+ "'*'",
+ "'/'",
+ "'%'",
+ "LTYPE0",
+ "LTYPE1",
+ "LTYPE2",
+ "LTYPE3",
+ "LTYPE4",
+ "LTYPEC",
+ "LTYPED",
+ "LTYPEN",
+ "LTYPER",
+ "LTYPET",
+ "LTYPEG",
+ "LTYPEPC",
+ "LTYPES",
+ "LTYPEM",
+ "LTYPEI",
+ "LTYPEXC",
+ "LTYPEX",
+ "LTYPERT",
+ "LTYPEF",
+ "LCONST",
+ "LFP",
+ "LPC",
+ "LSB",
+ "LBREG",
+ "LLREG",
+ "LSREG",
+ "LFREG",
+ "LMREG",
+ "LXREG",
+ "LFCONST",
+ "LSCONST",
+ "LSP",
+ "LNAME",
+ "LLAB",
+ "LVAR",
+}
+var yyStatenames = []string{}
+
+const yyEofCode = 1
+const yyErrCode = 2
+const yyMaxDepth = 200
+
+//line yacctab:1
+var yyExca = []int{
+ -1, 1,
+ 1, -1,
+ -2, 2,
+}
+
+const yyNprod = 133
+const yyPrivate = 57344
+
+var yyTokenNames []string
+var yyStates []string
+
+const yyLast = 593
+
+var yyAct = []int{
+
+ 52, 227, 41, 3, 80, 208, 269, 64, 123, 50,
+ 51, 79, 54, 170, 268, 74, 267, 118, 85, 72,
+ 83, 263, 73, 255, 253, 98, 241, 84, 81, 239,
+ 237, 100, 102, 112, 221, 219, 112, 210, 209, 171,
+ 240, 107, 234, 62, 211, 174, 143, 138, 65, 207,
+ 111, 119, 115, 113, 112, 231, 67, 169, 120, 121,
+ 122, 249, 230, 92, 94, 96, 128, 226, 225, 224,
+ 104, 106, 74, 58, 57, 154, 136, 112, 129, 85,
+ 153, 83, 151, 150, 139, 141, 149, 148, 84, 81,
+ 140, 147, 142, 146, 145, 144, 63, 55, 58, 57,
+ 137, 43, 45, 48, 44, 46, 49, 40, 135, 47,
+ 69, 134, 56, 127, 155, 40, 34, 37, 53, 31,
+ 59, 32, 55, 35, 33, 223, 176, 177, 222, 217,
+ 60, 215, 220, 112, 120, 243, 114, 56, 74, 242,
+ 216, 236, 183, 76, 173, 59, 58, 57, 256, 166,
+ 168, 251, 252, 192, 194, 196, 167, 112, 112, 112,
+ 112, 112, 195, 184, 112, 112, 112, 264, 58, 57,
+ 55, 212, 257, 248, 197, 198, 199, 200, 201, 182,
+ 120, 204, 205, 206, 218, 56, 42, 114, 152, 38,
+ 65, 76, 55, 59, 190, 191, 184, 261, 260, 166,
+ 168, 229, 258, 112, 112, 75, 167, 56, 89, 235,
+ 36, 71, 65, 76, 238, 59, 108, 109, 254, 213,
+ 232, 233, 125, 126, 228, 244, 247, 203, 245, 88,
+ 124, 181, 125, 126, 246, 158, 159, 160, 175, 250,
+ 202, 25, 185, 186, 187, 188, 189, 16, 15, 6,
+ 110, 259, 7, 2, 1, 262, 156, 157, 158, 159,
+ 160, 265, 266, 105, 9, 10, 11, 12, 13, 17,
+ 28, 18, 14, 29, 30, 26, 19, 20, 21, 22,
+ 23, 24, 27, 58, 57, 82, 165, 164, 163, 161,
+ 162, 156, 157, 158, 159, 160, 4, 103, 8, 101,
+ 5, 99, 97, 58, 57, 95, 93, 55, 91, 87,
+ 77, 43, 45, 48, 44, 46, 49, 68, 66, 47,
+ 86, 61, 56, 70, 214, 0, 78, 55, 53, 0,
+ 59, 43, 45, 48, 44, 46, 49, 172, 0, 47,
+ 60, 0, 56, 58, 57, 82, 0, 65, 53, 0,
+ 59, 43, 45, 48, 44, 46, 49, 0, 0, 47,
+ 0, 0, 0, 58, 57, 0, 0, 55, 0, 0,
+ 0, 43, 45, 48, 44, 46, 49, 0, 0, 47,
+ 86, 0, 56, 58, 57, 0, 0, 55, 53, 0,
+ 59, 43, 45, 48, 44, 46, 49, 0, 0, 47,
+ 60, 0, 56, 58, 57, 0, 90, 55, 53, 0,
+ 59, 43, 45, 48, 44, 46, 49, 58, 133, 47,
+ 60, 0, 56, 0, 0, 0, 39, 55, 53, 0,
+ 59, 43, 45, 48, 44, 46, 49, 58, 57, 47,
+ 60, 55, 56, 0, 58, 57, 0, 0, 53, 0,
+ 59, 131, 130, 0, 60, 0, 56, 58, 57, 0,
+ 0, 55, 132, 0, 59, 0, 116, 0, 55, 58,
+ 57, 0, 0, 117, 0, 0, 56, 0, 0, 0,
+ 0, 55, 76, 56, 59, 58, 179, 0, 193, 76,
+ 0, 59, 0, 55, 75, 0, 56, 58, 57, 0,
+ 0, 0, 76, 180, 59, 0, 0, 0, 56, 55,
+ 0, 58, 57, 0, 76, 0, 59, 0, 0, 178,
+ 0, 55, 0, 0, 56, 0, 0, 0, 0, 0,
+ 76, 0, 59, 0, 60, 55, 56, 0, 0, 0,
+ 0, 0, 53, 0, 59, 0, 0, 0, 0, 0,
+ 56, 0, 0, 0, 0, 0, 76, 0, 59, 165,
+ 164, 163, 161, 162, 156, 157, 158, 159, 160, 164,
+ 163, 161, 162, 156, 157, 158, 159, 160, 163, 161,
+ 162, 156, 157, 158, 159, 160, 161, 162, 156, 157,
+ 158, 159, 160,
+}
+var yyPact = []int{
+
+ -1000, -1000, 250, -1000, 70, -1000, 74, 66, 72, 65,
+ 374, 294, 294, 394, 159, -1000, -1000, 274, 354, 294,
+ 294, 294, 314, -5, -5, -1000, 294, 294, 84, 488,
+ 488, -1000, 502, -1000, -1000, 502, -1000, -1000, -1000, 394,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -2, 428, -3, -1000, -1000, 502, 502, 502,
+ 223, -1000, 61, -1000, -1000, 408, -1000, 59, -1000, 56,
+ -1000, 448, -1000, 48, -7, 213, 502, -1000, 334, -1000,
+ -1000, -1000, 64, -1000, -1000, -8, 223, -1000, -1000, -1000,
+ 394, -1000, 42, -1000, 41, -1000, 39, -1000, 35, -1000,
+ 34, -1000, -1000, -1000, 31, -1000, 30, 176, 28, 23,
+ 250, 555, -1000, 555, -1000, 111, 2, -16, 282, 106,
+ -1000, -1000, -1000, -9, 230, 502, 502, -1000, -1000, -1000,
+ -1000, -1000, 476, 460, 394, 294, -1000, 448, 128, -1000,
+ -1000, -1000, -1000, 161, -9, 394, 394, 394, 394, 394,
+ 294, 294, 502, 435, 137, -1000, 502, 502, 502, 502,
+ 502, 233, 219, 502, 502, 502, -6, -17, -18, -10,
+ 502, -1000, -1000, 208, 95, 213, -1000, -1000, -20, 89,
+ -1000, -1000, -1000, -1000, -21, 79, 76, -1000, 17, 16,
+ -1000, -1000, 15, 191, 10, -1000, 3, 224, 224, -1000,
+ -1000, -1000, 502, 502, 579, 572, 564, -12, 502, -1000,
+ -1000, 103, -25, 502, -26, -1000, -1000, -1000, -14, -1000,
+ -29, -1000, 101, 96, 502, 314, -5, -1000, 216, 140,
+ 8, -5, 247, 247, 113, -31, 207, -1000, -32, -1000,
+ 112, -1000, -1000, -1000, -1000, -1000, -1000, 139, 192, 191,
+ -1000, 187, 186, -1000, 502, -1000, -34, -1000, 134, -1000,
+ 502, 502, -39, -1000, -1000, -41, -49, -1000, -1000, -1000,
+}
+var yyPgo = []int{
+
+ 0, 0, 17, 324, 8, 186, 7, 1, 2, 12,
+ 4, 96, 43, 11, 9, 10, 210, 323, 189, 321,
+ 318, 317, 310, 309, 308, 306, 305, 302, 301, 299,
+ 297, 263, 254, 253, 3, 250, 249, 248, 247, 241,
+}
+var yyR1 = []int{
+
+ 0, 32, 33, 32, 35, 34, 34, 34, 34, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+ 16, 16, 20, 21, 19, 19, 18, 18, 17, 17,
+ 17, 37, 38, 38, 39, 39, 22, 22, 23, 23,
+ 24, 24, 25, 25, 26, 26, 26, 27, 28, 29,
+ 29, 30, 31, 11, 11, 13, 13, 13, 13, 13,
+ 13, 12, 12, 10, 10, 8, 8, 8, 8, 8,
+ 8, 8, 6, 6, 6, 6, 6, 6, 6, 5,
+ 5, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 15, 15, 9, 9, 4, 4, 4, 3,
+ 3, 3, 1, 1, 1, 1, 1, 1, 7, 7,
+ 7, 7, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2,
+}
+var yyR2 = []int{
+
+ 0, 0, 0, 3, 0, 4, 1, 2, 2, 3,
+ 3, 2, 2, 2, 2, 2, 2, 1, 1, 2,
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+ 0, 1, 3, 3, 2, 1, 2, 1, 2, 1,
+ 3, 6, 5, 7, 4, 6, 2, 1, 1, 1,
+ 3, 5, 3, 5, 2, 1, 3, 5, 5, 0,
+ 1, 3, 3, 1, 1, 1, 1, 2, 2, 1,
+ 1, 1, 1, 4, 2, 1, 1, 1, 1, 1,
+ 1, 1, 2, 2, 2, 2, 4, 5, 3, 1,
+ 1, 1, 4, 4, 4, 6, 9, 9, 3, 3,
+ 5, 8, 1, 6, 5, 7, 0, 2, 2, 1,
+ 1, 1, 1, 1, 2, 2, 2, 3, 1, 2,
+ 3, 4, 1, 3, 3, 3, 3, 3, 4, 4,
+ 3, 3, 3,
+}
+var yyChk = []int{
+
+ -1000, -32, -33, -34, 46, 50, -36, 2, 48, 14,
+ 15, 16, 17, 18, 22, -37, -38, 19, 21, 26,
+ 27, 28, 29, 30, 31, -39, 25, 32, 20, 23,
+ 24, 49, 51, 50, 50, 51, -16, 52, -18, 52,
+ -11, -8, -5, 37, 40, 38, 41, 45, 39, 42,
+ -14, -15, -1, 54, -9, 33, 48, 10, 9, 56,
+ 46, -19, -12, -11, -6, 53, -20, -12, -21, -11,
+ -17, 52, -10, -6, -1, 46, 54, -22, 52, -13,
+ -10, -15, 11, -8, -14, -1, 46, -23, -16, -18,
+ 52, -24, -12, -25, -12, -26, -12, -27, -8, -28,
+ -6, -29, -6, -30, -12, -31, -12, -9, -5, -5,
+ -35, -2, -1, -2, -11, 54, 38, 45, -2, 54,
+ -1, -1, -1, -4, 7, 9, 10, 52, -1, -9,
+ 44, 43, 54, 10, 52, 52, -10, 52, 54, -4,
+ -13, -8, -14, 54, -4, 52, 52, 52, 52, 52,
+ 52, 52, 12, 52, 52, -34, 9, 10, 11, 12,
+ 13, 7, 8, 6, 5, 4, 38, 45, 39, 55,
+ 11, 55, 55, 38, 54, 8, -1, -1, 43, 10,
+ 43, -11, -12, -10, 35, -11, -11, -11, -11, -11,
+ -12, -12, -1, 53, -1, -6, -1, -2, -2, -2,
+ -2, -2, 7, 8, -2, -2, -2, 55, 11, 55,
+ 55, 54, -1, 11, -3, 36, 45, 34, -4, 55,
+ 43, 55, 49, 49, 52, 52, 52, -7, 33, 10,
+ 52, 52, -2, -2, 54, -1, 38, 55, -1, 55,
+ 54, 55, 38, 39, -1, -8, -6, 10, 33, 53,
+ -6, 38, 39, 55, 11, 55, 36, 33, 10, -7,
+ 11, 11, -1, 55, 33, -1, -1, 55, 55, 55,
+}
+var yyDef = []int{
+
+ 1, -2, 0, 3, 0, 6, 0, 0, 0, 30,
+ 0, 0, 0, 0, 0, 17, 18, 0, 30, 0,
+ 0, 0, 0, 0, 59, 27, 0, 0, 0, 0,
+ 0, 4, 0, 7, 8, 0, 11, 31, 12, 0,
+ 37, 63, 64, 75, 76, 77, 78, 79, 80, 81,
+ 89, 90, 91, 0, 102, 112, 113, 0, 0, 0,
+ 106, 13, 35, 71, 72, 0, 14, 0, 15, 0,
+ 16, 0, 39, 0, 0, 106, 0, 19, 0, 47,
+ 65, 66, 0, 69, 70, 91, 106, 20, 48, 49,
+ 31, 21, 0, 22, 0, 23, 55, 24, 0, 25,
+ 0, 26, 60, 28, 0, 29, 0, 0, 0, 0,
+ 0, 9, 122, 10, 36, 0, 0, 0, 0, 0,
+ 114, 115, 116, 0, 0, 0, 0, 34, 82, 83,
+ 84, 85, 0, 0, 0, 0, 38, 0, 0, 74,
+ 46, 67, 68, 0, 74, 0, 0, 54, 0, 0,
+ 0, 0, 0, 0, 0, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 98,
+ 0, 99, 117, 0, 0, 106, 107, 108, 0, 0,
+ 88, 32, 33, 40, 0, 50, 52, 56, 0, 0,
+ 61, 62, 0, 0, 0, 44, 0, 123, 124, 125,
+ 126, 127, 0, 0, 130, 131, 132, 92, 0, 93,
+ 94, 0, 0, 0, 0, 109, 110, 111, 0, 86,
+ 0, 73, 0, 0, 0, 0, 0, 42, 118, 0,
+ 0, 0, 128, 129, 0, 0, 0, 100, 0, 104,
+ 0, 87, 51, 53, 57, 58, 41, 0, 119, 0,
+ 45, 0, 0, 95, 0, 103, 0, 120, 0, 43,
+ 0, 0, 0, 105, 121, 0, 0, 101, 96, 97,
+}
+var yyTok1 = []int{
+
+ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 53, 13, 6, 3,
+ 54, 55, 11, 9, 52, 10, 3, 12, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 49, 50,
+ 7, 51, 8, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 5, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 4, 3, 56,
+}
+var yyTok2 = []int{
+
+ 2, 3, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, 48,
+}
+var yyTok3 = []int{
+ 0,
+}
+
+//line yaccpar:1
+
+/* parser for yacc output */
+
+var yyDebug = 0
+
+type yyLexer interface {
+ Lex(lval *yySymType) int
+ Error(s string)
+}
+
+const yyFlag = -1000
+
+func yyTokname(c int) string {
+ // 4 is TOKSTART above
+ if c >= 4 && c-4 < len(yyToknames) {
+ if yyToknames[c-4] != "" {
+ return yyToknames[c-4]
+ }
+ }
+ return __yyfmt__.Sprintf("tok-%v", c)
+}
+
+func yyStatname(s int) string {
+ if s >= 0 && s < len(yyStatenames) {
+ if yyStatenames[s] != "" {
+ return yyStatenames[s]
+ }
+ }
+ return __yyfmt__.Sprintf("state-%v", s)
+}
+
+func yylex1(lex yyLexer, lval *yySymType) int {
+ c := 0
+ char := lex.Lex(lval)
+ if char <= 0 {
+ c = yyTok1[0]
+ goto out
+ }
+ if char < len(yyTok1) {
+ c = yyTok1[char]
+ goto out
+ }
+ if char >= yyPrivate {
+ if char < yyPrivate+len(yyTok2) {
+ c = yyTok2[char-yyPrivate]
+ goto out
+ }
+ }
+ for i := 0; i < len(yyTok3); i += 2 {
+ c = yyTok3[i+0]
+ if c == char {
+ c = yyTok3[i+1]
+ goto out
+ }
+ }
+
+out:
+ if c == 0 {
+ c = yyTok2[1] /* unknown char */
+ }
+ if yyDebug >= 3 {
+ __yyfmt__.Printf("lex %s(%d)\n", yyTokname(c), uint(char))
+ }
+ return c
+}
+
+func yyParse(yylex yyLexer) int {
+ var yyn int
+ var yylval yySymType
+ var yyVAL yySymType
+ yyS := make([]yySymType, yyMaxDepth)
+
+ Nerrs := 0 /* number of errors */
+ Errflag := 0 /* error recovery flag */
+ yystate := 0
+ yychar := -1
+ yyp := -1
+ goto yystack
+
+ret0:
+ return 0
+
+ret1:
+ return 1
+
+yystack:
+ /* put a state and value onto the stack */
+ if yyDebug >= 4 {
+ __yyfmt__.Printf("char %v in %v\n", yyTokname(yychar), yyStatname(yystate))
+ }
+
+ yyp++
+ if yyp >= len(yyS) {
+ nyys := make([]yySymType, len(yyS)*2)
+ copy(nyys, yyS)
+ yyS = nyys
+ }
+ yyS[yyp] = yyVAL
+ yyS[yyp].yys = yystate
+
+yynewstate:
+ yyn = yyPact[yystate]
+ if yyn <= yyFlag {
+ goto yydefault /* simple state */
+ }
+ if yychar < 0 {
+ yychar = yylex1(yylex, &yylval)
+ }
+ yyn += yychar
+ if yyn < 0 || yyn >= yyLast {
+ goto yydefault
+ }
+ yyn = yyAct[yyn]
+ if yyChk[yyn] == yychar { /* valid shift */
+ yychar = -1
+ yyVAL = yylval
+ yystate = yyn
+ if Errflag > 0 {
+ Errflag--
+ }
+ goto yystack
+ }
+
+yydefault:
+ /* default state action */
+ yyn = yyDef[yystate]
+ if yyn == -2 {
+ if yychar < 0 {
+ yychar = yylex1(yylex, &yylval)
+ }
+
+ /* look through exception table */
+ xi := 0
+ for {
+ if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate {
+ break
+ }
+ xi += 2
+ }
+ for xi += 2; ; xi += 2 {
+ yyn = yyExca[xi+0]
+ if yyn < 0 || yyn == yychar {
+ break
+ }
+ }
+ yyn = yyExca[xi+1]
+ if yyn < 0 {
+ goto ret0
+ }
+ }
+ if yyn == 0 {
+ /* error ... attempt to resume parsing */
+ switch Errflag {
+ case 0: /* brand new error */
+ yylex.Error("syntax error")
+ Nerrs++
+ if yyDebug >= 1 {
+ __yyfmt__.Printf("%s", yyStatname(yystate))
+ __yyfmt__.Printf(" saw %s\n", yyTokname(yychar))
+ }
+ fallthrough
+
+ case 1, 2: /* incompletely recovered error ... try again */
+ Errflag = 3
+
+ /* find a state where "error" is a legal shift action */
+ for yyp >= 0 {
+ yyn = yyPact[yyS[yyp].yys] + yyErrCode
+ if yyn >= 0 && yyn < yyLast {
+ yystate = yyAct[yyn] /* simulate a shift of "error" */
+ if yyChk[yystate] == yyErrCode {
+ goto yystack
+ }
+ }
+
+ /* the current p has no shift on "error", pop stack */
+ if yyDebug >= 2 {
+ __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys)
+ }
+ yyp--
+ }
+ /* there is no state on the stack with an error shift ... abort */
+ goto ret1
+
+ case 3: /* no shift yet; clobber input char */
+ if yyDebug >= 2 {
+ __yyfmt__.Printf("error recovery discards %s\n", yyTokname(yychar))
+ }
+ if yychar == yyEofCode {
+ goto ret1
+ }
+ yychar = -1
+ goto yynewstate /* try again in the same state */
+ }
+ }
+
+ /* reduction by production yyn */
+ if yyDebug >= 2 {
+ __yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate))
+ }
+
+ yynt := yyn
+ yypt := yyp
+ _ = yypt // guard against "declared and not used"
+
+ yyp -= yyR2[yyn]
+ // yyp is now the index of $0. Perform the default action. Iff the
+ // reduced production is ε, $1 is possibly out of range.
+ if yyp+1 >= len(yyS) {
+ nyys := make([]yySymType, len(yyS)*2)
+ copy(nyys, yyS)
+ yyS = nyys
+ }
+ yyVAL = yyS[yyp+1]
+
+ /* consult goto table to find next state */
+ yyn = yyR1[yyn]
+ yyg := yyPgo[yyn]
+ yyj := yyg + yyS[yyp].yys + 1
+
+ if yyj >= yyLast {
+ yystate = yyAct[yyg]
+ } else {
+ yystate = yyAct[yyj]
+ if yyChk[yystate] != -yyn {
+ yystate = yyAct[yyg]
+ }
+ }
+ // dummy call; replaced with literal code
+ switch yynt {
+
+ case 2:
+ //line a.y:72
+ {
+ stmtline = asm.Lineno
+ }
+ case 4:
+ //line a.y:79
+ {
+ yyS[yypt-1].sym = asm.LabelLookup(yyS[yypt-1].sym)
+ if yyS[yypt-1].sym.Type == LLAB && yyS[yypt-1].sym.Value != int64(asm.PC) {
+ yyerror("redeclaration of %s (%s)", yyS[yypt-1].sym.Labelname, yyS[yypt-1].sym.Name)
+ }
+ yyS[yypt-1].sym.Type = LLAB
+ yyS[yypt-1].sym.Value = int64(asm.PC)
+ }
+ case 9:
+ //line a.y:94
+ {
+ yyS[yypt-2].sym.Type = LVAR
+ yyS[yypt-2].sym.Value = yyS[yypt-0].lval
+ }
+ case 10:
+ //line a.y:99
+ {
+ if yyS[yypt-2].sym.Value != yyS[yypt-0].lval {
+ yyerror("redeclaration of %s", yyS[yypt-2].sym.Name)
+ }
+ yyS[yypt-2].sym.Value = yyS[yypt-0].lval
+ }
+ case 11:
+ //line a.y:105
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 12:
+ //line a.y:106
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 13:
+ //line a.y:107
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 14:
+ //line a.y:108
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 15:
+ //line a.y:109
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 16:
+ //line a.y:110
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 19:
+ //line a.y:113
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 20:
+ //line a.y:114
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 21:
+ //line a.y:115
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 22:
+ //line a.y:116
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 23:
+ //line a.y:117
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 24:
+ //line a.y:118
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 25:
+ //line a.y:119
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 26:
+ //line a.y:120
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 28:
+ //line a.y:122
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 29:
+ //line a.y:123
+ {
+ outcode(int(yyS[yypt-1].lval), &yyS[yypt-0].addr2)
+ }
+ case 30:
+ //line a.y:126
+ {
+ yyVAL.addr2.from = nullgen
+ yyVAL.addr2.to = nullgen
+ }
+ case 31:
+ //line a.y:131
+ {
+ yyVAL.addr2.from = nullgen
+ yyVAL.addr2.to = nullgen
+ }
+ case 32:
+ //line a.y:138
+ {
+ yyVAL.addr2.from = yyS[yypt-2].addr
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ }
+ case 33:
+ //line a.y:145
+ {
+ yyVAL.addr2.from = yyS[yypt-2].addr
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ }
+ case 34:
+ //line a.y:152
+ {
+ yyVAL.addr2.from = yyS[yypt-1].addr
+ yyVAL.addr2.to = nullgen
+ }
+ case 35:
+ //line a.y:157
+ {
+ yyVAL.addr2.from = yyS[yypt-0].addr
+ yyVAL.addr2.to = nullgen
+ }
+ case 36:
+ //line a.y:164
+ {
+ yyVAL.addr2.from = nullgen
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ }
+ case 37:
+ //line a.y:169
+ {
+ yyVAL.addr2.from = nullgen
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ }
+ case 38:
+ //line a.y:176
+ {
+ yyVAL.addr2.from = nullgen
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ }
+ case 39:
+ //line a.y:181
+ {
+ yyVAL.addr2.from = nullgen
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ }
+ case 40:
+ //line a.y:186
+ {
+ yyVAL.addr2.from = yyS[yypt-2].addr
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ }
+ case 41:
+ //line a.y:193
+ {
+ var a Addr2
+ a.from = yyS[yypt-4].addr
+ a.to = yyS[yypt-0].addr
+ outcode(obj.ADATA, &a)
+ if asm.Pass > 1 {
+ lastpc.From3.Type = obj.TYPE_CONST
+ lastpc.From3.Offset = yyS[yypt-2].lval
+ }
+ }
+ case 42:
+ //line a.y:206
+ {
+ asm.Settext(yyS[yypt-3].addr.Sym)
+ outcode(obj.ATEXT, &Addr2{yyS[yypt-3].addr, yyS[yypt-0].addr})
+ }
+ case 43:
+ //line a.y:211
+ {
+ asm.Settext(yyS[yypt-5].addr.Sym)
+ outcode(obj.ATEXT, &Addr2{yyS[yypt-5].addr, yyS[yypt-0].addr})
+ if asm.Pass > 1 {
+ lastpc.From3.Type = obj.TYPE_CONST
+ lastpc.From3.Offset = yyS[yypt-3].lval
+ }
+ }
+ case 44:
+ //line a.y:222
+ {
+ asm.Settext(yyS[yypt-2].addr.Sym)
+ outcode(obj.AGLOBL, &Addr2{yyS[yypt-2].addr, yyS[yypt-0].addr})
+ }
+ case 45:
+ //line a.y:227
+ {
+ asm.Settext(yyS[yypt-4].addr.Sym)
+ outcode(obj.AGLOBL, &Addr2{yyS[yypt-4].addr, yyS[yypt-0].addr})
+ if asm.Pass > 1 {
+ lastpc.From3.Type = obj.TYPE_CONST
+ lastpc.From3.Offset = yyS[yypt-2].lval
+ }
+ }
+ case 46:
+ //line a.y:238
+ {
+ yyVAL.addr2.from = nullgen
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ }
+ case 47:
+ //line a.y:243
+ {
+ yyVAL.addr2.from = nullgen
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ }
+ case 48:
+ yyVAL.addr2 = yyS[yypt-0].addr2
+ case 49:
+ yyVAL.addr2 = yyS[yypt-0].addr2
+ case 50:
+ //line a.y:254
+ {
+ yyVAL.addr2.from = yyS[yypt-2].addr
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ }
+ case 51:
+ //line a.y:259
+ {
+ yyVAL.addr2.from = yyS[yypt-4].addr
+ yyVAL.addr2.to = yyS[yypt-2].addr
+ if yyVAL.addr2.from.Index != obj.TYPE_NONE {
+ yyerror("dp shift with lhs index")
+ }
+ yyVAL.addr2.from.Index = int16(yyS[yypt-0].lval)
+ }
+ case 52:
+ //line a.y:270
+ {
+ yyVAL.addr2.from = yyS[yypt-2].addr
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ }
+ case 53:
+ //line a.y:275
+ {
+ yyVAL.addr2.from = yyS[yypt-4].addr
+ yyVAL.addr2.to = yyS[yypt-2].addr
+ if yyVAL.addr2.to.Index != obj.TYPE_NONE {
+ yyerror("dp move with lhs index")
+ }
+ yyVAL.addr2.to.Index = int16(yyS[yypt-0].lval)
+ }
+ case 54:
+ //line a.y:286
+ {
+ yyVAL.addr2.from = yyS[yypt-1].addr
+ yyVAL.addr2.to = nullgen
+ }
+ case 55:
+ //line a.y:291
+ {
+ yyVAL.addr2.from = yyS[yypt-0].addr
+ yyVAL.addr2.to = nullgen
+ }
+ case 56:
+ //line a.y:296
+ {
+ yyVAL.addr2.from = yyS[yypt-2].addr
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ }
+ case 57:
+ //line a.y:303
+ {
+ yyVAL.addr2.from = yyS[yypt-4].addr
+ yyVAL.addr2.to = yyS[yypt-2].addr
+ yyVAL.addr2.to.Offset = yyS[yypt-0].lval
+ }
+ case 58:
+ //line a.y:311
+ {
+ yyVAL.addr2.from = yyS[yypt-2].addr
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ if yyS[yypt-4].addr.Type != obj.TYPE_CONST {
+ yyerror("illegal constant")
+ }
+ yyVAL.addr2.to.Offset = yyS[yypt-4].addr.Offset
+ }
+ case 59:
+ //line a.y:321
+ {
+ yyVAL.addr2.from = nullgen
+ yyVAL.addr2.to = nullgen
+ }
+ case 60:
+ //line a.y:326
+ {
+ yyVAL.addr2.from = yyS[yypt-0].addr
+ yyVAL.addr2.to = nullgen
+ }
+ case 61:
+ //line a.y:333
+ {
+ if yyS[yypt-2].addr.Type != obj.TYPE_CONST || yyS[yypt-0].addr.Type != obj.TYPE_CONST {
+ yyerror("arguments to asm.PCDATA must be integer constants")
+ }
+ yyVAL.addr2.from = yyS[yypt-2].addr
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ }
+ case 62:
+ //line a.y:343
+ {
+ if yyS[yypt-2].addr.Type != obj.TYPE_CONST {
+ yyerror("index for FUNCDATA must be integer constant")
+ }
+ if yyS[yypt-0].addr.Type != obj.TYPE_MEM || (yyS[yypt-0].addr.Name != obj.NAME_EXTERN && yyS[yypt-0].addr.Name != obj.NAME_STATIC) {
+ yyerror("value for FUNCDATA must be symbol reference")
+ }
+ yyVAL.addr2.from = yyS[yypt-2].addr
+ yyVAL.addr2.to = yyS[yypt-0].addr
+ }
+ case 63:
+ yyVAL.addr = yyS[yypt-0].addr
+ case 64:
+ yyVAL.addr = yyS[yypt-0].addr
+ case 65:
+ yyVAL.addr = yyS[yypt-0].addr
+ case 66:
+ yyVAL.addr = yyS[yypt-0].addr
+ case 67:
+ //line a.y:362
+ {
+ yyVAL.addr = yyS[yypt-0].addr
+ }
+ case 68:
+ //line a.y:366
+ {
+ yyVAL.addr = yyS[yypt-0].addr
+ }
+ case 69:
+ yyVAL.addr = yyS[yypt-0].addr
+ case 70:
+ yyVAL.addr = yyS[yypt-0].addr
+ case 71:
+ yyVAL.addr = yyS[yypt-0].addr
+ case 72:
+ yyVAL.addr = yyS[yypt-0].addr
+ case 73:
+ //line a.y:378
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_BRANCH
+ yyVAL.addr.Offset = yyS[yypt-3].lval + int64(asm.PC)
+ }
+ case 74:
+ //line a.y:384
+ {
+ yyS[yypt-1].sym = asm.LabelLookup(yyS[yypt-1].sym)
+ yyVAL.addr = nullgen
+ if asm.Pass == 2 && yyS[yypt-1].sym.Type != LLAB {
+ yyerror("undefined label: %s", yyS[yypt-1].sym.Labelname)
+ }
+ yyVAL.addr.Type = obj.TYPE_BRANCH
+ yyVAL.addr.Offset = yyS[yypt-1].sym.Value + yyS[yypt-0].lval
+ }
+ case 75:
+ //line a.y:396
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_REG
+ yyVAL.addr.Reg = int16(yyS[yypt-0].lval)
+ }
+ case 76:
+ //line a.y:402
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_REG
+ yyVAL.addr.Reg = int16(yyS[yypt-0].lval)
+ }
+ case 77:
+ //line a.y:408
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_REG
+ yyVAL.addr.Reg = int16(yyS[yypt-0].lval)
+ }
+ case 78:
+ //line a.y:414
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_REG
+ yyVAL.addr.Reg = int16(yyS[yypt-0].lval)
+ }
+ case 79:
+ //line a.y:420
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_REG
+ yyVAL.addr.Reg = x86.REG_SP
+ }
+ case 80:
+ //line a.y:426
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_REG
+ yyVAL.addr.Reg = int16(yyS[yypt-0].lval)
+ }
+ case 81:
+ //line a.y:432
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_REG
+ yyVAL.addr.Reg = int16(yyS[yypt-0].lval)
+ }
+ case 82:
+ //line a.y:440
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_CONST
+ yyVAL.addr.Offset = yyS[yypt-0].lval
+ }
+ case 83:
+ //line a.y:446
+ {
+ yyVAL.addr = yyS[yypt-0].addr
+ yyVAL.addr.Type = obj.TYPE_ADDR
+ /*
+ if($2.Type == x86.D_AUTO || $2.Type == x86.D_PARAM)
+ yyerror("constant cannot be automatic: %s",
+ $2.sym.Name);
+ */
+ }
+ case 84:
+ //line a.y:455
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_SCONST
+ yyVAL.addr.U.Sval = (yyS[yypt-0].sval + "\x00\x00\x00\x00\x00\x00\x00\x00")[:8]
+ }
+ case 85:
+ //line a.y:461
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_FCONST
+ yyVAL.addr.U.Dval = yyS[yypt-0].dval
+ }
+ case 86:
+ //line a.y:467
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_FCONST
+ yyVAL.addr.U.Dval = yyS[yypt-1].dval
+ }
+ case 87:
+ //line a.y:473
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_FCONST
+ yyVAL.addr.U.Dval = -yyS[yypt-1].dval
+ }
+ case 88:
+ //line a.y:479
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_FCONST
+ yyVAL.addr.U.Dval = -yyS[yypt-0].dval
+ }
+ case 89:
+ yyVAL.addr = yyS[yypt-0].addr
+ case 90:
+ yyVAL.addr = yyS[yypt-0].addr
+ case 91:
+ //line a.y:491
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_MEM
+ yyVAL.addr.Offset = yyS[yypt-0].lval
+ }
+ case 92:
+ //line a.y:497
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_MEM
+ yyVAL.addr.Reg = int16(yyS[yypt-1].lval)
+ yyVAL.addr.Offset = yyS[yypt-3].lval
+ }
+ case 93:
+ //line a.y:504
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_MEM
+ yyVAL.addr.Reg = x86.REG_SP
+ yyVAL.addr.Offset = yyS[yypt-3].lval
+ }
+ case 94:
+ //line a.y:511
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_MEM
+ yyVAL.addr.Reg = int16(yyS[yypt-1].lval)
+ yyVAL.addr.Offset = yyS[yypt-3].lval
+ }
+ case 95:
+ //line a.y:518
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_MEM
+ yyVAL.addr.Offset = yyS[yypt-5].lval
+ yyVAL.addr.Index = int16(yyS[yypt-3].lval)
+ yyVAL.addr.Scale = int8(yyS[yypt-1].lval)
+ checkscale(yyVAL.addr.Scale)
+ }
+ case 96:
+ //line a.y:527
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_MEM
+ yyVAL.addr.Reg = int16(yyS[yypt-6].lval)
+ yyVAL.addr.Offset = yyS[yypt-8].lval
+ yyVAL.addr.Index = int16(yyS[yypt-3].lval)
+ yyVAL.addr.Scale = int8(yyS[yypt-1].lval)
+ checkscale(yyVAL.addr.Scale)
+ }
+ case 97:
+ //line a.y:537
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_MEM
+ yyVAL.addr.Reg = int16(yyS[yypt-6].lval)
+ yyVAL.addr.Offset = yyS[yypt-8].lval
+ yyVAL.addr.Index = int16(yyS[yypt-3].lval)
+ yyVAL.addr.Scale = int8(yyS[yypt-1].lval)
+ checkscale(yyVAL.addr.Scale)
+ }
+ case 98:
+ //line a.y:547
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_MEM
+ yyVAL.addr.Reg = int16(yyS[yypt-1].lval)
+ }
+ case 99:
+ //line a.y:553
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_MEM
+ yyVAL.addr.Reg = x86.REG_SP
+ }
+ case 100:
+ //line a.y:559
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_MEM
+ yyVAL.addr.Index = int16(yyS[yypt-3].lval)
+ yyVAL.addr.Scale = int8(yyS[yypt-1].lval)
+ checkscale(yyVAL.addr.Scale)
+ }
+ case 101:
+ //line a.y:567
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_MEM
+ yyVAL.addr.Reg = int16(yyS[yypt-6].lval)
+ yyVAL.addr.Index = int16(yyS[yypt-3].lval)
+ yyVAL.addr.Scale = int8(yyS[yypt-1].lval)
+ checkscale(yyVAL.addr.Scale)
+ }
+ case 102:
+ //line a.y:578
+ {
+ yyVAL.addr = yyS[yypt-0].addr
+ }
+ case 103:
+ //line a.y:582
+ {
+ yyVAL.addr = yyS[yypt-5].addr
+ yyVAL.addr.Index = int16(yyS[yypt-3].lval)
+ yyVAL.addr.Scale = int8(yyS[yypt-1].lval)
+ checkscale(yyVAL.addr.Scale)
+ }
+ case 104:
+ //line a.y:591
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_MEM
+ yyVAL.addr.Name = int8(yyS[yypt-1].lval)
+ yyVAL.addr.Sym = obj.Linklookup(asm.Ctxt, yyS[yypt-4].sym.Name, 0)
+ yyVAL.addr.Offset = yyS[yypt-3].lval
+ }
+ case 105:
+ //line a.y:599
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_MEM
+ yyVAL.addr.Name = obj.NAME_STATIC
+ yyVAL.addr.Sym = obj.Linklookup(asm.Ctxt, yyS[yypt-6].sym.Name, 1)
+ yyVAL.addr.Offset = yyS[yypt-3].lval
+ }
+ case 106:
+ //line a.y:608
+ {
+ yyVAL.lval = 0
+ }
+ case 107:
+ //line a.y:612
+ {
+ yyVAL.lval = yyS[yypt-0].lval
+ }
+ case 108:
+ //line a.y:616
+ {
+ yyVAL.lval = -yyS[yypt-0].lval
+ }
+ case 109:
+ yyVAL.lval = yyS[yypt-0].lval
+ case 110:
+ //line a.y:623
+ {
+ yyVAL.lval = obj.NAME_AUTO
+ }
+ case 111:
+ yyVAL.lval = yyS[yypt-0].lval
+ case 112:
+ yyVAL.lval = yyS[yypt-0].lval
+ case 113:
+ //line a.y:631
+ {
+ yyVAL.lval = yyS[yypt-0].sym.Value
+ }
+ case 114:
+ //line a.y:635
+ {
+ yyVAL.lval = -yyS[yypt-0].lval
+ }
+ case 115:
+ //line a.y:639
+ {
+ yyVAL.lval = yyS[yypt-0].lval
+ }
+ case 116:
+ //line a.y:643
+ {
+ yyVAL.lval = ^yyS[yypt-0].lval
+ }
+ case 117:
+ //line a.y:647
+ {
+ yyVAL.lval = yyS[yypt-1].lval
+ }
+ case 118:
+ //line a.y:653
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_TEXTSIZE
+ yyVAL.addr.Offset = yyS[yypt-0].lval
+ yyVAL.addr.U.Argsize = obj.ArgsSizeUnknown
+ }
+ case 119:
+ //line a.y:660
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_TEXTSIZE
+ yyVAL.addr.Offset = -yyS[yypt-0].lval
+ yyVAL.addr.U.Argsize = obj.ArgsSizeUnknown
+ }
+ case 120:
+ //line a.y:667
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_TEXTSIZE
+ yyVAL.addr.Offset = yyS[yypt-2].lval
+ yyVAL.addr.U.Argsize = int32(yyS[yypt-0].lval)
+ }
+ case 121:
+ //line a.y:674
+ {
+ yyVAL.addr = nullgen
+ yyVAL.addr.Type = obj.TYPE_TEXTSIZE
+ yyVAL.addr.Offset = -yyS[yypt-2].lval
+ yyVAL.addr.U.Argsize = int32(yyS[yypt-0].lval)
+ }
+ case 122:
+ yyVAL.lval = yyS[yypt-0].lval
+ case 123:
+ //line a.y:684
+ {
+ yyVAL.lval = yyS[yypt-2].lval + yyS[yypt-0].lval
+ }
+ case 124:
+ //line a.y:688
+ {
+ yyVAL.lval = yyS[yypt-2].lval - yyS[yypt-0].lval
+ }
+ case 125:
+ //line a.y:692
+ {
+ yyVAL.lval = yyS[yypt-2].lval * yyS[yypt-0].lval
+ }
+ case 126:
+ //line a.y:696
+ {
+ yyVAL.lval = yyS[yypt-2].lval / yyS[yypt-0].lval
+ }
+ case 127:
+ //line a.y:700
+ {
+ yyVAL.lval = yyS[yypt-2].lval % yyS[yypt-0].lval
+ }
+ case 128:
+ //line a.y:704
+ {
+ yyVAL.lval = yyS[yypt-3].lval << uint(yyS[yypt-0].lval)
+ }
+ case 129:
+ //line a.y:708
+ {
+ yyVAL.lval = yyS[yypt-3].lval >> uint(yyS[yypt-0].lval)
+ }
+ case 130:
+ //line a.y:712
+ {
+ yyVAL.lval = yyS[yypt-2].lval & yyS[yypt-0].lval
+ }
+ case 131:
+ //line a.y:716
+ {
+ yyVAL.lval = yyS[yypt-2].lval ^ yyS[yypt-0].lval
+ }
+ case 132:
+ //line a.y:720
+ {
+ yyVAL.lval = yyS[yypt-2].lval | yyS[yypt-0].lval
+ }
+ }
+ goto yystack /* stack new state and value */
+}