+2008-06-16 Chung-Lin Tang <ctang@marvell.com>
+
+ * arm-protos.h (arm_return_in_memory): Remove public
+ arm_return_in_memory() prototype.
+ * arm.c (arm_return_in_memory): Add static prototype, add target
+ hook macro, change definition and comments.
+ * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
+
2008-06-19 Ben Elliston <bje@au.ibm.com>
* dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
extern void arm_output_fn_unwind (FILE *, bool);
-#ifdef TREE_CODE
-extern bool arm_return_in_memory (const_tree, const_tree);
-#endif
#ifdef RTX_CODE
extern bool arm_vector_mode_supported_p (enum machine_mode);
extern int arm_hard_regno_mode_ok (unsigned int, enum machine_mode);
static bool arm_align_anon_bitfield (void);
static bool arm_return_in_msb (const_tree);
static bool arm_must_pass_in_stack (enum machine_mode, const_tree);
+static bool arm_return_in_memory (const_tree, const_tree);
#ifdef TARGET_UNWIND_INFO
static void arm_unwind_emit (FILE *, rtx);
static bool arm_output_ttype (rtx);
#undef TARGET_RETURN_IN_MSB
#define TARGET_RETURN_IN_MSB arm_return_in_msb
+#undef TARGET_RETURN_IN_MEMORY
+#define TARGET_RETURN_IN_MEMORY arm_return_in_memory
+
#undef TARGET_MUST_PASS_IN_STACK
#define TARGET_MUST_PASS_IN_STACK arm_must_pass_in_stack
}
/* Decide whether a type should be returned in memory (true)
- or in a register (false). This is called by the macro
+ or in a register (false). This is called as the target hook
TARGET_RETURN_IN_MEMORY. */
-bool
+static bool
arm_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED)
{
HOST_WIDE_INT size;
registers. */
#define APPLY_RESULT_SIZE arm_apply_result_size()
-/* How large values are returned */
-/* A C expression which can inhibit the returning of certain function values
- in registers, based on the type of value. */
-#define TARGET_RETURN_IN_MEMORY arm_return_in_memory
-
/* Define DEFAULT_PCC_STRUCT_RETURN to 1 if all structure and union return
values must be in memory. On the ARM, they need only do so if larger
than a word, or if they contain elements offset from zero in the struct. */