]> Cypherpunks repositories - gostls13.git/commitdiff
liblink: fix morestack handling on amd64p32.
authorRémy Oudompheng <oudomphe@phare.normalesup.org>
Fri, 7 Mar 2014 18:44:35 +0000 (19:44 +0100)
committerRémy Oudompheng <oudomphe@phare.normalesup.org>
Fri, 7 Mar 2014 18:44:35 +0000 (19:44 +0100)
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

src/liblink/obj6.c

index 036e20c8d4c1e9d4ee25a290c754c4a554fc0bce..6cfa67f09e952c78af22b66c5da14751c64dde7c 100644 (file)
@@ -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;