From cc4d57abac7c96aede1ceb8d49fc5b86e8461f2c Mon Sep 17 00:00:00 2001 From: Ken Thompson Date: Wed, 9 Feb 2011 16:03:02 -0800 Subject: [PATCH] peep: more bugs R=r CC=golang-dev https://golang.org/cl/4176042 --- src/cmd/5g/peep.c | 13 ++++++++----- src/cmd/5g/reg.c | 4 ++-- 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;