Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.145
 
1.146
 
MAIN:ragge:20050905170716
 
pftn.c
_>7676 int regmask;            /* Mask of registers to save */
 7777 int minrvar;            /* the smallest that regvar gets witing a function */
 7878 int autooff,            /* the next unused automatic offset */
<> 79+    maxautooff,         /* highest used automatic offset in function */
7980     argoff,             /* the next unused argument offset */
 8081     strucoff;           /* the next structure offset position */
 8182 int retlab = NOLAB;     /* return label for subroutine */
     
 !
513514 #ifdef GCC_COMPAT
 514515                 c = gcc_findname(cftnsp);
 515516 #endif
<>516 -                send_passt(IP_EPILOG, regmask, 0, c,
  517+                send_passt(IP_EPILOG, regmask, maxautooff, c,
517518                     cftnsp->stype, cftnsp->sclass == EXTDEF, retlab);
 518519         }
 519520 
     
 !
530531         }
 531532         savbc = NULL;
 532533         lparam = NULL;
<>533 -        autooff = AUTOINIT;
  534+        maxautooff = autooff = AUTOINIT;
534535         minrvar = regvar = MAXRVAR;
 535536         regmask = 0;
 536537         reached = 1;
     
 !
11631164 
 11641165         /*
 11651166          * Only generate tempnodes if we are optimizing,
<>1166 -         * and only for integers, floats or pointers.
  1167+         * and only for integers, floats or pointers,
  1168+         * and not if the basic type is volatile.
11671169          */
<>1168 -        if (xsaveip && ((p->sclass == AUTO) || (p->sclass == REGISTER)) &&
 1169 -            (p->stype < STRTY || ISPTR(p->stype))) {
  1170+/* XXX OLDSTYLE */
  1171+        if (xtemps && ((p->sclass == AUTO) || (p->sclass == REGISTER)) &&
  1172+            (p->stype < STRTY || ISPTR(p->stype)) &&
  1173+            !ISVOL((p->squal << TSHIFT))) {
11701174                 NODE *tn = tempnode(0, p->stype, p->sdf, p->ssue);
 11711175                 p->soffset = tn->n_lval;
 11721176                 p->sflags |= STNODE;
     
 !
21162120         case REGISTER:
 21172121                 if (blevel == 0)
 21182122                         uerror( "illegal register declaration" );
<>2119 -                else if (regvar >= MINRVAR && cisreg(type) && !xsaveip)
  2123+/* XXX OLDSTYLE */
  2124+                else if (regvar >= MINRVAR && cisreg(type) && !xtemps)
<_21202125                         return(class);
 21212126                 if (blevel == 1)
 21222127                         return(PARAM);
FishEye: Open Source License registered to PCC.
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-12-18 14:28 +0100