aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/internal/obj/arm
diff options
context:
space:
mode:
authorMichael Hudson-Doyle <michael.hudson@canonical.com>2015-04-23 14:38:05 +1200
committerMinux Ma <minux@golang.org>2015-04-29 03:32:28 +0000
commit4b23b50fb440f8df0d5da7d8c6550f5fc3cb3529 (patch)
tree51773e5ebf8a486693c4ded2ccf2c2d5dd04b323 /src/cmd/internal/obj/arm
parentda11a9dda32e3588250b29862baa5cea25b8b67b (diff)
downloadgo-4b23b50fb440f8df0d5da7d8c6550f5fc3cb3529.tar.xz
cmd/internal/obj: Delete Link.Symmorestack
This started out as trying to remove Bool2int calls, which it does a bit, but mostly it ended up being removing the Link.Symmorestack array which seemed a pointless bit of caching. Change-Id: I91a51eb08cb4b08f3f9f093b575306499267b67a Reviewed-on: https://go-review.googlesource.com/9239 Reviewed-by: Minux Ma <minux@golang.org> Run-TryBot: Minux Ma <minux@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/cmd/internal/obj/arm')
-rw-r--r--src/cmd/internal/obj/arm/obj5.go13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/cmd/internal/obj/arm/obj5.go b/src/cmd/internal/obj/arm/obj5.go
index 0960647af2..2d3e537ca0 100644
--- a/src/cmd/internal/obj/arm/obj5.go
+++ b/src/cmd/internal/obj/arm/obj5.go
@@ -180,11 +180,6 @@ func linkcase(casep *obj.Prog) {
func preprocess(ctxt *obj.Link, cursym *obj.LSym) {
autosize := int32(0)
- if ctxt.Symmorestack[0] == nil {
- ctxt.Symmorestack[0] = obj.Linklookup(ctxt, "runtime.morestack", 0)
- ctxt.Symmorestack[1] = obj.Linklookup(ctxt, "runtime.morestack_noctxt", 0)
- }
-
ctxt.Cursym = cursym
if cursym.Text == nil || cursym.Text.Link == nil {
@@ -367,7 +362,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) {
}
if p.From3.Offset&obj.NOSPLIT == 0 {
- p = stacksplit(ctxt, p, autosize, cursym.Text.From3.Offset&obj.NEEDCTXT == 0) // emit split check
+ p = stacksplit(ctxt, p, autosize) // emit split check
}
// MOVW.W R14,$-autosize(SP)
@@ -718,7 +713,7 @@ func softfloat(ctxt *obj.Link, cursym *obj.LSym) {
}
}
-func stacksplit(ctxt *obj.Link, p *obj.Prog, framesize int32, noctxt bool) *obj.Prog {
+func stacksplit(ctxt *obj.Link, p *obj.Prog, framesize int32) *obj.Prog {
// MOVW g_stackguard(g), R1
p = obj.Appendp(ctxt, p)
@@ -828,8 +823,10 @@ func stacksplit(ctxt *obj.Link, p *obj.Prog, framesize int32, noctxt bool) *obj.
p.To.Type = obj.TYPE_BRANCH
if ctxt.Cursym.Cfunc != 0 {
p.To.Sym = obj.Linklookup(ctxt, "runtime.morestackc", 0)
+ } else if ctxt.Cursym.Text.From3.Offset&obj.NEEDCTXT == 0 {
+ p.To.Sym = obj.Linklookup(ctxt, "runtime.morestack_noctxt", 0)
} else {
- p.To.Sym = ctxt.Symmorestack[obj.Bool2int(noctxt)]
+ p.To.Sym = obj.Linklookup(ctxt, "runtime.morestack", 0)
}
// BLS start