Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.32
 
1.33
 
MAIN:ragge:20120829172051
 
local2.c
_>4747 void
 4848 prologue(struct interpass_prolog *ipp)
 4949 {
 5050         printf("        .word 0x%llx\n", (unsigned long long)ipp->ipp_regs[0]);
 5151         if (p2maxautooff)
 5252                 printf("        subl2 $%d,%%sp\n", p2maxautooff);
<> 53+        if (pflag) {
  54+                int i = getlab2();
  55+                printf("\tmovab\t" LABFMT ",%%r0\n", i);
  56+                printf("\tjsb\t__mcount\n");
  57+                printf("\t.data\n");
  58+                printf("\t.align  2\n");
  59+                printf(LABFMT ":\t.long\t0\n", i);
  60+                printf("\t.text\n");
  61+        }
5362 }
 5463 
 5564 /*
 5665  * Called after all instructions in a function are emitted.
 5766  * Generates code for epilog here.
 5867  */
     
 !
889898         switch (p->n_op) {
 890899         case REG:
 891900                 fprintf(stdout, "%s", rnames[regno(p)-16+1]);
 892901                 break;
 893902 
 894903         case NAME:
<> 904+                comperr("upput NAME");
895905         case OREG:
 896906                 p->n_lval += size;
 897907                 adrput(stdout, p);
 898908                 p->n_lval -= size;
 899909                 break;
 900910         case ICON:
     
 !
12581268                         
 12591269                 }
 12601270                 break;
 12611271         }
 12621272 }
 12631273 
<> 1274+static void
  1275+aofname(NODE *p, void *arg)
  1276+{
  1277+        int o = optype(p->n_op);
  1278+        TWORD t;
  1279+
  1280+        if (o == LTYPE || p->n_op == ADDROF)
  1281+                return;
  1282+        t = p->n_left->n_type;
  1283+        if (p->n_left->n_op == NAME && ISLONGLONG(t))
  1284+                p->n_left = mkunode(UMUL,
  1285+                    mkunode(ADDROF, p->n_left, 0, INCREF(t)), 0, t);
  1286+        if (o == BITYPE && p->n_right->n_op == NAME &&
  1287+            ISLONGLONG(p->n_right->n_type)) {
  1288+                t = p->n_right->n_type;
  1289+                p->n_right = mkunode(UMUL,
  1290+                    mkunode(ADDROF, p->n_right, 0, INCREF(t)), 0, t);
  1291+        }
  1292+}
  1293+
12641294 void
 12651295 myreader(struct interpass *ipole)
 12661296 {
 12671297         struct interpass *ip;
 12681298 
 12691299         DLIST_FOREACH(ip, ipole, qelem) {
 12701300                 if (ip->type != IP_NODE)
 12711301                         continue;
<> 1302+                if (kflag)
  1303+                        walkf(ip->ip_node, aofname, 0);
<_12721304                 walkf(ip->ip_node, optim2, 0);
 12731305         }
 12741306 }
 12751307 
 12761308 void
 12771309 mycanon(NODE *p)
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-19 23:55 +0200