From 57858b70fba9989785b318a1d5e0abe098b3c540 Mon Sep 17 00:00:00 2001 From: Ken Thompson Date: Thu, 30 Sep 2010 18:02:38 -0700 Subject: [PATCH] code gen error for lv += f() fixes asn1 and maybe more R=rsc CC=golang-dev https://golang.org/cl/2341042 --- src/cmd/5g/ggen.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cmd/5g/ggen.c b/src/cmd/5g/ggen.c index 77d4e9496f..55f6169465 100644 --- a/src/cmd/5g/ggen.c +++ b/src/cmd/5g/ggen.c @@ -446,10 +446,10 @@ cgen_asop(Node *n) case OOR: a = optoas(n->etype, nl->type); if(nl->addable) { - regalloc(&n2, nl->type, N); regalloc(&n3, nr->type, N); - cgen(nl, &n2); cgen(nr, &n3); + regalloc(&n2, nl->type, N); + cgen(nl, &n2); gins(a, &n3, &n2); cgen(&n2, nl); regfree(&n2); @@ -459,9 +459,9 @@ cgen_asop(Node *n) if(nr->ullman < UINF) if(sudoaddable(a, nl, &addr, &w)) { regalloc(&n2, nl->type, N); - regalloc(&n3, nr->type, N); p1 = gins(AMOVW, N, &n2); p1->from = addr; + regalloc(&n3, nr->type, N); cgen(nr, &n3); gins(a, &n3, &n2); p1 = gins(AMOVW, &n2, N); -- 2.48.1