diff options
author | Andrew Gerrand <adg@golang.org> | 2011-06-29 15:33:16 +1000 |
---|---|---|
committer | Andrew Gerrand <adg@golang.org> | 2011-06-29 15:33:16 +1000 |
commit | 807d49d3c2e1f1fb0d0b7c3c2a92dc38b0172c84 (patch) | |
tree | ac0212e802e0d6cf8ea85559167d6ecbc1f506bf | |
parent | 977a41638fbac86758cd434aa5072208efc7ddde (diff) | |
download | go-807d49d3c2e1f1fb0d0b7c3c2a92dc38b0172c84.tar.gz |
[release-branch.r58] 6g, 8g: fix goto fix
??? CL 4632041 / cbc2b570b2ca
6g, 8g: fix goto fix
R=ken2
CC=golang-dev
http://codereview.appspot.com/4632041
???
R=rsc
CC=golang-dev
http://codereview.appspot.com/4667046
-rw-r--r-- | src/cmd/6g/gsubr.c | 5 | ||||
-rw-r--r-- | src/cmd/8g/gsubr.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/cmd/6g/gsubr.c b/src/cmd/6g/gsubr.c index 66dac1185..49d66e083 100644 --- a/src/cmd/6g/gsubr.c +++ b/src/cmd/6g/gsubr.c @@ -125,7 +125,7 @@ clearstk(void) { Plist *pl; Prog *p1, *p2; - Node sp, di, cx, con; + Node sp, di, cx, con, ax; if((uint32)plast->firstpc->to.offset <= 0) return; @@ -147,6 +147,9 @@ clearstk(void) gins(ACLD, N, N); gins(AMOVQ, &sp, &di); gins(AMOVQ, &con, &cx); + nodconst(&con, types[TUINT64], 0); + nodreg(&ax, types[TUINT64], D_AX); + gins(AMOVQ, &con, &ax); gins(AREP, N, N); gins(ASTOSQ, N, N); diff --git a/src/cmd/8g/gsubr.c b/src/cmd/8g/gsubr.c index d0c731025..a8d65cf22 100644 --- a/src/cmd/8g/gsubr.c +++ b/src/cmd/8g/gsubr.c @@ -127,7 +127,7 @@ clearstk(void) { Plist *pl; Prog *p1, *p2; - Node sp, di, cx, con; + Node sp, di, cx, con, ax; if(plast->firstpc->to.offset <= 0) return; @@ -149,6 +149,9 @@ clearstk(void) gins(ACLD, N, N); gins(AMOVL, &sp, &di); gins(AMOVL, &con, &cx); + nodconst(&con, types[TUINT32], 0); + nodreg(&ax, types[TUINT32], D_AX); + gins(AMOVL, &con, &ax); gins(AREP, N, N); gins(ASTOSL, N, N); |