From: Russ Cox Date: Thu, 29 Jan 2015 01:44:55 +0000 (-0500) Subject: cmd/9g: use nopout in excise X-Git-Tag: go1.5beta1~2212 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=1d0664ef0d4f7c4efda19cb75aff2768072d84ed;p=gostls13.git cmd/9g: use nopout in excise In addition to duplicating the logic, the old code was clearing the line number, which led to missing source line information in the -S output. Also fix nopout, which was incomplete. Change-Id: Ic2b596a2f9ec2fe85642ebe125cca8ef38c83085 Reviewed-on: https://go-review.googlesource.com/3512 Reviewed-by: Austin Clements Reviewed-by: Dave Cheney --- diff --git a/src/cmd/9g/gobj.c b/src/cmd/9g/gobj.c index 3da55878a7..cda0b0e714 100644 --- a/src/cmd/9g/gobj.c +++ b/src/cmd/9g/gobj.c @@ -236,5 +236,8 @@ void nopout(Prog *p) { p->as = ANOP; + p->from = zprog.from; + p->from3 = zprog.from3; + p->reg = zprog.reg; + p->to = zprog.to; } - diff --git a/src/cmd/9g/peep.c b/src/cmd/9g/peep.c index 4e636b1484..11a6b591a2 100644 --- a/src/cmd/9g/peep.c +++ b/src/cmd/9g/peep.c @@ -327,15 +327,12 @@ ret: void excise(Flow *r) { - Prog *p, *l; + Prog *p; p = r->prog; if(debug['P'] && debug['v']) print("%P ===delete===\n", p); - l = p->link; - *p = zprog; - p->as = ANOP; - p->link = l; + nopout(p); ostats.ndelmov++; }