diff options
| author | Rémy Oudompheng <oudomphe@phare.normalesup.org> | 2014-03-07 19:44:35 +0100 |
|---|---|---|
| committer | Rémy Oudompheng <oudomphe@phare.normalesup.org> | 2014-03-07 19:44:35 +0100 |
| commit | 9460cf78257fd8326827f1564da5da29b3bb8089 (patch) | |
| tree | 17a08d517b8c559f05148e8c76adfaa0b427f013 /src/liblink/obj6.c | |
| parent | 1a89e6388c3f1994da17a1d91a45920663db2af5 (diff) | |
| download | go-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.c | 3 |
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; |
