X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbenode_t.h;h=aa426e6534e6d2151f5fbf6d0f4a98a31f7a5846;hb=4ed245f5007168dab7850942a7ee6b6b29a19817;hp=c9957b1a3c2bdf7e6701db24b841605a4513d045;hpb=927eac90f1c28092a5406def6540bb9fae752360;p=libfirm diff --git a/ir/be/benode_t.h b/ir/be/benode_t.h index c9957b1a3..aa426e653 100644 --- a/ir/be/benode_t.h +++ b/ir/be/benode_t.h @@ -143,6 +143,9 @@ void be_set_Copy_op(ir_node *cpy, ir_node *op); * Make a new Perm node. */ ir_node *be_new_Perm(const arch_register_class_t *cls, ir_graph *irg, ir_node *bl, int arity, ir_node *in[]); +/** + * Create a new MemPerm node. + */ 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[]); @@ -161,6 +164,12 @@ enum { be_pos_AddSP_last = 2 }; +enum { + pn_be_AddSP_res = 0, + pn_be_AddSP_M = 1, + pn_be_AddSP_last = 2 +}; + /** * Make a new AddSP node. * An AddSP node expresses an increase of the stack pointer in the direction the stack @@ -332,15 +341,11 @@ int be_is_FrameStore(const ir_node *irn); int be_is_Barrier(const ir_node *irn); /** - * Get the entity on the stack frame the given node uses. - * @param irn The node. - * @return The entity on the stack frame used by the node or NULL, - * if the node does not access the stack frame or is no back-end node. + * Try to avoid this function and better call arch_get_frame_entity! * + * Returns the frame entity used by the be node */ -entity *be_get_frame_entity(const ir_node *irn); - -void be_set_frame_entity(const ir_node *irn, entity* ent); +entity* be_get_frame_entity(const ir_node *irn); ir_node* be_get_Reload_mem(const ir_node *irn); ir_node* be_get_Reload_frame(const ir_node* irn); @@ -351,6 +356,8 @@ entity *be_get_MemPerm_in_entity(const ir_node *irn, int n); void be_set_MemPerm_out_entity(const ir_node *irn, int n, entity* ent); entity *be_get_MemPerm_out_entity(const ir_node *irn, int n); +int be_get_MemPerm_entity_arity(const ir_node *irn); + /** * Impose a register constraint on a backend node. * @param irn The node.