#include "mcg.h" void pass_add_prologue_epilogue(void) { int i, j, k; current_proc->usedregs.count = 0; for (i=0; ihops.count; j++) { struct hop* hop = bb->hops.item[j]; for (k=0; kregsin.count; k++) { struct hreg* hreg = hop->regsin.item[k].left; if (!hreg->is_stacked) array_appendu(¤t_proc->usedregs, hreg); } for (k=0; kregsout.count; k++) { struct hreg* hreg = hop->regsout.item[k].left; if (!hreg->is_stacked) array_appendu(¤t_proc->usedregs, hreg); } } } platform_calculate_offsets(); array_insert(¤t_proc->entry->hops, platform_prologue(), 0); if (current_proc->exit) { current_proc->exit->hops.count = 0; array_append(¤t_proc->exit->hops, platform_epilogue()); } } /* vim: set sw=4 ts=4 expandtab : */