X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbearch.h;h=e6d1431d3024ffd42975cc2e8e8802c0115ce50e;hb=48071aea23fabc99044488d12757f274bc956fae;hp=e98860670a3a9fbbf30f4bffe70cc500668abfb7;hpb=a4cf97f91f44fcb14d08f9295bcdef8da372a54d;p=libfirm diff --git a/ir/be/bearch.h b/ir/be/bearch.h index e98860670..e6d1431d3 100644 --- a/ir/be/bearch.h +++ b/ir/be/bearch.h @@ -280,6 +280,14 @@ struct _arch_irn_ops_if_t { */ entity *(*get_frame_entity)(const void *self, const ir_node *irn); + /** + * Set the entity on the stack frame this node depends on. + * @param self The this pointer. + * @param irn The node in question. + * @param ent The entity to set + */ + void (*set_frame_entity)(const void *self, ir_node *irn, entity *ent); + /** * Set the offset of a node carrying an entity on the stack frame. * @param self The this pointer. @@ -340,9 +348,12 @@ struct _arch_irn_ops_t { const arch_irn_ops_if_t *impl; }; +extern const arch_irn_ops_t *arch_get_irn_ops(const arch_env_t *env, const ir_node *irn); + extern void arch_set_frame_offset(const arch_env_t *env, ir_node *irn, int bias); extern entity *arch_get_frame_entity(const arch_env_t *env, ir_node *irn); +extern void arch_set_frame_entity(const arch_env_t *env, ir_node *irn, entity *ent); extern int arch_get_op_estimated_cost(const arch_env_t *env, const ir_node *irn); extern arch_inverse_t *arch_get_inverse(const arch_env_t *env, const ir_node *irn, int i, arch_inverse_t *inverse, struct obstack *obstack);