Missed in previous CL, causing build failures.
Change-Id: I60aae5a3139aa009cb643d871d91b9d4c47dcbb8
Reviewed-on: https://go-review.googlesource.com/10538
Reviewed-by: Russ Cox <rsc@golang.org>
{
asm.Settext(yyDollar[2].addr.Sym)
outcode(yyDollar[1].lval, Always, &yyDollar[2].addr, 0, &yyDollar[5].addr)
+ if asm.Pass > 1 {
+ lastpc.From3 = new(obj.Addr)
+ }
}
case 29:
yyDollar = yyS[yypt-7 : yypt+1]
- //line a.y:226
+ //line a.y:229
{
asm.Settext(yyDollar[2].addr.Sym)
outcode(yyDollar[1].lval, Always, &yyDollar[2].addr, 0, &yyDollar[7].addr)
}
case 30:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:239
+ //line a.y:242
{
asm.Settext(yyDollar[2].addr.Sym)
outcode(yyDollar[1].lval, Always, &yyDollar[2].addr, 0, &yyDollar[4].addr)
+ if asm.Pass > 1 {
+ lastpc.From3 = new(obj.Addr)
+ }
}
case 31:
yyDollar = yyS[yypt-6 : yypt+1]
- //line a.y:244
+ //line a.y:250
{
asm.Settext(yyDollar[2].addr.Sym)
outcode(yyDollar[1].lval, Always, &yyDollar[2].addr, 0, &yyDollar[6].addr)
}
case 32:
yyDollar = yyS[yypt-6 : yypt+1]
- //line a.y:258
+ //line a.y:264
{
outcode(yyDollar[1].lval, Always, &yyDollar[2].addr, 0, &yyDollar[6].addr)
if asm.Pass > 1 {
}
case 33:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:270
+ //line a.y:276
{
outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, 0, &nullgen)
}
case 34:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:277
+ //line a.y:283
{
outcode(yyDollar[1].lval, Always, &nullgen, 0, &yyDollar[3].addr)
}
case 35:
yyDollar = yyS[yypt-5 : yypt+1]
- //line a.y:284
+ //line a.y:290
{
outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, 0, &yyDollar[5].addr)
}
case 36:
yyDollar = yyS[yypt-5 : yypt+1]
- //line a.y:288
+ //line a.y:294
{
outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, 0, &yyDollar[5].addr)
}
case 37:
yyDollar = yyS[yypt-7 : yypt+1]
- //line a.y:292
+ //line a.y:298
{
outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, yyDollar[5].lval, &yyDollar[7].addr)
}
case 38:
yyDollar = yyS[yypt-6 : yypt+1]
- //line a.y:296
+ //line a.y:302
{
outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, int32(yyDollar[5].addr.Reg), &nullgen)
}
case 39:
yyDollar = yyS[yypt-12 : yypt+1]
- //line a.y:303
+ //line a.y:309
{
var g obj.Addr
}
case 40:
yyDollar = yyS[yypt-7 : yypt+1]
- //line a.y:315
+ //line a.y:321
{
outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, int32(yyDollar[5].addr.Reg), &yyDollar[7].addr)
}
case 41:
yyDollar = yyS[yypt-9 : yypt+1]
- //line a.y:323
+ //line a.y:329
{
yyDollar[7].addr.Type = obj.TYPE_REGREG2
yyDollar[7].addr.Offset = int64(yyDollar[9].lval)
}
case 42:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:332
+ //line a.y:338
{
outcode(yyDollar[1].lval, Always, &yyDollar[2].addr, 0, &nullgen)
}
case 43:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:339
+ //line a.y:345
{
if yyDollar[2].addr.Type != obj.TYPE_CONST || yyDollar[4].addr.Type != obj.TYPE_CONST {
yyerror("arguments to PCDATA must be integer constants")
}
case 44:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:349
+ //line a.y:355
{
if yyDollar[2].addr.Type != obj.TYPE_CONST {
yyerror("index for FUNCDATA must be integer constant")
}
case 45:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:362
+ //line a.y:368
{
outcode(yyDollar[1].lval, Always, &nullgen, 0, &nullgen)
}
case 46:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:368
+ //line a.y:374
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_TEXTSIZE
}
case 47:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:375
+ //line a.y:381
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_TEXTSIZE
}
case 48:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:382
+ //line a.y:388
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_TEXTSIZE
}
case 49:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:389
+ //line a.y:395
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_TEXTSIZE
}
case 50:
yyDollar = yyS[yypt-0 : yypt+1]
- //line a.y:397
+ //line a.y:403
{
yyVAL.lval = Always
}
case 51:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:401
+ //line a.y:407
{
yyVAL.lval = (yyDollar[1].lval & ^C_SCOND) | yyDollar[2].lval
}
case 52:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:405
+ //line a.y:411
{
yyVAL.lval = yyDollar[1].lval | yyDollar[2].lval
}
case 55:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:414
+ //line a.y:420
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_BRANCH
}
case 56:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:420
+ //line a.y:426
{
yyDollar[1].sym = asm.LabelLookup(yyDollar[1].sym)
yyVAL.addr = nullgen
}
case 57:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:431
+ //line a.y:437
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_CONST
}
case 58:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:437
+ //line a.y:443
{
yyVAL.addr = yyDollar[2].addr
yyVAL.addr.Type = obj.TYPE_ADDR
}
case 59:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:442
+ //line a.y:448
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_SCONST
}
case 61:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:451
+ //line a.y:457
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_FCONST
}
case 62:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:457
+ //line a.y:463
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_FCONST
}
case 63:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:465
+ //line a.y:471
{
yyVAL.lval = 1 << uint(yyDollar[1].lval&15)
}
case 64:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:469
+ //line a.y:475
{
yyVAL.lval = 0
for i := yyDollar[1].lval; i <= yyDollar[3].lval; i++ {
}
case 65:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:479
+ //line a.y:485
{
yyVAL.lval = (1 << uint(yyDollar[1].lval&15)) | yyDollar[3].lval
}
case 69:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:488
+ //line a.y:494
{
yyVAL.addr = yyDollar[1].addr
yyVAL.addr.Reg = int16(yyDollar[3].lval)
}
case 70:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:493
+ //line a.y:499
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 71:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:499
+ //line a.y:505
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 72:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:505
+ //line a.y:511
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 76:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:516
+ //line a.y:522
{
yyVAL.addr = yyDollar[1].addr
if yyDollar[1].addr.Name != obj.NAME_EXTERN && yyDollar[1].addr.Name != obj.NAME_STATIC {
}
case 77:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:524
+ //line a.y:530
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 79:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:534
+ //line a.y:540
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 81:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:544
+ //line a.y:550
{
yyVAL.addr = yyDollar[1].addr
yyVAL.addr.Type = obj.TYPE_MEM
}
case 86:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:557
+ //line a.y:563
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_CONST
}
case 87:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:565
+ //line a.y:571
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 88:
yyDollar = yyS[yypt-5 : yypt+1]
- //line a.y:573
+ //line a.y:579
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REGREG
}
case 89:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:582
+ //line a.y:588
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_SHIFT
}
case 90:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:588
+ //line a.y:594
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_SHIFT
}
case 91:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:594
+ //line a.y:600
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_SHIFT
}
case 92:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:600
+ //line a.y:606
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_SHIFT
}
case 93:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:608
+ //line a.y:614
{
if yyVAL.lval < REG_R0 || yyVAL.lval > REG_R15 {
print("register value out of range\n")
}
case 94:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:615
+ //line a.y:621
{
if yyVAL.lval < 0 || yyVAL.lval >= 32 {
print("shift value out of range\n")
}
case 96:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:625
+ //line a.y:631
{
yyVAL.lval = REGPC
}
case 97:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:629
+ //line a.y:635
{
if yyDollar[3].lval < 0 || yyDollar[3].lval >= NREG {
print("register value out of range\n")
}
case 99:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:639
+ //line a.y:645
{
yyVAL.lval = REGSP
}
case 101:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:646
+ //line a.y:652
{
if yyDollar[3].lval < 0 || yyDollar[3].lval >= NREG {
print("register value out of range\n")
}
case 104:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:659
+ //line a.y:665
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 105:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:665
+ //line a.y:671
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 106:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:673
+ //line a.y:679
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 107:
yyDollar = yyS[yypt-5 : yypt+1]
- //line a.y:681
+ //line a.y:687
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 108:
yyDollar = yyS[yypt-7 : yypt+1]
- //line a.y:689
+ //line a.y:695
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 109:
yyDollar = yyS[yypt-0 : yypt+1]
- //line a.y:698
+ //line a.y:704
{
yyVAL.lval = 0
}
case 110:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:702
+ //line a.y:708
{
yyVAL.lval = yyDollar[2].lval
}
case 111:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:706
+ //line a.y:712
{
yyVAL.lval = -yyDollar[2].lval
}
case 116:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:718
+ //line a.y:724
{
yyVAL.lval = int32(yyDollar[1].sym.Value)
}
case 117:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:722
+ //line a.y:728
{
yyVAL.lval = -yyDollar[2].lval
}
case 118:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:726
+ //line a.y:732
{
yyVAL.lval = yyDollar[2].lval
}
case 119:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:730
+ //line a.y:736
{
yyVAL.lval = ^yyDollar[2].lval
}
case 120:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:734
+ //line a.y:740
{
yyVAL.lval = yyDollar[2].lval
}
case 121:
yyDollar = yyS[yypt-0 : yypt+1]
- //line a.y:739
+ //line a.y:745
{
yyVAL.lval = 0
}
case 122:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:743
+ //line a.y:749
{
yyVAL.lval = yyDollar[2].lval
}
case 124:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:750
+ //line a.y:756
{
yyVAL.lval = yyDollar[1].lval + yyDollar[3].lval
}
case 125:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:754
+ //line a.y:760
{
yyVAL.lval = yyDollar[1].lval - yyDollar[3].lval
}
case 126:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:758
+ //line a.y:764
{
yyVAL.lval = yyDollar[1].lval * yyDollar[3].lval
}
case 127:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:762
+ //line a.y:768
{
yyVAL.lval = yyDollar[1].lval / yyDollar[3].lval
}
case 128:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:766
+ //line a.y:772
{
yyVAL.lval = yyDollar[1].lval % yyDollar[3].lval
}
case 129:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:770
+ //line a.y:776
{
yyVAL.lval = yyDollar[1].lval << uint(yyDollar[4].lval)
}
case 130:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:774
+ //line a.y:780
{
yyVAL.lval = yyDollar[1].lval >> uint(yyDollar[4].lval)
}
case 131:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:778
+ //line a.y:784
{
yyVAL.lval = yyDollar[1].lval & yyDollar[3].lval
}
case 132:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:782
+ //line a.y:788
{
yyVAL.lval = yyDollar[1].lval ^ yyDollar[3].lval
}
case 133:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:786
+ //line a.y:792
{
yyVAL.lval = yyDollar[1].lval | yyDollar[3].lval
}
{
asm.Settext(yyDollar[2].addr.Sym)
outcode(obj.ATEXT, &Addr2{yyDollar[2].addr, yyDollar[5].addr})
+ if asm.Pass > 1 {
+ lastpc.From3 = new(obj.Addr)
+ }
}
case 42:
yyDollar = yyS[yypt-7 : yypt+1]
- //line a.y:210
+ //line a.y:213
{
asm.Settext(yyDollar[2].addr.Sym)
outcode(obj.ATEXT, &Addr2{yyDollar[2].addr, yyDollar[7].addr})
}
case 43:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:222
+ //line a.y:225
{
asm.Settext(yyDollar[2].addr.Sym)
outcode(obj.AGLOBL, &Addr2{yyDollar[2].addr, yyDollar[4].addr})
+ if asm.Pass > 1 {
+ lastpc.From3 = new(obj.Addr)
+ }
}
case 44:
yyDollar = yyS[yypt-6 : yypt+1]
- //line a.y:227
+ //line a.y:233
{
asm.Settext(yyDollar[2].addr.Sym)
outcode(obj.AGLOBL, &Addr2{yyDollar[2].addr, yyDollar[6].addr})
}
case 45:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:240
+ //line a.y:246
{
yyVAL.addr2.from = nullgen
yyVAL.addr2.to = yyDollar[2].addr
}
case 46:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:245
+ //line a.y:251
{
yyVAL.addr2.from = nullgen
yyVAL.addr2.to = yyDollar[1].addr
}
case 47:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:250
+ //line a.y:256
{
yyVAL.addr2.from = nullgen
yyVAL.addr2.to = yyDollar[2].addr
}
case 50:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:262
+ //line a.y:268
{
yyVAL.addr2.from = yyDollar[1].addr
yyVAL.addr2.to = yyDollar[3].addr
}
case 51:
yyDollar = yyS[yypt-5 : yypt+1]
- //line a.y:267
+ //line a.y:273
{
yyVAL.addr2.from = yyDollar[1].addr
yyVAL.addr2.to = yyDollar[3].addr
}
case 52:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:278
+ //line a.y:284
{
yyVAL.addr2.from = yyDollar[1].addr
yyVAL.addr2.to = yyDollar[3].addr
}
case 53:
yyDollar = yyS[yypt-5 : yypt+1]
- //line a.y:283
+ //line a.y:289
{
yyVAL.addr2.from = yyDollar[1].addr
yyVAL.addr2.to = yyDollar[3].addr
}
case 54:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:294
+ //line a.y:300
{
yyVAL.addr2.from = yyDollar[1].addr
yyVAL.addr2.to = nullgen
}
case 55:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:299
+ //line a.y:305
{
yyVAL.addr2.from = yyDollar[1].addr
yyVAL.addr2.to = nullgen
}
case 56:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:304
+ //line a.y:310
{
yyVAL.addr2.from = yyDollar[1].addr
yyVAL.addr2.to = yyDollar[3].addr
}
case 57:
yyDollar = yyS[yypt-5 : yypt+1]
- //line a.y:311
+ //line a.y:317
{
yyVAL.addr2.from = yyDollar[1].addr
yyVAL.addr2.to = yyDollar[3].addr
}
case 58:
yyDollar = yyS[yypt-5 : yypt+1]
- //line a.y:319
+ //line a.y:325
{
yyVAL.addr2.from = yyDollar[3].addr
yyVAL.addr2.to = yyDollar[5].addr
}
case 59:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:330
+ //line a.y:336
{
if yyDollar[1].addr.Type != obj.TYPE_CONST || yyDollar[3].addr.Type != obj.TYPE_CONST {
yyerror("arguments to PCDATA must be integer constants")
}
case 60:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:340
+ //line a.y:346
{
if yyDollar[1].addr.Type != obj.TYPE_CONST {
yyerror("index for FUNCDATA must be integer constant")
}
case 65:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:359
+ //line a.y:365
{
yyVAL.addr = yyDollar[2].addr
}
case 66:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:363
+ //line a.y:369
{
yyVAL.addr = yyDollar[2].addr
}
case 72:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:376
+ //line a.y:382
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_BRANCH
}
case 73:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:382
+ //line a.y:388
{
yyDollar[1].sym = asm.LabelLookup(yyDollar[1].sym)
yyVAL.addr = nullgen
}
case 74:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:394
+ //line a.y:400
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 75:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:400
+ //line a.y:406
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 76:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:406
+ //line a.y:412
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 77:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:412
+ //line a.y:418
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 78:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:418
+ //line a.y:424
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 79:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:424
+ //line a.y:430
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 80:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:432
+ //line a.y:438
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_CONST
}
case 81:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:438
+ //line a.y:444
{
yyVAL.addr = yyDollar[2].addr
yyVAL.addr.Type = obj.TYPE_ADDR
}
case 82:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:447
+ //line a.y:453
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_SCONST
}
case 83:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:453
+ //line a.y:459
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_FCONST
}
case 84:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:459
+ //line a.y:465
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_FCONST
}
case 85:
yyDollar = yyS[yypt-5 : yypt+1]
- //line a.y:465
+ //line a.y:471
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_FCONST
}
case 86:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:471
+ //line a.y:477
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_FCONST
}
case 87:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:479
+ //line a.y:485
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_TEXTSIZE
}
case 88:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:486
+ //line a.y:492
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_TEXTSIZE
}
case 89:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:493
+ //line a.y:499
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_TEXTSIZE
}
case 90:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:500
+ //line a.y:506
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_TEXTSIZE
}
case 93:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:514
+ //line a.y:520
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 94:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:520
+ //line a.y:526
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 95:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:527
+ //line a.y:533
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 96:
yyDollar = yyS[yypt-6 : yypt+1]
- //line a.y:534
+ //line a.y:540
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 97:
yyDollar = yyS[yypt-9 : yypt+1]
- //line a.y:543
+ //line a.y:549
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 98:
yyDollar = yyS[yypt-9 : yypt+1]
- //line a.y:553
+ //line a.y:559
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 99:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:563
+ //line a.y:569
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 100:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:569
+ //line a.y:575
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 101:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:575
+ //line a.y:581
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 102:
yyDollar = yyS[yypt-5 : yypt+1]
- //line a.y:582
+ //line a.y:588
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 103:
yyDollar = yyS[yypt-8 : yypt+1]
- //line a.y:590
+ //line a.y:596
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 104:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:601
+ //line a.y:607
{
yyVAL.addr = yyDollar[1].addr
}
case 105:
yyDollar = yyS[yypt-6 : yypt+1]
- //line a.y:605
+ //line a.y:611
{
yyVAL.addr = yyDollar[1].addr
yyVAL.addr.Index = int16(yyDollar[3].lval)
}
case 106:
yyDollar = yyS[yypt-5 : yypt+1]
- //line a.y:614
+ //line a.y:620
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 107:
yyDollar = yyS[yypt-7 : yypt+1]
- //line a.y:622
+ //line a.y:628
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 108:
yyDollar = yyS[yypt-0 : yypt+1]
- //line a.y:631
+ //line a.y:637
{
yyVAL.lval = 0
}
case 109:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:635
+ //line a.y:641
{
yyVAL.lval = yyDollar[2].lval
}
case 110:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:639
+ //line a.y:645
{
yyVAL.lval = -yyDollar[2].lval
}
case 112:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:646
+ //line a.y:652
{
yyVAL.lval = obj.NAME_AUTO
}
case 115:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:654
+ //line a.y:660
{
yyVAL.lval = yyDollar[1].sym.Value
}
case 116:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:658
+ //line a.y:664
{
yyVAL.lval = -yyDollar[2].lval
}
case 117:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:662
+ //line a.y:668
{
yyVAL.lval = yyDollar[2].lval
}
case 118:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:666
+ //line a.y:672
{
yyVAL.lval = ^yyDollar[2].lval
}
case 119:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:670
+ //line a.y:676
{
yyVAL.lval = yyDollar[2].lval
}
case 121:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:677
+ //line a.y:683
{
yyVAL.lval = yyDollar[1].lval + yyDollar[3].lval
}
case 122:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:681
+ //line a.y:687
{
yyVAL.lval = yyDollar[1].lval - yyDollar[3].lval
}
case 123:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:685
+ //line a.y:691
{
yyVAL.lval = yyDollar[1].lval * yyDollar[3].lval
}
case 124:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:689
+ //line a.y:695
{
yyVAL.lval = yyDollar[1].lval / yyDollar[3].lval
}
case 125:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:693
+ //line a.y:699
{
yyVAL.lval = yyDollar[1].lval % yyDollar[3].lval
}
case 126:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:697
+ //line a.y:703
{
yyVAL.lval = yyDollar[1].lval << uint(yyDollar[4].lval)
}
case 127:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:701
+ //line a.y:707
{
yyVAL.lval = yyDollar[1].lval >> uint(yyDollar[4].lval)
}
case 128:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:705
+ //line a.y:711
{
yyVAL.lval = yyDollar[1].lval & yyDollar[3].lval
}
case 129:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:709
+ //line a.y:715
{
yyVAL.lval = yyDollar[1].lval ^ yyDollar[3].lval
}
case 130:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:713
+ //line a.y:719
{
yyVAL.lval = yyDollar[1].lval | yyDollar[3].lval
}
{
asm.Settext(yyDollar[2].addr.Sym)
outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[5].addr)
+ if asm.Pass > 1 {
+ lastpc.From3 = new(obj.Addr)
+ }
}
case 118:
yyDollar = yyS[yypt-7 : yypt+1]
- //line a.y:635
+ //line a.y:638
{
asm.Settext(yyDollar[2].addr.Sym)
outcode(int(yyDollar[1].lval), &yyDollar[2].addr, int(yyDollar[4].lval), &yyDollar[7].addr)
}
case 119:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:648
+ //line a.y:651
{
asm.Settext(yyDollar[2].addr.Sym)
outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[4].addr)
+ if asm.Pass > 1 {
+ lastpc.From3 = new(obj.Addr)
+ }
}
case 120:
yyDollar = yyS[yypt-6 : yypt+1]
- //line a.y:653
+ //line a.y:659
{
asm.Settext(yyDollar[2].addr.Sym)
outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[6].addr)
}
case 121:
yyDollar = yyS[yypt-6 : yypt+1]
- //line a.y:667
+ //line a.y:673
{
outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[6].addr)
if asm.Pass > 1 {
}
case 122:
yyDollar = yyS[yypt-6 : yypt+1]
- //line a.y:676
+ //line a.y:682
{
outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[6].addr)
if asm.Pass > 1 {
}
case 123:
yyDollar = yyS[yypt-6 : yypt+1]
- //line a.y:685
+ //line a.y:691
{
outcode(int(yyDollar[1].lval), &yyDollar[2].addr, 0, &yyDollar[6].addr)
if asm.Pass > 1 {
}
case 124:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:697
+ //line a.y:703
{
outcode(int(yyDollar[1].lval), &nullgen, 0, &nullgen)
}
case 125:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:703
+ //line a.y:709
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_BRANCH
}
case 126:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:709
+ //line a.y:715
{
yyDollar[1].sym = asm.LabelLookup(yyDollar[1].sym)
yyVAL.addr = nullgen
}
case 127:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:721
+ //line a.y:727
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 130:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:733
+ //line a.y:739
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 131:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:741
+ //line a.y:747
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 132:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:748
+ //line a.y:754
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 133:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:756
+ //line a.y:762
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 134:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:764
+ //line a.y:770
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 135:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:770
+ //line a.y:776
{
if yyDollar[3].lval < 0 || yyDollar[3].lval >= 1024 {
yyerror("SPR/DCR out of range")
}
case 137:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:782
+ //line a.y:788
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 138:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:790
+ //line a.y:796
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 139:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:796
+ //line a.y:802
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 140:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:804
+ //line a.y:810
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 141:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:810
+ //line a.y:816
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 142:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:818
+ //line a.y:824
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_REG
}
case 143:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:826
+ //line a.y:832
{
var mb, me int
var v uint32
}
case 144:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:849
+ //line a.y:855
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_TEXTSIZE
}
case 145:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:856
+ //line a.y:862
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_TEXTSIZE
}
case 146:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:863
+ //line a.y:869
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_TEXTSIZE
}
case 147:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:870
+ //line a.y:876
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_TEXTSIZE
}
case 148:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:879
+ //line a.y:885
{
yyVAL.addr = yyDollar[2].addr
yyVAL.addr.Type = obj.TYPE_ADDR
}
case 149:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:884
+ //line a.y:890
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_SCONST
}
case 150:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:892
+ //line a.y:898
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_FCONST
}
case 151:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:898
+ //line a.y:904
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_FCONST
}
case 152:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:905
+ //line a.y:911
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_CONST
}
case 154:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:914
+ //line a.y:920
{
if yyVAL.lval < 0 || yyVAL.lval >= NREG {
print("register value out of range\n")
}
case 155:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:923
+ //line a.y:929
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 156:
yyDollar = yyS[yypt-5 : yypt+1]
- //line a.y:930
+ //line a.y:936
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 158:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:941
+ //line a.y:947
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 159:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:950
+ //line a.y:956
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 160:
yyDollar = yyS[yypt-5 : yypt+1]
- //line a.y:958
+ //line a.y:964
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 161:
yyDollar = yyS[yypt-7 : yypt+1]
- //line a.y:966
+ //line a.y:972
{
yyVAL.addr = nullgen
yyVAL.addr.Type = obj.TYPE_MEM
}
case 164:
yyDollar = yyS[yypt-0 : yypt+1]
- //line a.y:978
+ //line a.y:984
{
yyVAL.lval = 0
}
case 165:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:982
+ //line a.y:988
{
yyVAL.lval = yyDollar[2].lval
}
case 166:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:986
+ //line a.y:992
{
yyVAL.lval = -yyDollar[2].lval
}
case 171:
yyDollar = yyS[yypt-1 : yypt+1]
- //line a.y:998
+ //line a.y:1004
{
yyVAL.lval = yyDollar[1].sym.Value
}
case 172:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:1002
+ //line a.y:1008
{
yyVAL.lval = -yyDollar[2].lval
}
case 173:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:1006
+ //line a.y:1012
{
yyVAL.lval = yyDollar[2].lval
}
case 174:
yyDollar = yyS[yypt-2 : yypt+1]
- //line a.y:1010
+ //line a.y:1016
{
yyVAL.lval = ^yyDollar[2].lval
}
case 175:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:1014
+ //line a.y:1020
{
yyVAL.lval = yyDollar[2].lval
}
case 177:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:1021
+ //line a.y:1027
{
yyVAL.lval = yyDollar[1].lval + yyDollar[3].lval
}
case 178:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:1025
+ //line a.y:1031
{
yyVAL.lval = yyDollar[1].lval - yyDollar[3].lval
}
case 179:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:1029
+ //line a.y:1035
{
yyVAL.lval = yyDollar[1].lval * yyDollar[3].lval
}
case 180:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:1033
+ //line a.y:1039
{
yyVAL.lval = yyDollar[1].lval / yyDollar[3].lval
}
case 181:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:1037
+ //line a.y:1043
{
yyVAL.lval = yyDollar[1].lval % yyDollar[3].lval
}
case 182:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:1041
+ //line a.y:1047
{
yyVAL.lval = yyDollar[1].lval << uint(yyDollar[4].lval)
}
case 183:
yyDollar = yyS[yypt-4 : yypt+1]
- //line a.y:1045
+ //line a.y:1051
{
yyVAL.lval = yyDollar[1].lval >> uint(yyDollar[4].lval)
}
case 184:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:1049
+ //line a.y:1055
{
yyVAL.lval = yyDollar[1].lval & yyDollar[3].lval
}
case 185:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:1053
+ //line a.y:1059
{
yyVAL.lval = yyDollar[1].lval ^ yyDollar[3].lval
}
case 186:
yyDollar = yyS[yypt-3 : yypt+1]
- //line a.y:1057
+ //line a.y:1063
{
yyVAL.lval = yyDollar[1].lval | yyDollar[3].lval
}