]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.power64] 9a: correct generation of four argument ops
authorAustin Clements <austin@google.com>
Tue, 28 Oct 2014 19:08:09 +0000 (15:08 -0400)
committerAustin Clements <austin@google.com>
Tue, 28 Oct 2014 19:08:09 +0000 (15:08 -0400)
The "to" field was the penultimate argument to outgcode,
instead of the last argument, which swapped the third and
fourth operands.  The argument order was correct in a.y, so
just swap the meaning of the arguments in outgcode.  This
hadn't come up because we hadn't used these more obscure
operations in any hand-written assembly until now.

LGTM=rsc, dave
R=rsc, dave
CC=golang-codereviews
https://golang.org/cl/160690043

src/cmd/9a/lex.c

index bd38493d5a75afcf86fdb7a8f75f50fb74649f88..26f21f7436c35e898fcab66db14dbbe15cdf1d7f 100644 (file)
@@ -706,10 +706,9 @@ outgcode(int a, Addr *g1, int reg, Addr *g2, Addr *g3)
                p->mark |= NOSCHED;
        p->from = *g1;
        p->reg = reg;
-       p->to = *g2;
-       p->from3 = *g3;
+       p->from3 = *g2;
+       p->to = *g3;
        p->pc = pc;
-       print("oc: %P\n", p);
 
        if(lastpc == nil) {
                pl = linknewplist(ctxt);