From 7cfe782a693456346d92376e230dbb3b72cd6184 Mon Sep 17 00:00:00 2001 From: Ken Thompson Date: Sat, 20 Dec 2008 16:05:12 -0800 Subject: [PATCH] LEAQ bug R=r OCL=21684 CL=21684 --- src/cmd/6g/gen.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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 -- 2.48.1