Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.5
 
1.6
 
MAIN:gmcgarry:20071126044115
 
code.c
_>100100         }
 101101 
 102102         /* recalculate the arg offset and create TEMP moves */
<>103 -        for (n = A0, i = 0; i < cnt; i++) {
 104 -                if (n + szty(sp[i]->stype) <= A0 + MIPS_NARGREGS) {
  103+        for (n = 0, i = 0; i < cnt; i++) {
  104+                int sz = szty(sp[i]->stype);
  105+                if (n + sz <= nargregs) {
105106                         if (xtemps) {
 106107                                 p = tempnode(0, sp[i]->stype,
 107108                                     sp[i]->sdf, sp[i]->ssue);
 108109                                 spname = sp[i];
 109110                                 q = block(REG, NIL, NIL,
 110111                                     sp[i]->stype, sp[i]->sdf, sp[i]->ssue);
<>111 -                                q->n_rval = n;
  112+                                q->n_rval = sz == 2 ? A0A1 + n : A0 + n;
112113                                 p = buildtree(ASSIGN, p, q);
 113114                                 sp[i]->soffset = p->n_left->n_lval;
 114115                                 sp[i]->sflags |= STNODE;
     
 !
117118                                 spname = sp[i];
 118119                                 q = block(REG, NIL, NIL,
 119120                                     sp[i]->stype, sp[i]->sdf, sp[i]->ssue);
<>120 -                                q->n_rval = n;
  121+                                q->n_rval = sz == 2 ? A0A1 + n : A0 + n;
121122                                 p = buildtree(ASSIGN, buildtree(NAME, 0, 0), q);
 122123                         }
 123124                         ecomp(p);
     
 !
242243         regnum = *regp;
 243244         sz = szty(r->n_type);
 244245 
<>245 -        if (regnum + sz <= A0 + MIPS_NARGREGS) {
  246+        if (regnum + sz <= A0 + nargregs) {
246247                 t = block(REG, NIL, NIL, r->n_type, r->n_df, r->n_sue);
<>247 -                t->n_rval = regnum;
  248+                switch(r->n_type) {
  249+                case DOUBLE:
  250+                case LDOUBLE:
  251+                        t->n_rval = regnum + F0;
  252+                        break;
  253+                case LONGLONG:
  254+                case ULONGLONG:
  255+                        t->n_rval = regnum + A0A1;
  256+                        break;
  257+                default:
  258+                        t->n_rval = regnum;
  259+                }
<_248260                 t = buildtree(ASSIGN, t, r);
 249261         } else {
 250262                 t = block(FUNARG, r, NIL, r->n_type, r->n_df, r->n_sue);
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-10-31 07:57 +0100