Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.239
 
1.240
 
MAIN:ragge:20081025090839
 
reader.c
_>256256                 p = ip->ip_node;
 257257 
 258258                 nodepole = p;
<>259 -//printf("bu:\n");
 260 -//fwalk(p, e2print, 0);
261259                 canon(p); /* may convert stuff after genregs */
<>262 -//fwalk(p, e2print, 0);
  260+                if (c2debug > 1) {
  261+                        printf("emit IP_NODE:\n");
  262+                        fwalk(p, e2print, 0);
  263+                }
263264                 switch (p->n_op) {
 264265                 case CBRANCH:
 265266                         /* Only emit branch insn if RESCC */
     
 !
660661         struct optab *q = &table[TBLIDX(p->n_su)];
 661662         NODE *p1, *l, *r;
 662663         int o = optype(p->n_op);
<> 664+#ifdef FINDMOPS
  665+        int ismops = (p->n_op == ASSIGN && (p->n_flags & 1));
  666+#endif
663667 
 664668         l = p->n_left;
 665669         r = p->n_right;
     
 !
696700         }
 697701         if (o != LTYPE) {
 698702                 gencode(l, INREGS);
<>699 -                if (q->rewrite & RLEFT)
  703+#ifdef FINDMOPS
  704+                if (ismops)
  705+                        ;
  706+                else
  707+#endif
  708+                     if (q->rewrite & RLEFT)
700709                         ckmove(p, l);
 701710         }
 702711         if (o == BITYPE && !(p->n_su & DORIGHT)) {
     
 !
706715         }
 707716 
 708717 #ifdef FINDMOPS
<>709 -        if (p->n_op == ASSIGN && (p->n_flags & 1)) {
  718+        if (ismops) {
710719                 /* reduce right tree to make expand() work */
 711720                 if (optype(r->n_op) != LTYPE) {
<> 721+                        p->n_op = r->n_op;
712722                         r = tcopy(r->n_right);
 713723                         tfree(p->n_right);
 714724                         p->n_right = r;
     
 !
759769                 return;
 760770 
 761771         expand(p, cookie, q->cstring);
<> 772+#ifdef FINDMOPS
  773+        if (ismops && DECRA(p->n_reg, 0) != regno(l) && cookie != FOREFF) {
  774+                CDEBUG(("gencode(%p) rmove\n", p));
  775+                rmove(regno(l), DECRA(p->n_reg, 0), p->n_type);
  776+        } else
  777+#endif
<_762778         if (callop(p->n_op) && cookie != FOREFF &&
 763779             DECRA(p->n_reg, 0) != RETREG(p->n_type)) {
 764780                 CDEBUG(("gencode(%p) retreg\n", p));
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-11-01 10:42 +0100