From 741244e4336f7056c733f68d6aef07bc27349e9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Oudompheng?= Date: Thu, 13 Mar 2014 08:12:38 +0100 Subject: [PATCH] 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 --- src/cmd/6g/ggen.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/cmd/6g/ggen.c b/src/cmd/6g/ggen.c index 8b0c2874003..230c0a2ca0d 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); } }