aboutsummaryrefslogtreecommitdiff
path: root/src/liblink/obj6.c
diff options
context:
space:
mode:
authorRémy Oudompheng <oudomphe@phare.normalesup.org>2014-03-07 19:44:35 +0100
committerRémy Oudompheng <oudomphe@phare.normalesup.org>2014-03-07 19:44:35 +0100
commit9460cf78257fd8326827f1564da5da29b3bb8089 (patch)
tree17a08d517b8c559f05148e8c76adfaa0b427f013 /src/liblink/obj6.c
parent1a89e6388c3f1994da17a1d91a45920663db2af5 (diff)
downloadgo-9460cf78257fd8326827f1564da5da29b3bb8089.tar.xz
liblink: fix morestack handling on amd64p32.
It was using MOVL to pass a 64-bit argument (concatenated framesize and argsize) to morestack11. LGTM=dave, rsc R=dave, rsc, iant CC=golang-codereviews https://golang.org/cl/72360044
Diffstat (limited to 'src/liblink/obj6.c')
-rw-r--r--src/liblink/obj6.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/liblink/obj6.c b/src/liblink/obj6.c
index 036e20c8d4..6cfa67f09e 100644
--- a/src/liblink/obj6.c
+++ b/src/liblink/obj6.c
@@ -862,7 +862,8 @@ stacksplit(Link *ctxt, Prog *p, int32 framesize, int32 textarg, int noctxt, Prog
p->to.type = D_BRANCH;
p->to.sym = ctxt->symmorestack[2*2+noctxt];
} else {
- p->as = mov;
+ // Pass framesize and argsize.
+ p->as = AMOVQ;
p->from.type = D_CONST;
p->from.offset = (uint64)moreconst2 << 32;
p->from.offset |= moreconst1;