Commit 2c1574ef authored by Christoph Mallon's avatar Christoph Mallon
Browse files

ia32: Move memory output of Push.

This way we do not need to create a new Proj, when we replace a Store + IncSP by a Push.
parent 7401b516
......@@ -438,14 +438,6 @@ static void peephole_IncSP_Store_to_push(ir_node *irn)
curr_sp = new_r_Proj(push, spmode, pn_ia32_Push_stack);
arch_set_irn_register(curr_sp, spreg);
/* create memory Proj */
ir_node *mem_proj = new_r_Proj(push, mode_M, pn_ia32_Push_M);
/* Rewire Store Proj. */
ir_node *const proj = get_Proj_for_pn(store, pn_ia32_Store_M);
if (proj)
exchange(proj, mem_proj);
/* use the memproj now */
be_peephole_exchange(store, push);
......
......@@ -1044,10 +1044,10 @@ Lea => {
Push => {
state => "exc_pinned",
reg_req => { in => [ "gp", "gp", "none", "gp", "esp" ], out => [ "esp:I|S", "none" ] },
reg_req => { in => [ "gp", "gp", "none", "gp", "esp" ], out => [ "none", "esp:I|S" ] },
ins => [ "base", "index", "mem", "val", "stack" ],
emit => "push%M %AS3",
outs => [ "stack", "M" ],
outs => [ "M", "stack" ],
am => "source,unary",
latency => 2,
},
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment