int bits = get_mode_size_bits(mode);
reg_or_stackslot_t *param = ¶ms[i];
- if (i == 0 && function_type->attr.ma.has_compound_ret_parameter) {
+ if (i == 0 &&
+ (get_method_calling_convention(function_type) & cc_compound_ret)) {
assert(mode_is_reference(mode) && bits == 32);
/* special case, we have reserved space for this on the between
* type */
}
be_emit_cstring("\tjmp ");
be_emit_string(destreg);
- if (type->attr.ma.has_compound_ret_parameter) {
+ if (get_method_calling_convention(type) & cc_compound_ret) {
be_emit_cstring("+12");
} else {
be_emit_cstring("+8");
ir_entity *entity = NULL;
ir_node *new_frame = get_stack_pointer_for(node);
bool aggregate_return
- = type->attr.ma.has_compound_ret_parameter;
+ = get_method_calling_convention(type) & cc_compound_ret;
ir_node *incsp;
int mem_pos;
ir_node *res;
/* create the new type */
lowered = new_d_type_method(nn_params, nn_ress, get_type_dbg_info(mtp));
- lowered->attr.ma.has_compound_ret_parameter = true;
/* fill it */
for (i = 0; i < nn_params; ++i)
ir_variadicity variadicity; /**< The variadicity of the method. */
mtp_additional_properties additional_properties; /**< Set of additional method properties. */
unsigned irg_calling_conv; /**< A set of calling convention flags. */
- bool has_compound_ret_parameter : 1; /**< first parameter compound return address */
} mtd_attr;
/** Union type attributes. */