]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/gc: fix build on big endian systems
authorShenghou Ma <minux@golang.org>
Sat, 2 May 2015 08:36:53 +0000 (04:36 -0400)
committerMinux Ma <minux@golang.org>
Sat, 2 May 2015 19:32:15 +0000 (19:32 +0000)
The siz argument to both runtime.newproc and runtime.deferproc is
int32, not uintptr. This problem won't manifest on little-endian
systems because that stack slot is uintptr sized anyway. However,
on big-endian systems, it will make a difference.

Change-Id: I2351d1ec81839abe25375cff95e327b80764c2b5
Reviewed-on: https://go-review.googlesource.com/9647
Run-TryBot: Minux Ma <minux@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/internal/gc/cgen.go

index 574d24f3028c5e8ed9197e44f6ec6562737c5d40..15dca374a31e5e40e946bd7975395432f791de4d 100644 (file)
@@ -2396,7 +2396,7 @@ func Ginscall(f *Node, proc int) {
                if HasLinkRegister() {
                        stk.Xoffset += int64(Ctxt.Arch.Ptrsize)
                }
-               Thearch.Ginscon(Thearch.Optoas(OAS, Types[Tptr]), int64(Argsize(f.Type)), &stk)
+               Thearch.Ginscon(Thearch.Optoas(OAS, Types[TINT32]), int64(Argsize(f.Type)), &stk)
 
                // FuncVal* at 8(SP)
                stk.Xoffset = int64(Widthptr)