From: Ken Thompson Date: Thu, 10 Feb 2011 00:03:02 +0000 (-0800) Subject: peep: more bugs X-Git-Tag: weekly.2011-02-15~43 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=cc4d57abac7c96aede1ceb8d49fc5b86e8461f2c;p=gostls13.git peep: more bugs R=r CC=golang-dev https://golang.org/cl/4176042 --- 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;