Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.68
 
1.69
 
MAIN:ragge:20030622135631
 
pftn.c
_>1212 struct symtab *cftnsp;
 1313 static int strunem;             /* currently parsed member type */
 1414 int arglistcnt, dimfuncnt;      /* statistics */
<>15 -int symtabcnt, suedefcnt;
  15+int symtabcnt, suedefcnt;       /* statistics */
  16+int maxautooff;         /* the highest (lowest) offset for automatics */
  17+int regvar;             /* the next free register for register variables */
  18+int minrvar;            /* the smallest that regvar gets witing a function */
  19+int autooff,            /* the next unused automatic offset */
  20+    argoff,             /* the next unused argument offset */
  21+    strucoff;           /* the next structure offset position */
  22+int retlab = NOLAB;     /* return label for subroutine */
  23+int brklab;
  24+int contlab;
  25+int flostat;
  26+int retstat;
1627 
 1728 struct params;
 1829 
     
 !
358369                         dynalloc(p, &autooff);
 359370                 else
 360371                         oalloc(p, &autooff);
<> 372+#ifdef BACKAUTO
  373+                if (autooff < maxautooff)
  374+                        maxautooff = autooff;
  375+#else
  376+                if (autooff > maxautooff)
  377+                        maxautooff = autooff;
  378+#endif
361379                 break;
 362380         case STATIC:
 363381         case EXTDEF:
     
 !
432450         extern struct savbc *savbc;
 433451         extern struct swdef *swpole;
 434452 
<>435 -        if (retlab != NOLAB && nerrors == 0) /* inside a real function */
  453+        if (retlab != NOLAB && nerrors == 0) { /* inside a real function */
  454+                branch(retlab);
436455                 efcode();
<> 456+                epilogue(minrvar, maxautooff, retlab);
  457+        }
437458 
 438459         checkst(0);
 439460         retstat = 0;
     
 !
450471         }
 451472         savbc = NULL;
 452473         lparam = NULL;
<>453 -        autooff = AUTOINIT;
  474+        maxautooff = autooff = AUTOINIT;
454475         minrvar = regvar = MAXRVAR;
 455476         reached = 1;
 456477 
     
 !
540561         locctr(PROG);
 541562         defalign(ALINT);
 542563         ftnno = getlab();
<> 564+        retlab = getlab();
543565         bfcode(parr, nparams);
<> 566+        prologue(-1, -1);
544567         lparam = NULL;
 545568         nparams = 0;
 546569 }
     
 !
13561379                 /* do the initialization and get out, without regard
 13571380                     for filing out the variable with zeros, etc. */
 13581381                 bccode();
<> 1382+                newblock(regvar, autooff);
13591383                 spname = pstk->in_sym;
 13601384                 p = buildtree( ASSIGN, buildtree( NAME, NIL, NIL ), p );
 13611385                 ecomp(p);
     
 !
16301654         int i;
 16311655 
 16321656         bccode(); /* Init code generation */
<> 1657+        newblock(regvar, autooff);
<_16331658         /*
 16341659          * Setup space on the stack, one pointer to the array space
 16351660          * and n-1 integers for the array sizes.
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-01 20:42 +0200