aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2014-10-28 15:08:09 -0400
committerAustin Clements <austin@google.com>2014-10-28 15:08:09 -0400
commitc8f50b298cdf378889cff2a1b7355f7a1cb08a0a (patch)
tree1f6d569cff1dcd95c4c7de0fda3bf721f7ca22f6
parentc2364b58cc482cf12ab675763e0857e58e92a43a (diff)
downloadgo-c8f50b298cdf378889cff2a1b7355f7a1cb08a0a.tar.gz
go-c8f50b298cdf378889cff2a1b7355f7a1cb08a0a.zip
[dev.power64] 9a: correct generation of four argument ops
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
-rw-r--r--src/cmd/9a/lex.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/cmd/9a/lex.c b/src/cmd/9a/lex.c
index bd38493d5a..26f21f7436 100644
--- a/src/cmd/9a/lex.c
+++ b/src/cmd/9a/lex.c
@@ -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);