summaryrefslogtreecommitdiff
path: root/src/cmd/6g
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-06-05 16:40:23 -0400
committerRuss Cox <rsc@golang.org>2014-06-05 16:40:23 -0400
commit6bf435da39375c4d5e030649a0ca0f35440392fe (patch)
treef06f4877968c3bdafde1eed30828d2b355290646 /src/cmd/6g
parent5e37eea1de83ea17e43cf601ba55dc47afb177b8 (diff)
downloadgo-6bf435da39375c4d5e030649a0ca0f35440392fe.tar.gz
cmd/6g: fix stack zeroing on native client
I am not sure what the rounding here was trying to do, but it was skipping the first pointer on native client. The code above the rounding already checks that xoffset is widthptr-aligned, so the rnd was a no-op everywhere but on Native Client. And on Native Client it was wrong. Perhaps it was supposed to be rounding down, not up, but zerorange handles the extra 32 bits correctly, so the rnd does not seem to be necessary at all. This wouldn't be worth doing for Go 1.3 except that it can affect code on the playground. Fixes issue 8155. LGTM=r, iant R=golang-codereviews, r, iant CC=dvyukov, golang-codereviews, khr https://codereview.appspot.com/108740047
Diffstat (limited to 'src/cmd/6g')
-rw-r--r--src/cmd/6g/ggen.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cmd/6g/ggen.c b/src/cmd/6g/ggen.c
index 3d27fb2ab..c385798f2 100644
--- a/src/cmd/6g/ggen.c
+++ b/src/cmd/6g/ggen.c
@@ -47,7 +47,7 @@ defframe(Prog *ptxt)
if(lo != hi && n->xoffset + n->type->width >= lo - 2*widthreg) {
// merge with range we already have
- lo = rnd(n->xoffset, widthreg);
+ lo = n->xoffset;
continue;
}
// zero old range