projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- placed phi_handler into the be_main environment, removing unnecessary allocations
[libfirm]
/
ir
/
be
/
TEMPLATE
/
bearch_TEMPLATE.c
diff --git
a/ir/be/TEMPLATE/bearch_TEMPLATE.c
b/ir/be/TEMPLATE/bearch_TEMPLATE.c
index
417c44e
..
7aa0ace
100644
(file)
--- a/
ir/be/TEMPLATE/bearch_TEMPLATE.c
+++ b/
ir/be/TEMPLATE/bearch_TEMPLATE.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 1995-200
7
University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-200
8
University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
*
* This file is part of libFirm.
*
@@
-321,6
+321,7
@@
static void *TEMPLATE_cg_init(be_irg_t *birg);
static const arch_code_generator_if_t TEMPLATE_code_gen_if = {
TEMPLATE_cg_init,
static const arch_code_generator_if_t TEMPLATE_code_gen_if = {
TEMPLATE_cg_init,
+ NULL, /* get_pic_base hook */
NULL, /* before abi introduce hook */
TEMPLATE_prepare_graph,
NULL, /* spill hook */
NULL, /* before abi introduce hook */
TEMPLATE_prepare_graph,
NULL, /* spill hook */
@@
-372,11
+373,11
@@
static TEMPLATE_isa_t TEMPLATE_isa_template = {
&TEMPLATE_general_purpose_regs[REG_SP], /* stack pointer register */
&TEMPLATE_general_purpose_regs[REG_BP], /* base pointer register */
-1, /* stack direction */
&TEMPLATE_general_purpose_regs[REG_SP], /* stack pointer register */
&TEMPLATE_general_purpose_regs[REG_BP], /* base pointer register */
-1, /* stack direction */
+ 1, /* stack alignment for calls */
NULL, /* main environment */
7, /* costs for a spill instruction */
5, /* costs for a reload instruction */
},
NULL, /* main environment */
7, /* costs for a spill instruction */
5, /* costs for a reload instruction */
},
- NULL_EMITTER, /* emitter environment */
};
/**
};
/**
@@
-393,7
+394,7
@@
static void *TEMPLATE_init(FILE *outfile) {
isa = xcalloc(1, sizeof(*isa));
memcpy(isa, &TEMPLATE_isa_template, sizeof(*isa));
isa = xcalloc(1, sizeof(*isa));
memcpy(isa, &TEMPLATE_isa_template, sizeof(*isa));
- be_emit_init
_env(&isa->emit,
outfile);
+ be_emit_init
(
outfile);
TEMPLATE_register_init();
TEMPLATE_create_opcodes();
TEMPLATE_register_init();
TEMPLATE_create_opcodes();
@@
-410,25
+411,25
@@
static void TEMPLATE_done(void *self) {
TEMPLATE_isa_t *isa = self;
/* emit now all global declarations */
TEMPLATE_isa_t *isa = self;
/* emit now all global declarations */
- be_gas_emit_decls(
&isa->emit,
isa->arch_isa.main_env, 0);
+ be_gas_emit_decls(isa->arch_isa.main_env, 0);
- be_emit_
destroy_env(&isa->emit
);
+ be_emit_
exit(
);
free(self);
}
free(self);
}
-static
int
TEMPLATE_get_n_reg_class(const void *self)
+static
unsigned
TEMPLATE_get_n_reg_class(const void *self)
{
(void) self;
return N_CLASSES;
}
static const arch_register_class_t *TEMPLATE_get_reg_class(const void *self,
{
(void) self;
return N_CLASSES;
}
static const arch_register_class_t *TEMPLATE_get_reg_class(const void *self,
-
int
i)
+
unsigned
i)
{
(void) self;
{
(void) self;
- assert(i
>= 0 && i < N_CLASSES && "Invalid TEMPLATE register class requested."
);
+ assert(i
< N_CLASSES
);
return &TEMPLATE_reg_classes[i];
}
return &TEMPLATE_reg_classes[i];
}
@@
-572,7
+573,9
@@
void TEMPLATE_get_call_abi(const void *self, ir_type *method_type,
/* be_abi_call_param_reg(abi, i, reg); */
/* default: all parameters on stack */
/* be_abi_call_param_reg(abi, i, reg); */
/* default: all parameters on stack */
- be_abi_call_param_stack(abi, i, 4, 0, 0);
+ tp = get_method_param_type(method_type, i);
+ mode = get_type_mode(tp);
+ be_abi_call_param_stack(abi, i, mode, 4, 0, 0);
}
/* TODO: set correct return register */
}
/* TODO: set correct return register */