summaryrefslogtreecommitdiffhomepage
path: root/ir/be/bespillslots.c
diff options
context:
space:
mode:
authorChristoph Mallon <mallon@cs.uni-saarland.de>2015-07-27 21:52:04 +0200
committerChristoph Mallon <mallon@cs.uni-saarland.de>2015-07-28 10:36:31 +0200
commit9a6b8525e9916f0b0448468defd150413814ecfe (patch)
tree8560176b7b598b84c47f88efd0f6dbaff2cb5679 /ir/be/bespillslots.c
parent6a3abbe420b99019efd3e8a51bfce4e3cf713d5b (diff)
be: Add and use be_new_Proj().
It is like new_r_Proj(), but the mode is determined automatically from the out requirement of the predecessor. This probably resolves some mode mismatches in untested code paths -- AMD64 backend and SPARC hard float, I'm looking at you!
Diffstat (limited to 'ir/be/bespillslots.c')
-rw-r--r--ir/be/bespillslots.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/ir/be/bespillslots.c b/ir/be/bespillslots.c
index a28909a..7f7bfc8 100644
--- a/ir/be/bespillslots.c
+++ b/ir/be/bespillslots.c
@@ -586,12 +586,9 @@ static void create_memperms(be_fec_env_t *env)
i = 0;
for (memperm_entry_t *entry = memperm->entries; entry != NULL;
entry = entry->next, ++i) {
- ir_node* arg = get_irn_n(entry->node, entry->pos);
-
be_set_MemPerm_in_entity(mempermnode, i, entry->in);
be_set_MemPerm_out_entity(mempermnode, i, entry->out);
- ir_node *proj = new_r_Proj(mempermnode, get_irn_mode(arg), i);
-
+ ir_node *const proj = be_new_Proj(mempermnode, i);
set_irn_n(entry->node, entry->pos, proj);
}
}