summaryrefslogtreecommitdiffhomepage
path: root/ir/be/benode.c
diff options
context:
space:
mode:
authorChristoph Mallon <mallon@cs.uni-saarland.de>2015-07-27 18:55:58 +0200
committerChristoph Mallon <mallon@cs.uni-saarland.de>2015-07-27 22:21:48 +0200
commit6b240a342fb12b37a1639da82728bb816c5793a1 (patch)
treeec32561295e2c287caf67f382b607170d3a210d9 /ir/be/benode.c
parent8d14210e48e14de3b1d7bca00df590ca92700e0b (diff)
be: Introduce a constraint for memory outputs.
Diffstat (limited to 'ir/be/benode.c')
-rw-r--r--ir/be/benode.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ir/be/benode.c b/ir/be/benode.c
index 6bb5b76..733096c 100644
--- a/ir/be/benode.c
+++ b/ir/be/benode.c
@@ -178,6 +178,10 @@ ir_node *be_new_MemPerm(ir_node *const block, int n, ir_node *const *const in)
ir_node *const irn = new_ir_node(NULL, irg, block, op_be_MemPerm, mode_T, n, in);
init_node_attr(irn, n, arch_irn_flags_none);
+ for (int i = 0; i < n; ++i) {
+ be_node_set_register_req_in( irn, i, arch_memory_req);
+ arch_set_irn_register_req_out(irn, i, arch_memory_req);
+ }
be_memperm_attr_t *attr = (be_memperm_attr_t*)get_irn_generic_attr(irn);
attr->in_entities = OALLOCNZ(get_irg_obstack(irg), ir_entity*, n);