]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: initialize SSA runtime functions in initssaconfig
authorJosh Bleecher Snyder <josharian@gmail.com>
Thu, 30 Mar 2017 18:13:01 +0000 (11:13 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Thu, 30 Mar 2017 20:44:51 +0000 (20:44 +0000)
This is a better home for it.

Change-Id: I7ce96c16378d841613edaa53c07347b0ac99ea6e
Reviewed-on: https://go-review.googlesource.com/38970
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/compile/internal/gc/pgen.go
src/cmd/compile/internal/gc/ssa.go

index a525373e2fa37f5ef93357f075bd49c40104cf80..aa09fb71e7956b6499a89e3ad1a3fbd2bde12962 100644 (file)
@@ -250,25 +250,6 @@ func (s *ssafn) AllocFrame(f *ssa.Func) {
 }
 
 func compile(fn *Node) {
-       if Newproc == nil {
-               Newproc = Sysfunc("newproc")
-               Deferproc = Sysfunc("deferproc")
-               Deferreturn = Sysfunc("deferreturn")
-               Duffcopy = Sysfunc("duffcopy")
-               Duffzero = Sysfunc("duffzero")
-               panicindex = Sysfunc("panicindex")
-               panicslice = Sysfunc("panicslice")
-               panicdivide = Sysfunc("panicdivide")
-               growslice = Sysfunc("growslice")
-               panicdottypeE = Sysfunc("panicdottypeE")
-               panicdottypeI = Sysfunc("panicdottypeI")
-               panicnildottype = Sysfunc("panicnildottype")
-               assertE2I = Sysfunc("assertE2I")
-               assertE2I2 = Sysfunc("assertE2I2")
-               assertI2I = Sysfunc("assertI2I")
-               assertI2I2 = Sysfunc("assertI2I2")
-       }
-
        Curfn = fn
        dowidth(fn.Type)
 
index fc08596dbe891a99282eed4f4260b097286a8e92..b5a6d455ad236a6b9d113a3c8bdcd2d859498c23 100644 (file)
@@ -66,6 +66,24 @@ func initssaconfig() {
                ssaConfig.Set387(thearch.Use387)
        }
        ssaCache = new(ssa.Cache)
+
+       // Set up some runtime functions we'll need to call.
+       Newproc = Sysfunc("newproc")
+       Deferproc = Sysfunc("deferproc")
+       Deferreturn = Sysfunc("deferreturn")
+       Duffcopy = Sysfunc("duffcopy")
+       Duffzero = Sysfunc("duffzero")
+       panicindex = Sysfunc("panicindex")
+       panicslice = Sysfunc("panicslice")
+       panicdivide = Sysfunc("panicdivide")
+       growslice = Sysfunc("growslice")
+       panicdottypeE = Sysfunc("panicdottypeE")
+       panicdottypeI = Sysfunc("panicdottypeI")
+       panicnildottype = Sysfunc("panicnildottype")
+       assertE2I = Sysfunc("assertE2I")
+       assertE2I2 = Sysfunc("assertE2I2")
+       assertI2I = Sysfunc("assertI2I")
+       assertI2I2 = Sysfunc("assertI2I2")
 }
 
 // buildssa builds an SSA function.