X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fsparc%2Fbearch_sparc.c;h=b5a16a1f16408b4f4f754a0efc87b5f2c5aa5da3;hb=9e31d4eab3ffb00fae7791ed224ea27fbca2eade;hp=ed89cfd339ebc7f8b4bd70e5eacde50697998255;hpb=af300963705d97b2f596e8cf2887813c25de6ad8;p=libfirm diff --git a/ir/be/sparc/bearch_sparc.c b/ir/be/sparc/bearch_sparc.c index ed89cfd33..b5a16a1f1 100644 --- a/ir/be/sparc/bearch_sparc.c +++ b/ir/be/sparc/bearch_sparc.c @@ -20,6 +20,7 @@ /** * @file * @brief The main sparc backend driver file. + * @author Hannes Rapp, Matthias Braun * @version $Id$ */ #include "config.h" @@ -536,13 +537,21 @@ static ir_node *sparc_create_set(ir_node *cond) static void sparc_lower_for_target(void) { - int i; - int n_irgs = get_irp_n_irgs(); + size_t i, n_irgs = get_irp_n_irgs(); lower_mode_b_config_t lower_mode_b_config = { mode_Iu, sparc_create_set, 0, }; + lower_params_t params = { + 4, /* def_ptr_alignment */ + LF_COMPOUND_RETURN | LF_RETURN_HIDDEN, /* flags */ + ADD_HIDDEN_ALWAYS_IN_FRONT, /* hidden_params */ + NULL, /* find pointer type */ + NULL, /* ret_compound_in_regs */ + }; + + lower_calls_with_compounds(¶ms); for (i = 0; i < n_irgs; ++i) { ir_graph *irg = get_irp_irg(i); @@ -637,7 +646,7 @@ const arch_isa_if_t sparc_isa_if = { sparc_prepare_graph, sparc_before_ra, sparc_after_ra, - NULL, /* finish */ + sparc_finish, sparc_emit_routine, };