}
}
+#if 0
/**
* The start block has no jump, instead it has an initial exec Proj.
* The backend wants to handle all blocks the same way, so we replace
}
}
}
+#endif
/**
* Modify the irg itself and the frame type.
pset *dont_save = pset_new_ptr(8);
int n_params;
- int i, j, n, temp;
+ int i, j, n;
reg_node_map_t *rm;
const arch_register_t *fp_reg;
}
else if(arg->on_stack) {
- /* For atomic parameters which are actually used, we create a StackParam node. */
+ ir_node *addr = be_new_FrameAddr(sp->reg_class, irg, reg_params_bl, frame_pointer, arg->stack_ent);
+
+ /* For atomic parameters which are actually used, we create a Load node. */
if(is_atomic_type(param_type) && get_irn_n_edges(args[i]) > 0) {
ir_mode *mode = get_type_mode(param_type);
- const arch_register_class_t *cls = arch_isa_get_reg_class_for_mode(isa, mode);
- repl = be_new_StackParam(cls, isa->bp->reg_class, irg, reg_params_bl, mode, frame_pointer, arg->stack_ent);
+ ir_node *load = new_rd_Load(NULL, irg, reg_params_bl,
+ new_NoMem(), addr, mode);
+ repl = new_rd_Proj(NULL, irg, reg_params_bl, load,
+ mode, pn_Load_res);
}
/* The stack parameter is not primitive (it is a struct or array),
we thus will create a node representing the parameter's address
on the stack. */
else {
- repl = be_new_FrameAddr(sp->reg_class, irg, reg_params_bl, frame_pointer, arg->stack_ent);
+ repl = addr;
}
}
del_pset(dont_save);
obstack_free(&env->obst, args);
+ /* this was needed for STA backend... */
+#if 0
/* handle start block here (place a jump in the block) */
- temp = 0;
- irg_block_walk_graph(irg, fix_start_block, NULL, &temp);
+ i = 0;
+ irg_block_walk_graph(irg, fix_start_block, NULL, &i);
+#endif
}
/** Fix the state inputs of calls that still hang on unknowns */