X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fbearch_ia32.c;h=9e65fdb624a286146307602f8c800810da9da26e;hb=11b7b651234355a0298e1075d57703c554e0ef4d;hp=965b211e980d98a9f9d06acb023921c250ecbe83;hpb=2c2c56e73d75124c542ec97fa6d0df75a43a6536;p=libfirm diff --git a/ir/be/ia32/bearch_ia32.c b/ir/be/ia32/bearch_ia32.c index 965b211e9..9e65fdb62 100644 --- a/ir/be/ia32/bearch_ia32.c +++ b/ir/be/ia32/bearch_ia32.c @@ -393,19 +393,6 @@ static int ia32_get_sp_bias(const ir_node *node) return 0; } -/** - * Put all registers which are saved by the prologue/epilogue in a set. - * - * @param self The callback object. - * @param s The result set. - */ -static void ia32_abi_dont_save_regs(void *self, pset *s) -{ - ia32_abi_env_t *env = self; - if(env->flags.try_omit_fp) - pset_insert_ptr(s, env->aenv->bp); -} - /** * Generate the routine prologue. * @@ -898,7 +885,6 @@ static const be_abi_callbacks_t ia32_abi_callbacks = { ia32_abi_init, ia32_abi_done, ia32_abi_get_between_type, - ia32_abi_dont_save_regs, ia32_abi_prologue, ia32_abi_epilogue }; @@ -1014,13 +1000,6 @@ static void ia32_prepare_graph(void *self) { be_dump(cg->irg, "-place", dump_ir_block_graph_sched); } -/** - * Dummy functions for hooks we don't need but which must be filled. - */ -static void ia32_before_sched(void *self) { - (void) self; -} - ir_node *turn_back_am(ir_node *node) { ir_graph *irg = current_ir_graph; @@ -1314,19 +1293,18 @@ static ir_node* create_spproj(ir_node *node, ir_node *pred, int pos) * push/pop into/from memory cascades. This is possible without using * any registers. */ -static void transform_MemPerm(ia32_code_gen_t *cg, ir_node *node) { - ir_graph *irg = get_irn_irg(node); - ir_node *block = get_nodes_block(node); - ir_node *in[1]; - ir_node *keep; - int i, arity; - ir_node *sp = be_abi_get_ignore_irn(cg->birg->abi, &ia32_gp_regs[REG_ESP]); +static void transform_MemPerm(ia32_code_gen_t *cg, ir_node *node) +{ + ir_graph *irg = get_irn_irg(node); + ir_node *block = get_nodes_block(node); + ir_node *sp = be_abi_get_ignore_irn(cg->birg->abi, &ia32_gp_regs[REG_ESP]); + int arity = be_get_MemPerm_entity_arity(node); + ir_node **pops = ALLOCAN(ir_node*, arity); + ir_node *in[1]; + ir_node *keep; + int i; const ir_edge_t *edge; const ir_edge_t *next; - ir_node **pops; - - arity = be_get_MemPerm_entity_arity(node); - pops = alloca(arity * sizeof(pops[0])); /* create Pushs */ for(i = 0; i < arity; ++i) { @@ -1590,7 +1568,6 @@ static const arch_code_generator_if_t ia32_code_gen_if = { ia32_before_abi, /* before abi introduce hook */ ia32_prepare_graph, NULL, /* spill */ - ia32_before_sched, /* before scheduling hook */ ia32_before_ra, /* before register allocation hook */ ia32_after_ra, /* after register allocation hook */ ia32_finish, /* called before codegen */