From: Austin Clements Date: Fri, 7 Nov 2014 15:43:55 +0000 (-0500) Subject: [dev.power64] 5g: fix mistaken bit-wise AND in regopt X-Git-Tag: go1.5beta1~2684^2~11^2~6 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7739533f61616ba71ef691489c0eeab2a59bd9e9;p=gostls13.git [dev.power64] 5g: fix mistaken bit-wise AND in regopt Replace a bit-wise AND with a logical one. This happened to work before because bany returns 0 or 1, but the intent here is clearly logical (and this makes 5g match with 6g and 8g). LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/172850043 --- diff --git a/src/cmd/5g/reg.c b/src/cmd/5g/reg.c index 5b25adaf45..712841329e 100644 --- a/src/cmd/5g/reg.c +++ b/src/cmd/5g/reg.c @@ -393,7 +393,7 @@ loop2: for(z=0; zrefahead.b[z] | r->calahead.b[z]) & ~(externs.b[z] | params.b[z] | addrs.b[z] | consts.b[z]); - if(bany(&bit) & !r->f.refset) { + if(bany(&bit) && !r->f.refset) { // should never happen - all variables are preset if(debug['w']) print("%L: used and not set: %Q\n", r->f.prog->lineno, bit);