Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.97
 
1.98
 
MAIN:ragge:20040526181758
 
reader.c
_>16181618         NODE *r, *l, *q;
 16191619         struct hardops *hop;
 16201620         int ty = optype(p->n_op);
<> 1621+        int addto = 0;
16211622 
 16221623         if (ty == UTYPE)
 16231624                 return mkhardops(p->n_left);
     
 !
16351636                 return;
 16361637         }
 16371638 
<> 1639+        if (p->n_op == STASG) {
  1640+                /* Must push the size first */
  1641+                q = talloc();
  1642+                q->n_op = ICON;
  1643+                q->n_type = INT;
  1644+                q->n_rval = 0;
  1645+                q->n_lval = p->n_stsize;
  1646+                q->n_name = "";
  1647+                r = talloc();
  1648+                r->n_op = FUNARG;
  1649+                r->n_type = INT;
  1650+                r->n_rval = SZINT;
  1651+                r->n_left = q;
  1652+                ip = tmpalloc(sizeof(struct interpass));
  1653+                ip->type = IP_NODE;
  1654+                ip->ip_node = r;
  1655+                pass2_compile(ip);
  1656+                addto = SZINT;
  1657+        }
16381658         r = p->n_right;
 16391659         l = p->n_left;
<> 1660+
16401661         /*
 16411662          * node p must be converted to a call to fun.
 16421663          * arguments first.
     
 !
16461667         q->n_type = r->n_type;
 16471668         q->n_left = r;
 16481669         q->n_rval = szty(q->n_type) * SZINT;
<> 1670+        addto += q->n_rval;
16491671         ip = tmpalloc(sizeof(struct interpass));
 16501672         ip->type = IP_NODE;
 16511673         ip->ip_node = q;
 16521674         pass2_compile(ip);
 16531675 
<> 1676+        if (p->n_op == STASG) {
  1677+                /* make it a pointer reference */
  1678+                if (l->n_op != UMUL)
  1679+                        comperr("STASG mot UMUL");
  1680+                r = l;
  1681+                l = l->n_left;
  1682+                nfree(r);
  1683+        }
16541684         q = talloc();
 16551685         q->n_op = FUNARG;
 16561686         q->n_type = l->n_type;
 16571687         q->n_left = l;
 16581688         q->n_rval = szty(q->n_type) * SZINT;
<> 1689+        addto += q->n_rval;
16591690         ip = tmpalloc(sizeof(struct interpass));
 16601691         ip->type = IP_NODE;
 16611692         ip->ip_node = q;
     
 !
16691700 
 16701701         p->n_left = q;
 16711702         p->n_op = UCALL;
<>1672 -        p->n_rval = szty(p->n_type) * SZINT * 2;
  1703+        p->n_rval = addto;
<_16731704         /* Done! */
 16741705 }
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-21 04:21 +0200