]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/8g/reg.c
[dev.cc] all: merge dev.power64 (f57928630b36) into dev.cc
[gostls13.git] / src / cmd / 8g / reg.c
index 45aea2c337181c0066a8e02beae7d66cd2403697..13beaf94144a9af2977d0865c0c99f747a202657 100644 (file)
@@ -936,7 +936,7 @@ paint1(Reg *r, int bn)
        Reg *r1;
        Prog *p;
        int z;
-       uint64 bb;
+       uint64 bb, rbz;
 
        z = bn/64;
        bb = 1LL<<(bn%64);
@@ -955,7 +955,8 @@ paint1(Reg *r, int bn)
                r = r1;
        }
 
-       if(LOAD(r) & ~(r->set.b[z]&~(r->use1.b[z]|r->use2.b[z])) & bb) {
+       rbz = ~(r->set.b[z]&~(r->use1.b[z]|r->use2.b[z]));
+       if(LOAD(r) & rbz & bb) {
                change -= CLOAD * r->f.loop;
        }
        for(;;) {
@@ -1066,7 +1067,7 @@ paint3(Reg *r, int bn, uint32 rb, int rn)
        Reg *r1;
        Prog *p;
        int z;
-       uint64 bb;
+       uint64 bb, rbz;
 
        z = bn/64;
        bb = 1LL << (bn%64);
@@ -1085,7 +1086,8 @@ paint3(Reg *r, int bn, uint32 rb, int rn)
                r = r1;
        }
 
-       if(LOAD(r) & ~(r->set.b[z] & ~(r->use1.b[z]|r->use2.b[z])) & bb)
+       rbz = ~(r->set.b[z] & ~(r->use1.b[z]|r->use2.b[z]));
+       if(LOAD(r) & rbz & bb)
                addmove(r, bn, rn, 0);
        for(;;) {
                r->act.b[z] |= bb;