map_Div->kind = INTRINSIC_INSTR;
map_Div->op = op_Div;
- map_Div->i_mapper = i_mapper_RuntimeCall;
+ map_Div->i_mapper = (i_mapper_func)i_mapper_RuntimeCall;
map_Div->ctx = &rt_Div;
}
{
map_Div->kind = INTRINSIC_INSTR;
map_Div->op = op_Div;
- map_Div->i_mapper = i_mapper_RuntimeCall;
+ map_Div->i_mapper = (i_mapper_func)i_mapper_RuntimeCall;
map_Div->ctx = &rt_Div;
}
{
map_Mod->kind = INTRINSIC_INSTR;
map_Mod->op = op_Mod;
- map_Mod->i_mapper = i_mapper_RuntimeCall;
+ map_Mod->i_mapper = (i_mapper_func)i_mapper_RuntimeCall;
map_Mod->ctx = &rt_Mod;
}
{
map_Mod->kind = INTRINSIC_INSTR;
map_Mod->op = op_Mod;
- map_Mod->i_mapper = i_mapper_RuntimeCall;
+ map_Mod->i_mapper = (i_mapper_func)i_mapper_RuntimeCall;
map_Mod->ctx = &rt_Mod;
}
ir_mode *mode;
int i;
int n = get_method_n_params(method_type);
-// const arch_register_t *reg;
be_abi_call_flags_t flags = {
- 0, /* store from left to right */
- 0, /* store arguments sequential */
- 1, /* try to omit the frame pointer */
- 1, /* the function can use any register as frame pointer */
- 1 /* a call can take the callee's address as an immediate */
+ {
+ 0, /* store from left to right */
+ 0, /* store arguments sequential */
+ 1, /* try to omit the frame pointer */
+ 1, /* the function can use any register as frame pointer */
+ 1 /* a call can take the callee's address as an immediate */
+ }
};
/* set stack parameter passing style */
return &arm_sched_selector;
}
+/**
+ * Returns the necessary byte alignment for storing a register of given class.
+ */
+static int arm_get_reg_class_alignment(const void *self, const arch_register_class_t *cls) {
+ ir_mode *mode = arch_register_class_mode(cls);
+ return get_mode_size_bytes(mode);
+}
+
#ifdef WITH_LIBCORE
static void arm_register_options(lc_opt_entry_t *ent)
{
arm_get_irn_handler,
arm_get_code_generator_if,
arm_get_list_sched_selector,
+ arm_get_reg_class_alignment
};