From: Michael Beck Date: Sat, 24 May 2008 16:55:57 +0000 (+0000) Subject: arch_env_* macros updated X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=2896b2261b1f54df233305e72dfe4591ab966f6f;p=libfirm arch_env_* macros updated [r19750] --- diff --git a/ir/be/bearch_t.h b/ir/be/bearch_t.h index 82a40bf0a..1e7c93bef 100644 --- a/ir/be/bearch_t.h +++ b/ir/be/bearch_t.h @@ -406,24 +406,6 @@ struct arch_code_generator_t { const arch_code_generator_if_t *impl; }; -/** - * ISA base class. - */ -struct arch_env_t { - const arch_isa_if_t *impl; - const arch_register_t *sp; /** The stack pointer register. */ - const arch_register_t *bp; /** The base pointer register. */ - int stack_dir; /** -1 for decreasing, 1 for increasing. */ - int stack_alignment; /** stack alignment */ - const be_main_env_t *main_env; /** the be main environment */ - int spill_cost; /** cost for a be_Spill node */ - int reload_cost; /** cost for a be_Reload node */ -}; - -#define arch_env_stack_dir(env) ((env)->stack_dir) -#define arch_env_sp(env) ((env)->sp) -#define arch_env_bp(env) ((env)->bp) - /** * Architecture interface. */ @@ -542,14 +524,36 @@ struct arch_isa_if_t { ir_graph **(*get_backend_irg_list)(const void *self, ir_graph ***irgs); }; +#define arch_env_done(env) ((env)->impl->done(env)) #define arch_env_get_n_reg_class(env) ((env)->impl->get_n_reg_class(env)) #define arch_env_get_reg_class(env,i) ((env)->impl->get_reg_class(env, i)) -#define arch_env_get_call_abi(env,tp,abi) ((env)->impl->get_call_abi((env), (tp), (abi))) #define arch_env_get_reg_class_for_mode(env,mode) ((env)->impl->get_reg_class_for_mode((env), (mode))) -#define arch_env_make_code_generator(env,irg) ((env)->impl->make_code_generator((env), (irg))) -#define arch_env_get_reg_class_alignment(env, cls) ((env)->impl->get_reg_class_alignment((env), (cls))) -#define arch_env_get_allowed_execution_units(env, irn) ((env)->impl->get_allowed_execution_units((env), (irn))) -#define arch_env_get_machine(env) ((env)->impl->get_machine((env))) -#define arch_env_get_backend_irg_list(env, irgs) ((env)->impl->get_backend_irg_list((env), (irgs))) +#define arch_env_get_call_abi(env,tp,abi) ((env)->impl->get_call_abi((env), (tp), (abi))) +#define arch_env_get_code_generator_if(env) ((env)->impl->get_code_generator_if((env))) +#define arch_env_get_list_sched_selector(env,selector) ((env)->impl->get_list_sched_selector((env), (selector))) +#define arch_env_get_ilp_sched_selector(env) ((env)->impl->get_ilp_sched_selector(env)) +#define arch_env_get_reg_class_alignment(env,cls) ((env)->impl->get_reg_class_alignment((env), (cls))) +#define arch_env_get_params(env) ((env)->impl->get_params()) +#define arch_env_get_allowed_execution_units(env,irn) ((env)->impl->get_allowed_execution_units((env), (irn))) +#define arch_env_get_machine(env) ((env)->impl->get_machine(env)) +#define arch_env_get_backend_irg_list(env,irgs) ((env)->impl->get_backend_irg_list((env), (irgs))) + +/** + * ISA base class. + */ +struct arch_env_t { + const arch_isa_if_t *impl; + const arch_register_t *sp; /** The stack pointer register. */ + const arch_register_t *bp; /** The base pointer register. */ + int stack_dir; /** -1 for decreasing, 1 for increasing. */ + int stack_alignment; /** stack alignment */ + const be_main_env_t *main_env; /** the be main environment */ + int spill_cost; /** cost for a be_Spill node */ + int reload_cost; /** cost for a be_Reload node */ +}; + +#define arch_env_stack_dir(env) ((env)->stack_dir) +#define arch_env_sp(env) ((env)->sp) +#define arch_env_bp(env) ((env)->bp) #endif /* FIRM_BE_BEARCH_T_H */ diff --git a/ir/be/belistsched.c b/ir/be/belistsched.c index df30f8639..8d2d599da 100644 --- a/ir/be/belistsched.c +++ b/ir/be/belistsched.c @@ -601,7 +601,7 @@ void list_sched(be_irg_t *birg, be_options_t *be_opts) /* initialize environment for list scheduler */ memset(&env, 0, sizeof(env)); - env.selector = arch_env->impl->get_list_sched_selector(arch_env, &sel); + env.selector = arch_env_get_list_sched_selector(arch_env, &sel); env.arch_env = arch_env; env.irg = irg; env.sched_info = NEW_ARR_F(sched_irn_t, num_nodes); @@ -656,7 +656,7 @@ void list_sched_single_block(const be_irg_t *birg, ir_node *block, /* initialize environment for list scheduler */ memset(&env, 0, sizeof(env)); - env.selector = arch_env->impl->get_list_sched_selector(arch_env, &sel); + env.selector = arch_env_get_list_sched_selector(arch_env, &sel); env.arch_env = arch_env; env.irg = irg; env.sched_info = NEW_ARR_F(sched_irn_t, num_nodes); diff --git a/ir/be/bemain.c b/ir/be/bemain.c index e3f546bd7..8da505413 100644 --- a/ir/be/bemain.c +++ b/ir/be/bemain.c @@ -274,7 +274,7 @@ static be_main_env_t *be_init_env(be_main_env_t *env, FILE *file_handle) */ static void be_done_env(be_main_env_t *env) { - env->arch_env->impl->done(env->arch_env); + arch_env_done(env->arch_env); be_dbg_close(); be_phi_handler_free(); @@ -492,7 +492,7 @@ static void be_main_loop(FILE *file_handle, const char *cup_name) BE_TIMER_POP(t_verify); /* Get the code generator interface. */ - cg_if = arch_env->impl->get_code_generator_if(arch_env); + cg_if = arch_env_get_code_generator_if(arch_env); /* get a code generator for this graph. */ birg->cg = cg_if->init(birg);