From: Rémy Oudompheng Date: Thu, 13 Mar 2014 07:12:38 +0000 (+0100) Subject: cmd/6g: fix stack zeroing preamble on amd64p32. X-Git-Tag: go1.3beta1~371 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=741244e4336f7056c733f68d6aef07bc27349e9d;p=gostls13.git cmd/6g: fix stack zeroing preamble on amd64p32. It was using a REP STOSQ but putting in CX the number of 32-bit words to clear. LGTM=dave R=rsc, dave CC=golang-codereviews https://golang.org/cl/75240043 --- diff --git a/src/cmd/6g/ggen.c b/src/cmd/6g/ggen.c index 8b0c287400..230c0a2ca0 100644 --- a/src/cmd/6g/ggen.c +++ b/src/cmd/6g/ggen.c @@ -30,11 +30,11 @@ defframe(Prog *ptxt) // when it looks for pointers. p = ptxt; if(stkzerosize > 0) { - p = appendpp(p, AMOVQ, D_CONST, 0, D_AX, 0); - p = appendpp(p, AMOVQ, D_CONST, stkzerosize/widthptr, D_CX, 0); - p = appendpp(p, ALEAQ, D_SP+D_INDIR, frame-stkzerosize, D_DI, 0); + p = appendpp(p, movptr, D_CONST, 0, D_AX, 0); + p = appendpp(p, movptr, D_CONST, stkzerosize/widthptr, D_CX, 0); + p = appendpp(p, leaptr, D_SP+D_INDIR, frame-stkzerosize, D_DI, 0); p = appendpp(p, AREP, D_NONE, 0, D_NONE, 0); - appendpp(p, ASTOSQ, D_NONE, 0, D_NONE, 0); + appendpp(p, stosptr, D_NONE, 0, D_NONE, 0); } }