summaryrefslogtreecommitdiffhomepage
path: root/ir/be/bearch.c
diff options
context:
space:
mode:
authorChristoph Mallon <mallon@cs.uni-saarland.de>2015-07-27 19:21:08 +0200
committerChristoph Mallon <mallon@cs.uni-saarland.de>2015-07-27 22:22:11 +0200
commit8c9e9566ede58191d79f67b01147fbe0fc0730b8 (patch)
tree190108d167f477bd9d23fb88a2e2ada932f1abea /ir/be/bearch.c
parent6b240a342fb12b37a1639da82728bb816c5793a1 (diff)
be: Introduce a constraint for execution outputs.
Diffstat (limited to 'ir/be/bearch.c')
-rw-r--r--ir/be/bearch.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/ir/be/bearch.c b/ir/be/bearch.c
index a6a80f6..54cb329 100644
--- a/ir/be/bearch.c
+++ b/ir/be/bearch.c
@@ -20,6 +20,20 @@
#include "raw_bitset.h"
#include "util.h"
+static arch_register_class_t arch_exec_cls = {
+ .name = "exec",
+ .mode = NULL, /* Filled in at initialization. */
+ .regs = NULL,
+ .class_req = arch_exec_req,
+ .index = (unsigned)-1,
+ .n_regs = 0,
+ .manual_ra = true,
+};
+
+arch_register_req_t const arch_exec_requirement = {
+ .cls = &arch_exec_cls,
+};
+
static arch_register_class_t arch_memory_cls = {
.name = "memory",
.mode = NULL, /* Filled in at initialization. */
@@ -174,5 +188,6 @@ void arch_copy_irn_out_info(ir_node *const dst, unsigned const dst_pos, ir_node
BE_REGISTER_MODULE_CONSTRUCTOR(be_init_arch)
void be_init_arch(void)
{
+ arch_exec_cls.mode = mode_X;
arch_memory_cls.mode = mode_M;
}