]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: encapsulate Type.Argwid
authorJosh Bleecher Snyder <josharian@gmail.com>
Mon, 28 Mar 2016 21:31:57 +0000 (14:31 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Tue, 29 Mar 2016 00:08:56 +0000 (00:08 +0000)
Passes toolstash -cmp.

Change-Id: I72fb271052e449a83adfa9bd3b923d40781d6341
Reviewed-on: https://go-review.googlesource.com/21243
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/compile/internal/amd64/ggen.go
src/cmd/compile/internal/arm/ggen.go
src/cmd/compile/internal/arm64/ggen.go
src/cmd/compile/internal/gc/pgen.go
src/cmd/compile/internal/gc/plive.go
src/cmd/compile/internal/gc/ssa.go
src/cmd/compile/internal/gc/subr.go
src/cmd/compile/internal/gc/type.go
src/cmd/compile/internal/mips64/ggen.go
src/cmd/compile/internal/ppc64/ggen.go
src/cmd/compile/internal/x86/ggen.go

index 1105a68dbf2793b29e2b133150763a931f722b9b..0ca802b05808ab3b19881217d7d63a9bfeadf2e8 100644 (file)
@@ -17,7 +17,7 @@ func defframe(ptxt *obj.Prog) {
        // fill in argument size, stack size
        ptxt.To.Type = obj.TYPE_TEXTSIZE
 
-       ptxt.To.Val = int32(gc.Rnd(gc.Curfn.Type.Argwid, int64(gc.Widthptr)))
+       ptxt.To.Val = int32(gc.Rnd(gc.Curfn.Type.ArgWidth(), int64(gc.Widthptr)))
        frame := uint32(gc.Rnd(gc.Stksize+gc.Maxarg, int64(gc.Widthreg)))
        ptxt.To.Offset = int64(frame)
 
index beab0bb6fb492c0a0cd5cc021a4869e93367eb19..c2551499d866639cbebc96adf66df5920b1ed5c3 100644 (file)
@@ -14,7 +14,7 @@ func defframe(ptxt *obj.Prog) {
        // fill in argument size, stack size
        ptxt.To.Type = obj.TYPE_TEXTSIZE
 
-       ptxt.To.Val = int32(gc.Rnd(gc.Curfn.Type.Argwid, int64(gc.Widthptr)))
+       ptxt.To.Val = int32(gc.Rnd(gc.Curfn.Type.ArgWidth(), int64(gc.Widthptr)))
        frame := uint32(gc.Rnd(gc.Stksize+gc.Maxarg, int64(gc.Widthreg)))
        ptxt.To.Offset = int64(frame)
 
index be5b53e5caa2a0cf2a8c0c2446a88e09d0377eeb..f998bd6757f576474f58bad871ae3ccd0cedd550 100644 (file)
@@ -15,7 +15,7 @@ func defframe(ptxt *obj.Prog) {
        // fill in argument size, stack size
        ptxt.To.Type = obj.TYPE_TEXTSIZE
 
-       ptxt.To.Val = int32(gc.Rnd(gc.Curfn.Type.Argwid, int64(gc.Widthptr)))
+       ptxt.To.Val = int32(gc.Rnd(gc.Curfn.Type.ArgWidth(), int64(gc.Widthptr)))
        frame := uint32(gc.Rnd(gc.Stksize+gc.Maxarg, int64(gc.Widthreg)))
 
        // arm64 requires that the frame size (not counting saved LR)
index 0833c60016d353153d76ed209088d4c155ed0b9a..9ff23115df657e7a93160b0e4d96ec2ecbc52fb7 100644 (file)
@@ -144,7 +144,7 @@ func emitptrargsmap() {
        }
        sym := Lookup(fmt.Sprintf("%s.args_stackmap", Curfn.Func.Nname.Sym.Name))
 
-       nptr := int(Curfn.Type.Argwid / int64(Widthptr))
+       nptr := int(Curfn.Type.ArgWidth() / int64(Widthptr))
        bv := bvalloc(int32(nptr) * 2)
        nbitmap := 1
        if Curfn.Type.Results().NumFields() > 0 {
index a0f0819ca05376e61bc7bc1fb6a99c899a4c6b3b..652b023bdb75093967b48d008bae915aaddb95bb 100644 (file)
@@ -959,7 +959,7 @@ func localswords() int32 {
 
 // Returns the number of words of in and out arguments.
 func argswords() int32 {
-       return int32(Curfn.Type.Argwid / int64(Widthptr))
+       return int32(Curfn.Type.ArgWidth() / int64(Widthptr))
 }
 
 // Generates live pointer value maps for arguments and local variables. The
index d022f2c79d8d33ab30b2a76e5ee35fdc8b99207d..3eb462ecb4d4754d9a25f0bc8eba67cdcf006aa7 100644 (file)
@@ -2493,7 +2493,7 @@ func (s *state) call(n *Node, k callKind) *ssa.Value {
                rcvr = s.newValue1(ssa.OpIData, Types[TUINTPTR], i)
        }
        dowidth(fn.Type)
-       stksize := fn.Type.Argwid // includes receiver
+       stksize := fn.Type.ArgWidth() // includes receiver
 
        // Run all argument assignments. The arg slots have already
        // been offset by the appropriate amount (+2*widthptr for go/defer,
index e827464bde98e73cf51f1187988b3a284b5d4562..0c45750acf097820463551c8e37d3fb1fa70d27f 100644 (file)
@@ -1517,7 +1517,7 @@ func cheapexpr(n *Node, init *Nodes) *Node {
 
 func Setmaxarg(t *Type, extra int32) {
        dowidth(t)
-       w := t.Argwid
+       w := t.ArgWidth()
        if w >= Thearch.MAXWIDTH {
                Fatalf("bad argwid %v", t)
        }
index ac870483ac876e4f3836f9bedb9a172ebadefd1b..de0b718b45fdba78cd69032191bc7d9f0496686b 100644 (file)
@@ -382,6 +382,13 @@ func (t *Type) isDDDArray() bool {
        return t.Bound == dddBound
 }
 
+// ArgWidth returns the total aligned argument size for a function.
+// It includes the receiver, parameters, and results.
+func (t *Type) ArgWidth() int64 {
+       t.wantEtype(TFUNC)
+       return t.Argwid
+}
+
 func (t *Type) Size() int64 {
        dowidth(t)
        return t.Width
index 042b303e3cd32312e3c67a4ed17cacb8abae85d1..849d11c89903d618bc322e9a31123beaf02e2107 100644 (file)
@@ -15,7 +15,7 @@ func defframe(ptxt *obj.Prog) {
        // fill in argument size, stack size
        ptxt.To.Type = obj.TYPE_TEXTSIZE
 
-       ptxt.To.Val = int32(gc.Rnd(gc.Curfn.Type.Argwid, int64(gc.Widthptr)))
+       ptxt.To.Val = int32(gc.Rnd(gc.Curfn.Type.ArgWidth(), int64(gc.Widthptr)))
        frame := uint32(gc.Rnd(gc.Stksize+gc.Maxarg, int64(gc.Widthreg)))
        ptxt.To.Offset = int64(frame)
 
index 2f2bffc899ebd8d2b8f89801327177a6eb1a1394..21b19eece44909a79f414cf8d48adaccb39d820c 100644 (file)
@@ -15,7 +15,7 @@ func defframe(ptxt *obj.Prog) {
        // fill in argument size, stack size
        ptxt.To.Type = obj.TYPE_TEXTSIZE
 
-       ptxt.To.Val = int32(gc.Rnd(gc.Curfn.Type.Argwid, int64(gc.Widthptr)))
+       ptxt.To.Val = int32(gc.Rnd(gc.Curfn.Type.ArgWidth(), int64(gc.Widthptr)))
        frame := uint32(gc.Rnd(gc.Stksize+gc.Maxarg, int64(gc.Widthreg)))
        ptxt.To.Offset = int64(frame)
 
index 4dcd912e18f05cd85aed320ef1854697efd2aec3..4c1ed077ddc1eac3d4ef20310caf9375f68b4665 100644 (file)
@@ -14,7 +14,7 @@ func defframe(ptxt *obj.Prog) {
        // fill in argument size, stack size
        ptxt.To.Type = obj.TYPE_TEXTSIZE
 
-       ptxt.To.Val = int32(gc.Rnd(gc.Curfn.Type.Argwid, int64(gc.Widthptr)))
+       ptxt.To.Val = int32(gc.Rnd(gc.Curfn.Type.ArgWidth(), int64(gc.Widthptr)))
        frame := uint32(gc.Rnd(gc.Stksize+gc.Maxarg, int64(gc.Widthreg)))
        ptxt.To.Offset = int64(frame)