diff options
| author | Keith Randall <khr@golang.org> | 2020-08-28 17:10:32 +0000 |
|---|---|---|
| committer | Keith Randall <khr@golang.org> | 2020-08-31 17:36:08 +0000 |
| commit | 9e70564f639252aade60369b51a121f3325e9d6c (patch) | |
| tree | 61ada3ce0f0d3bed08f9f1014bd271ea980df516 /src/cmd/internal/obj/util.go | |
| parent | ba0fab3cb731fe9a383bd61c3480cccfe32bb1f4 (diff) | |
| download | go-git-9e70564f639252aade60369b51a121f3325e9d6c.tar.gz | |
cmd/compile,cmd/asm: simplify recording of branch targets, take 2
We currently use two fields to store the targets of branches.
Some phases use p.To.Val, some use p.Pcond. Rewrite so that
every branch instruction uses p.To.Val.
p.From.Val is also used in rare instances.
Introduce a Pool link for use by arm/arm64, instead of
repurposing Pcond.
This is a cleanup CL in preparation for some stack frame CLs.
Change-Id: If8239177e4b1ea2bccd0608eb39553d23210d405
Reviewed-on: https://go-review.googlesource.com/c/go/+/251437
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/cmd/internal/obj/util.go')
| -rw-r--r-- | src/cmd/internal/obj/util.go | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/cmd/internal/obj/util.go b/src/cmd/internal/obj/util.go index d020026445..a30ccf0564 100644 --- a/src/cmd/internal/obj/util.go +++ b/src/cmd/internal/obj/util.go @@ -251,10 +251,8 @@ func WriteDconv(w io.Writer, p *Prog, a *Addr) { case TYPE_BRANCH: if a.Sym != nil { fmt.Fprintf(w, "%s(SB)", a.Sym.Name) - } else if p != nil && p.Pcond != nil { - fmt.Fprint(w, p.Pcond.Pc) - } else if a.Val != nil { - fmt.Fprint(w, a.Val.(*Prog).Pc) + } else if a.Target() != nil { + fmt.Fprint(w, a.Target().Pc) } else { fmt.Fprintf(w, "%d(PC)", a.Offset) } |
