mips.c (mips_promote_function_mode): New function.

2015-12-14  Steve Ellcey  <sellcey@imgtec.com>

	* config/mips/mips.c (mips_promote_function_mode): New function.
	(TARGET_PROMOTE_FUNCTION_MODE): Define as above function.
	(TARGET_PROMOTE_PROTOTYPES): Remove.

From-SVN: r231634
This commit is contained in:
Steve Ellcey 2015-12-14 23:56:28 +00:00 committed by Steve Ellcey
parent fa583f9e65
commit db4aec84e0
2 changed files with 33 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2015-12-14 Steve Ellcey <sellcey@imgtec.com>
* config/mips/mips.c (mips_promote_function_mode): New function.
(TARGET_PROMOTE_FUNCTION_MODE): Define as above function.
(TARGET_PROMOTE_PROTOTYPES): Remove.
2015-12-14 Jason Merrill <jason@redhat.com>
PR c++/68309

View File

@ -19906,6 +19906,32 @@ mips_ira_change_pseudo_allocno_class (int regno, reg_class_t allocno_class)
return GR_REGS;
return allocno_class;
}
/* Implement TARGET_PROMOTE_FUNCTION_MODE */
/* This function is equivalent to default_promote_function_mode_always_promote
except that it returns a promoted mode even if type is NULL_TREE. This is
needed by libcalls which have no type (only a mode) such as fixed conversion
routines that take a signed or unsigned char/short argument and convert it
to a fixed type. */
static machine_mode
mips_promote_function_mode (const_tree type ATTRIBUTE_UNUSED,
machine_mode mode,
int *punsignedp ATTRIBUTE_UNUSED,
const_tree fntype ATTRIBUTE_UNUSED,
int for_return ATTRIBUTE_UNUSED)
{
int unsignedp;
if (type != NULL_TREE)
return promote_mode (type, mode, punsignedp);
unsignedp = *punsignedp;
PROMOTE_MODE (mode, unsignedp, type);
*punsignedp = unsignedp;
return mode;
}
/* Initialize the GCC target structure. */
#undef TARGET_ASM_ALIGNED_HI_OP
@ -20010,10 +20036,7 @@ mips_ira_change_pseudo_allocno_class (int regno, reg_class_t allocno_class)
#define TARGET_GIMPLIFY_VA_ARG_EXPR mips_gimplify_va_arg_expr
#undef TARGET_PROMOTE_FUNCTION_MODE
#define TARGET_PROMOTE_FUNCTION_MODE default_promote_function_mode_always_promote
#undef TARGET_PROMOTE_PROTOTYPES
#define TARGET_PROMOTE_PROTOTYPES hook_bool_const_tree_true
#define TARGET_PROMOTE_FUNCTION_MODE mips_promote_function_mode
#undef TARGET_FUNCTION_VALUE
#define TARGET_FUNCTION_VALUE mips_function_value
#undef TARGET_LIBCALL_VALUE