X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbenode_t.h;h=b978105807d09af9857ccc54c4dd62c94ec6638c;hb=890fe2773c2fdba09fc899c6f51629f4c380059d;hp=71b11f91e27708c60aaa089772031d3714ac4560;hpb=8ad2ba7262da4ceab9ade7a02b831175e9d4aa88;p=libfirm diff --git a/ir/be/benode_t.h b/ir/be/benode_t.h index 71b11f91e..b97810580 100644 --- a/ir/be/benode_t.h +++ b/ir/be/benode_t.h @@ -150,6 +150,8 @@ ir_node *be_new_Perm(const arch_register_class_t *cls, ir_graph *irg, ir_node *b ir_node *be_new_MemPerm(const arch_env_t *arch_env, ir_graph *irg, ir_node *bl, int n, ir_node *in[]); ir_node *be_new_Keep(const arch_register_class_t *cls, ir_graph *irg, ir_node *bl, int arity, ir_node *in[]); +void be_Keep_add_node(ir_node *keep, const arch_register_class_t *cls, ir_node *node); + ir_node *be_new_FrameLoad(const arch_register_class_t *cls_frame, const arch_register_class_t *cls_data, ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *frame, ir_entity *ent); ir_node *be_new_FrameStore(const arch_register_class_t *cls_frame, const arch_register_class_t *cls_data, @@ -310,6 +312,19 @@ ir_node *be_new_RegParams(ir_graph *irg, ir_node *bl, int n_out); ir_node *be_new_Barrier(ir_graph *irg, ir_node *bl, int n, ir_node *in[]); +/** + * Appends a node to a barrier, returns the result proj of the node + */ +ir_node *be_Barrier_append_node(ir_node *barrier, ir_node *node); + +/** + * Appends a register out requirement to a RegParams node + * + * @returns the proj node for the new register + */ +ir_node *be_RegParams_append_out_req(ir_node *regparams, + const arch_register_t *reg); + /** * Make a spill node. * @@ -359,6 +374,7 @@ int be_is_Return(const ir_node *irn); int be_is_IncSP(const ir_node *irn); int be_is_SetSP(const ir_node *irn); int be_is_AddSP(const ir_node *irn); +int be_is_SubSP(const ir_node *irn); int be_is_RegParams(const ir_node *irn); int be_is_StackParam(const ir_node *irn); int be_is_FrameAddr(const ir_node *irn);