char *newvarreg (void) { char *r = newreg (); set_var_reg (r); printf ("# was a var\n"); return r; }
void free_childs_alloc_reg(treenode* node) { /* only free if they have regs - immediates don't */ if(node->child[0]->reg != NULL) freereg(node->child[0]->reg); if(node->child[1]->reg != NULL) freereg(node->child[1]->reg); node->reg = newreg(); }
symbol * var_init_if(symbol * vars, symbol * vars_to_ignore, symbol * fake) { symbol * start = vars; while(vars != NULL) { if (vars->reg == NULL && !table_has_symbol(vars_to_ignore, vars->name)) { vars->reg = newreg(); #ifdef MY_DEBUG printf("# - IF: Reserving %s for var %s\n", vars->reg, vars->name); #endif } vars = vars->next; } return start; }