From: Ken Thompson Date: Sun, 21 Dec 2008 00:05:12 +0000 (-0800) Subject: LEAQ bug X-Git-Tag: weekly.2009-11-06~2463 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7cfe782a693456346d92376e230dbb3b72cd6184;p=gostls13.git LEAQ bug R=r OCL=21684 CL=21684 --- diff --git a/src/cmd/6g/gen.c b/src/cmd/6g/gen.c index 0f625c649b..640243f7f5 100644 --- a/src/cmd/6g/gen.c +++ b/src/cmd/6g/gen.c @@ -880,7 +880,7 @@ cgen_callret(Node *n, Node *res) void cgen_aret(Node *n, Node *res) { - Node nod1; + Node nod1, nod2; Type *fp, *t; Iter flist; @@ -900,7 +900,13 @@ cgen_aret(Node *n, Node *res) nod1.xoffset = fp->width; nod1.type = fp->type; - gins(ALEAQ, &nod1, res); + if(res->op != OREGISTER) { +print("its 1\n"); + regalloc(&nod2, types[tptr], res); + gins(ALEAQ, &nod1, &nod2); + gins(AMOVQ, &nod2, res); + } else + gins(ALEAQ, &nod1, res); } void