Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.7
 
1.8
 
MAIN:gmcgarry:20071130232913
 
code.c
_>296296         regnum = *regp;
 297297         sz = tsize(r->n_type, r->n_df, r->n_sue) / SZINT;
 298298 
<>299 -        if (regnum <= A0 + nargregs && r->n_type == STRTY) {
  299+        if (regnum <= A0 + nargregs &&
  300+            (r->n_type == STRTY || r->n_type == UNIONTY)) {
300301                 /* copy structure into registers */
 301302                 n = regnum - A0;
 302303                 tsz = sz > nargregs - n ? nargregs - n : sz;
<> 304+#if 0
303305                 printf("[should copy %d words into registers]\n", tsz);
<>304 -
305306                 while (tsz > 0) {
 306307                         q = block(REG, NIL, NIL, INT, 0, MKSUE(INT));
 307308                         q->n_rval = regnum + tsz;
 308309                         q = buildtree(ASSIGN, q, r);
<>309 -                        r = block(CM, q, NIL, INT, 0, MKSUE(INT));
310310                         tsz--;
<> 311+                        if (tsz > 0)
  312+                                r = block(CM, q, NIL, INT, 0, MKSUE(INT));
  313+                        else
  314+                                r = q;
311315                 }
<> 316+#endif
  317+                q = r;
312318                 t = r;
 313319 
<>314 -        } else if (regnum + sz <= A0 + nargregs) {
  320+        } else if (regnum + sz <= A0 + nargregs &&
  321+                (r->n_type != STRTY && r->n_type != UNIONTY)) {
<_315322                 t = block(REG, NIL, NIL, r->n_type, r->n_df, r->n_sue);
 316323                 switch(r->n_type) {
 317324                 case DOUBLE:
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-02 03:57 +0200