]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile, cmd/internal/obj: ignore AUSEFIELD
authorIan Lance Taylor <iant@golang.org>
Wed, 9 Dec 2015 02:29:26 +0000 (18:29 -0800)
committerIan Lance Taylor <iant@golang.org>
Wed, 9 Dec 2015 21:07:32 +0000 (21:07 +0000)
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 <dsymonds@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/compile/internal/arm/peep.go
src/cmd/compile/internal/arm64/peep.go
src/cmd/compile/internal/mips64/peep.go
src/cmd/compile/internal/ppc64/peep.go
src/cmd/internal/obj/arm/asm5.go
src/cmd/internal/obj/arm64/asm7.go
src/cmd/internal/obj/mips/asm0.go
src/cmd/internal/obj/ppc64/asm9.go

index 4fba43461932f73e3f94eabd814bbca70477bfca..d7a9c5f67d15da253561dcc19121b0c548034a60 100644 (file)
@@ -1365,7 +1365,8 @@ func copyu(p *obj.Prog, v *obj.Addr, s *obj.Addr) int {
        case obj.APCDATA,
                obj.AFUNCDATA,
                obj.AVARDEF,
-               obj.AVARKILL:
+               obj.AVARKILL,
+               obj.AUSEFIELD:
                return 0
        }
 }
index 387a30ec295c18591687352abe90a37dd57272e9..b61ac6e7904af994b6beb511f15090f8fac47851 100644 (file)
@@ -710,7 +710,8 @@ func copyu(p *obj.Prog, v *obj.Addr, s *obj.Addr) int {
                obj.APCDATA,
                obj.AFUNCDATA,
                obj.AVARDEF,
-               obj.AVARKILL:
+               obj.AVARKILL,
+               obj.AUSEFIELD:
                return 0
        }
 }
index 681a31c0411ce2268c3941baebee4aeb12184a59..3d82c81a6f986aa286356abbe56dd16f53604a13 100644 (file)
@@ -687,7 +687,8 @@ func copyu(p *obj.Prog, v *obj.Addr, s *obj.Addr) int {
        case obj.APCDATA,
                obj.AFUNCDATA,
                obj.AVARDEF,
-               obj.AVARKILL:
+               obj.AVARKILL,
+               obj.AUSEFIELD:
                return 0
        }
 }
index 9c3f1edb307f28ffc868b7f93098f812303f8587..fadaa4a971c6266beb570d5c5f7c0f4105b3d02f 100644 (file)
@@ -952,7 +952,8 @@ func copyu(p *obj.Prog, v *obj.Addr, s *obj.Addr) int {
        case obj.APCDATA,
                obj.AFUNCDATA,
                obj.AVARDEF,
-               obj.AVARKILL:
+               obj.AVARKILL,
+               obj.AUSEFIELD:
                return 0
        }
 }
index 87ebc842ef2c047518e16cd03cb7d8f3a9704057..3ba0c7d95bc4f4896a35800e5250fa6d530b8cc3 100644 (file)
@@ -614,7 +614,7 @@ func span5(ctxt *obj.Link, cursym *obj.LSym) {
                        }
                }
 
-               if m == 0 && (p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != ADATABUNDLEEND && p.As != obj.ANOP) {
+               if m == 0 && (p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != ADATABUNDLEEND && p.As != obj.ANOP && p.As != obj.AUSEFIELD) {
                        ctxt.Diag("zero-width instruction\n%v", p)
                        continue
                }
@@ -710,7 +710,7 @@ func span5(ctxt *obj.Link, cursym *obj.LSym) {
                        if m/4 > len(out) {
                                ctxt.Diag("instruction size too large: %d > %d", m/4, len(out))
                        }
-                       if m == 0 && (p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != ADATABUNDLEEND && p.As != obj.ANOP) {
+                       if m == 0 && (p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != ADATABUNDLEEND && p.As != obj.ANOP && p.As != obj.AUSEFIELD) {
                                if p.As == obj.ATEXT {
                                        ctxt.Autosize = int32(p.To.Offset + 4)
                                        continue
index 38fe3ee92d7f2f6a19f2570c040ce18d96868d45..dca7a7f832327d5f6cb7c2cf534c38c084221c2e 100644 (file)
@@ -550,7 +550,7 @@ func span7(ctxt *obj.Link, cursym *obj.LSym) {
                o = oplook(ctxt, p)
                m = int(o.size)
                if m == 0 {
-                       if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA {
+                       if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != obj.AUSEFIELD {
                                ctxt.Diag("zero-width instruction\n%v", p)
                        }
                        continue
@@ -618,7 +618,7 @@ func span7(ctxt *obj.Link, cursym *obj.LSym) {
                        m = int(o.size)
 
                        if m == 0 {
-                               if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA {
+                               if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != obj.AUSEFIELD {
                                        ctxt.Diag("zero-width instruction\n%v", p)
                                }
                                continue
index f944d3333f363f95f674fdb238983f1cb939678b..63df672f49bf43d64bc02242213c57d2e99fda92 100644 (file)
@@ -342,7 +342,7 @@ func span0(ctxt *obj.Link, cursym *obj.LSym) {
                o = oplook(ctxt, p)
                m = int(o.size)
                if m == 0 {
-                       if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA {
+                       if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != obj.AUSEFIELD {
                                ctxt.Diag("zero-width instruction\n%v", p)
                        }
                        continue
@@ -401,7 +401,7 @@ func span0(ctxt *obj.Link, cursym *obj.LSym) {
 
                        m = int(o.size)
                        if m == 0 {
-                               if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA {
+                               if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != obj.AUSEFIELD {
                                        ctxt.Diag("zero-width instruction\n%v", p)
                                }
                                continue
index 25deeada42c374d008408cf338f93802b42d0267..90224c3e05adb34ff57b4e4dd597a0d0972bd34b 100644 (file)
@@ -435,7 +435,7 @@ func span9(ctxt *obj.Link, cursym *obj.LSym) {
                o = oplook(ctxt, p)
                m = int(o.size)
                if m == 0 {
-                       if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA {
+                       if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != obj.AUSEFIELD {
                                ctxt.Diag("zero-width instruction\n%v", p)
                        }
                        continue
@@ -492,7 +492,7 @@ func span9(ctxt *obj.Link, cursym *obj.LSym) {
 
                        m = int(o.size)
                        if m == 0 {
-                               if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA {
+                               if p.As != obj.ANOP && p.As != obj.AFUNCDATA && p.As != obj.APCDATA && p.As != obj.AUSEFIELD {
                                        ctxt.Diag("zero-width instruction\n%v", p)
                                }
                                continue