Similar idea to golang.org/cl/28970.
Change-Id: I9d2feb1a669d71ffda1d612cf39ee0d3c08d22d2
Reviewed-on: https://go-review.googlesource.com/29357
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: David Crawshaw <crawshaw@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
var leaptr = x86.ALEAQ
-func Main() {
+func Init() {
gc.Thearch.LinkArch = &x86.Linkamd64
if obj.GOARCH == "amd64p32" {
gc.Thearch.LinkArch = &x86.Linkamd64p32
gc.Thearch.SSAMarkMoves = ssaMarkMoves
gc.Thearch.SSAGenValue = ssaGenValue
gc.Thearch.SSAGenBlock = ssaGenBlock
-
- gc.Main()
- gc.Exit(0)
}
"cmd/internal/obj/arm"
)
-func Main() {
+func Init() {
gc.Thearch.LinkArch = &arm.Linkarm
gc.Thearch.REGSP = arm.REGSP
gc.Thearch.REGCTXT = arm.REGCTXT
gc.Thearch.SSAMarkMoves = func(s *gc.SSAGenState, b *ssa.Block) {}
gc.Thearch.SSAGenValue = ssaGenValue
gc.Thearch.SSAGenBlock = ssaGenBlock
-
- gc.Main()
- gc.Exit(0)
}
"cmd/internal/obj/arm64"
)
-func Main() {
+func Init() {
gc.Thearch.LinkArch = &arm64.Linkarm64
gc.Thearch.REGSP = arm64.REGSP
gc.Thearch.REGCTXT = arm64.REGCTXT
gc.Thearch.SSAMarkMoves = func(s *gc.SSAGenState, b *ssa.Block) {}
gc.Thearch.SSAGenValue = ssaGenValue
gc.Thearch.SSAGenBlock = ssaGenBlock
-
- gc.Main()
- gc.Exit(0)
}
"cmd/internal/obj/mips"
)
-func Main() {
+func Init() {
gc.Thearch.LinkArch = &mips.Linkmips64
if obj.GOARCH == "mips64le" {
gc.Thearch.LinkArch = &mips.Linkmips64le
gc.Thearch.SSAMarkMoves = func(s *gc.SSAGenState, b *ssa.Block) {}
gc.Thearch.SSAGenValue = ssaGenValue
gc.Thearch.SSAGenBlock = ssaGenBlock
-
- gc.Main()
- gc.Exit(0)
}
"cmd/internal/obj/ppc64"
)
-func Main() {
+func Init() {
gc.Thearch.LinkArch = &ppc64.Linkppc64
if obj.GOARCH == "ppc64le" {
gc.Thearch.LinkArch = &ppc64.Linkppc64le
initvariants()
initproginfo()
-
- gc.Main()
- gc.Exit(0)
}
"cmd/internal/obj/s390x"
)
-func Main() {
+func Init() {
gc.Thearch.LinkArch = &s390x.Links390x
gc.Thearch.REGSP = s390x.REGSP
gc.Thearch.REGCTXT = s390x.REGCTXT
gc.Thearch.SSAMarkMoves = ssaMarkMoves
gc.Thearch.SSAGenValue = ssaGenValue
gc.Thearch.SSAGenBlock = ssaGenBlock
-
- gc.Main()
- gc.Exit(0)
}
"os"
)
-func Main() {
+func Init() {
gc.Thearch.LinkArch = &x86.Link386
gc.Thearch.REGSP = x86.REGSP
gc.Thearch.REGCTXT = x86.REGCTXT
gc.Thearch.SSAMarkMoves = ssaMarkMoves
gc.Thearch.SSAGenValue = ssaGenValue
gc.Thearch.SSAGenBlock = ssaGenBlock
-
- gc.Main()
- gc.Exit(0)
}
"cmd/compile/internal/amd64"
"cmd/compile/internal/arm"
"cmd/compile/internal/arm64"
+ "cmd/compile/internal/gc"
"cmd/compile/internal/mips64"
"cmd/compile/internal/ppc64"
"cmd/compile/internal/s390x"
fmt.Fprintf(os.Stderr, "compile: unknown architecture %q\n", obj.GOARCH)
os.Exit(2)
case "386":
- x86.Main()
+ x86.Init()
case "amd64", "amd64p32":
- amd64.Main()
+ amd64.Init()
case "arm":
- arm.Main()
+ arm.Init()
case "arm64":
- arm64.Main()
+ arm64.Init()
case "mips64", "mips64le":
- mips64.Main()
+ mips64.Init()
case "ppc64", "ppc64le":
- ppc64.Main()
+ ppc64.Init()
case "s390x":
- s390x.Main()
+ s390x.Init()
}
+
+ gc.Main()
+ gc.Exit(0)
}