Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.238
 
1.239
 
MAIN:ragge:20140703155828
 
regs.c
_>232232 
 233233                 p->n_regw = NULL;
 234234                 if (o == LTYPE ) {
<>235 -                        if (p->n_op == TEMP)
  235+                        if (p->n_op == TEMP) {
236236                                 p->n_regw = newblock(p);
<>237 -                        else if (p->n_op == REG)
  237+                                a = 1;
  238+                        } else if (p->n_op == REG)
238239                                 p->n_regw = &ablock[regno(p)];
 239240                 } else
 240241                         a = nsucomp(p->n_left);
     
 !
24802481 }
 24812482 
 24822483 static struct interpass *cip;
<> 2484+
  2485+static NODE *
  2486+findparent(NODE *pp, NODE *p)
  2487+{
  2488+        NODE *q;
  2489+
  2490+        if (optype(pp->n_op) == BITYPE) {
  2491+                if (pp->n_left == p || pp->n_right == p)
  2492+                        return pp;
  2493+                if ((q = findparent(pp->n_left, p)) != NULL)
  2494+                        return q;
  2495+                return findparent(pp->n_right, p);
  2496+        } else if (optype(pp->n_op) == UTYPE) {
  2497+                if (pp->n_left == p)
  2498+                        return pp;
  2499+                return findparent(pp->n_left, p);
  2500+        } else
  2501+                return NULL;
  2502+}
  2503+
24832504 /*
 24842505  * Rewrite a tree by storing a variable in memory.
 24852506  * XXX - must check if basic block structure is destroyed!
     
 !
25022523 #ifdef PCC_DEBUG
 25032524                         RDEBUG(("Node %d already in memory\n", ASGNUM(w)));
 25042525 #endif
<> 2526+                        /*
  2527+                         * If we end up here it's our parent that needs
  2528+                         * to be stored, because this node is already in
  2529+                         * memory and we must be in regs for the instruction.
  2530+                         */
  2531+                        if ((p = findparent(cip->ip_node, p)) == NULL)
  2532+                                comperr("shorttemp: parent missing");
  2533+                        off = freetemp(szty(p->n_type));
  2534+                        l = storenode(p->n_type, off);
  2535+                        r = talloc();
  2536+                        *r = *p;
  2537+                        nip = ipnode(mkbinode(ASSIGN, l, r, p->n_type));
  2538+                        storemod(p, off);
  2539+                        DLIST_INSERT_BEFORE(cip, nip, qelem);
<_25052540                         break;
 25062541                 }
 25072542 #ifdef PCC_DEBUG
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-08-23 05:32 +0200