]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/obj/arm64: don't immediate dereference new prog
authorJosh Bleecher Snyder <josharian@gmail.com>
Tue, 11 Apr 2017 14:44:33 +0000 (07:44 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Tue, 11 Apr 2017 15:02:39 +0000 (15:02 +0000)
Noticed by Cherry while reviewing CL 40252.

The alternative to this is to place t on the stack, like

t := obj.Prog{Ctxt: ctxt}

However, there are only a couple of places where we
manually construct Progs, which is useful.

This isn't hot enough code to warrant
breaking abstraction layers to avoid an allocation.

Passes toolstash-check.

Change-Id: I46c79090b60641c90ee977b750ba5c708aca8ecf
Reviewed-on: https://go-review.googlesource.com/40373
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

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

index 40f124d75fc969af7838d5f09ce5527d112b7a1d..b9529dd163f3a893de41a745ad7a6010e7bd8d56 100644 (file)
@@ -732,7 +732,7 @@ func (c *ctxt7) flushpool(p *obj.Prog, skip int) {
 func (c *ctxt7) addpool(p *obj.Prog, a *obj.Addr) {
        cls := c.aclass(a)
        lit := c.instoffset
-       t := *c.newprog()
+       t := c.newprog()
        t.As = AWORD
        sz := 4
 
@@ -804,7 +804,7 @@ func (c *ctxt7) addpool(p *obj.Prog, a *obj.Addr) {
        }
 
        q := c.newprog()
-       *q = t
+       *q = *t
        q.Pc = int64(c.pool.size)
        if c.blitrl == nil {
                c.blitrl = q