/* Default target hook functions.
- Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009, 2010
+ Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of GCC.
const_tree funtype ATTRIBUTE_UNUSED,
int for_return ATTRIBUTE_UNUSED)
{
- if (for_return == 2)
+ if (type != NULL_TREE && for_return == 2)
return promote_mode (type, mode, punsignedp);
return mode;
}
const_tree type ATTRIBUTE_UNUSED,
bool named ATTRIBUTE_UNUSED)
{
-#ifdef FUNCTION_ARG_ADVANCE
- CUMULATIVE_ARGS args = *ca;
- FUNCTION_ARG_ADVANCE (args, mode, CONST_CAST_TREE (type), named);
- *ca = args;
-#else
gcc_unreachable ();
-#endif
}
rtx
const_tree type ATTRIBUTE_UNUSED,
bool named ATTRIBUTE_UNUSED)
{
-#ifdef FUNCTION_ARG
- return FUNCTION_ARG (*ca, mode, CONST_CAST_TREE (type), named);
-#else
gcc_unreachable ();
-#endif
}
rtx
const_tree type ATTRIBUTE_UNUSED,
bool named ATTRIBUTE_UNUSED)
{
-#ifdef FUNCTION_INCOMING_ARG
- return FUNCTION_INCOMING_ARG (*ca, mode, CONST_CAST_TREE (type), named);
-#else
gcc_unreachable ();
-#endif
}
unsigned int
return NO_REGS;
}
-#ifdef IRA_COVER_CLASSES
-const reg_class_t *
-default_ira_cover_classes (void)
-{
- static reg_class_t classes[] = IRA_COVER_CLASSES;
- return classes;
-}
-#endif
-
reg_class_t
default_secondary_reload (bool in_p ATTRIBUTE_UNUSED, rtx x ATTRIBUTE_UNUSED,
reg_class_t reload_class_i ATTRIBUTE_UNUSED,
reload_mode);
if (icode != CODE_FOR_nothing
- && insn_data[(int) icode].operand[in_p].predicate
- && ! insn_data[(int) icode].operand[in_p].predicate (x, reload_mode))
+ && !insn_operand_matches (icode, in_p, x))
icode = CODE_FOR_nothing;
else if (icode != CODE_FOR_nothing)
{
return rclass;
}
-bool
-default_handle_c_option (size_t code ATTRIBUTE_UNUSED,
- const char *arg ATTRIBUTE_UNUSED,
- int value ATTRIBUTE_UNUSED)
-{
- return false;
-}
-
/* By default, if flag_pic is true, then neither local nor global relocs
should be placed in readonly memory. */
else if (!caller_opts)
ret = false;
- /* If both caller and callee have attributes, assume that if the pointer is
- different, the the two functions have different target options since
- build_target_option_node uses a hash table for the options. */
+ /* If both caller and callee have attributes, assume that if the
+ pointer is different, the two functions have different target
+ options since build_target_option_node uses a hash table for the
+ options. */
else
ret = (callee_opts == caller_opts);
return NULL;
}
+/* Default version of TARGET_HANDLE_OPTION. */
+
+bool
+default_target_handle_option (struct gcc_options *opts ATTRIBUTE_UNUSED,
+ struct gcc_options *opts_set ATTRIBUTE_UNUSED,
+ const struct cl_decoded_option *decoded ATTRIBUTE_UNUSED,
+ location_t loc ATTRIBUTE_UNUSED)
+{
+ return true;
+}
+
const struct default_options empty_optimization_table[] =
{
{ OPT_LEVELS_NONE, 0, NULL, 0 }