aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Thompson <ken@golang.org>2011-02-09 16:03:02 -0800
committerKen Thompson <ken@golang.org>2011-02-09 16:03:02 -0800
commitcc4d57abac7c96aede1ceb8d49fc5b86e8461f2c (patch)
treed93b7ba74dfff63ba617b48949d0fdddc7b2a4fc
parent4438f502936b23078e904e0f5cdbb32c2daf10e8 (diff)
downloadgo-cc4d57abac7c96aede1ceb8d49fc5b86e8461f2c.tar.gz
go-cc4d57abac7c96aede1ceb8d49fc5b86e8461f2c.zip
peep: more bugs
R=r CC=golang-dev https://golang.org/cl/4176042
-rw-r--r--src/cmd/5g/peep.c13
-rw-r--r--src/cmd/5g/reg.c4
2 files changed, 10 insertions, 7 deletions
diff --git a/src/cmd/5g/peep.c b/src/cmd/5g/peep.c
index 1aac1a8302..ca12d70f26 100644
--- a/src/cmd/5g/peep.c
+++ b/src/cmd/5g/peep.c
@@ -339,7 +339,8 @@ subprop(Reg *r0)
case AMULLU:
case AMULA:
-// case AMVN:
+ case AMVN:
+ return 0;
case ACMN:
case AADD:
@@ -985,6 +986,8 @@ copyu(Prog *p, Adr *v, Adr *s)
case AMOVHU:
case AMOVB:
case AMOVBU:
+ case AMOVFW:
+ case AMOVWF:
case AMOVDW:
case AMOVWD:
case AMOVFD:
@@ -1020,7 +1023,7 @@ copyu(Prog *p, Adr *v, Adr *s)
case AMULLU: /* read, read, write, write */
case AMULA:
-// case AMVN:
+ case AMVN:
return 2;
case AADD: /* read, read, write */
@@ -1192,15 +1195,15 @@ copyau(Adr *a, Adr *v)
return 1;
if(v->type == D_REG) {
if(a->type == D_CONST && a->reg != NREG) {
- if(v->reg == a->reg)
+ if(a->reg == v->reg)
return 1;
} else
if(a->type == D_OREG) {
- if(v->reg == a->reg)
+ if(a->reg == v->reg)
return 1;
} else
if(a->type == D_REGREG) {
- if(v->reg == a->reg)
+ if(a->reg == v->reg)
return 1;
if(a->offset == v->reg)
return 1;
diff --git a/src/cmd/5g/reg.c b/src/cmd/5g/reg.c
index c80c0774bf..f31f70535e 100644
--- a/src/cmd/5g/reg.c
+++ b/src/cmd/5g/reg.c
@@ -140,10 +140,10 @@ regopt(Prog *firstp)
if(first == 0) {
fmtinstall('Q', Qconv);
}
- first++;
+ first++;
if(debug['K']) {
- if(first != 2)
+ if(first != 13)
return;
// debug['R'] = 2;
// debug['P'] = 2;