+2003-12-31 Zack Weinberg <zack@codesourcery.com>
+
+ * config/ia64/ia64.c (ia64_va_arg): Pass pointer for
+ variable-sized type through convert_memory_address.
+ (ia64_in_small_data_p): Always return false for FUNCTION_DECLs.
+
2003-12-24 Andrew Pinski <pinskia@physics.uc.edu>
PR bootstrap/13068
2003-09-18 Mark Mitchell <mark@codesourcery.com>
* explow.c (convert_memory_address): Define even when
POINTERS_EXTEND_UNSIGNED is not defined. Do nothing if the address
- is already in the right mode.
+ is already in the right mode.
2003-12-23 Andrew Pinski <pinskia@physics.uc.edu>
2003-12-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
- PR target/11271
+ PR target/11271
* reload.c: Revert last backport from mainline. It breaks s390.
2003-12-21 Roger Sayle <roger@eyesopen.com>
/* Variable sized types are passed by reference. */
if (TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST)
{
- rtx addr = std_expand_builtin_va_arg (valist, build_pointer_type (type));
- return gen_rtx_MEM (ptr_mode, force_reg (Pmode, addr));
+ rtx addr = force_reg (ptr_mode,
+ std_expand_builtin_va_arg (valist, build_pointer_type (type)));
+#ifdef POINTERS_EXTEND_UNSIGNED
+ addr = convert_memory_address (Pmode, addr);
+#endif
+ return gen_rtx_MEM (ptr_mode, addr);
}
/* Arguments with alignment larger than 8 bytes start at the next even
if (TARGET_NO_SDATA)
return false;
+ /* Functions are never small data. */
+ if (TREE_CODE (exp) == FUNCTION_DECL)
+ return false;
+
if (TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp))
{
const char *section = TREE_STRING_POINTER (DECL_SECTION_NAME (exp));