-/**
- * Creates a Push instruction before the given schedule point.
- *
- * @param dbgi debug info
- * @param irg the graph
- * @param block the block
- * @param stack the previous stack value
- * @param schedpoint the new node is added before this node
- * @param reg the register to pop
- *
- * @return the new stack value
- */
-static ir_node *create_push(dbg_info *dbgi, ir_graph *irg, ir_node *block,
- ir_node *stack, ir_node *schedpoint)
-{
- const arch_register_t *esp = &ia32_gp_regs[REG_ESP];
-
- ir_node *val = ia32_new_Unknown_gp(cg);
- ir_node *noreg = ia32_new_NoReg_gp(cg);
- ir_node *nomem = get_irg_no_mem(irg);
- ir_node *push = new_rd_ia32_Push(dbgi, irg, block, noreg, noreg, nomem, val, stack);
- sched_add_before(schedpoint, push);
-
- stack = new_r_Proj(irg, block, push, mode_Iu, pn_ia32_Push_stack);
- arch_set_irn_register(stack, esp);
-
- return stack;
-}
-