Skip to content

Commit 0b37a6f

Browse files
cmd/compile, cmd/internal/obj: ignore AUSEFIELD
When using GOEXPERIMENT=fieldtrack, we can see AUSEFIELD instructions. We generally want to ignore them. No tests because as far as I can tell there are no tests for GOEXPERIMENT=fieldtrack. Change-Id: Iee26f25592158e5db691a36cf8d77fc54d051314 Reviewed-on: https://go-review.googlesource.com/17610 Reviewed-by: David Symonds <[email protected]> Run-TryBot: Ian Lance Taylor <[email protected]> TryBot-Result: Gobot Gobot <[email protected]>
1 parent 371e44e commit 0b37a6f

File tree

8 files changed

+16
-12
lines changed

8 files changed

+16
-12
lines changed

src/cmd/compile/internal/arm/peep.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1365,7 +1365,8 @@ func copyu(p *obj.Prog, v *obj.Addr, s *obj.Addr) int {
13651365
case obj.APCDATA,
13661366
obj.AFUNCDATA,
13671367
obj.AVARDEF,
1368-
obj.AVARKILL:
1368+
obj.AVARKILL,
1369+
obj.AUSEFIELD:
13691370
return 0
13701371
}
13711372
}

src/cmd/compile/internal/arm64/peep.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -710,7 +710,8 @@ func copyu(p *obj.Prog, v *obj.Addr, s *obj.Addr) int {
710710
obj.APCDATA,
711711
obj.AFUNCDATA,
712712
obj.AVARDEF,
713-
obj.AVARKILL:
713+
obj.AVARKILL,
714+
obj.AUSEFIELD:
714715
return 0
715716
}
716717
}

src/cmd/compile/internal/mips64/peep.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,8 @@ func copyu(p *obj.Prog, v *obj.Addr, s *obj.Addr) int {
687687
case obj.APCDATA,
688688
obj.AFUNCDATA,
689689
obj.AVARDEF,
690-
obj.AVARKILL:
690+
obj.AVARKILL,
691+
obj.AUSEFIELD:
691692
return 0
692693
}
693694
}

src/cmd/compile/internal/ppc64/peep.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -952,7 +952,8 @@ func copyu(p *obj.Prog, v *obj.Addr, s *obj.Addr) int {
952952
case obj.APCDATA,
953953
obj.AFUNCDATA,
954954
obj.AVARDEF,
955-
obj.AVARKILL:
955+
obj.AVARKILL,
956+
obj.AUSEFIELD:
956957
return 0
957958
}
958959
}

src/cmd/internal/obj/arm/asm5.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,7 @@ func span5(ctxt *obj.Link, cursym *obj.LSym) {
614614
}
615615
}
616616

617-
if m == 0 && (p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != ADATABUNDLEEND && p.As != obj.ANOP) {
617+
if m == 0 && (p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != ADATABUNDLEEND && p.As != obj.ANOP && p.As != obj.AUSEFIELD) {
618618
ctxt.Diag("zero-width instruction\n%v", p)
619619
continue
620620
}
@@ -710,7 +710,7 @@ func span5(ctxt *obj.Link, cursym *obj.LSym) {
710710
if m/4 > len(out) {
711711
ctxt.Diag("instruction size too large: %d > %d", m/4, len(out))
712712
}
713-
if m == 0 && (p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != ADATABUNDLEEND && p.As != obj.ANOP) {
713+
if m == 0 && (p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != ADATABUNDLEEND && p.As != obj.ANOP && p.As != obj.AUSEFIELD) {
714714
if p.As == obj.ATEXT {
715715
ctxt.Autosize = int32(p.To.Offset + 4)
716716
continue

src/cmd/internal/obj/arm64/asm7.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,7 @@ func span7(ctxt *obj.Link, cursym *obj.LSym) {
550550
o = oplook(ctxt, p)
551551
m = int(o.size)
552552
if m == 0 {
553-
if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA {
553+
if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != obj.AUSEFIELD {
554554
ctxt.Diag("zero-width instruction\n%v", p)
555555
}
556556
continue
@@ -618,7 +618,7 @@ func span7(ctxt *obj.Link, cursym *obj.LSym) {
618618
m = int(o.size)
619619

620620
if m == 0 {
621-
if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA {
621+
if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != obj.AUSEFIELD {
622622
ctxt.Diag("zero-width instruction\n%v", p)
623623
}
624624
continue

src/cmd/internal/obj/mips/asm0.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ func span0(ctxt *obj.Link, cursym *obj.LSym) {
342342
o = oplook(ctxt, p)
343343
m = int(o.size)
344344
if m == 0 {
345-
if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA {
345+
if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != obj.AUSEFIELD {
346346
ctxt.Diag("zero-width instruction\n%v", p)
347347
}
348348
continue
@@ -401,7 +401,7 @@ func span0(ctxt *obj.Link, cursym *obj.LSym) {
401401

402402
m = int(o.size)
403403
if m == 0 {
404-
if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA {
404+
if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != obj.AUSEFIELD {
405405
ctxt.Diag("zero-width instruction\n%v", p)
406406
}
407407
continue

src/cmd/internal/obj/ppc64/asm9.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,7 @@ func span9(ctxt *obj.Link, cursym *obj.LSym) {
435435
o = oplook(ctxt, p)
436436
m = int(o.size)
437437
if m == 0 {
438-
if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA {
438+
if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != obj.AUSEFIELD {
439439
ctxt.Diag("zero-width instruction\n%v", p)
440440
}
441441
continue
@@ -492,7 +492,7 @@ func span9(ctxt *obj.Link, cursym *obj.LSym) {
492492

493493
m = int(o.size)
494494
if m == 0 {
495-
if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA {
495+
if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != obj.AUSEFIELD {
496496
ctxt.Diag("zero-width instruction\n%v", p)
497497
}
498498
continue

0 commit comments

Comments
 (0)