Quick Search:

Mode

Context

Displaying 3 lines of context. None | Less | More | Full

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.146
 
1.147
 
MAIN:ragge:20050801163332
 
reader.c
_>769769         if (p->n_su == -1) /* For OREGs and similar */
 770770                 return gencode(p->n_left, cookie);
 771771 
<> 772+        if (xnewreg) {
  773+                if (p->n_op == REG && p->n_rall == p->n_rval)
  774+                        return; /* pointless move to itself */
  775+                if (p->n_op == ASSIGN && p->n_left->n_op == REG &&
  776+                    p->n_left->n_rval == p->n_rall &&
  777+                    p->n_right->n_rall == p->n_rall) {
  778+                        gencode(p->n_right, INTAREG|INTBREG);
  779+                        return; /* pointless assign */
  780+                }
  781+        }
  782+
772783         if (p->n_su & DORIGHT) {
 773784                 gencode(p->n_right, INTAREG|INTBREG);
 774785                 if ((p->n_su & RMASK) == ROREG)
     
 !
819830                         p->n_left->n_rval = p->n_rall;
 820831                 }
 821832         }
<>822 -        
  833+
823834         expand(p, cookie, q->cstring);
 824835         if (xnewreg) {
 825836                 if (callop(p->n_op) && p->n_rall != RETREG)
     
 !
13881399                         continue; /* must get a result somehere */
 13891400 
 13901401 if (f2debug) printf("asgop got types\n");
<>1391 -                if ((shl = tshape(l, q->lshape)) == SRNOPE || shl == SRREG)
  1402+                if ((shl = tshape(l, q->lshape)) == SRNOPE)
13921403                         continue;
<> 1404+
  1405+                if (p->n_left->n_op == TEMP)
  1406+                        shl = SRDIR;
  1407+                else if (shl == SRREG)
  1408+                        continue;
  1409+
13931410 if (f2debug) printf("asgop lshape %d\n", shl);
 13941411 if (f2debug) fwalk(l, e2print, 0);
 13951412 
     
 !
14471464                         continue; /* Type must be correct */
 14481465 
 14491466 if (f2debug) printf("findleaf got types\n");
<>1450 -                if ((shl = tshape(p, q->rshape)) != SRDIR)
  1467+                if ((shl = tshape(p, q->rshape)) != SRDIR && p->n_op != TEMP)
<_14511468                         continue; /* shape must match */
 14521469 
 14531470                 if ((q->visit & cookie) == 0)
FishEye: Open Source License registered to PCC.
Your maintenance has expired. You can renew your license at http://www.atlassian.com/fisheye/renew
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-09-23 22:26 +0200