static void genincptr(int *lv, int inc, int pre) { int y, size; size = objsize(deref(lv[LVPRIM]), TVARIABLE, 1); gentext(); y = lv[LVSYM]; commit(); if (!y && !pre) cgldinc(); if (!pre) { genrval(lv); commit(); } if (!y) { if (pre) if (inc) cginc1pi(size); else cgdec1pi(size); else if (inc) cginc2pi(size); else cgdec2pi(size); } else if (CAUTO == Stcls[y]) { if (inc) cgincpl(Vals[y], size); else cgdecpl(Vals[y], size); } else if (CLSTATC == Stcls[y]) { if (inc) cgincps(Vals[y], size); else cgdecps(Vals[y], size); } else { if (inc) cgincpg(gsym(Names[y]), size); else cgdecpg(gsym(Names[y]), size); } if (pre) genrval(lv); }
static void genincptr(int *lv, int inc, int pre) { int y; int size = objsize(deref(lv[LVPRIM]), TVARIABLE, 1); gentext(); y = lv[LVSYM]; commit(); if (!y && !pre) cgldinc(); if (!pre) { rvalue(lv); commit(); } if (!y) { if (pre) { if (inc) cginc1pi(size); else cgdec1pi(size); } else { if (inc) cginc2pi(size); else cgdec2pi(size); } } else if (CAUTO == symbols[y].stcl) { if (inc) cgincpl(symbols[y].value, size); else cgdecpl(symbols[y].value, size); } else if (CLSTATC == symbols[y].stcl) { if (inc) cgincps(symbols[y].value, size); else cgdecps(symbols[y].value, size); } else { if (inc) cgincpg(gsym(symbols[y].name), size); else cgdecpg(gsym(symbols[y].name), size); } if (pre) rvalue(lv); }
void cginc1iw(void) { cginc1pi(1); } /* ngen("%s\t(%%eax);", "incl", 0); } */