diff options
author | Austin Clements <austin@google.com> | 2014-11-07 10:43:55 -0500 |
---|---|---|
committer | Austin Clements <austin@google.com> | 2014-11-07 10:43:55 -0500 |
commit | e9cd2cdd8a98539b30303c4c75e9050ce47580bf (patch) | |
tree | 81ea369852400cc19ebe0a7ccf43d7d1fd9eaa68 | |
parent | 180e22421f97cba8005c0e41a06a9cd5c7439124 (diff) | |
download | go-e9cd2cdd8a98539b30303c4c75e9050ce47580bf.tar.gz |
[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://codereview.appspot.com/172850043
-rw-r--r-- | src/cmd/5g/reg.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cmd/5g/reg.c b/src/cmd/5g/reg.c index 5b25adaf4..712841329 100644 --- a/src/cmd/5g/reg.c +++ b/src/cmd/5g/reg.c @@ -393,7 +393,7 @@ loop2: for(z=0; z<BITS; z++) bit.b[z] = (r->refahead.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); |