X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbearch.h;h=0ab8097d1ee4b6307f07e5944decb173ef44f6f2;hb=f804d333c7b5459c3c1a6bfc188ecdc54346be73;hp=4f591735855a4445eb4e17a3cece97ad94b22b31;hpb=1670ff3bb630369f79c4f2a1846ebcf32fe19133;p=libfirm diff --git a/ir/be/bearch.h b/ir/be/bearch.h index 4f5917358..0ab8097d1 100644 --- a/ir/be/bearch.h +++ b/ir/be/bearch.h @@ -405,14 +405,28 @@ struct _arch_code_generator_if_t { /** * Called after register allocation to lower Spills to Stores + * @param self The code generator + * @param spill The spill node to lower + * @return The new backend node which substitutes the spill */ ir_node *(*lower_spill)(void *self, ir_node *spill); /** * Called after register allocation to lower Reloads to Loads + * @param self The code generator + * @param reload The reload node to lower + * @return The new backend node which substitutes the reload */ ir_node *(*lower_reload)(void *self, ir_node *reload); + /** + * Called in lowering (e.g. alloca lowering) to set the + * correct stack register. + * @param self The code generator + * @return The stack register for the current irg + */ + const arch_register_t *(*get_stack_register)(void *self); + /** * Called after everything happened. * The code generator must also be de-allocated here. @@ -501,12 +515,13 @@ struct _arch_isa_if_t { const list_sched_selector_t *(*get_list_sched_selector)(const void *self); /** - * Get the proj number assigned to the register. - * @param self The isa object. - * @param reg The register - * @return The proj number assigned to this register + * Take a proj from a call, set the correct register and projnum for this proj + * @param self The isa object. + * @param proj The proj + * @param is_keep Non-zero if proj is a Keep argument + * @return The backend proj number assigned to this proj */ - long (*get_projnum_for_register)(const void *self, const arch_register_t *reg); + long (*handle_call_proj)(const void *self, ir_node *proj, int is_keep); }; #define arch_isa_get_n_reg_class(isa) ((isa)->impl->get_n_reg_class(isa))