X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=ir%2Fbe%2Fbenode.c;h=98d97b8180ffa060d7f2d8662f15007c88934757;hb=f436f72951577e35b60e0ea1f2e6a536e4f479bb;hp=957c1a870edd29c209d720009826c7ba42bf1bfe;hpb=1cd697ea862af3d44f60cf5dbf22f5b39e2b5f6b;p=libfirm diff --git a/ir/be/benode.c b/ir/be/benode.c index 957c1a870..98d97b818 100644 --- a/ir/be/benode.c +++ b/ir/be/benode.c @@ -232,7 +232,7 @@ static void *init_node_attr(ir_node* irn, int max_reg_data) return a; } -static INLINE int is_be_node(const ir_node *irn) +int is_be_node(const ir_node *irn) { return get_op_tag(get_irn_op(irn)) == &be_node_tag; } @@ -309,12 +309,18 @@ ir_node *be_new_Reload(const arch_register_class_t *cls, const arch_register_cla return res; } -ir_node *(be_get_Reload_mem)(const ir_node *irn) +ir_node *be_get_Reload_mem(const ir_node *irn) { assert(be_is_Reload(irn)); return get_irn_n(irn, be_pos_Reload_mem); } +ir_node *be_get_Reload_frame(const ir_node *irn) +{ + assert(be_is_Reload(irn)); + return get_irn_n(irn, be_pos_Reload_frame); +} + ir_node *be_new_Perm(const arch_register_class_t *cls, ir_graph *irg, ir_node *bl, int n, ir_node *in[]) { int i; @@ -345,6 +351,10 @@ ir_node *be_get_Copy_op(const ir_node *cpy) { return get_irn_n(cpy, be_pos_Copy_op); } +void be_set_Copy_op(ir_node *cpy, ir_node *op) { + set_irn_n(cpy, be_pos_Copy_op, op); +} + ir_node *be_new_Keep(const arch_register_class_t *cls, ir_graph *irg, ir_node *bl, int n, ir_node *in[]) { int i; @@ -431,7 +441,7 @@ ir_node *be_new_IncSP(const arch_register_t *sp, ir_graph *irg, ir_node *bl, ir_ { be_stack_attr_t *a; ir_node *irn; - ir_node *in[1]; + ir_node *in[2]; in[0] = old_sp; in[1] = mem; @@ -1016,6 +1026,7 @@ static arch_irn_class_t be_node_classify(const void *_self, const ir_node *irn) XXX(Perm, perm); XXX(Copy, copy); XXX(Return, branch); + XXX(StackParam, stackparam); #undef XXX default: return 0;