Commit db4aec84 by Steve Ellcey Committed by Steve Ellcey

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
parent fa583f9e
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> 2015-12-14 Jason Merrill <jason@redhat.com>
PR c++/68309 PR c++/68309
...@@ -19906,6 +19906,32 @@ mips_ira_change_pseudo_allocno_class (int regno, reg_class_t allocno_class) ...@@ -19906,6 +19906,32 @@ mips_ira_change_pseudo_allocno_class (int regno, reg_class_t allocno_class)
return GR_REGS; return GR_REGS;
return allocno_class; 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. */ /* Initialize the GCC target structure. */
#undef TARGET_ASM_ALIGNED_HI_OP #undef TARGET_ASM_ALIGNED_HI_OP
...@@ -20010,10 +20036,7 @@ mips_ira_change_pseudo_allocno_class (int regno, reg_class_t allocno_class) ...@@ -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 #define TARGET_GIMPLIFY_VA_ARG_EXPR mips_gimplify_va_arg_expr
#undef TARGET_PROMOTE_FUNCTION_MODE #undef TARGET_PROMOTE_FUNCTION_MODE
#define TARGET_PROMOTE_FUNCTION_MODE default_promote_function_mode_always_promote #define TARGET_PROMOTE_FUNCTION_MODE mips_promote_function_mode
#undef TARGET_PROMOTE_PROTOTYPES
#define TARGET_PROMOTE_PROTOTYPES hook_bool_const_tree_true
#undef TARGET_FUNCTION_VALUE #undef TARGET_FUNCTION_VALUE
#define TARGET_FUNCTION_VALUE mips_function_value #define TARGET_FUNCTION_VALUE mips_function_value
#undef TARGET_LIBCALL_VALUE #undef TARGET_LIBCALL_VALUE
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment